This is a page describing the LSB 4.1 project.
Note that this isn't a conventional project plan that you'd want to go publish in an article, it's an evolving list of things that are going on - more like a whiteboard, where things get added, crossed out, and occasionally completely rewritten as conditions change. Eventually, it will firm up and mostly just get status updates, but until that point, take things with the proviso that changes may occur.
Work on this LSB release, as with all others, is tracked through a combination of bugs and wiki pages. Smaller tasks should have at least a bugzilla entry; large tasks should have their own wiki page and probably should have bugs as well. Compound tasks should use "rollup" bugs, which are blocked by the collection of different components. In fact, the overall project is tracked that way, the rollup bug for the overall LSB 4.1 release is bug 2778 and it references rollup bugs for major areas of the release, such as Software Development Kit, Specification, etc. It is also useful to search for bugs by using the Target (or Target Milestone) value of 4.1. Resources - be they bugs, other wiki pages, etc. - should be linked in on this page, and completed tasks should be marked as done (not removed). Keeping everything linked together by way of cascasing bugs makes it much easier to track everything that's been done for writing release notes and other commentary on the release.
More formal project planning is being done either through Bugzilla (as described above) or via the LSB 4.1 release tracker.
- 1 Release Checklist
- 2 Task Status
- 3 General Planning Philosophy
- 4 Infrastructure
- 5 Development Tools and Checkers
- 6 LSB-Core Module
- 7 LSB-C++ Module
- 8 LSB-Desktop Module
- 9 LSB-Printing Module
- 10 LSB-Multimedia Module
- 11 LSB-Languages Module
- 12 Other Proposed Libraries
- 13 Testing
- 14 LSB Sample Implementation
- 15 Summary: Proposed Libraries
- 16 Implementation Priorities
The following tasks need to be completed before a release candidate for 4.1 can be done:
- Bump the versions on all packages, bundles, etc. from 4.0.9x to 4.1. Status: mostly done
- Integrate the signing keys into the proper places in the build process. Status: Not done
The following tasks are proposed to be delivered in LSB 4.1:
|Add interfaces, etc. to spec to clean up App Checker||High||Some bugs filed; need to make sure we're complete|
|ALSA test suite based on T2C||High||T2C markup started; 723 of 723 interfaces marked up, catalogs generated.||Need tests before we can make this required.|
|Printing spec enhancements||Medium||See CUPS41. Will require participation from the Printing workgroup.|
|LSB Sane||Medium (but see link)||Downgraded due to absence of sane in some current distros. Also see bug 2199. Will require Printing workgroup participation.|
Other lower-priority tasks for LSB 4.1:
|Plan for Google Summer of Code||Medium||TBD||We should get a jump on this year.|
|OpenGL||Medium||A plan exists|
|LSB RPM Uplift||Medium|
|Uplift qm test harness||Medium|
|LSB DBus||Medium||Downgraded due to status of D-Bus in some current distros.|
|Non-gcc compiler support||Medium||Acquired compilers.||Intel just needs check for bit-rot; PGI is unknown.|
|Other multimedia enhancements: V4L, XVideo, PulseAudio||Low||See here for some important feedback.|
|LSB-compliant Java runtime||Low||De-prioritized in favor of Java spec. Incorporate JPackage for Java packaging and installation?|
|PAM symbol versioning||Low||Done|
|png symbol versioning||Low||Done|
|Other X extensions||Low|
|Other languages (Ruby, Mono, etc.)||Low|
General Planning Philosophy
By existing policy, LSB tries to align with so-called enterprise distributions, which have long support cycles and thus make attractive ISV targets. A key decision point for each release is which ones, for example SLES10 or SLES11, RHEL5 or RHEL6, Ubuntu Hardy or Lucid, etc. We need to know this because it drives decisions on individual "is this supported in all targeted distributions" points. Of course, there's a more fundamental point: when is the likely release date. It's not probably that LSB will "target" an enterprise release that has not been made yet.
- Work on autobuilders, autotesting, and version control system are important enablers for the 4.1 work, although not "shippables". See InfrastructureTasks.
- Replace dtk-manager with lsb-dist-checker, with the appropriate Provides/Obsoletes in the new package to make upgrades seamless. Re-work task packages and bundles as appropriate.
Development Tools and Checkers
- add a tjcat (test-journal-cat) command for concatenating tetj journals. Numbering restarts for each journal which leads to errors by certain processing tools, so a tjcat command would have to adjust this by modifying the second and subsequent file arguments to sync with the first. bug 1583
- lsbcc support path queries (too hardwired to /opt/lsb/bin at the moment) bug 1537
- can dynchk finally be released? bug 619
- can archk finally be released? bug 724
Core / Foundational Libraries
- libpam is now versioned from upstream. bug 1133 (DONE). PAM also has spec issues - bug 1097
- bzip2: bug 404
- dbus: bug 1857. See Freedesktop dbus page. Also related - Qt-dbus.
- sync with POSIX 2008. It may be too early for LSB to require full compliance, but most of the tech changes are actually part of the glibc uplift done for LSB 4.0. At the moment we do not have a good picture of what remains, it may be only tweaking (new sysconf values and other details).
- can async I/O finally be added? bug 1391
- do we need libncursesw? or is there some better solution coming? bug 1761
- libpcre and libpopt have been mentioned because they rate fairly high on the Navigator statistics of used non-LSB libraries
- libCURL: This is commonly used library for many applications. Given the level of documentation and tests, it should not be too controversial. This was being explored, but there are no resources working on it now - waiting to see if demand rises high enough for this.
ISV Requested Interfaces
- ptrace: bug 1664. In a way this could be considered a "kernel interface"...
- mount, umount: the system calls, not the command-line utilities. Seem to be particularly popular according to Navigator; should they go in? The standard response has been to tell people to shell out and run the command-line tool. There are also a set of interfaces dealing with mount table entries.
- mallinfo, mallopt: bug 1768
- dlinfo: bug 1751
Greg KH has expressed interest in standardizing certain interfaces into the kernel. Most likely, these will be /proc and/or /sys interfaces. It may or may not be a good idea to add a library interface in front of the raw /proc or /sys pathnames.
Notes from LSB_F2F_November_2007 meeting:
- Other option is shim layers.
- libhal - Not much info here; may need to get some libhal people involved to firm up a standard.
- DWARF 3.0 should become the reference specification for dwarf. This is a published LF standard at . bug 1819
- Thread Local Storage Debug Information: bug 992
- ELF extensions for thread local storage: bug 993
- Structure of call frame information: bug 994
- Clarify DWARF 64-bit support: bug 1034
- LSB RPM Uplift to version 4 packaging format
- support for bzip2 (which is widespread) and other newer payload formats (less widespread)
- 3rd-party-friendly packaging solutions: Berlin Packaging API
Need to continue to watch for libstdc++v7 developments, but that appears not to be an impact in LSB 4.1 timeframe.
libsigc seems to be a popular library; should it be added to the C++ module?
boost libraries? some of the material in the boost libs is making its way into ISO C++, at what point does this have to be taken seriously for LSB C++?
c++ binding support doesn't really exist - LSB is mainly C bindings. some of the needs are low-level like throw semantics, some is higher-level like c++ binding libraries where they exist.
It's clear all of this is not happening for 4.1. Roughly in priority order but not precise...
- libpng is now versioned from upstream. bug 1435 (DONE), and is missing some frequently used interfaces bug 1714
- uplift Cairo to a more current version (1.2.4): bug 2892
- uplift Qt to a more current version (4.4). A missing feature currently is the WebKit integration that comes in with 4.4.
- make sure distros don't have to ship qt3. Need to know if the compat support in Qt4 can meet the requirement, if not what would need to change? Or is this impossible?
- uplift gtk libraries to 2.10 or later, if necessary to accomodate other features (e.g. Acessibility).
- Depending on DBus (listed in the Core section):
- uplift OpenGL to current version: bug 707. See LibraryUplifts
- libQtDbus was omitted from the Qt4 specification since the dbus prereq could not be met before.
- libXmu: continues to show up high on the list of used non-LSB libraries
- libgconf seems like it should be in the ABI; programs that want to use Gconf don't really have the opportunity to bundle the library, they should use the system facility.
- Proposed extension libraries: libXcomposite, libXdamage, libXfixes. Requested to enable functionality needed for Accessibility. Versions of these found on a current distribution: Composite 1.1, Damage 1.0, Fixes 3.0. NOTE: new information questions whether these are needed by applications. It appears a system will have a compositing manager which will be part of the window manager; there can only be one job in charge of compositing anyway. Thus, unless portable window managers seem a concern, these may end up left as "system provided" and not go into the LSB.
- libxslt: libxml2 is already part of LSB 3.1. libxslt library will complement libxml2
- libexpat: another popular xml foundational library.
- libtiff and libXpm are utilities libraries in the graphics space that are commonly used.
- C++ bindings for several desktop libs could be considered: libglibmm, libgtkmm, libgdkmm, libatkmm, libpangomm, libcairomm, libxml++
- Proposed and somewhat controversial are libxkbui and libxkbfile. It is felt these are "internal" interfaces that should not be exposed to application developers. LSB does have support for Xkb in the base libX11; it appears this is is actually sufficient and at the moment this request is on hold and will not be elevated to active unless new information surfaces to support it.
Requirements being worked on by Printing Workgroup.
- SANE (Scanner Access Now Easy): It is in all distros and needed to support multi-function devices, also to cover scanners with LSB-DDK-based driver packages - SANE41
- Add CUPS HTTP/IPP interfaces: CUPS41
- Printing folks also asked about an uplift of OPVP to 1.0. Currently we do not specify anything beyond "gs" having support for opvp:
- ALSA T2C test suite.
- more robust Perl, Python
- Main, ongoing issue for Perl/Python is using upstream tests across multiple versions and running into failures where tests expect specific behavior that is not part of the specification. Currently we are dealing with this as the issues present themselves, but patching or dropping tests, but a true independent version of the tests would be desirable: Python bug, Perl bug, but probably not attainable in the 4.1 timeframe.
Other Proposed Libraries
New test suites expected are:
- t2c-core maybe - some tests were contributed, can we use them?
- function signature checker
- Do postinstall messages from individual tests still make sense? (note testkit bundle currently suppresss those but they're still in many of the packages as if they were expected to be seen). bug 1940
LSB Sample Implementation
Make sure we can rebuild and update the rPath SI. Mirroring has been done, but we need to make sure the mirror is usable.
Current notes for the LSB SI in version 4.0 can be found at LSB_SI_4.0.
Summary: Proposed Libraries
Taken from the above, these are proposed, with rank in the LSB Navigator "most frequently used non-LSB libraries" list:
High priority tasks
The top four tasks in our list above: missing interfaces/spec issues with App Checker, T2C ALSA, CUPS, and SANE.