A New Approach to the LSB

One of my responsibilities at work is the status of Debian (and Progeny’s Debian-derivative distributions, such as Componentized Linux) with regards to compliance with the Linux Standard Base (LSB). This has been very frustrating at times.

Many of the problems occur because the LSB has a less conservative position regarding core updates than Debian does. For example, the current LSB standard (2.0) pretty much requires version 2.3.3 of the standard core library (“glibc”), one better than the version shipped in Debian 3.1 last week. The prerelease standard (3.0) gives us whole new sets of problems; it requires glibc 2.3.4, the new tests for the C++ programming language standard seem to have problems with the standard C++ library, and the tests for the graphical system won’t even run in Debian.

While many of the particular problems are new, other problems have plagued previous Debian releases. Debian 3.0 was never able to achieve LSB compliance by itself, because of problems similar to these. Most of the problems from that era have been fixed in Debian 3.1, but new problems have arisen to take their places. And in some cases, the problems have persisted over a long time, such as the problem with international patches to some programs that have been rejected by upstream authors.

All of these problems have important implications for distributions that are based on Debian. Now that Debian 3.1 has been released, we want to use that as a baseline for compatibility between various distributions derived from Debian. But if we need to upgrade our distributions to comply with LSB requirements, we tend to break that compatibility. Will Progeny stuff work on Ubuntu, or Xandros stuff on regular Debian? It might not, if we don’t have some common ground. My boss has been giving Ubuntu a hard time over this already; it wouldn’t be good for us to criticize them and then follow their example.

So, my current research into the problem has focused not on making Debian adhere to the LSB standard, but on allowing Debian to provide a compatibility environment for LSB programs, without incorporating huge changes that would break compatibility with the current stable version of Debian.

Fortunately, the LSB provides us with a pretty big hook I think I can exploit. This post is already long enough, so I’ll describe it in a subsequent post.