GNOME Bugzilla – Bug 690959
Miscellaneous fixes to the poky base
Last modified: 2013-01-06 17:36:52 UTC
Some cleanups and some l10n fixes.
Created attachment 232468 [details] [review] Remove obsolete distro variables We don't use sysvinit anymore, and we should not install task-core-boot (it makes no difference because it is appended to the RDEPENDS of packagegroup-base)
Created attachment 232469 [details] [review] Generate only UTF8 layout It's 2013, people should use UTF8. And it reduces confusion in the Region & Language panel, because they're not duplicated.
Created attachment 232470 [details] [review] Fix locale package generation The package class has code to generate split language pack packages, one, and each of those provides ${PN}-locale, so installing ${PN}-locale ends up installing a language at random. Make ${PN}-locale a meta package instead, and have it RDEPEND on the actual locale packages. This allows a distro to install all translations without caring of which are actually shipped by a particular package. The dependency for individual locale packages on virtual-locale-* is removed, to allow installing eglibc-locale-locale.alias (otherwise depending on a non-existing virtual-locale-locale.alias)
Created attachment 232471 [details] [review] Install all locales provided by eglibc By installing eglibc-locale, we ensure that all locale files (sources, translations and binary locales) are installed in the final image.
Created attachment 232472 [details] [review] Remove netbase We use NetworkManager instead
Created attachment 232473 [details] [review] Set DISTRO_VARS explicitly instead of appending to the default This way we get rid of the default x11 distro-feature, which causes valgrind to depend on libx11.
Created attachment 232474 [details] [review] Remove .la files from generated images .la files are unnecessary and dangerous, especially when they reference an older version of the library (as is the case of glib, which is built by both yocto and ostbuild)
Notes: - the fixes to package.bbclass are probably upstreamable, although I'm not sure, it could be that using ipkg or dpkg it works without changes; or it could be that rdepending on eglibc-locale-* instead of eglibc-locale has the same effect. There is a comment at the end of package.bbclass saying that the wildcard dependency doesn't work for dpkg, I don't know for rpm... - having full l10n for eglibc is important because it brings localized strerror(), which is used in user visible messages by glib/gio - building glib inside yocto is actually a problem on its own, but pkgconfig depends on it, and a number of *-dev package we ship in task-gnomeos-contents-devel depend on pkgconfig.
Review of attachment 232474 [details] [review]: ::: meta-gnomeos/classes/gnomeos-contents.bbclass @@ +129,3 @@ + # Remove all .la files + find ${IMAGE_ROOTFS}/usr/lib -name \*.la -delete This should not be recursive, for the same reason the jhbuild one isn't. See: https://bugzilla.gnome.org/show_bug.cgi?id=654013 Concretely, deleting the pulseaudio .la files will make it be unable to load modules.
Review of attachment 232468 [details] [review]: Looks good, will commit.
Review of attachment 232472 [details] [review]: Looks good.
Review of attachment 232473 [details] [review]: A bit more work to maintain on our end, but worth it to avoid building all of X just for valgrind, only to throw it away and build it again in gnome-ostree.
Comment on attachment 232469 [details] [review] Generate only UTF8 layout Makes sense, will commit.
Review of attachment 232470 [details] [review]: This sounds quite good, and the code looks reasonable, but give me a bit to study this.
(In reply to comment #9) > Review of attachment 232474 [details] [review]: > > ::: meta-gnomeos/classes/gnomeos-contents.bbclass > @@ +129,3 @@ > > + # Remove all .la files > + find ${IMAGE_ROOTFS}/usr/lib -name \*.la -delete > > This should not be recursive, for the same reason the jhbuild one isn't. See: > > https://bugzilla.gnome.org/show_bug.cgi?id=654013 > > Concretely, deleting the pulseaudio .la files will make it be unable to load > modules. Which makes me wonder, why does jhbuild remove all .la files then?
(In reply to comment #15) > Which makes me wonder, why does jhbuild remove all .la files then? So this is a mess...I'm sorry about giving out of date information here. Looking at the jhbuild git log, we originally deleted them all: http://git.gnome.org/browse/jhbuild/commit/?id=841b7fa188137d29ef81ff8f98d93c66704736ca Then switched to only deleting toplevel ones: http://git.gnome.org/browse/jhbuild/commit/?id=90287e27367551cc8fb7c484c5dba7013b7e9b30 Then finally switched back: http://git.gnome.org/browse/jhbuild/commit/?id=965c8d5ceda9d1c5d6021ef2c534e0a7f68ca976 From what I remember based on the last commit message, I think what was breaking was gnome-bluetooth was shipping a .la file for /usr/lib/gnome-bluetooth/libgnome-bluetooth-applet.la that was trying to find the /usr/lib/libgnome-bluetooth.la. But on the other hand, pulseaudio which needs the .la files because it uses libltdl. Probably most jhbuilders get pulse via sysdeps and so aren't actually affected by this, but we do build pulse. Probably the best fix is to change gnome-bluetooth to delete the .la file itself, like this: http://git.gnome.org/browse/ostree/tree/Makefile-libostree.am?id=6c9c7b0173656835e3050062bd06796af74748b7#n62 Then change jhbuild back again to only deleting toplevels. The other alternative is to flag modules which need the .la files.
Fedora is effectively the last solution - many spec files have copy-and-paste bits to delete .la files, and the pulseaudio.spec just doesn't have that.
Except that PulseAudio does not hardcode .la anywhere, and libltdl will correctly fallback to loading the module with '.so' if loading with '.la' fails. Which means that jhbuild is correct and .la files are not necessary. Removing only the toplevel ones is the worst choice, as the gnome-bluetooth example shows. If really we're concerned about removing all of them, we should keep shipping them all.
(In reply to comment #18) > Except that PulseAudio does not hardcode .la anywhere, and libltdl will > correctly fallback to loading the module with '.so' if loading with '.la' > fails. Ah...hm. OK, if that's true, then I agree this is the right thing. (Well, ultimately the right thing is to have a way to tell automake not to install them at all, but...)
So I forwarded the locale patch to the OE-core list, no response yet: http://permalink.gmane.org/gmane.comp.handhelds.openembedded.core/31356 I think for now, let's go with your patches - it looks like an improvement to me.