After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 690959 - Miscellaneous fixes to the poky base
Miscellaneous fixes to the poky base
Status: RESOLVED FIXED
Product: ostree
Classification: Infrastructure
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: OSTree maintainer(s)
OSTree maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2013-01-01 23:04 UTC by Giovanni Campagna
Modified: 2013-01-06 17:36 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Remove obsolete distro variables (1.26 KB, patch)
2013-01-01 23:04 UTC, Giovanni Campagna
committed Details | Review
Generate only UTF8 layout (901 bytes, patch)
2013-01-01 23:05 UTC, Giovanni Campagna
committed Details | Review
Fix locale package generation (2.71 KB, patch)
2013-01-01 23:05 UTC, Giovanni Campagna
committed Details | Review
Install all locales provided by eglibc (1.09 KB, patch)
2013-01-01 23:05 UTC, Giovanni Campagna
committed Details | Review
Remove netbase (1.52 KB, patch)
2013-01-01 23:05 UTC, Giovanni Campagna
accepted-commit_now Details | Review
Set DISTRO_VARS explicitly instead of appending to the default (1.05 KB, patch)
2013-01-01 23:06 UTC, Giovanni Campagna
committed Details | Review
Remove .la files from generated images (1.03 KB, patch)
2013-01-01 23:13 UTC, Giovanni Campagna
committed Details | Review

Description Giovanni Campagna 2013-01-01 23:04:16 UTC
Some cleanups and some l10n fixes.
Comment 1 Giovanni Campagna 2013-01-01 23:04:58 UTC
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)
Comment 2 Giovanni Campagna 2013-01-01 23:05:09 UTC
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.
Comment 3 Giovanni Campagna 2013-01-01 23:05:26 UTC
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)
Comment 4 Giovanni Campagna 2013-01-01 23:05:38 UTC
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.
Comment 5 Giovanni Campagna 2013-01-01 23:05:50 UTC
Created attachment 232472 [details] [review]
Remove netbase

We use NetworkManager instead
Comment 6 Giovanni Campagna 2013-01-01 23:06:00 UTC
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.
Comment 7 Giovanni Campagna 2013-01-01 23:13:40 UTC
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)
Comment 8 Giovanni Campagna 2013-01-01 23:14:39 UTC
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.
Comment 9 Colin Walters 2013-01-02 19:41:36 UTC
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.
Comment 10 Colin Walters 2013-01-02 19:42:01 UTC
Review of attachment 232468 [details] [review]:

Looks good, will commit.
Comment 11 Colin Walters 2013-01-02 19:42:19 UTC
Review of attachment 232472 [details] [review]:

Looks good.
Comment 12 Colin Walters 2013-01-02 19:43:04 UTC
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 13 Colin Walters 2013-01-02 20:00:26 UTC
Comment on attachment 232469 [details] [review]
Generate only UTF8 layout

Makes sense, will commit.
Comment 14 Colin Walters 2013-01-02 20:03:05 UTC
Review of attachment 232470 [details] [review]:

This sounds quite good, and the code looks reasonable, but give me a bit to study this.
Comment 15 Giovanni Campagna 2013-01-02 20:09:16 UTC
(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?
Comment 16 Colin Walters 2013-01-02 23:25:56 UTC
(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.
Comment 17 Colin Walters 2013-01-02 23:27:37 UTC
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.
Comment 18 Giovanni Campagna 2013-01-02 23:54:42 UTC
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.
Comment 19 Colin Walters 2013-01-03 00:13:06 UTC
(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...)
Comment 20 Colin Walters 2013-01-06 13:28:35 UTC
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.