* [PATCH 0/1][V2] Fix pango modules load failure in multilib environment, Edwin, May8, 2012
@ 2012-05-08 14:43 edwin.zhai
2012-05-08 14:43 ` [PATCH 1/1] pango: Fix modules load failure in multilib environment edwin.zhai
0 siblings, 1 reply; 8+ messages in thread
From: edwin.zhai @ 2012-05-08 14:43 UTC (permalink / raw)
To: openembedded-core
From: Zhai Edwin <edwin.zhai@intel.com>
All,
This is the new version based on RP's comments:
* Use MLPREFIX rather than ${baselib} dir to separate config/util
* Pass MLPREFIX as configure option so that pango can use it directly.
This patch doesn't change anying in non-multilib environment. Pls. help to pull.
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-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
^ permalink raw reply [flat|nested] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ messages in thread
* [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; 8+ 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] 8+ 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-05 3:58 ` Saul Wold 0 siblings, 1 reply; 8+ 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] 8+ 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-05 3:58 ` Saul Wold 2012-05-06 8:48 ` Richard Purdie 0 siblings, 1 reply; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ messages in thread
end of thread, other threads:[~2012-05-08 15:28 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 -- strict thread matches above, loose matches on Subject: below -- 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-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
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.