LWN.net Logo

Debian dropping the Linux Standard Base

By Nathan Willis
September 30, 2015

The Linux Standard Base (LSB) is a specification that purports to define the services and application-level ABIs that a Linux distribution will provide for use by third-party programs. But some in the Debian project are questioning the value of maintaining LSB compliance—it has become, they say, a considerable amount of work for little measurable benefit.

The LSB was first released in 2001, and was modeled to a degree on the POSIX and Single UNIX Specification standards. Today, the LSB is maintained by a working group at the Linux Foundation. The most recent release was LSB 5.0 in June 2015. It defines five LSB modules (Core, Desktop, Languages, Imaging, and Trial Use).

The bulk of each module consists of a list of required libraries and the mandatory version for each, plus a description of the public functions and data definitions for each library. Other contents of the modules include naming and organizational specifications, such as the filesystem layout in the Filesystem Hierarchy Standard (FHS) or directory specifications like the Freedesktop XDG Base Directory specification.

In what appears to be sheer coincidence, during the same week that LSB 5.0 was released, a discussion arose within the Debian project as to whether or not maintaining LSB compliance was a worthwhile pursuit for Debian. After LSB compliance was mentioned in passing in another thread, Didier Raboud took the opportunity to propose scaling back Debian's compliance efforts to the bare minimum. As it stands today, he said, Debian's lsb-* meta-packages attempt to require the correct versions of the libraries mentioned in the standard, but no one is actually checking that all of the symbols and data definitions are met as a result.

Furthermore, the LSB continues to grow; the 4.1 release (the most recent when Debian "jessie" was released) consisted of "1493 components, 1672 libs, 38491 commands, 30176 classes and 716202 interfaces," he said. No one seems interested in checking those details in the Debian packages, he noted, adding that "I've held an LSB BoF last year at DebConf, and discussed src:lsb with various people back then, and what I took back was 'roughly no one cares'." Just as importantly, though, the lack of interest does not seem to be limited to Debian:

The crux of the issue is, I think, whether this whole game is worth the work: I am yet to hear about software distribution happening through LSB packages. There are only _8_ applications by 6 companies on the LSB certified applications list, of which only one is against LSB >= 4.

Raboud proposed that Debian drop everything except for the lsb-base package (which currently includes a small set of shell functions for use by the init system) and the lsb-release package (which provides a simple tool that users can use to query the identity of the distribution and what level of LSB compliance it advertises).

In a follow-up message, he noted that changing the LSB to be, essentially, "whatever Debian as well as all other actors in the FLOSS world are _actually _doing" might make the standard—and the effort to support it in Debian—more valuable. But here again, he questioned whether anyone was interested in pursuing that objective.

If his initial comments about lack of interest in LSB were not evidence enough, a full three months then went by with no one offering any support for maintaining the LSB-compliance packages and two terse votes in favor of dropping them. Consequently, on September 17, Raboud announced that he had gutted the src:lsb package (leaving just lsb-base and lsb-release as described) and uploaded it to the "unstable" archive. That minimalist set of tools will allow an interested user to start up the next Debian release and query whether or not it is LSB-compliant—and the answer will be "no."

Raboud added that Debian does still plan to maintain FHS compliance, even though it is dropping LSB compliance:

But Debian's not throwing all of the LSB overboard: we're still firmly standing behind the FHS (version 2.3 through Debian Policy; although 3.0 was released in August this year) and our SysV init scripts mostly conform to LSB VIII.22.{2-8}. But don't get me wrong, this src:lsb upload is an explicit move away from the LSB.

After the announcement, Nikolaus Rath replied that some proprietary applications expect ld-lsb.so* symbolic links to be present in /lib and /lib64, and that those symbolic links had been provided by the lsb-* package set. Raboud suggested that the links should be provided by the libc6 package instead; package maintainer Aurelien Jarno said he would accept such a patch if it was provided.

The only remaining wrinkle, it seems, is that there are some printer-driver packages that expect some measure of LSB compliance. Raboud had noted in his first message that OpenPrinting drivers were the only example of LSB-compliant packages he had seen actually distributed. Michael Biebl noted that there was one such driver package in the main archive; Raboud replied that he believed the package in question ought to be moved to the non-free repository anyway, since it contained a binary driver.

With that, the issue appears to be settled, at least for the current Debian development cycle. What will be more interesting, naturally, will be to see what effect, if any, the decision has on broader LSB acceptance. As Raboud alluded to, the number of distributions that are certified as LSB-compliant is small. It is hard not to notice that those distributions are largely of the "enterprise" variety.

Perhaps, then, LSB compliance is still important to some business sectors, but it is hard to know how many customers of those enterprise distributions genuinely care about the LSB certification stamp. If Debian's experience is anything to go by, however, general interest in such certification may be in steep decline.


(Log in to post comments)

Debian dropping the Linux Standard Base

Posted Oct 1, 2015 8:12 UTC (Thu) by michaeljt (subscriber, #39183) [Link]

VirtualBox provides a package which aims to run on random Linux distributions. We do not pay attention to the LSB, instead we try to work with what distributions actually do. More specifically, we are moving to looking at the tools present on a system (e.g. systemd, insserv for system services) rather than the actual distribution and working with those, fixing things when that breaks in some particular configuration which we think is worth supporting.

Debian dropping the Linux Standard Base

Posted Oct 1, 2015 8:45 UTC (Thu) by pabs (subscriber, #43278) [Link]

That sounds similar to what distributions do with the code they package. If you're interested in working better with distributions, being more open about VirtualBox security issues would be a great start, more tips here:

https://wiki.debian.org/UpstreamGuide

Debian dropping the Linux Standard Base

Posted Oct 1, 2015 10:14 UTC (Thu) by michaeljt (subscriber, #39183) [Link]

This is probably not what you want to hear, but we are as open with security issues as Oracle's security policy allows. Since Oracle develops VirtualBox I'm afraid their policy applies to its development.

Debian dropping the Linux Standard Base

Posted Oct 2, 2015 9:34 UTC (Fri) by ewan (subscriber, #5533) [Link]

The suggestion that Oracle would be interested in working well with anyone was clearly a joke.

Debian dropping the Linux Standard Base

Posted Oct 8, 2015 14:58 UTC (Thu) by pabs (subscriber, #43278) [Link]

You could either push Oracle to fix their security policies or move away from their sphere of influence.

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 8:52 UTC (Thu) by rschroev (subscriber, #4164) [Link]

Does anyone know how I can find out the Debian codename of a system? Currently I can use the lsb_release command to find out that information, but that won't work anymore if the package is dropped.

It's easy enough to find the release number, but I'm always having trouble finding the mapping between release numbers and codenames. I haven't found an overview on Debian's website; I need to resort to Wikipedia or the source of the lsb-release package.

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 9:01 UTC (Thu) by cortana (subscriber, #24596) [Link]

It's in /etc/os-release.

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 9:17 UTC (Thu) by rschroev (subscriber, #4164) [Link]

Ah yes, thanks!

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 9:22 UTC (Thu) by zwenna (subscriber, #64777) [Link]

> Does anyone know how I can find out the Debian codename of a system? Currently I can use the lsb_release command to find out that information, but that won't work anymore if the package is dropped.

The lsb-release package containing the lsb_release command is going to stay, as mentioned in the article.

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 9:25 UTC (Thu) by noirbee (subscriber, #61940) [Link]

They *won't* drop lsb-release, precisely because it's needed to at least identify the distro type and version, typically for automated deploy or inventory tools (it's common to use it in ansible to find out whether to use apt or yum for installing packages for example):

« Raboud proposed that Debian drop everything except for the lsb-base […] and the lsb-release package »

In addition to /etc/os-release, /etc/debian_version also contains some codename information, but I'd advise against using anythin

How to find out the system's codename without lsb_release?

Posted Oct 1, 2015 9:48 UTC (Thu) by rschroev (subscriber, #4164) [Link]

Oops, I missed that. Sorry!

How to find out the system's codename without lsb_release?

Posted Oct 8, 2015 14:59 UTC (Thu) by pabs (subscriber, #43278) [Link]

I guess you missed the Debian releases page?

https://www.debian.org/releases/

How to find out the system's codename without lsb_release?

Posted Oct 8, 2015 18:59 UTC (Thu) by rschroev (subscriber, #4164) [Link]

I'm ashamed to say that yes, indeed, I managed to miss that. On multiple occasions no less.


Copyright © 2015, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds