The Linux Foundation


From The Linux Foundation

Revision as of 15:07, 1 August 2012 by Mats (Talk | contribs)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)


ISO/IEC 23360 - Linux Standard Base (LSB)

Existing Standard

The 2006 specification is carried as ISO/IEC 23360-1:2006 as eight separate volumes,

  • Linux Standard Base (LSB) core specification 3.1 -- Part 1: Generic specification
  • Linux Standard Base (LSB) core specification 3.1 -- Part 2: Specification for IA32 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 3: Specification for IA64 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 4: Specification for AMD64 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 5: Specification for PPC32 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 6: Specification for PPC64 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 7: Specification for S390 architecture
  • Linux Standard Base (LSB) core specification 3.1 -- Part 8: Specification for S390X architecture

A PDF bearing a Copyright in favor of the ISO is available for purchase at:

A single user pdf copy is available from ISO at There seem to have been some instances when this link does not show the whole list of available free standards, but clicking the link in this paragraph seems to work. "Single user" means you can't share the pdf, so LSB cannot host a copy.

The site contains the version of LSB 3.1 which was released under the Free Standards Group copyright (this is the predecessor organization to Linux Foundation).


Next Steps

A draft of the communication to the ISO panel drafted by and with some edits noted on the mailing list is at:


Building the LSB documentation

LSB specification materials live in the version control system, which uses bazaar (bzr). You will need three separate projects:

  • build_env - contains the generated headers, a form of which is used for the contents of the "Data Definitions" section of the specification.
  • lsbspec - the actual specification source, some of which is generated (beyond that which comes from the build_env tree), some of which is written by hand.
  • booksets - the area for building the actual specification books. Note this used to be subdirectory of lsbspec: that subdirectory still exists, but is no longer used for book building.

To check out using the last released version (note build_env is "version independent" and thus comes from the devel repository area):

bzr checkout
bzr checkout
bzr checkout

The generated parts of lsbspec are not described here, and involve setting up an instance of the database. These should not be needed for a build of the books, only if changes are made in the database which need to propagate to the spec directory.

In booksets/LSB-Core-generic/LSB-Core-generic.sgml.sed you will see some use of the definitions: there is a construct:

<!ENTITY % iso "IGNORE">
<!ENTITY % fsg "IGNORE">
<!ENTITY copyrightyear "2006">
<!ENTITY copyrightholder "ISO/IEC">
<!ENTITY license "">
<!ENTITY doccopyright SYSTEM "SPECSRC/matters/isocopyright.sgml">
<!ENTITY copyrightyear "2010">
<!ENTITY copyrightholder "Linux Foundation">
<!ENTITY license "&fdl;">
<!ENTITY doccopyright SYSTEM "SPECSRC/matters/fsgcopyright.sgml">

which should give some ideas.

Entities which are not defined here, at the book level, are in lsbspec/entities, and there are other items of interest in the matters directory (that is, SPECSRC should be ../lsbspec)

This is all in docbook-sgml, which is unfortunate, because styling therefore has to happen in the horrid dsssl, some bits of which you may also find in the lsbspec directory.

The books which were published as the eight ISO volumes are the ones named as LSB-Core-*

A full build process would involve a "make" in lsbspec, followed by a "make" in booksets. Components in lsbspec are glued together into larger files; in booksets these larger chunks are then glued together into the full documents, including frontmatter, licenses, etc. as controlled by the ".sgml.sed" files, which are in turn processed via sed into .sgml files, which are built from.

Hope this is enough to at least do a little bit of poking around.

[Article] [Discussion] [View source] [History]