Getting Started With LSB 3.0

LSB 3.0 is out! This page provides some resources for getting started: what's new in LSB 3.0, access to the specification, developer tools, test suites and other software.

What's New in LSB 3.0

LSB 3.0 represents a few major bits of work and lots of bugfixing. The C++ ABI is uplifted to the one that has become current best practice (as delivered in both the gcc 3.4 and gcc 4.0 series of C++ compilers/standard library). Further work to align with ISO/IEC 9945:2003 POSIX has been done. The librt library has been added. A few new interfaces and commands are now required; some interfaces previously marked as deprecated have been removed. For more details, see the Release Notes

The LSB 3.0 Specification

The LSB 3.0 Specification documents follow the same model as LSB 2.x.

The LSB 2.0 document structure laid the groundwork for the creation of additional specification modules which exist on top of the Core LSB specification. These new modules can permit the addition of functionallity which might otherwise be considered out of scope for the LSB, as well as allowing groups outside of the LSB to add functionallity using the framework established by the LSB.

The LSB 1.3 specification consisted of a monolithic document known as the Generic LSB, which is supplemented by an architecture specific document.

The LSB 3.0 specification, like LSB 2.x, is split into a set of documents, organized by functional area. The FSG's LSB Certification program then reassembles these documents into a single certification target. This extra layer of documents will permit certification programs for other system configurations to be created in the future.

The table below provides a key to the composition of the specification documents. Document sets available for certification are shown in the left column. Available documents are shown in the Architecture column. A blank space indiciates a document which has not yet been created. The full document set with links may be found on the Released Specifications page.

Module Functional Area Architectures
LSB-Core ELF Generic, Processor-specific
LSB Generic, Processor-specific
Packaging Generic, Processor-specific
LSB-CXX C++ Generic, Processor-specific
LSB-Graphics Graphics Generic only
Desktop  
LSB-I18n OpenI18n Generic only

How to Use an LSB 2 System for LSB 3

Unofficially, LSB 2-conforming systems should be quite usable for most LSB 3 work, except that it needs a different compiler and matching C++ library. If the system has previously been used for LSB 2 development, the LSB 3 developer tools need to be installed (see below). If the LSB 3 package dependency is needed, it may be added to an LSB 2 system by installing an unofficial package (lsb-dummy) from the LSB project. See http://ftp.freestandards.org/pub/lsb/lsbdev/unreleased/. This package will add the LSB 3 "provides" (lsb-core and lsb-graphics for the target architecture and noarch) if lsb-core-arch=2.0 and lsb-graphics-arch are already provided.

WARNING: the lsb-dummy package does not provide official LSB 3 support and thus should be used with care - official support can only come from your distribution vendor. When such a support package is available, lsb-dummy will need to be removed.

LSB 3 Testing

The LSB 3 testing program builds on the LSB 2 tests. lsb-runtime-test has now incorporated the PAM tests, formerly a separate package. lsb-test-vsw4 is now a required package for X11 testing. A C++ testsuite, qmtest-libstdcpp, is also required. For more informattion about LSB platform testing, see the LSB Test pages. A new test, lsbcmdchk, verifies that the required commands are present on the system.

A package checking tool (lsbpkgchk) is now available. lsbappchk now correctly checks a shared library which will be provided either standalone or with the application (previously shared libraries had to be checked by specifying an application which used them). In case an archive library is to be used to contribute to an LSB binary, there is now a checker tool (lsbarchk) which can check it.

Releases

The released test packages can be found on the LSB Download Page. Debian users will need to convert these packages with apt for installation.

LSB 3 Developer Tools and Application Tests

The developer toolset consists of packages named: lsb-build-base, lsb-build-cc, lsb-build-c++ and lsb-build-chroot. For more information on the build tools in general see the LSB Build page.

The application test toolset consists of packages named: lsb-appchk, lsb-libchk, lsb-cmdchk, lsb-archk and lsb-pkgchk. lsb-cmdchk and lsb-libchk are of interest primarily to system implementors. lsb-appchk, lsb-pkgchk and lsb-archk are of interest primarily to application developers.

All of these packages install under /opt/lsb to comply with FHS guidelines. /opt/lsb is reserved to the LSB project.

Build Environment

A new chroot-based build environment is provided with LSB 3.0. The package is named lsb-buildenv

Host System Issues

A gcc version 3.4 compilation system is required to produce correct binaries. gcc version 4.0 is mostly compatible, but under some circumstances when building C++ code will embed a call to an interface (__cxa_get_exception_ptr) that is not part of the LSB and is not portable to systems with a libstdc++ derived from the gcc 3.4 code branch.

Releases

The LSB 3 released packages can be found on the LSB Download Page. Debian users should get these packages directly from the Debian project, or convert the LSB project's packages with alien.

Nightly Build Snapshots

The developer tools and application test tools are built nightly. To access these untested versions, see http://ftp.freestandards.org/pub/lsb/snapshots. Snapshot and beta versions should not be used for official builds and tests as they may represent unapproved work-in-progress towards a future specification.

Debian archive

For Debian users, a package archive is generated from these nightly builds. Although (note this is currently working only for the ia32 architecture although packages are also built for ). To access these, add the following lines to /etc/apt/sources.list:

        # LSB project snapshots
        deb http://ftp.freestandards.org/pub/lsb binary/
	

Yum archive

For RPM users who have the yum tool available, the snapshots are also yum-enabled. To access these, add the following lines to /etc/yum.conf.

        [lsb-snapshots]
        name=LSB project snapshots - $basearch
        baseurl=http://ftp.freestandards.org/pub/lsb/snapshots
	

Yum can be obtained from www.linux.duke.edu/projects/yum. It requires python-rpm (python api to rpm database), which is part of the upstream rpm packages but is not necessarily packaged by all distributions.

LSB 3 Sample Implementation

Releases

The LSB 3 Sample Implementation is available from the LSB Download Page.

LSB 3 Application Battery

Releases

The LSB 3 Application battery can be found on the LSB Download Page.


Last modified 2005-09-09 mats wichmann