Skip to contentSkip to conversation

gtk+-directfb: The patches to run gtk over directfb

PATCH In review Xiaofeng Yan 6 participants 25 messages Dec 8, 2011 – Dec 9, 2011

lore
Share & tools
lore
#0 lore raw

cover gtk+-directfb: The patches to run gtk over directfb

From: Xiaofeng Yan <[email protected]>

I add "/etc/pango" to FILE_${PN} in pango.inc because this directory is used by other program. Thank Phil

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: xiaofeng/gtk-directfb
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/gtk-directfb

Thanks,
Xiaofeng Yan <[email protected]>
---

Xiaofeng Yan (10):
qemu-config: Disable dbus-x11 when no x11 in DISTRO_FEATURES
gconf: Disable dbus-x11 when x11 isn't in DISTRO_FEATURES gtk.inc: ship gtk-demo to independent package
gtk.inc: add feature based on directfb
gtk: add demos to the configuation of gtk+
cairo: add directfb DISTRO_FEATURE
pango: add directfb DISTRO_FEATURE
directfb-examples: add package directfb-examples to OE-core task-core-gtk-directfb.bb: Add task list to run gtk over directfb core-image-gtk-directfb.bb: add an image for gtk over directfb

 meta/recipes-bsp/qemu-config/qemu-config.bb        |    4 +-
 meta/recipes-gnome/gnome/gconf_3.2.3.bb            |    6 +++-
 meta/recipes-gnome/gtk+/gtk+.inc                   |   20 ++++++++++++---
 meta/recipes-gnome/gtk+/gtk+_2.24.8.bb             |    6 +++-
 meta/recipes-graphics/cairo/cairo.inc              |    9 +++++-
 .../directfb/directfb-examples_1.2.0.bb            |   20 +++++++++++++++
 .../images/core-image-gtk-directfb.bb              |   21 ++++++++++++++++
 meta/recipes-graphics/pango/pango.inc              |   19 ++++++++++----
 .../tasks/task-core-gtk-directfb.bb                |   26 ++++++++++++++++++++
 9 files changed, 114 insertions(+), 17 deletions(-)
 create mode 100644 meta/recipes-graphics/directfb/directfb-examples_1.2.0.bb
 create mode 100644 meta/recipes-graphics/images/core-image-gtk-directfb.bb
 create mode 100644 meta/recipes-graphics/tasks/task-core-gtk-directfb.bb
#1 lore raw

PATCH 1/10 qemu-config: Disable dbus-x11 when no x11 in DISTRO_FEATURES

From: Xiaofeng Yan <[email protected]>

dbus-x11 could be not needed by an image without x11.
So I modified this bb file to enable dbus-x11 when x11 is in DISTRO_FEATURES and disable \
dbus-x11 without x11 feature.

[YOCTO #1674]

---
 meta/recipes-bsp/qemu-config/qemu-config.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-bsp/qemu-config/qemu-config.bb +2 -2
index ebf957a..62f4700 100644
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemumips|qemuppc)"
 
-PR = "r22"
+PR = "r23"
 
 SRC_URI = "file://distcc.sh \
            file://anjuta-remote-run \
@@ -37,7 +37,7 @@ pkg_postinst_${PN} () {
         sed -i $D${datadir}/applications/shutdown.desktop -e 's/^Exec=halt/Exec=reboot/'
 }
 
-RDEPENDS_${PN} = "distcc dbus-x11 task-core-nfs-server oprofileui-server rsync bash"
+RDEPENDS_${PN} = "distcc ${@base_contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)} task-core-nfs-server oprofileui-server rsync bash"
 
 inherit update-rc.d allarch
 
Signature · 1 line
1.7.0.4
#2 lore raw

PATCH 2/10 gconf: Disable dbus-x11 when x11 isn't in DISTRO_FEATURES

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

If x11 isn't in DISTRO_FEATURES, then an error information "no providers ..." will \
arise. I modified this bb file to disable "dbus-x11" when no x11 in DISTRO_FEATURES.

[YOCTO #1674]

---
 meta/recipes-gnome/gnome/gconf_3.2.3.bb |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
meta/recipes-gnome/gnome/gconf_3.2.3.bb +4 -2
index cdc7a35..9d327fc 100644
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native polkit"
 DEPENDS_virtclass-native = "glib-2.0-native dbus-native dbus-glib-native libxml2-native intltool-native gnome-common-native"
 
-PR = "r2"
+PR = "r3"
 
 inherit gnomebase
 
@@ -37,7 +37,9 @@ do_install_append() {
 	rm ${D}${libdir}/gio/*/*.*a
 }
 
-RDEPENDS_${PN} += "dbus-x11"
+# disable dbus-x11 when x11 isn't in DISTRO_FEATURES
+RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}"
+
 FILES_${PN} += "${libdir}/GConf/* \
 	        ${libdir}/gio/*/*.so \
 		${datadir}/polkit* \
Signature · 1 line
1.7.0.4
#3 lore raw

PATCH 3/10 gtk.inc: ship gtk-demo to independent package

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

gtk-demo can test gtk over directfb

[YOCTO #1674]

---
 meta/recipes-gnome/gtk+/gtk+.inc |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
meta/recipes-gnome/gtk+/gtk+.inc +6 -1
index 0e5c45c..1d8f4a6 100644
@@ -15,7 +15,7 @@ DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor \
 
 inherit autotools pkgconfig
 
-PACKAGES += "libgail"
+PACKAGES += "libgail gtk-demo"
 
 FILES_${PN} = "${bindir}/gtk-update-icon-cache \
 	${bindir}/gtk-query-immodules-2.0 \
@@ -40,6 +40,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 \
Signature · 1 line
1.7.0.4
#4 lore raw

PATCH 4/10 gtk.inc: add feature based on directfb

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

[YOCTO #1674]

---
 meta/recipes-gnome/gtk+/gtk+.inc |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
meta/recipes-gnome/gtk+/gtk+.inc +10 -3
index 1d8f4a6..0319916 100644
@@ -9,9 +9,16 @@ 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"
+DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
+ libgcrypt cairo gdk-pixbuf"
+
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+
+PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
+PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
 
 inherit autotools pkgconfig
 
Signature · 1 line
1.7.0.4
#5 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Op 8 dec. 2011, om 10:34 heeft Xiaofeng Yan het volgende geschreven:

Quoted 4 lines

From: Xiaofeng Yan <[email protected]>

gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

Since I still can't get an answer to "what happens when you enable both x11 and directfb as distro features", let me ask a different question:

Why don't you do it like we did for gtk-directfb in OE-classic? add a cairo-directfb and a gtk-directfb, done.

Quoted 40 lines

[YOCTO #1674]

---
meta/recipes-gnome/gtk+/gtk+.inc | 13 ++++++++++---

1 files changed, 10 insertions(+), 3 deletions(-)
meta/recipes-gnome/gtk+/gtk+.inc +0 -0
index 1d8f4a6..0319916 100644
@@ -9,9 +9,16 @@ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"

LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"

SECTION = "libs"

meta/recipes-gnome/gtk+/gtk+.inc +10 -3
-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"
+DEPENDS = "glib-2.0 pango atk jpeg libpng gtk-doc-native gdk-pixbuf-native docbook-utils-native \
+ libgcrypt cairo gdk-pixbuf"
+
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+
+PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
+PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"

inherit autotools pkgconfig

Signature · 7 lines
1.7.0.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
#6 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Quoted 8 lines · Koen Kooi

Op 8 dec. 2011, om 10:34 heeft Xiaofeng Yan het volgende geschreven:

Quoted 4 lines

From: Xiaofeng Yan <[email protected]>

gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

Since I still can't get an answer to "what happens when you enable both x11 and directfb as distro features",

The answer to that question seems to be that you will get undefined behaviour. Both PACKAGECONFIG flags will match so you'll get the configure options for both of them, but the packageconfig mechanism doesn't appear to guarantee what the ordering will be. (You might expect that it would be the order of the entries in PACKAGECONFIG itself but, from a quick look at the code, that doesn't appear to be the case.)

So, you'll end up with both sets of things in DEPENDS and either:

--with-x=yes --with-gdktarget=x11 --with-gdktarget=directfb

or

--with-gdktarget=directfb --with-x=yes --with-gdktarget=x11

in EXTRA_OECONF but there doesn't seem to be any obvious way to predict which it'll be.

It would be nice if there was a way to declare PACKAGECONFIG options as conflicting with each other so that you'd get a diagnostic if you tried to turn both on. But there's no mechanism to support that at present and it doesn't seem like it would merit ad-hoc python hacks in the gtk+ recipe.

p.

#7 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

In reply to Koen Kooi
Quoted 7 lines · Koen Kooi

Op 8 dec. 2011, om 10:34 heeft Xiaofeng Yan het volgende geschreven:

Quoted 4 lines

From: Xiaofeng Yan <[email protected]>

gtk run over x11 at current OE-core. If gtk want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

Quoted 6 lines

Since I still can't get an answer to "what happens when you enable both x11 and directfb as distro features", let me ask a different question:

Why don't you do it like we did for gtk-directfb in OE-classic? add a cairo-directfb and a gtk-directfb, done.

This comes down to a policy decision I guess and I'm not sure there is a clear cut answer.

The question is whether it makes sense to have directfb and X based gtk in the same builds and package feeds or not. I can see that it might be desired and that it likely is possible.

My personal take on that is that it depends how ugly the result is and what demand there is for it. I do consider having the separate -directfb recipes to be ugly and if we only need a cairo variant that might be ok, if we need a ton of recipe forks I'd be much less keen. Doing separate recipes like that is error prone and often not done well.

So can anyone tell me for sure exactly how many recipes would need -directfb variants?

Cheers,

Richard

#8 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Quoted 3 lines · Richard Purdie

The question is whether it makes sense to have directfb and X based gtk in the same builds and package feeds or not. I can see that it might be desired and that it likely is possible.

This is true, though there's nothing to stop a distro that particularly wants this from inventing their own stub recipes which just set PACKAGECONFIG appropriately and then require the generic version. So it's really just a question of what we want to be the default in oe-core.

Also note that, although you can parallel install multiple versions of the gtk+ runtime on the target system, if you want the build system to be deterministic then (in the absence of per-recipe sysroot construction) you need some way to decide which one gets to provide the gtk+-2.0.pc that other recipes will build against. (The different targets have different library sonames so you can't just swap them out at run time: a given binary will remain coupled to the particular Gtk variant that it was compiled against.) And if the two variants could conceivably be different versions of GTK then you also need a way to deconflict ${includedir}/gtk-2.0.

So it isn't quite as simple as just having the two recipes, there is a bit of extra policy involved as well. And of course there would be all the normal overhead in terms of parse time, memory footprint and maintenance burden associated with having more recipes.

So, in light of all the above plus the fact that everything is different with Gtk+3 anyway, my preference for supporting directfb on gtk+2 in oe-core would be to use PACKAGECONFIG and not have separate recipe files.

p.

#9 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Quoted 22 lines · Phil Blundell
Quoted 3 lines · Richard Purdie

The question is whether it makes sense to have directfb and X based gtk in the same builds and package feeds or not. I can see that it might be desired and that it likely is possible.

This is true, though there's nothing to stop a distro that particularly wants this from inventing their own stub recipes which just set PACKAGECONFIG appropriately and then require the generic version. So it's really just a question of what we want to be the default in oe-core.

Also note that, although you can parallel install multiple versions of the gtk+ runtime on the target system, if you want the build system to be deterministic then (in the absence of per-recipe sysroot construction) you need some way to decide which one gets to provide the gtk+-2.0.pc that other recipes will build against. (The different targets have different library sonames so you can't just swap them out at run time: a given binary will remain coupled to the particular Gtk variant that it was compiled against.) And if the two variants could conceivably be different versions of GTK then you also need a way to deconflict ${includedir}/gtk-2.0.

Quoted 4 lines

So it isn't quite as simple as just having the two recipes, there is a bit of extra policy involved as well. And of course there would be all the normal overhead in terms of parse time, memory footprint and maintenance burden associated with having more recipes.

This is the key detail I was missing. I thought they just might have been a drop in replacement.

That isn't the case so this makes the choice easier, I think separate recipes don't make sense based on this.

Quoted 4 lines

So, in light of all the above plus the fact that everything is different with Gtk+3 anyway, my preference for supporting directfb on gtk+2 in oe-core would be to use PACKAGECONFIG and not have separate recipe files.

Agreed, given the above.

Cheers,

Richard

#10 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Op 8 dec. 2011, om 22:59 heeft Richard Purdie het volgende geschreven:

Quoted 34 lines · Phil Blundell
Quoted 22 lines · Richard Purdie
Quoted 3 lines

The question is whether it makes sense to have directfb and X based gtk in the same builds and package feeds or not. I can see that it might be desired and that it likely is possible.

This is true, though there's nothing to stop a distro that particularly wants this from inventing their own stub recipes which just set PACKAGECONFIG appropriately and then require the generic version. So it's really just a question of what we want to be the default in oe-core.

Also note that, although you can parallel install multiple versions of the gtk+ runtime on the target system, if you want the build system to be deterministic then (in the absence of per-recipe sysroot construction) you need some way to decide which one gets to provide the gtk+-2.0.pc that other recipes will build against. (The different targets have different library sonames so you can't just swap them out at run time: a given binary will remain coupled to the particular Gtk variant that it was compiled against.) And if the two variants could conceivably be different versions of GTK then you also need a way to deconflict ${includedir}/gtk-2.0.

Quoted 4 lines

So it isn't quite as simple as just having the two recipes, there is a bit of extra policy involved as well. And of course there would be all the normal overhead in terms of parse time, memory footprint and maintenance burden associated with having more recipes.

This is the key detail I was missing. I thought they just might have been a drop in replacement.

That isn't the case so this makes the choice easier, I think separate recipes don't make sense based on this.

Quoted 6 lines
Quoted 4 lines

So, in light of all the above plus the fact that everything is different with Gtk+3 anyway, my preference for supporting directfb on gtk+2 in oe-core would be to use PACKAGECONFIG and not have separate recipe files.

Agreed, given the above.

So to be safe and give other directfb implementations a change, can this PACKAGECONFIG option be named 'gtk-directfb' in DISTRO_FEATURES?

#11 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Quoted 2 lines · Koen Kooi

So to be safe and give other directfb implementations a change, can this PACKAGECONFIG option be named 'gtk-directfb' in DISTRO_FEATURES?

I don't think I quite understand what you're saying there. Can you expand on why this would be a good thing?

p.

#12 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Op 9 dec. 2011, om 11:08 heeft Phil Blundell het volgende geschreven:

Quoted 6 lines · Koen Kooi
Quoted 2 lines

So to be safe and give other directfb implementations a change, can this PACKAGECONFIG option be named 'gtk-directfb' in DISTRO_FEATURES?

I don't think I quite understand what you're saying there. Can you expand on why this would be a good thing?

gtk 2.x is one of the few places where directfb/x11/whatever conflict, so if I want directfb support for sane things (gtk 3.x, qt, etc) the current patch will make me jump through a ton of hoops. Unless OE-core really wants a distro to select either directfb or x11, but not both. In that case it should BBMASK out directfb if 'x11' is in distro features and vice versa.

#13 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

Quoted 3 lines · Koen Kooi

gtk 2.x is one of the few places where directfb/x11/whatever conflict, so if I want directfb support for sane things (gtk 3.x, qt, etc) the current patch will make me jump through a ton of hoops.

Well, you can set:

# support both graphical backends where possible
DISTRO_FEATURES = "directfb x11"
# for gtk+ 2.x, have to pick either x11 or directfb not both
PACKAGECONFIG_pn-gtk+ = "x11"

in your distro config. I don't think that one extra line really counts as a "ton of hoops", and if you aren't using gtk+ 2.0 then you can just leave it out.

p.

#14 lore raw

Re: [PATCH 04/10] gtk.inc: add feature based on directfb

In reply to Koen Kooi
Quoted 41 lines · Koen Kooi

Op 8 dec. 2011, om 22:59 heeft Richard Purdie het volgende geschreven:

Quoted 39 lines · Phil Blundell
Quoted 22 lines · Richard Purdie
Quoted 3 lines

The question is whether it makes sense to have directfb and X based gtk in the same builds and package feeds or not. I can see that it might be desired and that it likely is possible.

This is true, though there's nothing to stop a distro that particularly wants this from inventing their own stub recipes which just set PACKAGECONFIG appropriately and then require the generic version. So it's really just a question of what we want to be the default in oe-core.

Also note that, although you can parallel install multiple versions of the gtk+ runtime on the target system, if you want the build system to be deterministic then (in the absence of per-recipe sysroot construction) you need some way to decide which one gets to provide the gtk+-2.0.pc that other recipes will build against. (The different targets have different library sonames so you can't just swap them out at run time: a given binary will remain coupled to the particular Gtk variant that it was compiled against.) And if the two variants could conceivably be different versions of GTK then you also need a way to deconflict ${includedir}/gtk-2.0.

Quoted 4 lines

So it isn't quite as simple as just having the two recipes, there is a bit of extra policy involved as well. And of course there would be all the normal overhead in terms of parse time, memory footprint and maintenance burden associated with having more recipes.

This is the key detail I was missing. I thought they just might have been a drop in replacement.

That isn't the case so this makes the choice easier, I think separate recipes don't make sense based on this.

Quoted 4 lines

So, in light of all the above plus the fact that everything is different with Gtk+3 anyway, my preference for supporting directfb on gtk+2 in oe-core would be to use PACKAGECONFIG and not have separate recipe files.

Quoted 4 lines
Quoted 1 line

Agreed, given the above.

So to be safe and give other directfb implementations a change, can this PACKAGECONFIG option be named 'gtk-directfb' in DISTRO_FEATURES?

I think that is reasonable.

Cheers,

Richard

#15 lore raw

PATCH 5/10 gtk: add demos to the configuation of gtk+

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

Add demos for checking whether gtk+ run over directfb successfully or not.

[YOCTO #1674]

---
 meta/recipes-gnome/gtk+/gtk+_2.24.8.bb |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
meta/recipes-gnome/gtk+/gtk+_2.24.8.bb +4 -2
index fb88979..9119d16 100644
@@ -9,12 +9,14 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
            file://run-iconcache.patch \
            file://configure-nm.patch \
            file://hardcoded_libtool.patch \
-           file://no-demos.patch \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', '','${NODEMOS_SRC_URI}', d)} \
            file://cellrenderer-cairo.patch;striplevel=0 \
            file://toggle-font.diff;striplevel=0 \
            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
            file://doc-fixes.patch \
 	  "
+NODEMOS_SRC_URI = "file://no-demos.patch"
+
 # TO MERGE
 #           file://entry-cairo.patch;striplevel=0
 #           file://filesystem-volumes.patch
@@ -27,7 +29,7 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
 #        file://combo-arrow-size.patch;striplevel=0
 #            file://configurefix.patch
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI[md5sum] = "0413187f7e596aef00ccd1b54776ff03"
 SRC_URI[sha256sum] = "ac2325a65312922a6722a7c02a389f3f4072d79e13131485cc7b7226e2537043"
Signature · 1 line
1.7.0.4
#16 lore raw

Re: [PATCH 05/10] gtk: add demos to the configuation of gtk+

Quoted 10 lines · Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

Add demos for checking whether gtk+ run over directfb successfully or not.

[YOCTO #1674]

---
 meta/recipes-gnome/gtk+/gtk+_2.24.8.bb |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

Why can't we build the demos unconditionally? I'd like to think we could just build these everywhere and drop the patch. Does that cause some kind of problem on X?

Cheers,

Richard

Quoted 29 lines
meta/recipes-gnome/gtk+/gtk+_2.24.8.bb +4 -2
index fb88979..9119d16 100644
@@ -9,12 +9,14 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
            file://run-iconcache.patch \
            file://configure-nm.patch \
            file://hardcoded_libtool.patch \
-           file://no-demos.patch \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', '','${NODEMOS_SRC_URI}', d)} \
            file://cellrenderer-cairo.patch;striplevel=0 \
            file://toggle-font.diff;striplevel=0 \
            file://0001-bgo-584832-Duplicate-the-exec-string-returned-by-gtk.patch \
            file://doc-fixes.patch \
 	  "
+NODEMOS_SRC_URI = "file://no-demos.patch"
+
 # TO MERGE
 #           file://entry-cairo.patch;striplevel=0
 #           file://filesystem-volumes.patch
@@ -27,7 +29,7 @@ SRC_URI = "http://download.gnome.org/sources/gtk+/2.24/gtk+-${PV}.tar.bz2 \
 #        file://combo-arrow-size.patch;striplevel=0
 #            file://configurefix.patch
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI[md5sum] = "0413187f7e596aef00ccd1b54776ff03"
 SRC_URI[sha256sum] = "ac2325a65312922a6722a7c02a389f3f4072d79e13131485cc7b7226e2537043"
#17 lore raw

PATCH 6/10 cairo: add directfb DISTRO_FEATURE

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

cairo run over x11 at current OE-core. If cairo want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

[YOCTO #1674]

---
 meta/recipes-graphics/cairo/cairo.inc |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
meta/recipes-graphics/cairo/cairo.inc +7 -2
index 876acad..411ef58 100644
@@ -11,13 +11,18 @@ BUGTRACKER = "http://bugs.freedesktop.org"
 SECTION = "libs"
 LICENSE = "MPL-1 & LGPLv2.1"
 X11DEPENDS = "virtual/libx11 libsm libxrender"
-DEPENDS = "libpng fontconfig pixman glib-2.0 ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}"
+DEPENDS = "libpng fontconfig pixman glib-2.0"
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+PACKAGECONFIG[x11] = "--with-x=yes,--without-x,${X11DEPENDS}"
+PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
 
 #check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points 
 require cairo-fpu.inc
 EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)} ${@base_contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
 
+
 inherit autotools pkgconfig
 
 # We don't depend on binutils so we need to disable this
-export ac_cv_lib_bfd_bfd_openr=no
\ No newline at end of file
+export ac_cv_lib_bfd_bfd_openr=no
Signature · 1 line
1.7.0.4
#18 lore raw

PATCH 7/10 pango: add directfb DISTRO_FEATURE

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

pango run over x11 at current OE-core. If pango want to run over directfb, then \
the configuration related to x11 should be disabled and directfb should be enabled.

[YOCTO #1674]

---
 meta/recipes-graphics/pango/pango.inc |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)
meta/recipes-graphics/pango/pango.inc +14 -5
index 6d94e02..4fc2aa8 100644
@@ -10,13 +10,24 @@ SECTION = "libs"
 LICENSE = "LGPL"
 
 X11DEPENDS = "virtual/libx11 libxft"
-DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libiconv gtk-doc-native cairo ${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}"
+DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libiconv gtk-doc-native cairo "
+
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+           ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
+PACKAGECONFIG[x11] = "--with-x,--without-x,${X11DEPENDS}"
+PACKAGECONFIG[directfb] = ",,directfb"
+
 
 PACKAGES_DYNAMIC = "pango-module-*"
 
 RRECOMMENDS_${PN} = "${@base_contains('DISTRO_FEATURES', 'x11', 'pango-module-basic-x', '', d)} pango-module-basic-fc" 
 
 inherit gnome
+# Create a pango-modules package
+ALLOW_EMPTY_${BPN}-modules = "1"
+PACKAGES += "${BPN}-modules"
+RRECOMMENDS_${BPN}-modules =  "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("pango-module") != -1])}"
+
 
 EXTRA_AUTORECONF = ""
 
@@ -25,8 +36,7 @@ FULL_OPTIMIZATION_arm = "-O2"
 
 EXTRA_OECONF = "--disable-glibtest \
 		--enable-explicit-deps=no \
-	        --disable-debug \
-		${@base_contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
+	        --disable-debug"
 
 LEAD_SONAME = "libpango-1.0*"
 LIBV = "1.6.0"
@@ -35,7 +45,6 @@ postinst_prologue() {
 if [ "x$D" != "x" ]; then
   exit 1
 fi
-
 }
 
 python populate_packages_prepend () {
@@ -46,6 +55,6 @@ python populate_packages_prepend () {
 	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules')
 }
 
-FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*${SOLIBS}"
+FILES_${PN} = "/etc/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"
 FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug"
 FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
Signature · 1 line
1.7.0.4
#19 lore raw

PATCH 8/10 directfb-examples: add package directfb-examples to OE-core

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

Add this package for checking whether directfb run rightly or not. It also is an useful tool to test directfb.

[YOCTO #1674]

---
 .../directfb/directfb-examples_1.2.0.bb            |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/directfb/directfb-examples_1.2.0.bb
meta/recipes-graphics/directfb/directfb-examples_1.2.0.bb new file +20 -0
new file mode 100644
index 0000000..215426e
@@ -0,0 +1,20 @@
+DESCRIPTION = "The DirectFB-examples package contains a set of simple DirectFB \
+      applications that can be used to test and demonstrate various DirectFB \
+      features"
+DEPENDS = "directfb"
+SECTION = "libs"
+LICENSE = "MIT"
+PR = "r0"
+
+SRC_URI = " \
+           http://www.directfb.org/downloads/Extras/DirectFB-examples-${PV}.tar.gz \
+          "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f"
+
+S = "${WORKDIR}/DirectFB-examples-${PV}"
+
+inherit autotools
+
+SRC_URI[md5sum] = "ce018f681b469a1d72ffc32650304b98"
+SRC_URI[sha256sum] = "830a1bd6775d8680523596a88a72fd8e4c6a74bf886d3e169b06d234a5cf7e3e"
Signature · 1 line
1.7.0.4
#20 lore raw

PATCH 9/10 task-core-gtk-directfb.bb: Add task list to run gtk over directfb

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

Add task-core-gtk-directfb.bb to OE core for running gtk over directfb.

[YOCTO #1674]

---
 .../tasks/task-core-gtk-directfb.bb                |   26 ++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/tasks/task-core-gtk-directfb.bb
meta/recipes-graphics/tasks/task-core-gtk-directfb.bb new file +26 -0
new file mode 100644
index 0000000..239e0c1
@@ -0,0 +1,26 @@
+DESCRIPTION = "gkt+ over directfb without x11"
+PR = "r0"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit task
+
+TOUCH = ' ${@base_contains("MACHINE_FEATURES", "touchscreen", "tslib tslib-calibrate tslib-tests", "",d)}'
+
+PACKAGES += " \
+	${PN}-base \
+"
+
+RDEPENDS_${PN}-base = " \
+		directfb \
+		directfb-examples \
+		pango \
+		pango-modules \
+		fontconfig \
+		gtk+ \
+		gtk-demo \
+		dropbear \
+		${TOUCH} \
+"
Signature · 1 line
1.7.0.4
#21 lore raw

Re: [PATCH 09/10] task-core-gtk-directfb.bb: Add task list to run gtk over directfb

meta/recipes-graphics/tasks/task-core-gtk-directfb.bb line 26

Quoted 11 lines · Xiaofeng Yan
meta/recipes-graphics/tasks/task-core-gtk-directfb.bb new file +11 -0
+RDEPENDS_${PN}-base = " \
+		directfb \
+		directfb-examples \
+		pango \
+		pango-modules \
+		fontconfig \
+		gtk+ \
+		gtk-demo \
+		dropbear \
+		${TOUCH} \
+"

That looks like it's going to fail in the presence of library renaming. And do you really want dropbear in there?

p.

#22 lore raw

PATCH 10/10 core-image-gtk-directfb.bb: add an image for gtk over directfb

In reply to Xiaofeng Yan

From: Xiaofeng Yan <[email protected]>

This file can make an image to run gtk over directfb.

[YOCTO #1674]

---
 .../images/core-image-gtk-directfb.bb              |   21 ++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/images/core-image-gtk-directfb.bb
meta/recipes-graphics/images/core-image-gtk-directfb.bb new file +21 -0
new file mode 100644
index 0000000..b0ae469
@@ -0,0 +1,21 @@
+LICENSE = "MIT"
+PR="r0"
+
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+
+DEPENDS += "task-core-gtk-directfb"
+
+RDEPENDS_${PN} += " \
+	task-core-gtk-directfb-base \
+	"
+
+inherit core-image
+
+IMAGE_INSTALL += "\
+	${POKY_BASE_INSTALL} \
+	task-core-basic \
+	module-init-tools \
+	task-core-gtk-directfb-base \
+"
Signature · 1 line
1.7.0.4
#23 lore raw

Re: [PATCH 10/10] core-image-gtk-directfb.bb: add an image for gtk over directfb

Hi,

2011/12/8 Xiaofeng Yan <[email protected]>:
[snip]

Quoted 2 lines

+IMAGE_INSTALL += "\
+       ${POKY_BASE_INSTALL} \

I'm just curious, is this a legitimate OE-Core variable?

Signature · 2 lines
Regards
Samuel
#24 lore raw

POKY_BASE_INSTALL was Re: [PATCH 10/10] core-image-gtk-directfb.bb: add an image for gtk over directfb

Quoted 10 lines · Samuel Stirtzel

Hi,

2011/12/8 Xiaofeng Yan<[email protected]>:
[snip]

meta/recipes-graphics/images/core-image-gtk-directfb.bb line 17

Quoted 2 lines
meta/recipes-graphics/images/core-image-gtk-directfb.bb new file +2 -0
+IMAGE_INSTALL += "\
+       ${POKY_BASE_INSTALL} \

I'm just curious, is this a legitimate OE-Core variable?

Yes it is, I ran into this yesterday and did some investigation.

POKY_BASE_INSTALL = '\
    task-core-boot \
    task-base-extended \
    \
    ${@base_contains("IMAGE_FEATURES", "package-management", "", 
"${ROOTFS_PKGMANAGE_BOOTSTRAP}",d)} \
    \
    ${POKY_EXTRA_INSTALL} \
    '

This is defined in core-image.bbclass.

I thought when we made the transition to oe-core that we had caught all of these names, but apparently we missed some.

This is simply a cosmetic bug, it is unintended.

--Mark