LSB 4.0 Resource Page

This page contains all of the links needed to download or reference all parts of LSB 4.0, including:


If you have suggestions or bugs detected feel free to contact us via lsb-discuss mailing list or irc://irc.freestandards.org/#lsb. We greatly appreciate your help.

Please also see other interesting pages related with the LSB 4.0 release:

The picture below represents the key LSB deliverables for application and distribution developers (click on particular items for details):

Linux Developer Network LSB Certification System LSB Navigator LSB Specification Linux Application Checker LSB Eclipse Plugin LSB Sample Implementation LSB SDK LSB Application Tools LSB Distribution Testkit Multi-Distro Testing Farm LSB Distribution Tools LSB Concept Tools

Specification

The Linux Standard Base (LSB) specifications are made available in two parts: an architecture independent (generic) part and an architecture dependent part. The architecture independent part is comprised of five modules: Core, C++, Desktop, Languages and Printing. The architecture dependent part is comprised of three modules: Core, C++ and Desktop.

Also, there are mandatory and trial use modules in the specification. The former impose mandatory requirements on LSB compliant distributions and applications may safely rely on the functionality described in mandatory modules. Functionality in trial use modules is not required in LSB compliant distributions and applications should take this into consideration. Meanwhile, trial use modules represent candidates for inclusion in the next versions of LSB.

  HTML One Page HTML Date
Mandatory Modules
LSB 4.0 Generic

Core, C++, Desktop,
Interpreter Languages, Printing

Core, C++, Desktop,
Interpreter Languages, Printing

06-Oct-2008
LSB 4.0 (IA32)

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (IA64)

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (PPC32)

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (PPC64) 

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (S390)

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (S390X) 

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
LSB 4.0 (AMD64)

Core, C++, Desktop

Core, C++, Desktop

20-Nov-2008
Trial Use Modules

LSB 4.0 Trial Use

ALSA & Java & xdg-utils

ALSA & Java & xdg-utils

20-Nov-2008

Older versions of the LSB are available here. Development snapshots of the LSB specification are available here.

We are working on a map to the contents of this area; in the meantime, entries prefixed with LSB- are books that will eventually be published; the others are informational module specifications.

Another good way for browsing LSB specification and data about related Linux ecosystem is using LSB Navigator.

LSB Application Tools

LSB application tools help developers in creating LSB compliant applications and finally achieving LSB Certified status.

Linux App Checker

The Linux App Checker contains tools for analyzing dependencies (libraries and interfaces externally required) of application packages. In particular it helps developers in testing their applications for LSB compliance and enables easy steps for LSB certification. To install the Linux App Checker, please download the appropriate tar file, extract the tar file, and run the included install.sh script.

Please refer to Linux App Checker Getting Started for instructions on how to use the tool.

Linux Application Checker
Linux Application Checker (IA32)

lsb-app-checker-4.0.0-4.ia32.tar.gz

12-Feb-2009
Linux Application Checker (IA64)

lsb-app-checker-4.0.0-4.ia64.tar.gz

12-Feb-2009
Linux Application Checker (PPC32)

lsb-app-checker-4.0.0-4.ppc32.tar.gz

12-Feb-2009
Linux Application Checker (PPC64)

lsb-app-checker-4.0.0-4.ppc64.tar.gz

12-Feb-2009
Linux Application Checker (S390)

lsb-app-checker-4.0.0-4.s390.tar.gz

12-Feb-2009
Linux Application Checker (S390X)

lsb-app-checker-4.0.0-4.s390x.tar.gz

12-Feb-2009
Linux Application Checker (AMD64)

lsb-app-checker-4.0.0-4.x86_64.tar.gz

12-Feb-2009

LSB Software Development Kit (SDK)

The LSB Software Development Kit (SDK) contains the LSB Development Environment (shared library stubs, headers, lsbcc, and lsbc++) for building LSB compliant binaries.

To install the LSB SDK, please download the appropriate tar file, extract the tar file, and run the included install.sh script.

LSB 4.0 Software Development Kit (SDK)
LSB 4.0 SDK (IA32)

lsb-sdk-4.0.2-1.ia32.tar.gz

15-Dec-2009
LSB 4.0 SDK (IA64)

lsb-sdk-4.0.2-1.ia64.tar.gz

15-Dec-2009
LSB 4.0 SDK (PPC32)

lsb-sdk-4.0.2-1.ppc32.tar.gz

15-Dec-2009
LSB 4.0 SDK (PPC64)

lsb-sdk-4.0.2-1.ppc64.tar.gz

15-Dec-2009
LSB 4.0 SDK (S390)

lsb-sdk-4.0.2-1.s390.tar.gz

15-Dec-2009
LSB 4.0 SDK (S390X)

lsb-sdk-4.0.2-1.s390x.tar.gz

15-Dec-2009
LSB 4.0 SDK (AMD64)

lsb-sdk-4.0.2-1.x86_64.tar.gz

15-Dec-2009

LSB Sample Implementation

The LSB Sample Implementation serves two purposes. It acts as a neutral test platform for application testing, and it acts as a neutral build environment.

The SI is brand-new for this release, and has its own release notes.

The preferred way to use the Sample Implementation is with the LSB SI Tools. To learn more about the LSB SI Tools, please refer to the LSB SI Tools Getting Started page.

Because of the length of time that the SI takes to build, not all architectures will be ready to test right away. Please refer back to this page for the list of available architectures.

LSB 4.0 SI Tools
LSB 4.0 SI Tools (IA32)

lsbsi-tools-4.0.0-1.i586.rpm
lsbsi-chroot-4.0.0-1.i586.rpm

10-Oct-2008
LSB 4.0 SI Tools (AMD64)

lsbsi-tools-4.0.0-1.x86_64.rpm
lsbsi-chroot-4.0.0-1.x86_64.rpm

13-Oct-2008

LSB Eclipse Plugin

LSB Eclipse Plugin is intended to facilitate development of portable C/C++ applications for the Linux platform by integrating the LSB tools into the Eclipse IDE. It enables smooth using the LSB SDK for building C/C++ applications within the Eclipse IDE along with "at hand" checking the applications with the Linux Application Checker.

To install the latest version of LSB Eclipse Plugin, please refer to LSB Eclipse Plugin Installation Instructions. To learn more about the LSB Eclipse Plugin, please refer to LSB Eclipse Plugin Getting Started page.

LSB Distribution Tools

LSB distribution tools help distribution and upstream developers in analysing their products with regard to LSB requirements. They can be useful both as just a part of QA cycle and as a part of LSB certification process.

LSB Distribution Testkit

The LSB Distribution Testkit (DTK) contains everything developers need to test a Linux distribution for LSB compliance. The front end of the Distribution Testkit is DTK Manager that helps visually manage the testing process. DTK Manager automatically downloads necessary tests from the Linux Foundation FTP server, so please be sure you have Internet connection on the testing system the first time you want to run the tests.

To install the LSB DTK Manager, please download the appropriate tar file, extract the tar file, and run the included install.sh script.

Please refer to DTK Manager Getting Started for instructions on how to use the tool.

LSB 4.0 Distribution Testkit
LSB 4.0 Distribution Testkit (IA32)

lsb-dist-testkit-4.0.1-1.ia32.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (IA64)

lsb-dist-testkit-4.0.1-1.ia64.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (PPC32)

lsb-dist-testkit-4.0.1-1.ppc32.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (PPC64)

lsb-dist-testkit-4.0.1-1.ppc64.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (S390)

lsb-dist-testkit-4.0.1-1.s390.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (S390X)

lsb-dist-testkit-4.0.1-1.s390x.tar.gz

10-Dec-2009
LSB 4.0 Distribution Testkit (AMD64)

lsb-dist-testkit-4.0.1-1.x86_64.tar.gz

10-Dec-2009

LSB Multi-System Testing

LSB DTK Manager supports automation of scheduled (e.g. nightly) runs of the LSB certification tests on multiple test systems with collection of the results on a single server. Please refer to our Distribution Autotesting page and to the DTK Manager Nightly Run HOWTO for details.

Release Notes

Release Note Contents

LSB 4.0 Release Notes

The LSB project team is proud to announce LSB Version 4.0. The specification is available for download at the Specification page. The tools, tests and development environment are available for download at the Download page.

Although all LSB releases starting with version 3.0 are compatible with previous releases, LSB 4.0 is a major release, and contains significant changes compared to the 3.x series.

The LSB consists of a number of components, or modules:

    • The Core specification, described by a Generic specification and seven Architecture Specific supplements. The Core specification in turn is made up of three "books", however these are not released separately, only combined as lsb-core:
      • The ELF specification
      • The LSB interface specification
      • The packaging specification
    • The C++ module (with Generic module and seven Architecture Specific supplements)
    • The Desktop module (with Generic module and seven Architecture Specific supplements)
    • The Languages module
    • The Printing module
    • The Multimedia module
    • The Security module

The seven supported architectures for LSB 4 are: IA32, IA64, PPC32, PPC64, S390, S390X, X86_64.

There may be other modules or books in an LSB specification development tree but only the above are released as part of LSB 4.0.

Summary of Major Differences

In general, LSB 4.0 is a superset of previous LSB 3.x releases, with new modules added. New low-level functionality has been added in LSB 4.0, however, which may introduce issues with binary compatibility between LSB 4 applications and LSB 3 distributions. Our binary compatibility guarantee, however, continues to be in force for LSB 3 applications running on LSB 4 distributions.

In a number of places, the standards have been relaxed or adjusted a bit to correct errors and accommodate a larger number of use cases.

Multi-Version SDK

With the release of LSB 4.0, the LSB SDK is now decoupled from the release of new specifications. The 4.0 SDK can build applications to the LSB 3.0, 3.1, 3.2, or 4.0 specifications, and can switch at will between them.

lsbcc now automatically adds a preprocessor define __LSB_VERSION__. This define can be checked if necessary in source code for conditional builds (bug 1676). By default, lsbcc will set this to a value of 40; starting with this version the development environment can target different versions of the LSB, the default can be overridden by setting the environment variable LSBCC_LSBVERSION to a different two-digit version code.

Linux Application Checker

ATK Manager (released with previous versions of the LSB) has been enhanced, and is now called the Linux Application Checker. Besides LSB compliance information, the tool can now report on your application's compatibility with the leading Linux distributions.

New Packaging Tool

The SDK now comes with a tool that makes the creation of LSB-compliant packages easier. Instead of maintaining a spec file, simple packages can be built from the commmand line as a final step in an existing build/install process.

New Sample Implementation

The Sample Implementation has been completely redesigned, and is now based on the rPath Conary technology instead of Linux From Scratch. A tool suite has also been developed to make SI use easier.

Best-Effort Dynamic Linking

The LSB dynamic linker, while essential for distribution flexibility, can make application deployment more difficult. To fix this, the SDK now supports a "best-effort" mode for supporting the LSB dynamic linker which allows LSB-compliant applications to work on systems missing LSB support, making them work on a "best effort" basis.

Stack Checker

Support for the new stack checker facilities in newer versions of gcc are now supported in LSB-compliant applications.

Updated Support for PowerPC

Support for the new size of long doubles has been added to the SDK. Applications built with the SDK to target 4.0 will use the new size; applications built to target the 3.x versions will continue to use the old size.

New Modules

A new "Security" module has been added to the LSB on a trial-use basis, covering application interfaces for controlling security. The first addition is the NSS library from Mozilla, used in applications like Firefox to provide SSL/TLS support and general-purpose encryption.

New Language: Java

Building on the support for non-native-code languages introduced in LSB 3.2, we have added Java to the list of supported languages as a trial-use module.  This is intended as a preview of what Java support in the LSB wil look like in a future LSB release.

New and Upgraded Libraries

Besides the aforementioned NSS libraries, the following libraries are new or upgraded:

    • glibc has been upgraded from the 2.3 API set to 2.4.
    • The GTK+ library suite has been upgraded from the 2.6 API set to 2.8.
    • The Cairo library has been added.
    • libGLU has been added.
    • The X Test extension has been added.

New Interfaces

A full list of the new interfaces is too long to relate here, but can be found on the LSB Navigator's statistics page. Some highlights:

    • The aforementioned stack checker interfaces emitted by newer gcc versions
    • The new long double interfaces on PPC64
    • The epoll interfaces
    • Unlocked versions of many standard I/O functions
    • Scheduler affinity functions
    • The inotify interfaces
    • sendfile()
    • Many libpng functions missed previously, but identified via the LSB Navigator
    • Several pthread mutex-related functions
    • Several C++ template classes

New Tests

Four new test suites have been added thanks to our continued partnership with ISPRAS.

Two test suites generated using the AZOV system which cover Qt 3 and Qt 4 have been contributed. These are the so-called "shallow" tests, which mostly cover interface existence and call semantics.

Using the T2C test harness, a new set of C++ tests has been added, joining the desktop tests contributed in LSB 3.2. These are "normal" tests, which cover the most important functionality of the interfaces and some error conditions.

Finally, new core tests based on the OLVER framework have been added. These are "deep" tests, in that tests are rigorously tied to parts of the specification, and nearly all assertions in the specification have tests to back them up.

In addition, many new tests have been contributed to the original core tests by Pavan Naregundi of IBM.

New Commands

In addition to the Java interpreter, the "command", "seq", and "type" commands were added to LSB 4.0.

More Information and Feedback

The Linux Foundation keeps track of issues with the 4.0 specification and software on their Web site, and welcomes comments. Issues can be found in our bug tracker, on the mailing list at lsb-discuss@lists.linux-foundation.org, and on several LSB Wiki pages, especially TestPilot40.