Patchwork [07/10] pango: add directfb DISTRO_FEATURE

login
register
mail settings
Submitter Xiaofeng Yan
Date Dec. 7, 2011, 8:58 a.m.
Message ID <697ca68b7e47d0392273fa5a07df0e4396e709bf.1323246565.git.xiaofeng.yan@windriver.com>
Download mbox | patch
Permalink /patch/16363/
State New
Headers show

Comments

Xiaofeng Yan - Dec. 7, 2011, 8:58 a.m.
From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

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]

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-graphics/pango/pango.inc |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)
Phil Blundell - Dec. 7, 2011, 10:27 a.m.
On Wed, 2011-12-07 at 16:58 +0800, Xiaofeng Yan wrote:
> +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"

Hm, really?  I didn't think pango had any inbuilt support for DirectFB.
Does this really accomplish anything?

> +       [ ! -d "/etc/pango" ] && mkdir -p /etc/pango/

That will fail with a read-only rootfs, and I think it will also give an
error if /etc/pango already exists.  It would be better to just ship
this directory in the package.  (Also, it should be ${sysconfdir}.)

p.
Xiaofeng Yan - Dec. 8, 2011, 7:37 a.m.
On 2011?12?07? 18:27, Phil Blundell wrote:
> On Wed, 2011-12-07 at 16:58 +0800, Xiaofeng Yan wrote:
>> +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"
> Hm, really?  I didn't think pango had any inbuilt support for DirectFB.
> Does this really accomplish anything?
>
pango hadn't any inbuilt support for DirectFB.
PACKAGECONFIG[directfb] = ",,directfb" just express that directfb is 
built by dependence relationship when building an image based on directfb.
>> +       [ ! -d "/etc/pango" ]&&  mkdir -p /etc/pango/
Thanks, I will fix my patches according to your suggestion.
> That will fail with a read-only rootfs, and I think it will also give an
> error if /etc/pango already exists.  It would be better to just ship
> this directory in the package.  (Also, it should be ${sysconfdir}.)
>
> p.
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Phil Blundell - Dec. 8, 2011, 9:55 a.m.
On Thu, 2011-12-08 at 15:37 +0800, Xiaofeng Yan wrote:
> On 2011?12?07? 18:27, Phil Blundell wrote:
> > On Wed, 2011-12-07 at 16:58 +0800, Xiaofeng Yan wrote:
> >> +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"
> > Hm, really?  I didn't think pango had any inbuilt support for DirectFB.
> > Does this really accomplish anything?
> >
> pango hadn't any inbuilt support for DirectFB.
> PACKAGECONFIG[directfb] = ",,directfb" just express that directfb is 
> built by dependence relationship when building an image based on directfb.

Well, right, but if pango isn't using directfb itself then it doesn't
need directfb in its DEPENDS any more than, say, busybox does.  DirectFB
will be brought in by the dependency chains for gtk, cairo or whatever
other recipes are actually using it.

p.

Patch

diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
index 6d94e02..4df6850 100644
--- a/meta/recipes-graphics/pango/pango.inc
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -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,17 +36,18 @@  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"
 
+# No "etc" in "${D}" except for "usr", So add "/etc/pango" in the following function. \
+# Because "prologue + 'pango-querymodules > /etc/pango/pango.modules'" use this 
 postinst_prologue() {
 if [ "x$D" != "x" ]; then
   exit 1
 fi
-
+	[ ! -d "/etc/pango" ] && mkdir -p /etc/pango/
 }
 
 python populate_packages_prepend () {