May 7 2009
I’ve hosed systems in the past by inadvertently downgrading the C-library, which breaks… everything. Luckily, this is why I have test machines before updates are rolled out to all of our servers.
Even so, this makes upgrading glibc to a newer version a somewhat fraught experience – especially when it can’t pass its own test-suite (when enquiring about this, I was told that the test suite “is only intended for glibc developers, not end users“… great – an absolutely system-critical component with almost no possibility of roll-back and a broken test-suite. <sigh>
The Debian project isn’t happy with things either, and just a couple of days ago Aurélien Jarno announced initial moves to abandon glibc for the eglibc (Embedded GNU libc) code-base. This was quickly picked up and seem to have been met with approval.
Although eglibc is less monolithic and more configurable than the current glibc (in that certain features can be built-in or omitted, as benefits a library aimed at the embedded crowd), the main push for this seems to have been the attitude of the current maintainers, especially Red Hat’s Ulrich Drepper. Now anyone can have a bad day, but this exchange is pretty damning no matter how it’s read (and also shows that people are paying attention to this story even though the bug is from a year ago). Posts such as this do seem to paint a picture of a developer who has lost all perspective, and who is unable to admit that he may have, at some point, made a mistake.
There is precedence for this type a split: In 1997, developers were unhappy with the direction that the FSF were taking GCC 2.x, and so forked GCC 2.7 into EGCS. This continued to develop this in parallel with and beyond FSF GCC until, for the release of GCC 2.95 in 1999, the FSF blessed EGCS to be the official GCC and there returned a single GCC project, now based on the EGCS source.
Given the now well-documented problems with glibc as it currently exists, the the eglibc commitment to retain compatibility and track glibc developments, this appears to be a timely and positive step.