LSB 5.0 Release Notes
The LSB project team is proud to announce LSB Version 5.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.
LSB 5.0 contains two major changes to the specification, and is the first major release to break 100% compatibility with earlier versions. It is compatible with LSB 3.0, and mostly compatible with LSB 3.1 and later, with one exception noted below. LSB 5.0 supports seven architectures: IA32, IA64, PPC32, PPC64, S390, S390X, and X86_64.
This release is dedicated to the memory of Christopher Yeoh, a long-time friend and colleague, and a contributor to LSB from the earliest days. Without his dedication this work would not have been possible.
Summary of Major Differences
In general, LSB 5.0 is a superset of LSB 4.1, with some new components added, and one component removed.
FHS 3.0 Released
Simultaneously with this LSB release, we are also releasing the first FHS release in over a decade, FHS 3.0. LSB 5.0 incorporates the changes in FHS 3.0, which bring the specification up to date with the community's current best practices. See the separate release notes for FHS 3.0 for more details.
Qt 3 Removed
With this release of the LSB, the Qt 3 library has been removed. This library has been listed as deprecated in previous versions. This has two implications: Qt3 applications specifically targeting LSB 5.0 cannot be LSB compliant unless they link Qt 3 statically; and distributions which claim LSB 5.0 support only are not obligated to provide the dynamic library.
With 5.0, the LSB has evolved its module strategy. For the first time, it is possible for an implementation to deliver only the parts of the specification that applications need, and applications do not need to depend on the full specification.
There are five LSB modules:
- LSB Core
- LSB Desktop
- LSB Languages
- LSB Imaging
- LSB Trial Use
Although the modules are theoretically independent, in practice LSB Core is a fundamental dependency for the other four. LSB Trial Use is optional, but if implementations choose to provide it, they should comply with the specification.
At this time, the LSB certification program at the Linux Foundation still requires that an implementation demonstrate compliance with all of the modules except for LSB Trial Use. There is no longer a requirement that if a user requests "LSB support" that the entire set of support software be installed. In practice this means that if, for example, a server-oriented distribution never installs application packages that depend on LSB Desktop, that support for LSB Desktop can be left uninstalled - but it must still be available if actually needed.
The Imaging module was previously known as the Printing module; it incorporates the new scanning libraries to complement the existing printing libraries.
Additionally, LSB 5.0 introduces a new book called LSB Common. This is not a module as it introduces no technical elements or normative requirements, but it does provide a useful unifying introduction which describes the other module specifications and where libraries, submodules and commands fall within those specifications.
Trial Use Components
LSB 5.0 contains two Trial Use components. The Gtk3 libraries, intended for the Desktop module, did not mature in time for the release. This is exposed as the experimental LSB_Toolkit_Gtk3 submodule. The single library libpng15 (PNG version 1.5) also did not achieve necessary maturity to become mandatory. As a single library, is is exposed in the LSB_TUM (trial use components) submodule. In order to use these, they must be explicity requested for use in the SDK; implementations are not required to provide them, but if they do, they should conform with the trial use specifications.
New and Upgraded Libraries
The following libraries have been upgraded:
- Many GTK+ library dependencies have been updated to 2.32, and the support needed for GTK+/GDK 3.0 is available, although resident in the trial use module in this release.
- Cairo has been updated to 1.30.
- OpenGL has been updated to the 2.1 API.
- The XCB API for X11 has been added.
- Other new libraries: SANE, libncursesw, libtiff, libxslt.
A full list of the new interfaces is too long to relate here, but can be found on the LSB Navigator's statistics page. Besides the library upgrades mentioned above, here are some highlights:
- aio interfaces (bug 1391)
- argz* and envz* functions (bug 2162)
- CUPS ippReadIO/ippWriteIO (bug 3087)
- A number of interfaces centered on inflateCopy in libz (bug 3726)
A large number of bugs have been fixed as part of this release. A complete list may be found in the tracking bug in the LSB's bug database.
There are a few issues discovered late in the release process that will be fixed in a maintenance release of LSB 5.0. These include:
- The Distribution Checker still defaults to running the 4.1 tests, instead of the 5.0 tests. See bug 4091 for more information.
- The olver-core test suite fails to generate its report using the Perl-based report tool. To work around this problem, install a recent version of Java on the system under test. See bug 4088 for more information.
- The libchk tests will sometimes treat errors in trial use modules as errors, instead of warnings. See bug 4056 for more information.
- A number of test failures still under investigation will report as failed in the Distribution Checker. These will be addressed with updates to the problem report database. Please contact the workgroup if you have any concerns with test results. You can retrieve the latest problem report database within the Distribution Checker with the "Refresh List" button under "Custom Tests", and regenerate any test reports with the new data.
- The wrong documentation was included in the App Checker tarballs as downloaded from the Download page; the package documentation was included instead of the "run-in-place" documentation. Please refer to the App Checker Getting Started online documentation for instructions on how to run the App Checker.
More Information and Feedback
The Linux Foundation keeps track of issues with the 5.0 specification and software on their Web site, and welcomes comments. Issues can be found in our bug tracker, on the mailing list at email@example.com, and on several LSB Wiki pages, especially TestPilot50.