Bug 3642

Summary: gtk-demo fails to run for gtk-directfb image
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Yi Zhao <yi.zhao>
Component: graphicsAssignee: Constantin Musca <constantinx.musca>
Status: VERIFIED NOTABUG QA Contact:
Severity: normal    
Priority: Medium CC: corneliux.stoicescu, hongxu.jia, liang.li2, meta.mr.watcher, meta.watcher, Qi.Chen, ross.burton, sgw, yi.zhao
Version: 1.4   
Target Milestone: 1.4   
Hardware: x86   
OS: Multiple   
Whiteboard: c13e458b22ca1b870332540e0edbc1975c342c79
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Yi Zhao 2012-12-26 05:38:47 UTC
Tree/Branch: Poky/master
git commit: 90c0eb29f0b41e4ac2d3d17ebad7295c2ebdc02a

Steps:
1. Download poky source and prepare the build environment 
2. Set MACHINE to qemuarm in conf/local.conf
3. Add the following line in conf/local.conf:
    DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g gtk-directfb ${DISTRO_FEATURES_LIBC}" 
4. Run "bitbake core-image-gtk-directfb" to build a gtk-directfb image 
5. Boot up the gtk-directfb image and run "gtk-demo" command.

The image can boot up. But when I run "gtk-demo" command it only launch a blank screen and no widgets on it.
Comment 1 Ross Burton 2013-01-11 15:33:00 UTC
Do other DirectFB apps work (not GTK+ ones?)  How about other GTK+ apps?
Comment 2 Yi Zhao 2013-01-14 09:22:00 UTC
With the latest master branch: 53cc748b93e8af584557d6db5309c3e955182c5c , the gtk-directfb image can't build. 

Steps:
#########
1. Add DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g gtk-directfb ${DISTRO_FEATURES_LIBC}" to conf/local.conf
2. Run bitbake core-image-gtk-directfb
#########

I got the following errors:
############
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'directfb-native' (but virtual:native:/buildarea1/yzhao1/poky/meta/recipes-graphics/cairo/cairo_1.12.8.bb DEPENDS on or otherwise requires it)
NOTE: Runtime target 'gtk+' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['gtk+', 'pango', 'pango-native', 'cairo-native', 'directfb-native']
NOTE: Runtime target 'packagegroup-core-gtk-directfb' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-core-gtk-directfb', 'gtk+', 'pango', 'pango-native', 'cairo-native', 'directfb-native']
ERROR: Required build target 'core-image-gtk-directfb' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-gtk-directfb', 'packagegroup-core-gtk-directfb', 'gtk+', 'pango', 'pango-native', 'cairo-native', 'directfb-native']
#############
Comment 3 Constantin Musca 2013-01-18 14:34:42 UTC
(In reply to comment #2)
> With the latest master branch: 53cc748b93e8af584557d6db5309c3e955182c5c ,
> the gtk-directfb image can't build. 
> 
> Steps:
> #########
> 1. Add DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia
> usbgadget usbhost wifi xattr nfs zeroconf pci 3g gtk-directfb
> ${DISTRO_FEATURES_LIBC}" to conf/local.conf
> 2. Run bitbake core-image-gtk-directfb
> #########
> 
> I got the following errors:
> ############
> NOTE: Resolving any missing task queue dependencies
> ERROR: Nothing PROVIDES 'directfb-native' (but
> virtual:native:/buildarea1/yzhao1/poky/meta/recipes-graphics/cairo/cairo_1.
> 12.8.bb DEPENDS on or otherwise requires it)
> NOTE: Runtime target 'gtk+' is unbuildable, removing...
> Missing or unbuildable dependency chain was: ['gtk+', 'pango',
> 'pango-native', 'cairo-native', 'directfb-native']
> NOTE: Runtime target 'packagegroup-core-gtk-directfb' is unbuildable,
> removing...
> Missing or unbuildable dependency chain was:
> ['packagegroup-core-gtk-directfb', 'gtk+', 'pango', 'pango-native',
> 'cairo-native', 'directfb-native']
> ERROR: Required build target 'core-image-gtk-directfb' has no buildable
> providers.
> Missing or unbuildable dependency chain was: ['core-image-gtk-directfb',
> 'packagegroup-core-gtk-directfb', 'gtk+', 'pango', 'pango-native',
> 'cairo-native', 'directfb-native']
> #############

This issue has been fixed. (commit 26bddbd41b774395a9af73fb659b8e8792e9c3ad)

Cheers,
Constantin
Comment 4 Constantin Musca 2013-01-18 14:57:46 UTC
(In reply to comment #0)
> Tree/Branch: Poky/master
> git commit: 90c0eb29f0b41e4ac2d3d17ebad7295c2ebdc02a
> 
> Steps:
> 1. Download poky source and prepare the build environment 
> 2. Set MACHINE to qemuarm in conf/local.conf
> 3. Add the following line in conf/local.conf:
>     DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia
> usbgadget usbhost wifi xattr nfs zeroconf pci 3g gtk-directfb
> ${DISTRO_FEATURES_LIBC}" 
> 4. Run "bitbake core-image-gtk-directfb" to build a gtk-directfb image 
> 5. Boot up the gtk-directfb image and run "gtk-demo" command.
> 
> The image can boot up. But when I run "gtk-demo" command it only launch a
> blank screen and no widgets on it.

It seems that directfb is not supported by gtk versions >= 2.18. The guys from mozzila for example noticed this and decided to remove directfb: 
"DirectFB is no longer supported by GTK 3 and apparently even in 2 the backend hasn't worked since 2.18.  It's probably time we stripped the DirectFB code, but at least here don't make any effort to maintain support." ( https://bugzilla.mozilla.org/show_bug.cgi?id=627699 ).

Also, the people from the gtk mailling list confirm this:
- https://mail.gnome.org/archives/gtk-devel-list/2011-August/msg00037.html


Because of this we are dropping gtk-directfb.

Cheers,
Constantin
Comment 5 Constantin Musca 2013-01-18 15:11:14 UTC
Patches sent to the mailing list for removing gtk-directfb and creating a simple directfb packagegroup/image.

Cheers,
Constantin
Comment 6 Stoicescu Cornel 2013-01-23 15:35:51 UTC
Please also add an example similar to "gtk-demo" to replace it so we can test the new feature. 

See https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=288 for more details about why we need that and how we used "gtk-demo".
Comment 7 Constantin Musca 2013-01-30 07:42:25 UTC
(In reply to comment #6)
> Please also add an example similar to "gtk-demo" to replace it so we can
> test the new feature. 
> 
> See https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=288 for more
> details about why we need that and how we used "gtk-demo".

Patches merged. (commit c13e458b22ca1b870332540e0edbc1975c342c79)

# Test case

Action:
1. Download poky source and prepare the build environment
2. Set MACHINE to qemuarm in conf/local.conf
3. Remove "x11" from DISTRO_FEATURES in meta/conf/distro/include/default-distrovars.inc, use "directfb" instead of it:
    DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g directfb ${DISTRO_FEATURES_LIBC}"
4. Run "bitbake core-image-directfb" to build a directfb image
5. Boot up the directfb image and run "df_fire" command.

Expected Results:
The directfb image can be built out and the "df_fire" command can run without problems.


Cheers,
Constantin
Comment 8 Stoicescu Cornel 2013-01-30 09:19:08 UTC
New test cases added as described: https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=563 .

Test case was introduced in the full pass pre-release and full pass post-release cycles and will be verified on the first occasion.
Comment 9 Stoicescu Cornel 2013-02-08 16:41:30 UTC
Tested in master:8d6e55bf2192524bda84138b5356a2791adbbe61

Command df_fire results in a hang(black screen) in a qemu environment:

1. Download poky source and prepare the build environment
2. Set MACHINE to qemuarm in conf/local.conf
3. Remove "x11" from DISTRO_FEATURES in meta/conf/distro/include/default-distrovars.inc, use "directfb" instead of it:
    DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g directfb ${DISTRO_FEATURES_LIBC}"
4. Run "bitbake core-image-directfb" to build a directfb image
5. Boot up the directfb image "runqemu qemuarm core-image-directfb" and run "df_fire" command.

Notice the image hangs with a black screen. The application can not be closed thus I can not attach any output.
Comment 10 Constantin Musca 2013-02-11 09:25:40 UTC
mesa support for directfb has been disabled (commit fb2de94105934b65bf2b9af942e69c7ffe87d26e). That's why the test case is not valid anymore. We need to find another directfb demo app.

Cheers,
Constantin
Comment 11 Stoicescu Cornel 2013-02-28 12:21:51 UTC
Verified in master:7d22ef28e64de06b6238d0ef9b664c0bee6efa46

core-image-directfb builds and boots successfully. 

Added a new bug for the demo app in order to test directfb inside the image: Bug 3958