[lsb-discuss] Dealing with multiple versions of reference standards
Wichmann, Mats D
mats.d.wichmann at intel.com
Wed Mar 26 07:30:49 PDT 2008
We've got some odd situations coming up with regard to
mixed base standards. This may be more detailed than
appeals to a lot of readers, but bear with me, and if
you start to get a headache, it's okay to pass on the
Our current "base" standard for libc materials is
ISO POSIX 2003. This year a new revision will be completed,
and probably be published early next year (I'm unsure
if it will be designated POSIX 2008 or POSIX 2009, let
me use the former just for convenience). It's a little
too early to rebase the entire LSB to use POSIX 2008,
plus it's a fair bit of work with all the crosschecking
that would have to take place, but it seems okay (and
I've chatted about this with a few people) to use POSIX
2008 as an "additional standard" where we need a way to
reference something that isn't included in POSIX 2003.
A simple example: two interfaces are now partially
enabled - alphasort and scandir - which point to the
placeholder Standard entry for POSIX 2008: these
two were previously left out largely on the "not in
POSIX" argument but there's no longer any real reason
to leave them out of LSB (bug 1997).
Another example is the proposed "uplift glibc to 2.4"
change. That will bring a new family of interfaces
that operate relative to a file descriptor such as
openat, mkdirat, fchownat, etc. all ending in "at".
These are not in POSIX 2003 but will appear in POSIX
2008, so referencing this new version of POSIX would
allow us not to have to write LSB-specific manpages
for these entries.
So this feels straightforward but I'd still like to
bring the topic out to the wider group for comment.
I guess there's a proposal here:
1. leave POSIX 2003 as the primary base standard in the
areas it coverts
2. allow the use of references to POSIX 2008, even
though LSB 4.0 ought to publish before ISO publishes
the POSIX 2008 specification (it will, however, at this
stage be fully approved and frozen).
Assuming those are okay, there are some odd cases,
such as where there's a feature of an interface which
is documented in POSIX 2008 but the main interface
was adequately documented in POSIX 2003. The current
example of this case is bug 1645 - the request to
add MSG_NOSIGNAL to LSB as an allowable flag to the
send() function. This flag was not documented in
the 2003 version but does appear in the 2008 version.
In such a case, how should the reference in LSB appear?
We could add an LSB delta which effectively says
"works like in POSIX 2003, but with the additional
flag MSG_NOSIGNAL as described in POSIX 2008" or we
could flip the base standard for this interface to
POSIX 2008 and just not say anything extra in the
LSB (probably for most consumers of the LSB, the fact
that the define will appear in the header is what
they'll care about, that will be the same in either case).
More information about the lsb-discuss