From The Linux Foundation
Jump to: navigation, search

LSB 3.2 Release Notes

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

As a minor release of the LSB 3 series, binary compatibility back to LSB 3.0 is guaranteed. Changes in this release are limited to errata and new modules.

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 seven supported architectures for LSB 3 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 3.2.

Summary of Major Differences

In general, LSB 3.2 is a superset of LSB 3.1, which in turn is a superset of LSB 3.0. The changes made in this release consist largely of the addition of new modules to the specification, most notably the new sections on interpreted languages, printing, and multimedia.

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

Additionally, as described below, a change has been made to the way modules are standardized with the new "trial use" mechanism.

Trial Use Standards

In LSB 3.1, the first optional module was published: the Qt 4 standard. This module was not required for LSB certification, and its tests were not conducted by default. The goal was to allow a "preview" of a coming technology, to help application and distribution vendors prepare for the future.

In our subsequent analysis, it was found that very little data regarding the optional module was collected, and little attention was paid to the optional module. Accordingly, the LSB has changed the optional module program.

New "Trial Use Standards" can now be published by the LSB as part of the release. Tests for these modules are run along with the required tests, and the resulting data is required to be posted as a condition for certification. Vendors are encouraged to address issues found in the tests covering trial use standards. However, failure to conform to a trial use standard will not disqualify an otherwise qualified product for certification to LSB 3.2.

Trial use standards are intended to become required standards in future releases of the LSB. However, if a trial use standard does not meet certain quality and deployment requirements, it is possible for a trial use standard to be dropped from a future release of the LSB without breaking backward compatibility guarantees. Thus, publication of a trial use standard does not guarantee its future inclusion as a required standard.

New Modules

Interpreted Languages

This version of the LSB adds support for the interpreted languages Perl and Python. Subsets of the language features and runtime libraries are documented here.

New test suites for Perl and Python have been added, called "lsb-test-perl" and "lsb-test-python".

  • Note: The lsb-test-perl runtime test compiles code. It will require perl-devel or equivalant, as well as make and gcc. perl-doc or equivalent should also be installed for the Pod tests
  • Note: Mandriva also required perl-CGI to be installed (they replace the core perl module with the CPAN one)
  • Note: FC8 requires perl-Test-Simple, perl-CPAN to be installed (provides Test::More, CPAN)
  • Note: FC8 requires termcap installed for lib/Term/Cap.t test
  • Note: Both perl and python test some networking functions. You will need a working network setup and working name resolution. Perl also has a ping test, which may be blocked by the system configuration

Analagous to lsbappchk for binaries, lsbappchk-perl and lsbappchk-python are now provided to check Perl and Python applications for conformance.


In conjunction with the Linux Foundation OpenPrinting Workgroup, support for printing has been added. Application interfaces have been defined, as well as initial support for portable printer drivers.

Interfaces included in Printing:

  • The CUPS "convenience" API, as well as PPD and Raster interfaces, in the libcups and libcupsimage libraries.
  • Two new commands: gs and foomatic-rip.
  • References to the Adobe PPD specification, as well as some extensions recognized by CUPS and foomatic-rip.

A new test suite for printing interfaces has been added, called "lsb-test-printing".

  • Note: This test requires libcups, libcupsimage, foomatic-rip, ghostscript, and hpijs


Support for libasound, the API for the ALSA sound system, has been added as a trial use module in this release of the LSB.

Core Module Changes

New Interfaces

The following interfaces are new in this release:

  • libc: getdomainname, getdtablesize, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, gethostbyname_r, in6addr_any, in6addr_loopback, inet_aton, mremap, posix_fadvise, posix_fadvise64, posix_fallocate, posix_fallocate64, posix_madvise, posix_spawn, posix_spawnattr_destroy, posix_spawnattr_getflags, posix_spawnattr_getpgroup, posix_spawnattr_getschedparam, posix_spawnattr_getschedpolicy, posix_spawnattr_getsigdefault, posix_spawnattr_getsigmask, posix_spawnattr_init, posix_spawnattr_setflags, posix_spawnattr_setpgroup, posix_spawnattr_setschedparam, posix_spawnattr_setschedpolicy, posix_spawnattr_setsigdefault, posix_spawnattr_setsigmask, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2, posix_spawn_file_actions_addopen, posix_spawn_file_actions_destroy, posix_spawn_file_actions_init, posix_spawnp, pselect, readdir64_r, waitid, xdrstdio_create, __cxa_finalize, , __xpg_basename, __xpg_sigpause, __xpg_strerror_r
  • libpthread: pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, pthread_barrierattr_destroy, pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_spin_destroy, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock, pthread_getcpuclockid, pthread_mutex_timedlock,
  • librt: mq_close, mq_getattr, mq_notify, mq_open, mq_receive, mq_send, mq_sendattr, mq_timedreceive, mq_timedsend, mq_unlink
  • libpam: pam_getenv, pam_putenv.
  • libm: drem, exp10, exp10f, exp10l, fedisableexcept, feenableexcept, fegetexcept.

Added to the programming interface were: auth_destroy, svc_destroy, svc_getcaller

Test Name Change

The "lsb-runtime-test" test suite has been renamed to "lsb-test-core", to reflect its role more accurately.

New Tests

Many new tests have been contributed to the core tests by Pavan Naregundi of IBM.

New tests for profile.d, lsb-release, inet_aton, pam_getenv, pam_putenv, posix_spawn_file_actions*, posix_spawnattr*, feenableexcept, fedisableexcept have been added to "lsb-test-core". These may still need some fine tuning once we get more distribution exposure.

C++ Module Changes

= Test Suite Name Change

The test suite was renamed from qmtest_libstdcpp to lsb-test-libstdcpp to match the naming convention of the other test suites. The test harness was renamed from qm to lsb-qm to avoid conflicting with distribution-packaged versions of QmTest.

Desktop Module Changes

New and Upgraded Libraries

  • The Qt 4 specification has been upgraded to a Required Standard and is now included in the LSB Desktop specification. In addition, it has been uplifted to reflect the Qt 4.2 API as distributed by TrollTech.
  • The freetype font rendering library has been added.
  • The X extension libraries Xrender and Xft have been added.

Deprecated Libraries

With the uplift of Qt 4 to a Required Standard, the Qt 3 standard has been deprecated. This constitutes notice of our intent to remove Qt 3 from the specification after three major releases of the LSB.

New Interfaces

The following interfaces are new in this release:

  • libgtk: gtk_toolbar_set_icon_size.
  • libpng: png_set_tRNS_to_alpha, pnt_set_gray_1_2_4_to_8, png_set_palette_to_rgb

New Desktop Specifications

Four new specifications for standards created by the consortium, namely:

  • Desktop Base Directory
  • Desktop Entries
  • Desktop Menu Specification
  • Icon Theme Specification

New Commands

As trial use, the following commands from xdg-utils have been added: xdg-desktop-icon, xdg-desktop-menu, xdg-email, xdg-icon-resource, xdg-mime, xdg-open, and xdg-screensaver. These commands are also provided in a package in the SDK, so ISVs can install them on systems which don't yet supply them.

Withdrawn Interfaces

Several interfaces from Qt 3 were introduced by mistake; they are never directly referenced by applications. These include the QDragManager class, as well as the interfaces QUnicodeTables::lower, QTextEdit::UndoRedoInfo, and the typeinfo and vtables for QBmpHandler, QPngHandler, QPpmHandler, QXbmHandler, QXpmHandler, and QTextDocumentLayout.

New Tests

  • A new test suite for the desktop interfaces has been added. This test suite, called "t2c-desktop-tests", has been written by ISPRAS.
  • A new set of Qt4 tests are also now part of the "lsb-test-desktop" package. This may still need some fine tuning once we get more distribution exposure.
    • Note: Some of the tests for libQtSql require the sqlite driver (libqt4-sql-sqlite (SLES10), qt4-database-plugin-sqlite-lib (Mdv 2008), qt4-sqlite (fc8))
    • Note: Not all distributions install the qt4 libraries by default yet, either
  • New tests for freetype, Xft, Xrender, and fdo have also been added to "lsb-test-desktop".
  • The X11 test suite, lsb-vsw4, has been replaced with a much more modern version, lsb-xts5.

New Certification and Problem Reporting Systems

New systems for certifying to the LSB and formally requesting waivers for problems in the LSB are now available. For more information, see the Certification page.

More Information and Feedback

The Linux Foundation keeps track of issues with the 3.2 specification and software on their Web site, and welcomes comments. Issues can be found in our bug tracker, on the mailing list at, and on several LSB Wiki pages, especially TestPilot32.