GNOME Bugzilla – Bug 745223
lib64 support
Last modified: 2016-12-06 11:42:16 UTC
With commit https://git.gnome.org/browse/jhbuild/commit/?id=dbb7e2c5f8f52669e257db6be83e74c5006ff49e jhbuild introduced a distro specific workaround, without taking into account that other distros are out there. openSUSE for example has a clear separation of lib/lib64 (as well) and the Fedora bug might not apply. openSUSE's automake tools are configured for openSUSE's usecases, meaning libdir is set to /usr/lib64 by default, based on a site-config package (no strange patching of automake/autoconf). so, with this commit in, a standard openSUSE user is not able to run jhbuild at all. if jhbuild wants to avoid lib/lib64, it should pass --libdir to configure and get the jhbuild installs the way it expects them.
+1, this should be reverted or solved differently
I've run into this too, and re-debugged it with Dominique just now. We found that we have a site-config package that gets triggered by autoconf, which makes configure act correctly on openSUSE by default. Our env has CONFIG_SITE=/usr/share/site/x86_64-unknown-linux-gnu If we unset CONFIG_SITE, jhbuild is able to get its way and all is well. I think it would make sense for jhbuild to unset it. It would save a lot of head-scratching on the part of openSUSE users.
Created attachment 333732 [details] [review] 0001-environment-Unset-CONFIG_SITE.patch Proposed patch.
Adding Allison to cc to get her opinion and hopefully a review.
Review of attachment 333732 [details] [review]: I don't think Allison's patch is a distro-specific hack. We don't support lib64 under the jhbuild prefix anymore, so if you have glib installed under lib64 in your jhbuild prefix, delete everything and start over is correct. Now as far as I know, openSUSE is the only distro that uses environment variables to point to a particular config.site file within some elaborate directory setup containing a bunch of different template config.site files (/usr/share/site). A more standard way to deal with config.site is to just install it in /usr/share/config.site, and unsetting the environment variable does nothing to prevent autoconf from reading that. So instead of unsetting the environment variable, I think it would be better to set it to point to some jhbuild-controlled but empty config.site. That said, I'm not aware of any other distros having a problem like this and unsetting config.site is clearly sufficient for openSUSE, so I think this is acceptable as-is, just do consider my suggestion.
Thanks for the review. I've committed the patch as-is. I don't know what side effects pointing CONFIG_SITE to an empty file could have, and I'm not sure where said file should live or if we should just create one at runtime, so I think we can get back to that later. In the meantime, we have this fix.
It crashes when CONFIG_SITE is not set. Traceback (most recent call last):
+ Trace 236884
jhbuild.main.main(sys.argv[1:])
config = jhbuild.config.Config(options.configfile, options.conditions)
setup_env_defaults(self.system_libdirs)
del os.environ['CONFIG_SITE']
del self.data[key]
*** Bug 775086 has been marked as a duplicate of this bug. ***
Created attachment 340761 [details] [review] 0001-environment-Fix-KeyError-when-CONFIG_SITE-is-unset.patch I committed this diff to fix the issue as a matter of urgency. Sorry for the breakage.