Thread (6 messages) 6 messages, 3 authors, 2024-06-02

Re: POSIX conformance document

From: Alejandro Colomar <alx@kernel.org>
Date: 2024-05-31 23:27:11

Hi Bruno!

On Fri, May 31, 2024 at 11:21:28PM GMT, Bruno Haible wrote:
POSIX [1] specifies that conforming implementations shall come with a
"conformance document" that describes "implementation-defined" characteristics
[2]. Two such example conformance documents are [3], [4].

For Linux (or any Linux distro), I cannot find such a document on the web.
Most Linux distros are not UNIX certified.  There have been a few, from
what I read, but don't know much about them.  I found one that is in
the Wikipedia, and which has links to such a document:

<https://en.wikipedia.org/wiki/Inspur_K-UX>
<https://web.archive.org/web/20151210194928/http://www.opengroup.org/csq/repository/RID%3Dinspur/XY1/1.html>

That one is UNIX 03 certified, which is POSIX.1-2001 + XSI extensions.

Maybe that helps.
Is such a document only considered useful for business/marketing purposes?
Mostly.
Isn't there some value in it also for regular users and developers?
The documentation for each API usually documents the implementation-
defined behavior, and differences to other systems.  We don't have it
centralized in a single document, but we have something.

While I don't see much usefulness for myself as a user in having a
centralized document for that, I can't discard usefulness for others, or
for myself at a different time.
Will there be some effort to create such a document for the upcoming
POSIX.1-2024 standard, for Linux and the GNU libraries and tools?
Heh, I suppose not, unless some company sponsors it, or some individual
feels a strong need for it.  But just guessing.
I'm asking because I've collected the answers for all *gettext() functions
and the msgfmt and xgettext programs (that will be part of this new POSIX),
but I don't know where to best document them. Likely in the manual of
GNU libc and GNU gettext, right?
Yeah, that could be a good place for it.  The manual pages are in GNU
gettext:

	$ apt-file find -x 'man/man3/[a-z]*gettext.3'
	gettext-base: /usr/share/man/man3/dcgettext.3.gz
	gettext-base: /usr/share/man/man3/dcngettext.3.gz
	gettext-base: /usr/share/man/man3/dgettext.3.gz
	gettext-base: /usr/share/man/man3/dngettext.3.gz
	gettext-base: /usr/share/man/man3/gettext.3.gz
	gettext-base: /usr/share/man/man3/ngettext.3.gz

In the Linux man-pages project I'm documenting differences with POSIX or
the BSDs in the VERSIONS section (see man-pages(7)); sometimes in
CAVEATS, if it's a tricky detail; it depends.  You could send a patch
for their manual pages adding that section documenting the differences
with POSIX, or the implementation details.
         Bruno

[1] https://en.wikipedia.org/wiki/POSIX
[2] https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/basedefs/V1_chap02.html
[3] https://empyreal96.github.io/nt-info-depot/SourceLevel/base/subsys/posix/pcd.doc
[4] https://www.qnx.com/developers/docs/6.5.0SP1.update/com.qnx.doc.neutrino_prog/posix_conformance.html
Have a lovely night!
Alex

-- 
<https://www.alejandro-colomar.es/>

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help