gconf: fix multilib conflict - org.gnome.GConf.service
v3 cover gconf: fix multilib conflict - org.gnome.GConf.service
Change since v2:
split out org.gnome.GConf.service and libraries to libgconf package.
The following changes since commit 924da20c6f2f183fa7e930e4c3c6b14c090acbe5:
build-appliance-image: Update to dizzy head revision (2014-10-18 16:16:38 +0200)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib chonglu/gconf
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=chonglu/gconf
Chong Lu (1):
gconf: fix multilib conflict - org.gnome.GConf.service
meta/recipes-gnome/gnome/gconf_3.2.6.bb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
Signature · 1 line
1.9.1
PATCH v3 1/1 gconf: fix multilib conflict - org.gnome.GConf.service
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file /usr/share/dbus-1/services/org.gnome.GConf.service from install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64
Move org.gnome.GConf.service to ${libdir}, then the conflict was fixed. Add split out the client libraries into a separate package.
--- meta/recipes-gnome/gnome/gconf_3.2.6.bb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
meta/recipes-gnome/gnome/gconf_3.2.6.bb +8 -2
@@ -19,6 +19,8 @@ SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e S = "${WORKDIR}/GConf-${PV}" +PACKAGES =+ "libgconf" + EXTRA_OECONF = "--enable-shared --disable-static --enable-debug=yes \ --disable-introspection --disable-orbit --with-openldap=no --disable-gtk"
@@ -37,6 +39,8 @@ do_install_append() { # this stuff is unusable rm -f ${D}${libdir}/GConf/*/*.*a rm -f ${D}${libdir}/gio/*/*.*a + + mv ${D}${datadir}/dbus-1 ${D}${libdir}/ } do_install_append_class-native() {
@@ -47,13 +51,15 @@ do_install_append_class-native() { # disable dbus-x11 when x11 isn't in DISTRO_FEATURES RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}" RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN} += "libgconf" FILES_${PN} += "${libdir}/GConf/* \ - ${libdir}/gio/*/*.so \ ${datadir}/polkit* \ - ${datadir}/dbus-1/services/*.service \ ${datadir}/dbus-1/system-services/*.service \ " +FILES_libgconf = "${libdir}/lib*${SOLIBS} ${libdir}/gio/modules/*.so \ + ${libdir}/dbus-1/services/*.service" + FILES_${PN}-dbg += "${libdir}/*/*/.debug" FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd"
Signature · 1 line
1.9.1
Quoted 6 lines · Chong Lu
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64
I'm clearly not understanding how our multilib implementation works, but you don't need many copies of the main gconf package, just one in the preferred configuration. What is causing multiple copies of gconf to be installed?
Ross
Quoted 8 lines · Ross
Quoted 6 lines · Chong Lu
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64
Quoted 4 lines
I'm clearly not understanding how our multilib implementation works, but you don't need many copies of the main gconf package, just one in the preferred configuration. What is causing multiple copies of gconf to be installed?
Installing both the lib32 and "regular" version of gconf attempts to install the file "/usr/share/dbus-1/services/org.gnome.GConf.service" twice. (This is normally acceptable, as long as the -contents- of the file are identical.) For whatever reason the contents are different, and the usual way to fix this is to provide a unique file that both versions can include.
This way only one version will be installed, but yet the other service elements will be properly duplicated.
I'd like a bit more information in the commit message indicating what the conflict actually was between both files (since I believe the service file is textual so a diff is easy to include).
--Mark
Quoted 2 lines
Ross
Quoted 6 lines · Mark Hatle
Installing both the lib32 and "regular" version of gconf attempts to install the file "
/usr/share/dbus-1/services/org.gnome.GConf.service" twice. (This is normally acceptable, as long as the -contents- of the file are identical.) For whatever reason the contents are different, and the usual way to fix this is to provide a unique file that both versions can include.
Quoted 6 lines
This way only one version will be installed, but yet the other service elements will be properly duplicated.
I'd like a bit more information in the commit message indicating what the conflict actually was between both files (since I believe the service file is textual so a diff is easy to include).
This patch moves the org.gnome.GConf.service file into ${libdir} as that file contains a reference to ${libexecdir} which is different on multilib builds (and a good reason why libexecdir shouldn't depend on libdir), so the files are not identical.
My question is why are we installing two copies of the GConf daemon, can't we just install this package once?
Ross
Quoted 7 lines · Ross
Quoted 6 lines · Chong Lu
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64
Quoted 7 lines
I'm clearly not understanding how our multilib implementation works, but you don't need many copies of the main gconf package, just one in the preferred configuration. What is causing multiple copies of gconf to be installed?
Ross
Hi Ross,
I configured following in local.conf:
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"IMAGE_INSTALL = "gconf lib32-gconf"
So multiple copies of gconf to be installed.
Best Regards
Chong
Quoted 4 lines · Chong Lu
IMAGE_INSTALL= "gconf lib32-gconf"So multiple copies of gconf to be installed.
Yeah, don't do that. Would you test installing apache and lib32-apache?
Ross
Quoted 11 lines
Op 22 okt. 2014, om 09:09 heeft Chong Lu <[email protected]> het volgende geschreven:
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64Move org.gnome.GConf.service to ${libdir}, then the conflict was fixed.
And I suspect its dbus service won't work anymore after moving the files. How have you tested this change?
Quoted 56 lines
Add split out the client libraries into a separate package.
Signed-off-by Chong Lu <[email protected]>---
meta/recipes-gnome/gnome/gconf_3.2.6.bb | 10 ++++++++--1 file changed, 8 insertions(+), 2 deletions(-)meta/recipes-gnome/gnome/gconf_3.2.6.bb +0
-0@@ -19,6 +19,8 @@ SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4eS = "${WORKDIR}/GConf-${PV}"
meta/recipes-gnome/gnome/gconf_3.2.6.bb +2
-0+PACKAGES =+ "libgconf" +EXTRA_OECONF = "--enable-shared --disable-static --enable-debug=yes \ --disable-introspection --disable-orbit --with-openldap=no --disable-gtk"meta/recipes-gnome/gnome/gconf_3.2.6.bb +2
-0@@ -37,6 +39,8 @@ do_install_append() { # this stuff is unusable rm -f ${D}${libdir}/GConf/*/*.*a rm -f ${D}${libdir}/gio/*/*.*a + + mv ${D}${datadir}/dbus-1 ${D}${libdir}/ } do_install_append_class-native() {@@ -47,13 +51,15 @@ do_install_append_class-native() { # disable dbus-x11 when x11 isn't in DISTRO_FEATURESRDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}" RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN} += "libgconf"FILES_${PN} += "${libdir}/GConf/* \
meta/recipes-gnome/gnome/gconf_3.2.6.bb +3
-2- ${libdir}/gio/*/*.so \ ${datadir}/polkit* \ - ${datadir}/dbus-1/services/*.service \ ${datadir}/dbus-1/system-services/*.service \ " +FILES_libgconf = "${libdir}/lib*${SOLIBS} ${libdir}/gio/modules/*.so \ + ${libdir}/dbus-1/services/*.service" +FILES_${PN}-dbg += "${libdir}/*/*/.debug" FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd"
Signature · 7 lines
1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 11 lines · Koen Kooi
Quoted 10 lines
Op 22 okt. 2014, om 09:09 heeft Chong Lu <[email protected]> het volgende geschreven:
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64Move org.gnome.GConf.service to ${libdir}, then the conflict was fixed.
And I suspect its dbus service won't work anymore after moving the files. How have you tested this change?
I just focus on the conflicts, not to test dbus service. Or do you have any suggestion to fix this conflicts?
Best Regards
Chong
Quoted 59 lines
Quoted 57 lines
Add split out the client libraries into a separate package.
Signed-off-by Chong Lu <[email protected]>---
meta/recipes-gnome/gnome/gconf_3.2.6.bb | 10 ++++++++--1 file changed, 8 insertions(+), 2 deletions(-)meta/recipes-gnome/gnome/gconf_3.2.6.bb +0
-0@@ -19,6 +19,8 @@ SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4eS = "${WORKDIR}/GConf-${PV}"
meta/recipes-gnome/gnome/gconf_3.2.6.bb +2
-0+PACKAGES =+ "libgconf" +EXTRA_OECONF = "--enable-shared --disable-static --enable-debug=yes \ --disable-introspection --disable-orbit --with-openldap=no --disable-gtk"meta/recipes-gnome/gnome/gconf_3.2.6.bb +2
-0@@ -37,6 +39,8 @@ do_install_append() { # this stuff is unusable rm -f ${D}${libdir}/GConf/*/*.*a rm -f ${D}${libdir}/gio/*/*.*a + + mv ${D}${datadir}/dbus-1 ${D}${libdir}/ } do_install_append_class-native() {@@ -47,13 +51,15 @@ do_install_append_class-native() { # disable dbus-x11 when x11 isn't in DISTRO_FEATURESRDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}" RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN} += "libgconf"FILES_${PN} += "${libdir}/GConf/* \
meta/recipes-gnome/gnome/gconf_3.2.6.bb +3
-2- ${libdir}/gio/*/*.so \ ${datadir}/polkit* \ - ${datadir}/dbus-1/services/*.service \ ${datadir}/dbus-1/system-services/*.service \ " +FILES_libgconf = "${libdir}/lib*${SOLIBS} ${libdir}/gio/modules/*.so \ + ${libdir}/dbus-1/services/*.service" +FILES_${PN}-dbg += "${libdir}/*/*/.debug" FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd"
Signature · 7 lines
1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 10 lines · Chong Lu
Quoted 8 lines · Koen Kooi
Quoted 8 lines
Op 22 okt. 2014, om 09:09 heeft Chong Lu <[email protected]> het volgende geschreven:
The gconfd-2 will be called in org.gnome.GConf.service file and the path of gconfd-2 is ${libexecdir}, this will get following error when multilib exported in the sdk:
error: file/usr/share/dbus-1/services/org.gnome.GConf.servicefrom install of gconf-3.2.6-r0.0.lib32_x86 conflicts with file from package gconf-3.2.6-r0.0.x86_64
Quoted 5 lines
Quoted 2 lines
Quoted 1 line
Move org.gnome.GConf.service to ${libdir}, then the conflict was fixed.
And I suspect its dbus service won't work anymore after moving the files. How have you tested this change?
I just focus on the conflicts, not to test dbus service. Or do you have any suggestion to fix this conflicts?
Well, if you move a file to a new location, everyone assumes that you have verified that the file still will be found by the application that needs it. Basically, that's what Koen's question was about. Have you made any run-time tests, to verify that your patch doesn't break anything?
Besides, there was the other remark whether or not it makes sense to have multiple versions of gconf installed...
Cheers,
Anders
Signature · 2 lines
Anders Darander ChargeStorm AB / eStorm AB