All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] Fix pango modules load failure in multilib environment, Edwin, May2, 2012
@ 2012-05-02  7:43 edwin.zhai
  2012-05-02  7:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
  0 siblings, 1 reply; 9+ messages in thread
From: edwin.zhai @ 2012-05-02  7:43 UTC (permalink / raw)
  To: poky

From: Zhai Edwin <edwin.zhai@intel.com>

This patch fix the modules load failure when multi-libs of pango co-exist in system.

[YOCTO #2356] got fixed.

Thanks,
Edwin


The following changes since commit 2c3d4f5beee8f57a74244495511b9294df1085ea:

  documentation/bsp-guide/bsp.xml: spelling corrected. (2012-04-18 16:42:15 +0100)

are available in the git repository at:
  git://git.pokylinux.org/poky-contrib gzhai/fix2
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=gzhai/fix2

Zhai Edwin (1):
  pango: Fix modules load failure in multilib environment

 .../pango/pango-1.28.4/multilib-fix.patch          |   90 ++++++++++++++++++++
 meta/recipes-graphics/pango/pango.inc              |   12 ++-
 meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 +-
 3 files changed, 101 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-02  7:43 [PATCH 0/1] Fix pango modules load failure in multilib environment, Edwin, May2, 2012 edwin.zhai
@ 2012-05-02  7:43 ` edwin.zhai
  2012-05-04 18:11   ` [poky] " Scott Garman
  2012-05-05  3:58   ` Saul Wold
  0 siblings, 2 replies; 9+ messages in thread
From: edwin.zhai @ 2012-05-02  7:43 UTC (permalink / raw)
  To: poky

From: Zhai Edwin <edwin.zhai@intel.com>

Multi-libs of Pango need different modules, thus different config files and
utils. This patch separate config file and utils into different directory to
avoid conflict.

[YOCTO #2356] got fixed.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 .../pango/pango-1.28.4/multilib-fix.patch          |   90 ++++++++++++++++++++
 meta/recipes-graphics/pango/pango.inc              |   12 ++-
 meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 +-
 3 files changed, 101 insertions(+), 8 deletions(-)
 create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch

diff --git a/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
new file mode 100644
index 0000000..87d7a0a
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
@@ -0,0 +1,90 @@
+Fix modules load failure in multilib environment.
+
+Multi-lib need different configs produced by different utils, so need keep both
+of them by putting them in different directory.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Upstream-Status: Inappropriate [other] - Upstream may have nice fix in future
+
+Index: pango-1.28.4/pango/pango-utils.c
+===================================================================
+--- pango-1.28.4.orig/pango/pango-utils.c	2012-04-28 16:23:48.000000000 +0800
++++ pango-1.28.4/pango/pango-utils.c	2012-05-02 10:19:14.000000000 +0800
+@@ -678,6 +678,19 @@
+ 
+ #endif
+ 
++#ifndef G_OS_WIN32
++/* return the relative baselib dir */
++const char *
++pango_get_baselib_directory (void)
++{
++  char *libdir = g_strdup(LIBDIR);
++  char *baselib = g_strdup( g_strrstr(libdir, "lib"));
++  g_free(libdir);
++
++  return baselib;
++}
++#endif
++
+ /**
+  * pango_get_sysconf_subdirectory:
+  *
+Index: pango-1.28.4/pango/modules.c
+===================================================================
+--- pango-1.28.4.orig/pango/modules.c	2010-09-22 03:37:01.000000000 +0800
++++ pango-1.28.4/pango/modules.c	2012-05-02 10:42:57.000000000 +0800
+@@ -523,12 +523,17 @@
+ 
+   char *file_str =  pango_config_key_get ("Pango/ModuleFiles");
+   char **files;
++  char *baselib = pango_get_baselib_directory();
+   int n;
+ 
+   dlloaded_modules = g_hash_table_new (g_str_hash, g_str_equal);
+ 
+   if (!file_str)
+     file_str = g_build_filename (pango_get_sysconf_subdirectory (),
++#ifndef G_OS_WIN32
++/* For multilib case, keep multiple config file for different libs */
++				 baselib,
++#endif
+ 				 "pango.modules",
+ 				 NULL);
+ 
+@@ -550,6 +555,7 @@
+ 
+   g_strfreev (files);
+   g_free (file_str);
++  g_free (baselib);
+ 
+   dlloaded_engines = g_slist_reverse (dlloaded_engines);
+ }
+@@ -631,6 +637,7 @@
+ {
+   const char *engine_type = g_quark_to_string (info->engine_type_id);
+   const char *render_type = g_quark_to_string (info->render_type_id);
++  char *baselib = pango_get_baselib_directory();
+ 
+   init_modules();
+ 
+@@ -640,6 +647,10 @@
+       if (!no_module_warning)
+ 	{
+ 	  gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
++#ifndef G_OS_WIN32
++/* For multilib case, keep multiple config file for different libs */
++					      baselib,
++#endif
+ 					      "pango.modules",
+ 					      NULL);
+ 	  g_critical ("No modules found:\n"
+@@ -652,6 +663,7 @@
+ 		     filename,
+ 		     filename);
+ 	  g_free (filename);
++	  g_free (baselib);
+ 
+ 	  no_module_warning = TRUE;
+ 	}
diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
index a2d5dc3..2184da3 100644
--- a/meta/recipes-graphics/pango/pango.inc
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -32,9 +32,11 @@ EXTRA_AUTORECONF = ""
 # seems to go wrong with default cflags
 FULL_OPTIMIZATION_arm = "-O2"
 
+# keep multiple version of utils under ${bindir} in multilib environment
 EXTRA_OECONF = "--disable-glibtest \
 		--enable-explicit-deps=no \
-	        --disable-debug"
+	        --disable-debug \
+	        --bindir=${bindir}/${baselib}"
 
 LEAD_SONAME = "libpango-1.0*"
 LIBV = "1.6.0"
@@ -44,8 +46,8 @@ if [ "x$D" != "x" ]; then
   exit 1
 fi
 
-if ! [ -e $D${sysconfdir}/pango ] ; then
-	mkdir -p $D${sysconfdir}/pango
+if ! [ -e $D${sysconfdir}/pango/${baselib} ] ; then
+	mkdir -p $D${sysconfdir}/pango/${baselib}
 fi
 }
 
@@ -54,9 +56,9 @@ python populate_packages_prepend () {
 
 	modules_root = d.expand('${libdir}/pango/${LIBV}/modules')
 
-	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules')
+	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${baselib}/pango-querymodules > /etc/pango/${baselib}/pango.modules')
 }
 
-FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"
+FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/${baselib}/* ${libdir}/libpango*${SOLIBS}"
 FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug"
 FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
diff --git a/meta/recipes-graphics/pango/pango_1.28.4.bb b/meta/recipes-graphics/pango/pango_1.28.4.bb
index 8d71de0..e72e8a2 100644
--- a/meta/recipes-graphics/pango/pango_1.28.4.bb
+++ b/meta/recipes-graphics/pango/pango_1.28.4.bb
@@ -2,10 +2,11 @@ require pango.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 
-PR = "r7"
+PR = "r8"
 
-SRC_URI += "file://no-tests.patch"
-SRC_URI += "file://noconst.patch"
+SRC_URI += "file://no-tests.patch \
+            file://noconst.patch \
+            file://multilib-fix.patch"
 
 SRC_URI[archive.md5sum] = "3f3989700f04e9117d30544a9078b3a0"
 SRC_URI[archive.sha256sum] = "7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f"
-- 
1.7.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [poky] [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-02  7:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
@ 2012-05-04 18:11   ` Scott Garman
  2012-05-05  3:58   ` Saul Wold
  1 sibling, 0 replies; 9+ messages in thread
From: Scott Garman @ 2012-05-04 18:11 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 05/02/2012 12:43 AM, edwin.zhai@intel.com wrote:
> From: Zhai Edwin<edwin.zhai@intel.com>
>
> Multi-libs of Pango need different modules, thus different config files and
> utils. This patch separate config file and utils into different directory to
> avoid conflict.
>
> [YOCTO #2356] got fixed.
>
> Signed-off-by: Zhai Edwin<edwin.zhai@intel.com>

This wasn't poky-specific, so I am replying to the oe-core ML.

Merged to denzil-next, thanks!

http://git.openembedded.org/openembedded-core-contrib/log/?h=sgarman/denzil-next

Scott

-- 
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-02  7:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
  2012-05-04 18:11   ` [poky] " Scott Garman
@ 2012-05-05  3:58   ` Saul Wold
  2012-05-06  8:48     ` Richard Purdie
  1 sibling, 1 reply; 9+ messages in thread
From: Saul Wold @ 2012-05-05  3:58 UTC (permalink / raw)
  To: edwin.zhai; +Cc: poky

On 05/02/2012 12:43 AM, edwin.zhai@intel.com wrote:
> From: Zhai Edwin<edwin.zhai@intel.com>
>
> Multi-libs of Pango need different modules, thus different config files and
> utils. This patch separate config file and utils into different directory to
> avoid conflict.
>
> [YOCTO #2356] got fixed.
>
> Signed-off-by: Zhai Edwin<edwin.zhai@intel.com>
> ---
>   .../pango/pango-1.28.4/multilib-fix.patch          |   90 ++++++++++++++++++++
>   meta/recipes-graphics/pango/pango.inc              |   12 ++-
>   meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 +-
>   3 files changed, 101 insertions(+), 8 deletions(-)
>   create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
>
> diff --git a/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
> new file mode 100644
> index 0000000..87d7a0a
> --- /dev/null
> +++ b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
> @@ -0,0 +1,90 @@
> +Fix modules load failure in multilib environment.
> +
> +Multi-lib need different configs produced by different utils, so need keep both
> +of them by putting them in different directory.
> +
> +Signed-off-by: Zhai Edwin<edwin.zhai@intel.com>
> +
> +Upstream-Status: Inappropriate [other] - Upstream may have nice fix in future
> +
> +Index: pango-1.28.4/pango/pango-utils.c
> +===================================================================
> +--- pango-1.28.4.orig/pango/pango-utils.c	2012-04-28 16:23:48.000000000 +0800
> ++++ pango-1.28.4/pango/pango-utils.c	2012-05-02 10:19:14.000000000 +0800
> +@@ -678,6 +678,19 @@
> +
> + #endif
> +
> ++#ifndef G_OS_WIN32
> ++/* return the relative baselib dir */
> ++const char *
> ++pango_get_baselib_directory (void)
> ++{
> ++  char *libdir = g_strdup(LIBDIR);
> ++  char *baselib = g_strdup( g_strrstr(libdir, "lib"));
> ++  g_free(libdir);
> ++
> ++  return baselib;
> ++}
> ++#endif
> ++
> + /**
> +  * pango_get_sysconf_subdirectory:
> +  *
> +Index: pango-1.28.4/pango/modules.c
> +===================================================================
> +--- pango-1.28.4.orig/pango/modules.c	2010-09-22 03:37:01.000000000 +0800
> ++++ pango-1.28.4/pango/modules.c	2012-05-02 10:42:57.000000000 +0800
> +@@ -523,12 +523,17 @@
> +
> +   char *file_str =  pango_config_key_get ("Pango/ModuleFiles");
> +   char **files;
> ++  char *baselib = pango_get_baselib_directory();
> +   int n;
> +
> +   dlloaded_modules = g_hash_table_new (g_str_hash, g_str_equal);
> +
> +   if (!file_str)
> +     file_str = g_build_filename (pango_get_sysconf_subdirectory (),
> ++#ifndef G_OS_WIN32
> ++/* For multilib case, keep multiple config file for different libs */
> ++				 baselib,
> ++#endif
> + 				 "pango.modules",
> + 				 NULL);
> +
> +@@ -550,6 +555,7 @@
> +
> +   g_strfreev (files);
> +   g_free (file_str);
> ++  g_free (baselib);
> +
> +   dlloaded_engines = g_slist_reverse (dlloaded_engines);
> + }
> +@@ -631,6 +637,7 @@
> + {
> +   const char *engine_type = g_quark_to_string (info->engine_type_id);
> +   const char *render_type = g_quark_to_string (info->render_type_id);
> ++  char *baselib = pango_get_baselib_directory();
> +
> +   init_modules();
> +
> +@@ -640,6 +647,10 @@
> +       if (!no_module_warning)
> + 	{
> + 	  gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
> ++#ifndef G_OS_WIN32
> ++/* For multilib case, keep multiple config file for different libs */
> ++					      baselib,
> ++#endif
> + 					      "pango.modules",
> + 					      NULL);
> + 	  g_critical ("No modules found:\n"
> +@@ -652,6 +663,7 @@
> + 		     filename,
> + 		     filename);
> + 	  g_free (filename);
> ++	  g_free (baselib);
> +
> + 	  no_module_warning = TRUE;
> + 	}
> diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
> index a2d5dc3..2184da3 100644
> --- a/meta/recipes-graphics/pango/pango.inc
> +++ b/meta/recipes-graphics/pango/pango.inc
> @@ -32,9 +32,11 @@ EXTRA_AUTORECONF = ""
>   # seems to go wrong with default cflags
>   FULL_OPTIMIZATION_arm = "-O2"
>
> +# keep multiple version of utils under ${bindir} in multilib environment
>   EXTRA_OECONF = "--disable-glibtest \
>   		--enable-explicit-deps=no \
> -	        --disable-debug"
> +	        --disable-debug \
> +	        --bindir=${bindir}/${baselib}"
>
>   LEAD_SONAME = "libpango-1.0*"
>   LIBV = "1.6.0"
> @@ -44,8 +46,8 @@ if [ "x$D" != "x" ]; then
>     exit 1
>   fi
>
> -if ! [ -e $D${sysconfdir}/pango ] ; then
> -	mkdir -p $D${sysconfdir}/pango
> +if ! [ -e $D${sysconfdir}/pango/${baselib} ] ; then
> +	mkdir -p $D${sysconfdir}/pango/${baselib}
>   fi
>   }
>
> @@ -54,9 +56,9 @@ python populate_packages_prepend () {
>
>   	modules_root = d.expand('${libdir}/pango/${LIBV}/modules')
>
> -	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules>  /etc/pango/pango.modules')
> +	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${baselib}/pango-querymodules>  /etc/pango/${baselib}/pango.modules')
>   }
>
> -FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"
> +FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/${baselib}/* ${libdir}/libpango*${SOLIBS}"

This change to ${bindir}/${baselib} does not seem right to me, that 
would be  /usr/bin/usr/lib.

It also results in a packaging issue:
ERROR: For recipe pango, the following files/directories were installed 
but not shipped in any package:
ERROR:   /usr/bin/lib/.debug
ERROR:   /usr/bin/lib/.debug/pango-querymodules
ERROR:   /usr/bin/lib/.debug/pango-view


Please review this patch

Thanks
	Sau!


>   FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug"
>   FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
> diff --git a/meta/recipes-graphics/pango/pango_1.28.4.bb b/meta/recipes-graphics/pango/pango_1.28.4.bb
> index 8d71de0..e72e8a2 100644
> --- a/meta/recipes-graphics/pango/pango_1.28.4.bb
> +++ b/meta/recipes-graphics/pango/pango_1.28.4.bb
> @@ -2,10 +2,11 @@ require pango.inc
>
>   LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
>
> -PR = "r7"
> +PR = "r8"
>
> -SRC_URI += "file://no-tests.patch"
> -SRC_URI += "file://noconst.patch"
> +SRC_URI += "file://no-tests.patch \
> +            file://noconst.patch \
> +            file://multilib-fix.patch"
>
>   SRC_URI[archive.md5sum] = "3f3989700f04e9117d30544a9078b3a0"
>   SRC_URI[archive.sha256sum] = "7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f"


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-05  3:58   ` Saul Wold
@ 2012-05-06  8:48     ` Richard Purdie
  2012-05-07  0:55       ` Zhai, Edwin
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Purdie @ 2012-05-06  8:48 UTC (permalink / raw)
  To: Saul Wold; +Cc: poky

On Fri, 2012-05-04 at 20:58 -0700, Saul Wold wrote:
> On 05/02/2012 12:43 AM, edwin.zhai@intel.com wrote:
> > From: Zhai Edwin<edwin.zhai@intel.com>
> >
> > Multi-libs of Pango need different modules, thus different config files and
> > utils. This patch separate config file and utils into different directory to
> > avoid conflict.
> >
> > [YOCTO #2356] got fixed.
> >
> > Signed-off-by: Zhai Edwin<edwin.zhai@intel.com>
> > ---
> >   .../pango/pango-1.28.4/multilib-fix.patch          |   90 ++++++++++++++++++++
> >   meta/recipes-graphics/pango/pango.inc              |   12 ++-
> >   meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 +-
> >   3 files changed, 101 insertions(+), 8 deletions(-)
> >   create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
> >
> > diff --git a/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
> > new file mode 100644
> > index 0000000..87d7a0a
> > --- /dev/null
> > +++ b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix.patch
> > @@ -0,0 +1,90 @@
> > +Fix modules load failure in multilib environment.
> > +
> > +Multi-lib need different configs produced by different utils, so need keep both
> > +of them by putting them in different directory.
> > +
> > +Signed-off-by: Zhai Edwin<edwin.zhai@intel.com>
> > +
> > +Upstream-Status: Inappropriate [other] - Upstream may have nice fix in future
> > +
> > +Index: pango-1.28.4/pango/pango-utils.c
> > +===================================================================
> > +--- pango-1.28.4.orig/pango/pango-utils.c	2012-04-28 16:23:48.000000000 +0800
> > ++++ pango-1.28.4/pango/pango-utils.c	2012-05-02 10:19:14.000000000 +0800
> > +@@ -678,6 +678,19 @@
> > +
> > + #endif
> > +
> > ++#ifndef G_OS_WIN32
> > ++/* return the relative baselib dir */
> > ++const char *
> > ++pango_get_baselib_directory (void)
> > ++{
> > ++  char *libdir = g_strdup(LIBDIR);
> > ++  char *baselib = g_strdup( g_strrstr(libdir, "lib"));
> > ++  g_free(libdir);
> > ++
> > ++  return baselib;
> > ++}
> > ++#endif
> > ++
> > + /**
> > +  * pango_get_sysconf_subdirectory:
> > +  *
> > +Index: pango-1.28.4/pango/modules.c
> > +===================================================================
> > +--- pango-1.28.4.orig/pango/modules.c	2010-09-22 03:37:01.000000000 +0800
> > ++++ pango-1.28.4/pango/modules.c	2012-05-02 10:42:57.000000000 +0800
> > +@@ -523,12 +523,17 @@
> > +
> > +   char *file_str =  pango_config_key_get ("Pango/ModuleFiles");
> > +   char **files;
> > ++  char *baselib = pango_get_baselib_directory();
> > +   int n;
> > +
> > +   dlloaded_modules = g_hash_table_new (g_str_hash, g_str_equal);
> > +
> > +   if (!file_str)
> > +     file_str = g_build_filename (pango_get_sysconf_subdirectory (),
> > ++#ifndef G_OS_WIN32
> > ++/* For multilib case, keep multiple config file for different libs */
> > ++				 baselib,
> > ++#endif
> > + 				 "pango.modules",
> > + 				 NULL);
> > +
> > +@@ -550,6 +555,7 @@
> > +
> > +   g_strfreev (files);
> > +   g_free (file_str);
> > ++  g_free (baselib);
> > +
> > +   dlloaded_engines = g_slist_reverse (dlloaded_engines);
> > + }
> > +@@ -631,6 +637,7 @@
> > + {
> > +   const char *engine_type = g_quark_to_string (info->engine_type_id);
> > +   const char *render_type = g_quark_to_string (info->render_type_id);
> > ++  char *baselib = pango_get_baselib_directory();
> > +
> > +   init_modules();
> > +
> > +@@ -640,6 +647,10 @@
> > +       if (!no_module_warning)
> > + 	{
> > + 	  gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
> > ++#ifndef G_OS_WIN32
> > ++/* For multilib case, keep multiple config file for different libs */
> > ++					      baselib,
> > ++#endif
> > + 					      "pango.modules",
> > + 					      NULL);
> > + 	  g_critical ("No modules found:\n"
> > +@@ -652,6 +663,7 @@
> > + 		     filename,
> > + 		     filename);
> > + 	  g_free (filename);
> > ++	  g_free (baselib);
> > +
> > + 	  no_module_warning = TRUE;
> > + 	}
> > diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
> > index a2d5dc3..2184da3 100644
> > --- a/meta/recipes-graphics/pango/pango.inc
> > +++ b/meta/recipes-graphics/pango/pango.inc
> > @@ -32,9 +32,11 @@ EXTRA_AUTORECONF = ""
> >   # seems to go wrong with default cflags
> >   FULL_OPTIMIZATION_arm = "-O2"
> >
> > +# keep multiple version of utils under ${bindir} in multilib environment
> >   EXTRA_OECONF = "--disable-glibtest \
> >   		--enable-explicit-deps=no \
> > -	        --disable-debug"
> > +	        --disable-debug \
> > +	        --bindir=${bindir}/${baselib}"
> >
> >   LEAD_SONAME = "libpango-1.0*"
> >   LIBV = "1.6.0"
> > @@ -44,8 +46,8 @@ if [ "x$D" != "x" ]; then
> >     exit 1
> >   fi
> >
> > -if ! [ -e $D${sysconfdir}/pango ] ; then
> > -	mkdir -p $D${sysconfdir}/pango
> > +if ! [ -e $D${sysconfdir}/pango/${baselib} ] ; then
> > +	mkdir -p $D${sysconfdir}/pango/${baselib}
> >   fi
> >   }
> >
> > @@ -54,9 +56,9 @@ python populate_packages_prepend () {
> >
> >   	modules_root = d.expand('${libdir}/pango/${LIBV}/modules')
> >
> > -	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules>  /etc/pango/pango.modules')
> > +	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${baselib}/pango-querymodules>  /etc/pango/${baselib}/pango.modules')
> >   }
> >
> > -FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"
> > +FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/${baselib}/* ${libdir}/libpango*${SOLIBS}"
> 
> This change to ${bindir}/${baselib} does not seem right to me, that 
> would be  /usr/bin/usr/lib.

No, it woud be /usr/bin/lib.

> It also results in a packaging issue:
> ERROR: For recipe pango, the following files/directories were installed 
> but not shipped in any package:
> ERROR:   /usr/bin/lib/.debug
> ERROR:   /usr/bin/lib/.debug/pango-querymodules
> ERROR:   /usr/bin/lib/.debug/pango-view
> 
> 
> Please review this patch

There is a missing FILES_${PN}-dbg += "${bindir}/${baselib}/.debug".

I am left wondering if we would be better doing something like:

do_install_append () {
	if [ "${MLPREFIX}" != "" ]; then
		mv ${bindir}/pango-querymodules ${bindir}/${MLPREFIX}pango-querymodules 
	fi
}

It would also be worth cosidering if the patch would be any neater if we
pass ${MLPREFIX} in as an extra variable?

Cheers,

Richard







^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-06  8:48     ` Richard Purdie
@ 2012-05-07  0:55       ` Zhai, Edwin
  2012-05-07  8:06         ` Richard Purdie
  0 siblings, 1 reply; 9+ messages in thread
From: Zhai, Edwin @ 2012-05-07  0:55 UTC (permalink / raw)
  To: Richard Purdie; +Cc: poky

On 05/06/2012 04:48 PM, Richard Purdie wrote:
> There is a missing FILES_${PN}-dbg += "${bindir}/${baselib}/.debug".
>
> I am left wondering if we would be better doing something like:
>
> do_install_append () {
> 	if [ "${MLPREFIX}" != "" ]; then
> 		mv ${bindir}/pango-querymodules ${bindir}/${MLPREFIX}pango-querymodules
> 	fi
> }

Does it makes others hard to find the util if changing the name?

>
> It would also be worth cosidering if the patch would be any neater if we
> pass ${MLPREFIX} in as an extra variable?

Change the pango-querymodules command line to accept an extra parameter 
to indicate where to query? I can have a check to see if it works.

Regarding the lib, the path is hard coded, so we can't pass ${MLPREFIX} in.

>
> Cheers,
>
> Richard



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-07  0:55       ` Zhai, Edwin
@ 2012-05-07  8:06         ` Richard Purdie
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Purdie @ 2012-05-07  8:06 UTC (permalink / raw)
  To: Zhai, Edwin; +Cc: poky

On Mon, 2012-05-07 at 08:55 +0800, Zhai, Edwin wrote:
> On 05/06/2012 04:48 PM, Richard Purdie wrote:
> > There is a missing FILES_${PN}-dbg += "${bindir}/${baselib}/.debug".
> >
> > I am left wondering if we would be better doing something like:
> >
> > do_install_append () {
> > 	if [ "${MLPREFIX}" != "" ]; then
> > 		mv ${bindir}/pango-querymodules ${bindir}/${MLPREFIX}pango-querymodules
> > 	fi
> > }
> 
> Does it makes others hard to find the util if changing the name?
> 
> >
> > It would also be worth cosidering if the patch would be any neater if we
> > pass ${MLPREFIX} in as an extra variable?
> 
> Change the pango-querymodules command line to accept an extra parameter 
> to indicate where to query? I can have a check to see if it works.
>
> Regarding the lib, the path is hard coded, so we can't pass ${MLPREFIX} in.

Sorry, I meant pass in ${MLPREFIX} as an option to configure so it would
be compiled in.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-08 14:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
@ 2012-05-08 15:18   ` Richard Purdie
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Purdie @ 2012-05-08 15:18 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2012-05-08 at 22:43 +0800, edwin.zhai@intel.com wrote:
> From: Zhai Edwin <edwin.zhai@intel.com>
> 
> Multi-libs of Pango need different modules, thus different config files and
> utils. This patch separate config file and utils with different MLPREFIX to
> avoid conflict.
> 
> [YOCTO #2356] got fixed.
> 
> Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
> ---
>  .../pango/pango-1.28.4/multilib-fix-clean.patch    |   40 ++++++++++++++++++++
>  meta/recipes-graphics/pango/pango.inc              |   13 +++++-
>  meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 ++-
>  3 files changed, 55 insertions(+), 5 deletions(-)
>  create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix-clean.patch

Merged to master, thanks.

Richard




^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/1] pango: Fix modules load failure in multilib environment
  2012-05-08 14:43 [PATCH 0/1][V2] Fix pango modules load failure in multilib environment, Edwin, May8, 2012 edwin.zhai
@ 2012-05-08 14:43 ` edwin.zhai
  2012-05-08 15:18   ` Richard Purdie
  0 siblings, 1 reply; 9+ messages in thread
From: edwin.zhai @ 2012-05-08 14:43 UTC (permalink / raw)
  To: openembedded-core

From: Zhai Edwin <edwin.zhai@intel.com>

Multi-libs of Pango need different modules, thus different config files and
utils. This patch separate config file and utils with different MLPREFIX to
avoid conflict.

[YOCTO #2356] got fixed.

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 .../pango/pango-1.28.4/multilib-fix-clean.patch    |   40 ++++++++++++++++++++
 meta/recipes-graphics/pango/pango.inc              |   13 +++++-
 meta/recipes-graphics/pango/pango_1.28.4.bb        |    7 ++-
 3 files changed, 55 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-graphics/pango/pango-1.28.4/multilib-fix-clean.patch

diff --git a/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix-clean.patch b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix-clean.patch
new file mode 100644
index 0000000..addda5f
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango-1.28.4/multilib-fix-clean.patch
@@ -0,0 +1,40 @@
+Index: pango-1.28.4/configure.in
+===================================================================
+--- pango-1.28.4.orig/configure.in	2011-04-05 04:29:16.000000000 +0800
++++ pango-1.28.4/configure.in	2012-05-08 21:32:17.000000000 +0800
+@@ -205,6 +205,11 @@
+ 
+ AC_SUBST(PANGO_DEBUG_FLAGS)
+ 
++AC_ARG_WITH(mlprefix,
++            AC_HELP_STRING([--with-mlprefix=<ARG>], [multilib prefix]),
++            mlprefix_str=$withval, mlprefix_str="")
++AC_DEFINE_UNQUOTED([MLPREFIX], ["$mlprefix_str"], [multilib prefix.])
++
+ AC_ARG_ENABLE(rebuilds,
+               [AC_HELP_STRING([--disable-rebuilds],
+                               [disable all source autogeneration rules])],,
+Index: pango-1.28.4/pango/modules.c
+===================================================================
+--- pango-1.28.4.orig/pango/modules.c	2010-09-22 03:37:01.000000000 +0800
++++ pango-1.28.4/pango/modules.c	2012-05-08 21:21:02.000000000 +0800
+@@ -529,7 +529,8 @@
+ 
+   if (!file_str)
+     file_str = g_build_filename (pango_get_sysconf_subdirectory (),
+-				 "pango.modules",
++/* For multilib case, keep multiple config file for different libs */
++				 MLPREFIX "pango.modules",
+ 				 NULL);
+ 
+   files = pango_split_file_list (file_str);
+@@ -640,7 +641,8 @@
+       if (!no_module_warning)
+ 	{
+ 	  gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
+-					      "pango.modules",
++/* For multilib case, keep multiple config file for different libs */
++					      MLPREFIX "pango.modules",
+ 					      NULL);
+ 	  g_critical ("No modules found:\n"
+ 		      "No builtin or dynamically loaded modules were found.\n"
diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
index a2d5dc3..d59a4d1 100644
--- a/meta/recipes-graphics/pango/pango.inc
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -32,9 +32,11 @@ EXTRA_AUTORECONF = ""
 # seems to go wrong with default cflags
 FULL_OPTIMIZATION_arm = "-O2"
 
+# keep multiple util/config with MLPREFIX in multilib environment
 EXTRA_OECONF = "--disable-glibtest \
 		--enable-explicit-deps=no \
-	        --disable-debug"
+	        --disable-debug \
+	        --with-mlprefix=${MLPREFIX}"
 
 LEAD_SONAME = "libpango-1.0*"
 LIBV = "1.6.0"
@@ -49,12 +51,19 @@ if ! [ -e $D${sysconfdir}/pango ] ; then
 fi
 }
 
+do_install_append () {
+	if [ "${MLPREFIX}" != "" ]; then
+		mv ${D}/${bindir}/pango-querymodules ${D}/${bindir}/${MLPREFIX}pango-querymodules 
+	fi
+}
+
+
 python populate_packages_prepend () {
 	prologue = d.getVar("postinst_prologue", True)
 
 	modules_root = d.expand('${libdir}/pango/${LIBV}/modules')
 
-	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules')
+	do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + '${bindir}/${MLPREFIX}pango-querymodules > /etc/pango/${MLPREFIX}pango.modules')
 }
 
 FILES_${PN} = "${sysconfdir}/pango/* ${bindir}/* ${libdir}/libpango*${SOLIBS}"
diff --git a/meta/recipes-graphics/pango/pango_1.28.4.bb b/meta/recipes-graphics/pango/pango_1.28.4.bb
index 8d71de0..7055158 100644
--- a/meta/recipes-graphics/pango/pango_1.28.4.bb
+++ b/meta/recipes-graphics/pango/pango_1.28.4.bb
@@ -2,10 +2,11 @@ require pango.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 
-PR = "r7"
+PR = "r8"
 
-SRC_URI += "file://no-tests.patch"
-SRC_URI += "file://noconst.patch"
+SRC_URI += "file://no-tests.patch \
+            file://noconst.patch \
+            file://multilib-fix-clean.patch"
 
 SRC_URI[archive.md5sum] = "3f3989700f04e9117d30544a9078b3a0"
 SRC_URI[archive.sha256sum] = "7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f"
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-05-08 15:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-02  7:43 [PATCH 0/1] Fix pango modules load failure in multilib environment, Edwin, May2, 2012 edwin.zhai
2012-05-02  7:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
2012-05-04 18:11   ` [poky] " Scott Garman
2012-05-05  3:58   ` Saul Wold
2012-05-06  8:48     ` Richard Purdie
2012-05-07  0:55       ` Zhai, Edwin
2012-05-07  8:06         ` Richard Purdie
2012-05-08 14:43 [PATCH 0/1][V2] Fix pango modules load failure in multilib environment, Edwin, May8, 2012 edwin.zhai
2012-05-08 14:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
2012-05-08 15:18   ` Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.