LWN.net Logo

Will LSB 4 Standardize Linux? (InternetNews)

InternetNews talks to the Linux Foundation's Jim Zemlin about LSB 4.0. "Not all Linux distributions are made with the same components, which can make it difficult for software developers to write applications for multiple Linux distributions. That's where the Linux Standards Base (LSB) comes into play. For years the LSB has not quite lived up to its full potential. That could all change with the upcoming LSB 4.0 release. LSB 4.0, set for release by the end of this year, could be the catalyst that enables independent software vendors, or ISVs TERM (define), to develop applications that will run on any LSB-compliant Linux distribution. If it gets adopted, LSB 4 could bring a new wave of multidistribution Linux application development."
(Log in to post comments)

Will LSB 4 Standardize Linux? (InternetNews)

Posted Jul 31, 2008 16:55 UTC (Thu) by JoeBuck (subscriber, #2330) [Link]

The answer is "probably not". If LSB4 is a large enough subset of current distros, then it might help with portability, but it's not possible to test whether an app works on "LSB4". It still has to be tested on specific machines, running specific distributions. An ISV might test on Red Hat and Novell, and the app might happen to work on other distros, or maybe not. ISVs are not going to promise that they run on any LSB4-compliant system.

Will LSB 4 Standardize Linux? (InternetNews)

Posted Jul 31, 2008 17:35 UTC (Thu) by elanthis (subscriber, #6227) [Link]

That makes little sense.  Distros can be certified LSB4 compliant, and they can offer
meta-packages to pull in any libraries necessary for LSB4 compliance if they are not in the
default install.

Will LSB 4 Standardize Linux? (InternetNews)

Posted Jul 31, 2008 18:19 UTC (Thu) by derekp (guest, #53203) [Link]

What the poster above was referring to is that if you develop your app on say RHEL, just
because RHEL is LSB compliant doesn't mean that your app won't accidentally rely on non-LSB
components also included in the base OS.  So your app may not work on other LSB-compliant
systems (because your app isn't a "pure" LSB app).

The solution to this is to set up a directory structure that contains _only_ LSB components,
then chroot into that directory and test your app.  If there are no problems, then it should
run on any other LSB-compliant OS.

Will LSB 4 Standardize Linux? (InternetNews)

Posted Jul 31, 2008 18:31 UTC (Thu) by JoeBuck (subscriber, #2330) [Link]

Or there could be a specific bug that would prevent distro Foo from running your app even though your app validly uses LSB4 and Foo passed LSB4 certification, because testing is always incomplete.

The best the ISV can do is to say is "try it, it might work, if it doesn't you'll have to use a supported distro".

Will LSB 4 Standardize Linux? (InternetNews)

Posted Aug 1, 2008 0:42 UTC (Fri) by k8to (subscriber, #15413) [Link]

I disagree, an ISV *could* do better.  They can say "we support the LSB4 platform".  And they
can investigate all bugs which come to light running on the LSB4 platform, and determine whose
side of the fence such problems are on and resolve them.

Some bugs will be on the distro side, and then it will be up to the distro to support the
platform.

Really it would be ideal if you could actually get both parties interested in such bugs.

You may be right that vendors will not go down this path, but there's no reason they can't do
so.  The issues you have to worry about are significantly curtailed if you target LSB.
However the catch is that LSB is a pretty limited platform, or was.  I haven't checked lately.

Better tooling and IDE support

Posted Aug 1, 2008 10:07 UTC (Fri) by salimma (subscriber, #34460) [Link]

This sounds like an integration problem: compared to, say, OS X development, where the Xcode
IDE let you target any of the last three OS X releases, Linux IDEs are not configured to
target any LSB versions.

Ideally, you should be able to deploy to a chroot-ed environment as part of the build process
too. There's still the library mess if your application depends on libraries that are not part
of the LSB standard, though..

Makes me think that adopting the Acorn RISC / OpenStep / OS X concept of application and
framework bundles would be a neat idea, as far as binary proprietary applications go: the
application is just a bundle (a directory), within which there is a predefined place for
bundling self-contained frameworks (libraries) that are in turn bundles themselves.

Application bundles? Puhlease.

Posted Aug 1, 2008 11:46 UTC (Fri) by khim (subscriber, #9252) [Link]

If you ever worked with these "magic" bundles you'll know they work just fine if we are talking about small self-contained applications (like Firefox or Skype) - exactly where trivial solution (.tar.lzma) already exist - but easily break apart if we are starting to talk about big integrated packages like MS Office/Acrobat (not reader). Then you have the whole non-standard scripts, arcane installation commands and so on.

Sorry. This is non-solution for non-problem. 0install is slightly better - but not by much: basically it's huge distribution without any control with ability to run software from thousand of repositories.

All existing systems are totally, utterly useless because they are addressing easiest 90% of the problem while leaving really problematic 10% untouched. Result: complex system which offers no significant additional value over simple tarball.

Application bundles? Puhlease.

Posted Aug 2, 2008 14:18 UTC (Sat) by salimma (subscriber, #34460) [Link]

The advantage of bundles is that it contains more metadata than a simple tarball.
Compatibility problems might arise, but at least the application launcher could provide more
meaningful feedback to the user.

Or even integrate with the OS' version control system, especially now that Linux has
PackageKit, to say "hey, the user wants to run this new bundle that needs libfoo-x.y, install
whatever package is necessary to provide that".

You'd need a package management system that automatically scans built packages for what
libraries they provide; RPM does that, not sure whether DPKG does.

Application bundles? Puhlease.

Posted Aug 2, 2008 14:51 UTC (Sat) by salimma (subscriber, #34460) [Link]

I elaborated the point on my blog. To summarize, a bundle allows for better integration with the native package management system. It provides a more user-friendly experience too -- drag and drop your applications and libraries. I forgot to argue that in the blog entry.

And who can use this metadata?

Posted Aug 3, 2008 7:20 UTC (Sun) by khim (subscriber, #9252) [Link]

The advantage of bundles is that it contains more metadata than a simple tarball.

So what? README.txt/INSTALL.txt written in English is quite good for human and it's impossible to use metadata till there are no organization which resolves conflicts, give canonical names for libraries, etc. It's easy to request "convert" binary - but then your application will fail due to difference between ImageMagick and GraphicMagick flags. It's easy to request QT 3.3.x but then your application can not start since ABI was changed when immodule-qt was used. And if you need to just start your own background service - you still need to supply bunch of scripts for different distributions. Libraries and binaries (which is currect focus of all these systems) are easy, almost trivial: HDD space is cheap so just bundle all libraries with your package. Easily doable with tarball. And the hard stuff (do you need to talk with esd? with arts? or use PulseAudio daemon?) is not solved by current generation of bundle systems.

Note: I've not said that bundles can never ever work. Who knows? Perhaps sometime in the future... when all will ditch this obsolete Linux and switch to great new HURD... but not today. So far all tries failed miserably. They are either work for limited usecases (0install is example here) or threaten to kill the host system altogether (autopackage and friends).

Wrong goal

Posted Jul 31, 2008 19:43 UTC (Thu) by ncm (subscriber, #165) [Link]

This isn't meant to help users directly.  As Joe notes, no software vendor will claim to run
on any old LSB4-certified system.

However, ISVs who code to LSB4 -- i.e., rely only on what's documented to be present in LSB4
-- will find porting to any LSB4 system will be easier than what they have to do now.
Typically, now, they have to build release packages on some ancient version of Red Hat, and
then rely on forward link compatibility to run on new Red Hats, and everywhere else too.

With any luck this means they can rely on newer OS features than they previously had access
to.  E.g. does LSB have futex?

If this works out, users will benefit by having a wider and possibly more modern choice of
targets certified by the ISVs, because it will be cheaper for the ISVs to port and certify.
ISVs benefit by being able to sell into shops that run distros they hadn't previously been able
to afford to support.

Anyway that's the theory.

Wrong goal

Posted Jul 31, 2008 21:18 UTC (Thu) by jwb (subscriber, #15467) [Link]

That could happen, but what's more likely is that vendor-distributed binary software packages
for Linux will continue to be garbage regardless of the LSB.  It's easy to laugh at random
sourceforge projects, but you haven't really experienced the extremes of software failure if
you've never tried to download and install Oracle or DB2 or even Eclipse for that matter.

Will LSB 4 Standardize Linux? (InternetNews)

Posted Aug 1, 2008 1:12 UTC (Fri) by jd (guest, #26381) [Link]

I get nervous with standardizing layout, because there are still way too many overlaps between
existing packages, way too many version dependencies, and way way too many namespace
collisions. I would need to study LSB4 to see how it addresses these concerns, but really you
want installs in isolated areas and some method of collecting the necessary files into virtual
distributions as needed. Otherwise, you cannot guarantee a suitable environment for any
application, but you do guarantee that with enough applications, collisions and conflicts will
happen.

Distros, not ISVs, more deserve some help

Posted Aug 1, 2008 1:50 UTC (Fri) by coriordan (guest, #7544) [Link]

Standardisation is a good thing, but the end goal should be to respond to the requests of
distros, rather than making distros bypassable via write-for-LSB-run-anywhere.

I think the distro maintainers are one of the best parts in the process of free software
distribution.

Proprietary software requires you to get your software from multiple vendors because each
software developer reserves the right to the the only person distributing their software.  The
end result is that the software does not install in the way users want.  Instead, you get
tonnes of desktop icons and menu items and applications fighting to be the default application
for a slew of file formats.

So I'd say that it's the distros, not the ISVs, that should be the focus of LSB if LSB wants
to help the free software community.

offtopic link

Posted Aug 1, 2008 2:39 UTC (Fri) by coriordan (guest, #7544) [Link]

This issue reminded me of something RMS wrote in October 1998:

I've searched for that essay many times, so now that I've found it I want to pass it on :-)

Distros, not ISVs, more deserve some help

Posted Aug 1, 2008 6:54 UTC (Fri) by k3ninho (subscriber, #50375) [Link]

Perhaps one direction would be to have ISV's use a "LSB distro" against which they can test
their packages.  If it works on the LSB edition, it should work against any other GNU/Linux
distribution also certified to meet the LSB.

However, I doubt that the distributors will agree easily about the minimal content for such a
distribution.  These days, such an idea may even be moot if the QA process can test against VM
images of Debian Stable, Ubuntu LTS, SUSE and Red Hat Enterprise (it's not like there's
licensing costs...).

K3n.

Distros, not ISVs, more deserve some help

Posted Aug 1, 2008 9:28 UTC (Fri) by drag (subscriber, #31333) [Link]

The same thing that makes life hard in Linux for ISVs and proprietary software makers to
support Linux is the same things that make it hard for open source developers and users to use
Linux.


For example:

I like games. I want to play around with video games and I want to play around with making
simple games. It's something enjoyable and fun to do.

Unless, of course, your running Linux. 

Then it's a huge PITA. Language bindings, boost, Python, various libs and all that are used in
all sorts of games or game engines. Very complex levels of dependencies and compiling versions
for your own distribution are very very difficult.

No distribution will support everything you need and even if they do the build-time options
are probably not going to be correct and probably not the correct versions either. 

I have spent _days_ trying to get this or that to compile and to install. Over and over again
I've tried to do this with all sorts of things with Crystalspace or Ogre3D and all of that. 

All of these are open source projects, all of these have developers that use and are fans of
Linux and come from Linux oriented backgrounds.

You know what I would have to do to get it to work in Windows?

Download a EXE and run it. At worst, 2 or three.

That's all. 

Days and days of struggling with Linux and dependencies and hell and failing at it, vs
spending 10 minutes to download a executable. 

(And, of course, that isn't counting the low-quality of Linux 3D drivers which usually end up
thwarting me even after I get everything built.)

So you know most of their users are not going to use Linux, they are going to use Windows.

I've even thought about dual booting Windows just so I can play with open source software.

-----------------------------

Distributions work by simply brute forcing the software into submission. They spend hundreds
of man-hours compiling, testing, and bug hunting. That's how it works and it's the only way it
works.. Through simply massive amounts of time and effort. 


And not only that but it's all duplicated. 

The same amount of work that is required to get Debian's high quality packages still needs to
be entirely duplicated for Suse, Redhat, Fedora, Ubuntu, Mandriva, etc. etc.

The only reason Ubuntu works as well as it does is because of the massive amount of personal
effort Debian developers put into making Debian packages work, and even then because Ubuntu
doesn't care so much about package compatibility they screw things up so that their 'stable'
system is consistently buggier then Debian's 'testing'.

There is very little logical reason for this! Why, if Debian does things well and Fedora does
things well and Redhat does things well... Why on earth is Suse or Ubuntu developers forced to
recreate all of that on their own?

Even if they use Fedora's scripts and packages as the basis for things they use it's still a
huge PITA to _port_ it over to Ubuntu and all sorts of variables inflict all sorts of bugs and
broken behavior on end users.

And, again, the only way to fix it is just a massive amount of _DUPLICATE_ effort on the part
of every Linux distribution developer out there.


They are all using the same programs, similar scripts, similar versions, same everything. The
only difference is that they have to compile the software and build it into packages.

-------------------------


IMO one of the most important things that Linux distributions can do now is work together to
eliminate needless distinctions between them. 

LSB is probably a good start, but it's probably not nearly enough.

Distros, not ISVs, more deserve help -- and can't standardize w/o it

Posted Aug 1, 2008 10:41 UTC (Fri) by krishna (subscriber, #24080) [Link]

<quote>    
The only reason Ubuntu works as well as it does is because of the massive    
amount of personal effort Debian developers put into making Debian    
packages work, and even then because Ubuntu doesn't care so much about    
package compatibility they screw things up so that their 'stable' system    
is consistently buggier then Debian's 'testing'.    
</quote>     
    
Which is one reason Debian's Filesystem Hierarchy Standard and packaging    
requirements are IMHO the gold [meta-]standard for standardization.  I    
think they got it right when they produced lintian, and flag installation    
and interoperability problems as show-stoppers for any given package -- in    
a way, it's like the US Armed Forces' boot camp -- you come in a tar.gz,    
they strip you down, issue you a uniform (the FHS), teach you the rules    
(the control file), and run you through a gauntlet until you either drop    
out and are not included in the release, or conform and can be guaranteed    
to work with others.    
   
As a result, you do have packages that are almost totally guaranteed to    
work together, with 'almost' being well-defined by a rigorously specified    
set of requirements.  They take interoperability and standardization as    
seriously as everything else should be taken in software, and it shows in    
the conspicuous lack of installation problems in Debian's (albeit delayed)    
releases -- when a package is told to 'install', it knows what to pull in,    
can count on everything it pulls in following the same rules, and the    
installation succeeds.      
      
Assembling a standard for distros that don't believe making    
standardization compatibility an absolute requirement of the distribution    
qa process seems to provide a tool while sidestepping the attitude towards    
standardization.      

Distros, not ISVs, more deserve help -- and can't standardize w/o it

Posted Aug 1, 2008 13:51 UTC (Fri) by drag (subscriber, #31333) [Link]

If it was up to me and I was the king of the universe I'd issue a decree that everybody should
simply drop what they are doing and re-base off of Debian Testing. _Right_Now_.

Debian has the most complete, most consistent, and most bug-free packages anywhere I've seen
in any Linux distribution, bar none. And this is due entirely to the sort of thing you've
described AND the tremendous amount of work and organizational effort that they put into it.

Ubuntu _almost_ gets it right. Their mistake was not working towards backward compatibility.
If everything in Ubuntu was installable in Debian and visa versa that would save everybody
involved a lot of effort and a lot of heartache.

IMO, Ubuntu should be not a entirely new distribution, but a installer and a repository based
off of Debian. A carefully tested and configured default configuration that differs from what
you'd get from Debian's "tasksel desktop".

That is you would end up with something like:
deb http://example.com/debian/ Hardy main contrib non-free ubuntu

One distribution that seems to get it right is 64Studio. They do a very good job of making
their packages work with Debian transparently, while still making significant changes to the
kernel and other important system files.


-------

Of course this isn't going to happen and I am sure it would be a unpopular concept among
non-Debian developers.

Distros, not ISVs, more deserve help -- and can't standardize w/o it

Posted Aug 1, 2008 15:05 UTC (Fri) by michaeljt (subscriber, #39183) [Link]

Ubuntu's marketing is based around being something different and special.  I also often feel
that they stick too many of their limited resources into reinventing wheels their own way,
rather than reusing other people's work well.

Distros, not ISVs, more deserve some help

Posted Aug 1, 2008 13:06 UTC (Fri) by cgyrovague (guest, #21692) [Link]

"Standardisation is a good thing, but the end goal should be to respond to the requests of
distros, rather than making distros bypassable via write-for-LSB-run-anywhere."

I look at it a bit different. In any system, there are places where disagreement is important,
because choice is needed. There are also many areas where using multiple approaches is silly
or trivial - best to pick one and run with it. 

A standard like LSB should be a way to sort between the two. Stuff that's really common gets
rolled into a standard, distro-unique stays unique. 
Then app developers can use LSB to cover the 80% common, and focus
on distro-specific goop. Likewise distros can split effort between maintaining the commons and
keeping their identity-specific bits. 


Memory, memory

Posted Aug 1, 2008 5:15 UTC (Fri) by renox (guest, #23785) [Link]

I don't remember exactly which LSB version that was but I do remember that previous LSB
version was criticised:
- for having thread tests which didn't work on fast computers due to a race condition in the
tests, which is amusing.
- by the gcc team for using a C++ ABI which didn't belong to a stable version(*).

Both events made me quite dubious about LSB value at the time..


*: Note that this IMHO was also the 'fault' of the gcc team: if the C++ ABI was stable this
kind of thing wouldn't have happened..
Apparently the C++ ABI has stabilised since then, so at least this won't be an issue anymore.

ABI stability

Posted Aug 1, 2008 5:42 UTC (Fri) by coriordan (guest, #7544) [Link]

ABI stability might be a priority for an organisation such as LF which is a consortium of
proprietary software developers.  For free software projects, it might be quite justified that
this wasn't a priority (it can be good, but just not a top priority).

ABI stability

Posted Aug 1, 2008 11:21 UTC (Fri) by iabervon (subscriber, #722) [Link]

ABI stability is important for distributors of binaries, regardless of whether there is source
available. It doesn't help much that you would be able to compile a program with a stable
compiler version if all of your C++ system libraries are required not to be possible to link
against it by the standard your distribution conforms to. Just because users could throw out
all of their binary packages that use C++ and get the source packages and build them doesn't
mean this isn't a problem for them.

And it's particularly bad for users of free software if it's impossible to have on their
system for a given library, both a file that will work with the provided software and a file
that will work with output from the reliable compiler, because users are likely to want to
compile things and have them work, which is less of an issue for users of only proprietary
software.

Memory, memory

Posted Aug 1, 2008 6:07 UTC (Fri) by michaeljt (subscriber, #39183) [Link]

The lack of C++ ABIs is a pain in the neck, but it is not something I would like to blame on
the GCC people.  The C++ standard is both complex and itself instable, and producing a stable
ABI for it (let alone one compatible with other compilers) is no mean task.  The easiest way
to deal with the problem that I know of is to wrap the ABI in something else (i.e. all exports
are extern "C", or on Windows COM is popular for the purpose).

Will LSB 4 Standardize Linux? (InternetNews)

Posted Aug 1, 2008 10:37 UTC (Fri) by muwlgr (guest, #35359) [Link]

What about package format specified by LSB ? Is it still RPM-only ?

What exactly is the problem?

Posted Aug 4, 2008 4:51 UTC (Mon) by ldo (subscriber, #40946) [Link]

Aren't distro-specific issues the responsibility of the distro maintainers? There are already tens of thousands of software packages available across hundreds of distros, and it all just works, with no further effort on the part of the software developers--they just release the source code and let the maintainers do all the necessary distro-specific packaging.

Oh, you mean you're talking about closed-source ISVs? Why didn't you say so?

What exactly is the problem?

Posted Aug 4, 2008 6:13 UTC (Mon) by coriordan (guest, #7544) [Link]

nail's head says ouch.

What exactly is the problem?

Posted Aug 4, 2008 10:54 UTC (Mon) by seyman (subscriber, #1172) [Link]

> Oh, you mean you're talking about closed-source ISVs? Why didn't you say so?

The LSB has always been about making it easier closed-source for ISVs to package their
applications for GNU/Linux distributions. If you don't care about them, you're better off
ignoring LSB discussions altogether.

Even for closed-source ISVs...

Posted Aug 4, 2008 11:20 UTC (Mon) by khim (subscriber, #9252) [Link]

Do you know anything released for LSB? Adobe Reader, Google Earth, Opera, Skype, etc... all these programs are NOT targeted for LSB. If it does not concern open-source ISVs and closed-source ISVs are ignoring it too... then what's the point?

Even for closed-source ISVs...

Posted Aug 4, 2008 19:12 UTC (Mon) by seyman (subscriber, #1172) [Link]

> Do you know anything released for LSB?

Our (grumpy) editor once noted that MySQL and Real Player had been certified LSB:
http://lwn.net/Articles/197307/

> If it does not concern open-source ISVs and closed-source ISVs are ignoring it too... then
what's the point?

Search me...
A while back, I became convinced that the LSB was a conspiracy to get all the people
interested in running closed-source software on GNU/Linux distributions involved in a project
that
  a) required vast amounts of time and energy to run and
  b) was doomed to fail,
thus minimizing the harm they could do. I haven't seen anything since then that would make me
change my mind.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds