Specification work targeted to be completed at the end of 2005Q1. The tracking bug for the LSB 3 specification is bug 611.
- Update C++ to gcc 3.4 - bug 618. Previously there was a question of whether a later c++ would be better, but it's now clear this is the only version that meets the criteria within the timeframe listed.
- Add data definitions for Classes in libstdc++ (related to adding Class support to devchk). An earlier plan was to create a tool for extracting ABI information from .debug sections - see Tool Improvements below. Vtable work is tracked as bug 699
- Complete ElfUpdate3: what new sections and flags needed to be documented. These probably need to be backported to LSB 2, they're causing appchk failures. bug 769
- Remove commands and interfaces deprecated in LSB 2.x. See bug 715
- POSIX Alignment. See Austin Group report and PosixConflicts. Also see bug 695 for command additions.
- Examine library symbol versions and decide whether to uplift. bug 716
Additional spec criteria: LSB 3 will be done before the ISO ballot resolution. In order to avoid divergence of LSB and ISO-LSB, changes to lsb-core should additionally be evaluated on the basis of appropriateness to be folded back into the ISO document, and tracked as discrete changes that can easily be applied there. See IsoChanges.
Other interesting work: these are priorities from lsb-futures, but don't have a specific committment to be delivered for LSB 3:
- X11 extensions. There are a few extensions (XShape, DPMS, XShm, MIT-MISC, XSync, XSecurity, Xdbe) described in the LSB for libXext, there are a few more that would serve as enablers for other stuff to be included if they were added. XInput is being worked on. bug 703
- Low-level graphics libraries: png, tiff, jpeg. These seem to be used directly by a lot of apps, as well as indirectly. If it was just indirectly, meaning these libs are only used by toolkits that people link to, rather than calling the libs directly, then we might not need to add. Post-3.0.
- Font handling. Some combination of Xft, freetype and fontconfig. It's not yet clear which of these are used directly (see previous item) and thus need to be in the spec. Post-3.0.
- bzip2 is not a priority at the moment, lsb-futures considers it blocked on demand. It's tempting because it looks easy to implement, but we want to be sure it actually advances the state of the lsb for app developers. See also bug 404. Additionally, there's a question of whether rpm should support bzip2 payload, that can be added without adding bzip2 lib but does need a format spec. See bug 402. All of this is post-3.0.
- Add GTK and other Gnome libraries, see also GnomePlan3 and bug 705. Note: this is actually a parallel project to create a new module, which can be released when ready. This will definitely not be part of LSB 3 itself.
- Uplift OpenGL spec - bug 707. Needs someone to report on differences/compatibility issues - in the absence of that, this is considered a low-priority item. LSB's version is based on the published Linux ABI, which was OpenGL 1.2. Since then there have been releases up to 1.5, and in December, OpenGL 2.0 was released. Mesa 6.x implements the 1.5 ABI (although for legal reasons does not claim to be a compatible replacement for licensed OpenGL). OpenGL also has additional libraries, not in the LSB.
- GLX (1.3): used on UNIX OpenGL implementations to manage interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering. Is this a distinct library? Don't see on Mesa implementation.
- GLU (1.3): GLU is the OpenGL Utility Library. This is a set of functions to create texture mipmaps from a base image, map coordinates between screen and object space, and draw quadric surfaces and NURBS. Note that lsb-futures has a tracker for the GLU library.
- GLUT (3.7): GLUT is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming interface for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL programming and provides a portable API so you can write a single OpenGL program that works on both Win32 PCs, Mac OS, and Linux/UNIX workstations. GLUT is not evolving, most Linux systems use Freeglut instead.
- unbundled version of tet: allow several tests to be resident at the same time, all pointing to a common tet. Provide an easy-to-install bundle that other developers can use in producing testcases (e.g. the X and gtk projects might be able to use this). bug 712
- lsb-test-pam must be able to coexist with lsb-runtime-test, uninstalling one to install the other is not acceptable. One approach is to fold pam in to the base testsuite; another is some rework to take advantage of unbundled tet (see previous item). bug 713
- explore more unbundled runtime test suite. possibly issue as several packages; makes it easier for developers to roll a component without reissuing the whole suite. On the flip side, does this make it harder to work out what to certify against?
- can command tests be introduced partly? it looks like too much work to add all, but if the testsuite is added with a few noncontroversial commands it's a starting point. bug 718. Existence tests are partly done in the FHS module, lsbcmdchk could be released to test all.
- libchk needs to understand library base version - not needed now
- Add Class support to devchk - done
- Check OBJT sizes in libchk - done (data may not be complete)
- Release dynamic application checker: lsbdynchk bug 619
- Release packaging tests: lsbpkgchk bug 620, lsbpkginst bug 621
- Release tools for testing dev libraries: lsbarchk bug 724
- Expand scope of all runtime tests
- New tool for reading class ABI from .debug section of object file. Update: there may not be enough available for the C++ class definitions, but there is enough DWARF data to descibe a libraries APIs and data types.
- Tool to extract library interfaces and insert into database
- To support more effective work processes, complete as much of TodoList as possible.
Build tool and other software deliverables targeted to be completed at the end of 2005Q2, but early versions need to be available to match the spec (i.e. Q1). The build tool work is tracked by bug 616.
- Expanded build environment to replace old lsbdev-chroot
- Figure out best way to build lsb-build-c++
The build tool work is tracked by bug 614.
- Uplift to new packages as in ToolsGroup
The build tool work is tracked by bug 615.
- Uplift to new packages as in ToolsGroup
- Add new commands as required by POSIX alignment work in the spec.
LSB 3.0 Completion Checklist