| Submitter | Ross Burton |
|---|---|
| Date | June 26, 2012, 10:10 a.m. |
| Message ID | <1340705423-18430-1-git-send-email-ross.burton@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/30651/ |
| State | Accepted |
| Commit | f9f2e0309a03a4dc9ed5e6cff7db6f29962b7d60 |
| Headers | show |
Comments
On Tue, 2012-06-26 at 11:10 +0100, Ross Burton wrote: > +# Disable install-time schema registration as we're a packaging system so this > +# happens in the postinst script, not at install time. Set both the configure > +# script option and the traditional envionment variable just to make sure. > +EXTRA_OECONF += "--disable-schemas-install" > +export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1" Even better is to have the source code check for DESTDIR, and skip gconf bits itself; e.g.: http://git.gnome.org/browse/evolution/tree/shell/Makefile.am?h=gnome-2-28#n201 This patch is still useful though for components which don't check DESTDIR, but again it's better to patch the relevant source code to do so (or port to GSettings...).
On Tuesday, 26 June 2012 at 22:02, Colin Walters wrote: > Even better is to have the source code check for DESTDIR, and skip gconf > bits itself; e.g.: > > http://git.gnome.org/browse/evolution/tree/shell/Makefile.am?h=gnome-2-28#n201 > > This patch is still useful though for components which don't check > DESTDIR, but again it's better to patch the relevant source code to do > so (or port to GSettings...). I'd prefer to use an option that the GConf autoconf macro provides over patching every module that uses GConf, as we're assured much better coverage that way. Adding the option caught every module in the Sato image but two, which were being rather minimal with their build system and the environment variable caught those (as it affects gconftool itself). Ross
On 06/26/2012 03:10 AM, Ross Burton wrote: > Previously this was installing schemas in the sysroot, which is wrong for native > packages as nothing should touch the sysroot directly, and even more wrong for > non-native packages as the sysroot is irrelevant. > > So, export the environment variable that stops the registration happening at > install time. The postinst script will handle the non-native case, and for the > sysroot I've opened #2648. This isn't a massive problem as nothing to my > knowledge actually installs schemas to the sysroot. > > [YOCTO #2245] > > Signed-off-by: Ross Burton<ross.burton@intel.com> > --- > meta/classes/gconf.bbclass | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/gconf.bbclass b/meta/classes/gconf.bbclass > index a966c26..fb9f701 100644 > --- a/meta/classes/gconf.bbclass > +++ b/meta/classes/gconf.bbclass > @@ -1,10 +1,18 @@ > DEPENDS += "gconf gconf-native" > > -# This is referenced by the gconf m4 macros and would default to the value hardcoded > -# into gconf at compile time otherwise > +# These are for when gconftool is used natively and the prefix isn't necessarily > +# the sysroot. TODO: replicate the postinst logic for -native packages going > +# into sysroot as they won't be running their own install-time schema > +# registration (disabled below) nor the postinst script (as they don't happen). > export GCONF_SCHEMA_INSTALL_SOURCE = "xml:merged:${STAGING_DIR_NATIVE}${sysconfdir}/gconf/gconf.xml.defaults" > export GCONF_BACKEND_DIR = "${STAGING_LIBDIR_NATIVE}/GConf/2" > > +# Disable install-time schema registration as we're a packaging system so this > +# happens in the postinst script, not at install time. Set both the configure > +# script option and the traditional envionment variable just to make sure. > +EXTRA_OECONF += "--disable-schemas-install" > +export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1" > + > gconf_postinst() { > if [ "x$D" != "x" ]; then > exit 1 Merged into OE-Core - Still needs to be merged to 1.2.1 Thanks Sau!
On Wed, 2012-06-27 at 07:01 +0100, Ross Burton wrote: > I'd prefer to use an option that the GConf autoconf macro provides > over patching every module that uses GConf, I wasn't objecting to your patch. However, please do *also* (in addition, as well, etc. ;) ) consider patching these modules upstream. Concretely doing so will also fix jhbuild (and my gnome-ostree build system).
Patch
diff --git a/meta/classes/gconf.bbclass b/meta/classes/gconf.bbclass index a966c26..fb9f701 100644 --- a/meta/classes/gconf.bbclass +++ b/meta/classes/gconf.bbclass @@ -1,10 +1,18 @@ DEPENDS += "gconf gconf-native" -# This is referenced by the gconf m4 macros and would default to the value hardcoded -# into gconf at compile time otherwise +# These are for when gconftool is used natively and the prefix isn't necessarily +# the sysroot. TODO: replicate the postinst logic for -native packages going +# into sysroot as they won't be running their own install-time schema +# registration (disabled below) nor the postinst script (as they don't happen). export GCONF_SCHEMA_INSTALL_SOURCE = "xml:merged:${STAGING_DIR_NATIVE}${sysconfdir}/gconf/gconf.xml.defaults" export GCONF_BACKEND_DIR = "${STAGING_LIBDIR_NATIVE}/GConf/2" +# Disable install-time schema registration as we're a packaging system so this +# happens in the postinst script, not at install time. Set both the configure +# script option and the traditional envionment variable just to make sure. +EXTRA_OECONF += "--disable-schemas-install" +export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1" + gconf_postinst() { if [ "x$D" != "x" ]; then exit 1
Previously this was installing schemas in the sysroot, which is wrong for native packages as nothing should touch the sysroot directly, and even more wrong for non-native packages as the sysroot is irrelevant. So, export the environment variable that stops the registration happening at install time. The postinst script will handle the non-native case, and for the sysroot I've opened #2648. This isn't a massive problem as nothing to my knowledge actually installs schemas to the sysroot. [YOCTO #2245] Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/classes/gconf.bbclass | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)