Aug 21, 2011

openSUSE Factory Progress 2011-08-21

August looks like a surprisingly busy month, we already have 709 package checkins and thus I expect we'll beat the 926 from last month. Also, there's a lot to write about since the last report.

Note that the Milestone 4 was not really released since Coolo is on vacation and we decided to make a soft release (just update via zypper dup) instead of a full release this time.

A plea: Please help documenting major changes of factory in the openSUSE wiki so that the marketing team can start speaking about openSUSE 12.1 and does not miss important features!


Supporting /var/run and /var/lock as tmpfs

To support /var/run and /var/lock as temporary filesystem (in RAM) and thus cannot packaged directly, the rpmlint checks  non-ghost-in-var-run and non-ghost-in-var-lock have been made fatal as Ludwig Nussel wrote. Bugs for the around 20 affected packages have been filed.

Shared / static library packaging policy

Sascha Peilicke is currently the main Factory reviewer and gave a reminder on packaging policies for shared and static libraries. The Factory checkin team plans to enforce these two policies for new packages.

Making --no-copy-dt-needed the default

Cristian Rodriguez revisited a discussion from April and proposed to make --no-copy-dt-needed in the linker ld the default. After this change of setting will be done upstream in binutils now, we'll soon get it as well in our distribution. Fedora, Debian and Ubuntu have changed the default already, so many packages should be fixed. Fedora has some background on the change in their wiki.

Major package checkins


The new init system SystemD has seen numerous improvements - and testing. The packaging has been changed and a systemd-devel package split up. If your package needs to build against systemd, I recommend to use "BuildRequires: pkgconfig(systemd) " so that it will work with both the splitup devel package and with 11.4.
A couple of bugs - some of them freshly introduced - have been fixed. pam_systemd will now get enabled once systemd is running.

Frederic Crozat prposed how to handle the migration from SysV to SystemD activated files so that the same functionality - running daemons - is available after an update.

GNOME 3.1.5

GNOME is moving now to GNOME 3.1.5 (another beta release on the way to the stable 3.2.0 release) and Dominique Leuenberger reported on the major changes this brings:
The noteworthy ones are:
  • gnome-menus => Version 3.1.5 is ABI and API incompatible to the so far included version 3.0.1. A compatibility package called gnome-menus-legacy has been introduced. More details here.
  • python-gobject: python-gobject 2.90.x (on the road to 3.0) changed from the 'old' gobject bindings to pure gobject-introspection based bindings. Any application can only use one kind of binding at once. As a migration path, the old version has been renamed to python-gobject2 (as it was once in the past.. many packages still buildrequire python-gobject2-devel). python-gobject is the new gi-based binding. More details here.


The ruby stack now has a few rubygems that are versioned - this means you can install more than one version of the package. The first packages are rack, builder and erubis.

New packages include duply which is a simple frontend to the backup tool duplicity and libnettle
which is a new cryptographic library. Also, the GO programming language got new 'go' packages like web.go, mustache.go, httplib.go and go-gtk.

The Mozilla packages Firefox and Thunderbird have been updated to version 6 and Seamonkey was updated as well. There have been several updates to the horde stack.

Other interesting bits

openSUSE Conference

The program for the openSUSE conference is out, and I've seen many topics related to the openSUSE distribution. Register now if you want to join us!

Looking at other distributions spec files

Greg Freemeyer asked for advice on how to find out how other distributions package a specific package. Vincent Untz gave the reference about the distributions wiki of, I suggest to bookmark this one.

Aug 18, 2011

Updating glibc to 2.14 with some libtirpc fun

The GNU C Library (glibc) version 2.14 was released on the 31th of May but we haven't switched to it for openSUSE yet since one of the major changes was the obsoletion of the sunrpc code in glibc and that caused problems. The TI-RPC library (libtirpc) is the proposed replacement of the sunrpc code. One benefit of the TI-RPC library is that it supports - unlike the old sunrpc code in glibc - IPv6. libtirpc is used successfully already by a couple of Open Source projects like autofs or nfs. Unfortunately some code in libtirpc seems to be broken, like the NIS support. The package missed also some header files to make it a full replacement but those can be easily copied over from glibc. So, building everything with libtirpc instead of glibc' sunrpc code was not possible, and the libtirpc developers seemed not to be interested in helping here.

So, I've took now the same route that Fedora did and reenabled the sunrpc code in glibc again and thus everything works as before. I encourage everybody that has packages that work with libtirpc to switch to it - and help changing apps and libtirpc itself as needed so that eventually we really can obsolete glibc's sunrpc code.

Today, the updated glibc has been submitted and checked into openSUSE's Factory distribution and thus will be in openSUSE 12.1.

The new glibc contains lots of bugfixes and also these changes (full list):
New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at, syncfs, setns, sendmmsg

* New locales: os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH, yue_HK, lij_IT, mhr_RU

* New encodings: CP770, CP771, CP772, CP773, CP774

* New program sotruss to trace calls through PLTs. Implemented by Ulrich Drepper.

* The malloc hook implementation is marked deprecated and will be removed from the default implementation in the next version. The design never worked ever since the introduction of threads. Even programs which do not create threads themselves can use multiple threads created internally.

After installing the newly build library on my own system I noticed that LibreOffice crashed and added a bandaid fix that my colleague Michael Matz developed already for glibc 2.11.2 which contained a backport of the buggy change. The submitted glibc contains this fix as well.