[2/7] gtk+: Fix bug 1674

Submitted by Xiaofeng Yan on Nov. 8, 2011, 11:15 a.m.

Details

Message ID 9d9675eee33b1f77242db3ecd556c82470696f61.1320750179.git.xiaofeng.yan@windriver.com
State New
Headers show

Commit Message

Xiaofeng Yan Nov. 8, 2011, 11:15 a.m.
From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

[YOCTO #1674]
Image "gtk+ over directfb" doesn't need "x11".
So I add "directfb" on configuration and gtk-demo to image for check \
whether image based on gtk+-directfb work successfully.

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-gnome/gtk+/gtk+.inc       |   18 ++++++++++++++----
 meta/recipes-gnome/gtk+/gtk+_2.24.6.bb |   17 ++++++++++++-----
 2 files changed, 26 insertions(+), 9 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
index 0e5c45c..6ec5906 100644
--- a/meta/recipes-gnome/gtk+/gtk+.inc
+++ b/meta/recipes-gnome/gtk+/gtk+.inc
@@ -9,13 +9,18 @@  LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 
 SECTION = "libs"
-DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
-           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
-           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
+X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
+DIRECTFBDEPENDS = "directfb"
+
+DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
+           libgcrypt cairo gdk-pixbuf \
+           ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', '${DIRECTFBDEPENDS}', '', d)}"
+
 
 inherit autotools pkgconfig
 
-PACKAGES += "libgail"
+PACKAGES += "libgail gtk+-demo"
 
 FILES_${PN} = "${bindir}/gtk-update-icon-cache \
 	${bindir}/gtk-query-immodules-2.0 \
@@ -40,6 +45,11 @@  FILES_${PN}-dbg += " \
 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
 
+FILES_gtk+-demo = " \
+        ${datadir}/gtk-2.0/demo/* \
+        ${bindir}/gtk-demo \
+        "
+
 FILES_libgail = " \
 	${libdir}/gtk-2.0/modules/libgail.so \
 	${libdir}/gtk-2.0/modules/libferret.so \
diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
index 01f4a11..5a9dc5e 100644
--- a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
+++ b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
@@ -8,7 +8,6 @@  SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
            file://xsettings.patch \
            file://run-iconcache.patch \
            file://hardcoded_libtool.patch \
-           file://no-demos.patch \
            file://cellrenderer-cairo.patch;striplevel=0 \
            file://toggle-font.diff;striplevel=0 \
            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
@@ -25,13 +24,21 @@  SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
 #           file://menu-deactivate.patch
 #        file://combo-arrow-size.patch;striplevel=0
 #            file://configurefix.patch
+#           file://no-demos.patch 
 
-PR = "r1"
+PR = "r2"
 
-SRC_URI[md5sum] = "421100f6597e613234f8dead6091a9fe"
-SRC_URI[sha256sum] = "6f45bdbf9ea27eb3b5f977d7ee2365dede0d0ce454985680c26e5210163bbf37"
+SRC_URI[md5sum] = "4e977cb6a4530e9d4fe54d6ba70831c4"
+SRC_URI[sha256sum] = "9aade52339dca563780bca5c83b0fb02284393221bda4f55cb9ec7eae1661a1d"
+
+CONF_directfb=" --with-x=no --with-gdktarget=directfb"
+CONF_xorg=" --with-x=yes --with-gdktarget=x11"
+
+EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'directfb', \
+ '${CONF_directfb}', '${CONF_xorg}', d)} \
+ --without-libtiff --without-libjasper --enable-xkb \
+ --disable-glibtest --disable-cups --disable-xinerama"
 
-EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
 
 LIBV = "2.10.0"
 

Comments

Koen Kooi Nov. 8, 2011, 11:45 a.m.
Please mention what you fixed in the first line, e.g.

gtk+: add directfb DISTRO_FEATURE

instead of

gtk+: Fix bug 1674

Op 8 nov. 2011, om 12:15 heeft Xiaofeng Yan het volgende geschreven:

> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> 
> [YOCTO #1674]
> Image "gtk+ over directfb" doesn't need "x11".
> So I add "directfb" on configuration and gtk-demo to image for check \
> whether image based on gtk+-directfb work successfully.
> 
> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> ---
> meta/recipes-gnome/gtk+/gtk+.inc       |   18 ++++++++++++++----
> meta/recipes-gnome/gtk+/gtk+_2.24.6.bb |   17 ++++++++++++-----
> 2 files changed, 26 insertions(+), 9 deletions(-)
> 
> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
> index 0e5c45c..6ec5906 100644
> --- a/meta/recipes-gnome/gtk+/gtk+.inc
> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
> @@ -9,13 +9,18 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
> LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
> 
> SECTION = "libs"
> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> +DIRECTFBDEPENDS = "directfb"
> +
> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
> +           libgcrypt cairo gdk-pixbuf \
> +           ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
> +           ${@base_contains('DISTRO_FEATURES', 'directfb', '${DIRECTFBDEPENDS}', '', d)}"
> +
> 
> inherit autotools pkgconfig
> 
> -PACKAGES += "libgail"
> +PACKAGES += "libgail gtk+-demo"
> 
> FILES_${PN} = "${bindir}/gtk-update-icon-cache \
> 	${bindir}/gtk-query-immodules-2.0 \
> @@ -40,6 +45,11 @@ FILES_${PN}-dbg += " \
> 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
> 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
> 
> +FILES_gtk+-demo = " \
> +        ${datadir}/gtk-2.0/demo/* \
> +        ${bindir}/gtk-demo \
> +        "
> +
> FILES_libgail = " \
> 	${libdir}/gtk-2.0/modules/libgail.so \
> 	${libdir}/gtk-2.0/modules/libferret.so \
> diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> index 01f4a11..5a9dc5e 100644
> --- a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> +++ b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> @@ -8,7 +8,6 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
>            file://xsettings.patch \
>            file://run-iconcache.patch \
>            file://hardcoded_libtool.patch \
> -           file://no-demos.patch \
>            file://cellrenderer-cairo.patch;striplevel=0 \
>            file://toggle-font.diff;striplevel=0 \
>            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
> @@ -25,13 +24,21 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
> #           file://menu-deactivate.patch
> #        file://combo-arrow-size.patch;striplevel=0
> #            file://configurefix.patch
> +#           file://no-demos.patch 
> 
> -PR = "r1"
> +PR = "r2"
> 
> -SRC_URI[md5sum] = "421100f6597e613234f8dead6091a9fe"
> -SRC_URI[sha256sum] = "6f45bdbf9ea27eb3b5f977d7ee2365dede0d0ce454985680c26e5210163bbf37"
> +SRC_URI[md5sum] = "4e977cb6a4530e9d4fe54d6ba70831c4"
> +SRC_URI[sha256sum] = "9aade52339dca563780bca5c83b0fb02284393221bda4f55cb9ec7eae1661a1d"
> +
> +CONF_directfb=" --with-x=no --with-gdktarget=directfb"
> +CONF_xorg=" --with-x=yes --with-gdktarget=x11"
> +
> +EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'directfb', \
> + '${CONF_directfb}', '${CONF_xorg}', d)} \
> + --without-libtiff --without-libjasper --enable-xkb \
> + --disable-glibtest --disable-cups --disable-xinerama"
> 
> -EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
> 
> LIBV = "2.10.0"
> 
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Richard Purdie Nov. 8, 2011, 1:18 p.m.
On Tue, 2011-11-08 at 19:15 +0800, Xiaofeng Yan wrote:
> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> 
> [YOCTO #1674]
> Image "gtk+ over directfb" doesn't need "x11".
> So I add "directfb" on configuration and gtk-demo to image for check \
> whether image based on gtk+-directfb work successfully.
> 
> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> ---
>  meta/recipes-gnome/gtk+/gtk+.inc       |   18 ++++++++++++++----
>  meta/recipes-gnome/gtk+/gtk+_2.24.6.bb |   17 ++++++++++++-----
>  2 files changed, 26 insertions(+), 9 deletions(-)
> 
> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
> index 0e5c45c..6ec5906 100644
> --- a/meta/recipes-gnome/gtk+/gtk+.inc
> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
> @@ -9,13 +9,18 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
>  
>  SECTION = "libs"
> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> +DIRECTFBDEPENDS = "directfb"
> +
> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
> +           libgcrypt cairo gdk-pixbuf \
> +           ${@base_contains('DISTRO_FEATURES', 'x11', '', '', d)} \
> +           ${@base_contains('DISTRO_FEATURES', 'directfb', '${DIRECTFBDEPENDS}', '', d)}"
> +
>  
>  inherit autotools pkgconfig
>  
> -PACKAGES += "libgail"
> +PACKAGES += "libgail gtk+-demo"
>  
>  FILES_${PN} = "${bindir}/gtk-update-icon-cache \
>  	${bindir}/gtk-query-immodules-2.0 \
> @@ -40,6 +45,11 @@ FILES_${PN}-dbg += " \
>  	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
>  	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
>  
> +FILES_gtk+-demo = " \
> +        ${datadir}/gtk-2.0/demo/* \
> +        ${bindir}/gtk-demo \
> +        "
> +
>  FILES_libgail = " \
>  	${libdir}/gtk-2.0/modules/libgail.so \
>  	${libdir}/gtk-2.0/modules/libferret.so \
> diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> index 01f4a11..5a9dc5e 100644
> --- a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> +++ b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> @@ -8,7 +8,6 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
>             file://xsettings.patch \
>             file://run-iconcache.patch \
>             file://hardcoded_libtool.patch \
> -           file://no-demos.patch \
>             file://cellrenderer-cairo.patch;striplevel=0 \
>             file://toggle-font.diff;striplevel=0 \
>             file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
> @@ -25,13 +24,21 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
>  #           file://menu-deactivate.patch
>  #        file://combo-arrow-size.patch;striplevel=0
>  #            file://configurefix.patch
> +#           file://no-demos.patch 
> 
> -PR = "r1"
> +PR = "r2"
>  
> -SRC_URI[md5sum] = "421100f6597e613234f8dead6091a9fe"
> -SRC_URI[sha256sum] = "6f45bdbf9ea27eb3b5f977d7ee2365dede0d0ce454985680c26e5210163bbf37"
> +SRC_URI[md5sum] = "4e977cb6a4530e9d4fe54d6ba70831c4"
> +SRC_URI[sha256sum] = "9aade52339dca563780bca5c83b0fb02284393221bda4f55cb9ec7eae1661a1d"
> +
> +CONF_directfb=" --with-x=no --with-gdktarget=directfb"
> +CONF_xorg=" --with-x=yes --with-gdktarget=x11"
> +
> +EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'directfb', \
> + '${CONF_directfb}', '${CONF_xorg}', d)} \
> + --without-libtiff --without-libjasper --enable-xkb \
> + --disable-glibtest --disable-cups --disable-xinerama"
>  
> -EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-glibtest --disable-cups --disable-xinerama"

This is a horrible mess and its just going to get worse. We started
adding PACKAGECONFIG to try and help with things like this problem.
Instead of the above you should be able to do something like:

PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
                   ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"

This commit also applies to the other places you're changing config
options.

Also some style issues:

a) please put a decent one line summary at the start of commits
b) mention the bug number a the end of the commit message in the for 
   [YOCTO #1674]
c) Please mention other details the patch changes. The patch above 
   changes the checksums (why?)

Cheers,

Richard
Koen Kooi Nov. 8, 2011, 1:32 p.m.
Op 8 nov. 2011, om 14:18 heeft Richard Purdie het volgende geschreven:

> On Tue, 2011-11-08 at 19:15 +0800, Xiaofeng Yan wrote:
>> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
>> 
>> [YOCTO #1674]
>> Image "gtk+ over directfb" doesn't need "x11".
>> So I add "directfb" on configuration and gtk-demo to image for check \
>> whether image based on gtk+-directfb work successfully.
>> 
>> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
>> ---
>> meta/recipes-gnome/gtk+/gtk+.inc       |   18 ++++++++++++++----
>> meta/recipes-gnome/gtk+/gtk+_2.24.6.bb |   17 ++++++++++++-----
>> 2 files changed, 26 insertions(+), 9 deletions(-)
>> 
>> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
>> index 0e5c45c..6ec5906 100644
>> --- a/meta/recipes-gnome/gtk+/gtk+.inc
>> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
>> @@ -9,13 +9,18 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
>> LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
>> 
>> SECTION = "libs"
>> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
>> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
>> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
>> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
>> +DIRECTFBDEPENDS = "directfb"
>> +
>> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
>> +           libgcrypt cairo gdk-pixbuf \
>> +           ${@base_contains('DISTRO_FEATURES', 'x11', '', '', d)} \
>> +           ${@base_contains('DISTRO_FEATURES', 'directfb', '${DIRECTFBDEPENDS}', '', d)}"
>> +
>> 
>> inherit autotools pkgconfig
>> 
>> -PACKAGES += "libgail"
>> +PACKAGES += "libgail gtk+-demo"
>> 
>> FILES_${PN} = "${bindir}/gtk-update-icon-cache \
>> 	${bindir}/gtk-query-immodules-2.0 \
>> @@ -40,6 +45,11 @@ FILES_${PN}-dbg += " \
>> 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
>> 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
>> 
>> +FILES_gtk+-demo = " \
>> +        ${datadir}/gtk-2.0/demo/* \
>> +        ${bindir}/gtk-demo \
>> +        "
>> +
>> FILES_libgail = " \
>> 	${libdir}/gtk-2.0/modules/libgail.so \
>> 	${libdir}/gtk-2.0/modules/libferret.so \
>> diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
>> index 01f4a11..5a9dc5e 100644
>> --- a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
>> +++ b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
>> @@ -8,7 +8,6 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
>>            file://xsettings.patch \
>>            file://run-iconcache.patch \
>>            file://hardcoded_libtool.patch \
>> -           file://no-demos.patch \
>>            file://cellrenderer-cairo.patch;striplevel=0 \
>>            file://toggle-font.diff;striplevel=0 \
>>            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
>> @@ -25,13 +24,21 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
>> #           file://menu-deactivate.patch
>> #        file://combo-arrow-size.patch;striplevel=0
>> #            file://configurefix.patch
>> +#           file://no-demos.patch 
>> 
>> -PR = "r1"
>> +PR = "r2"
>> 
>> -SRC_URI[md5sum] = "421100f6597e613234f8dead6091a9fe"
>> -SRC_URI[sha256sum] = "6f45bdbf9ea27eb3b5f977d7ee2365dede0d0ce454985680c26e5210163bbf37"
>> +SRC_URI[md5sum] = "4e977cb6a4530e9d4fe54d6ba70831c4"
>> +SRC_URI[sha256sum] = "9aade52339dca563780bca5c83b0fb02284393221bda4f55cb9ec7eae1661a1d"
>> +
>> +CONF_directfb=" --with-x=no --with-gdktarget=directfb"
>> +CONF_xorg=" --with-x=yes --with-gdktarget=x11"
>> +
>> +EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'directfb', \
>> + '${CONF_directfb}', '${CONF_xorg}', d)} \
>> + --without-libtiff --without-libjasper --enable-xkb \
>> + --disable-glibtest --disable-cups --disable-xinerama"
>> 
>> -EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
> 
> This is a horrible mess and its just going to get worse. We started
> adding PACKAGECONFIG to try and help with things like this problem.
> Instead of the above you should be able to do something like:
> 
> PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
>                   ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
> PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
> PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"

What happens when I have both directfb and x11 in DISTRO_FEATURES?

regards,

Koen
Richard Purdie Nov. 8, 2011, 1:51 p.m.
On Tue, 2011-11-08 at 14:32 +0100, Koen Kooi wrote:
> Op 8 nov. 2011, om 14:18 heeft Richard Purdie het volgende geschreven:
> 
> > On Tue, 2011-11-08 at 19:15 +0800, Xiaofeng Yan wrote:
> >> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> >> 
> >> [YOCTO #1674]
> >> Image "gtk+ over directfb" doesn't need "x11".
> >> So I add "directfb" on configuration and gtk-demo to image for check \
> >> whether image based on gtk+-directfb work successfully.
> >> 
> >> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> >> ---
> >> meta/recipes-gnome/gtk+/gtk+.inc       |   18 ++++++++++++++----
> >> meta/recipes-gnome/gtk+/gtk+_2.24.6.bb |   17 ++++++++++++-----
> >> 2 files changed, 26 insertions(+), 9 deletions(-)
> >> 
> >> diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
> >> index 0e5c45c..6ec5906 100644
> >> --- a/meta/recipes-gnome/gtk+/gtk+.inc
> >> +++ b/meta/recipes-gnome/gtk+/gtk+.inc
> >> @@ -9,13 +9,18 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
> >> LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
> >> 
> >> SECTION = "libs"
> >> -DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
> >> -           gtk-doc-native docbook-utils-native libxrandr libgcrypt \
> >> -           libxdamage libxrender libxcomposite cairo gdk-pixbuf"
> >> +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
> >> +DIRECTFBDEPENDS = "directfb"
> >> +
> >> +DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
> >> +           libgcrypt cairo gdk-pixbuf \
> >> +           ${@base_contains('DISTRO_FEATURES', 'x11', '', '', d)} \
> >> +           ${@base_contains('DISTRO_FEATURES', 'directfb', '${DIRECTFBDEPENDS}', '', d)}"
> >> +
> >> 
> >> inherit autotools pkgconfig
> >> 
> >> -PACKAGES += "libgail"
> >> +PACKAGES += "libgail gtk+-demo"
> >> 
> >> FILES_${PN} = "${bindir}/gtk-update-icon-cache \
> >> 	${bindir}/gtk-query-immodules-2.0 \
> >> @@ -40,6 +45,11 @@ FILES_${PN}-dbg += " \
> >> 	${libdir}/gtk-2.0/${LIBV}/engines/.debug/* \
> >> 	${libdir}/gtk-2.0/${LIBV}/printbackends/.debug/*"
> >> 
> >> +FILES_gtk+-demo = " \
> >> +        ${datadir}/gtk-2.0/demo/* \
> >> +        ${bindir}/gtk-demo \
> >> +        "
> >> +
> >> FILES_libgail = " \
> >> 	${libdir}/gtk-2.0/modules/libgail.so \
> >> 	${libdir}/gtk-2.0/modules/libferret.so \
> >> diff --git a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> >> index 01f4a11..5a9dc5e 100644
> >> --- a/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> >> +++ b/meta/recipes-gnome/gtk+/gtk+_2.24.6.bb
> >> @@ -8,7 +8,6 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
> >>            file://xsettings.patch \
> >>            file://run-iconcache.patch \
> >>            file://hardcoded_libtool.patch \
> >> -           file://no-demos.patch \
> >>            file://cellrenderer-cairo.patch;striplevel=0 \
> >>            file://toggle-font.diff;striplevel=0 \
> >>            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
> >> @@ -25,13 +24,21 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
> >> #           file://menu-deactivate.patch
> >> #        file://combo-arrow-size.patch;striplevel=0
> >> #            file://configurefix.patch
> >> +#           file://no-demos.patch 
> >> 
> >> -PR = "r1"
> >> +PR = "r2"
> >> 
> >> -SRC_URI[md5sum] = "421100f6597e613234f8dead6091a9fe"
> >> -SRC_URI[sha256sum] = "6f45bdbf9ea27eb3b5f977d7ee2365dede0d0ce454985680c26e5210163bbf37"
> >> +SRC_URI[md5sum] = "4e977cb6a4530e9d4fe54d6ba70831c4"
> >> +SRC_URI[sha256sum] = "9aade52339dca563780bca5c83b0fb02284393221bda4f55cb9ec7eae1661a1d"
> >> +
> >> +CONF_directfb=" --with-x=no --with-gdktarget=directfb"
> >> +CONF_xorg=" --with-x=yes --with-gdktarget=x11"
> >> +
> >> +EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'directfb', \
> >> + '${CONF_directfb}', '${CONF_xorg}', d)} \
> >> + --without-libtiff --without-libjasper --enable-xkb \
> >> + --disable-glibtest --disable-cups --disable-xinerama"
> >> 
> >> -EXTRA_OECONF = "--without-libtiff --without-libjasper --enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
> > 
> > This is a horrible mess and its just going to get worse. We started
> > adding PACKAGECONFIG to try and help with things like this problem.
> > Instead of the above you should be able to do something like:
> > 
> > PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
> >                   ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
> > PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
> > PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
> 
> What happens when I have both directfb and x11 in DISTRO_FEATURES?

That would cause problems. The grand plan is to flag incompatible
options and error but don't have code for that yet...

Cheers,

Richard