Index | Thread | Search

From:
Ingo Schwarze <schwarze@usta.de>
Subject:
Re: mandoc: add POSIX 2024
To:
Theo de Raadt <deraadt@openbsd.org>
Cc:
Job Snijders <job@openbsd.org>, Jason McIntyre <jmc@kerhand.co.uk>, tech@openbsd.org
Date:
Mon, 17 Jun 2024 19:56:11 +0200

Download raw body.

Thread
  • Ingo Schwarze:

    mandoc: add POSIX 2024

  • Hello Theo,
    
    Theo de Raadt wrote on Sun, Jun 16, 2024 at 05:06:38PM -0600:
    
    > Well we can't be Unix, right, because we don't pay anyone so
    > how does SUS even apply?  Best way to make it irrelevant is to
    > not refer to it.
    
    In this mail, i consider documentation only.
    
    Removing support for legacy arguments from mandoc and groff is trickier
    than it may seem, so i may consider that later, if at all; that certainly
    would not be an urgent matter.
    
    Rationale for the following patch:
    1. Version numbers of these standards are confusing because XPG/POSIX
       and SUS use conflicting numbering schemes.  So try to pick one of
       the schemes and stick to it as much as possible.
    2. There are many reasons to prefer the XPG/POSIX over the SUS scheme:
       2.1. That brings us closer to the above goal set by deraadt@.
       2.2. The current standard POSIX.1-2024 calls itself "Issue 8"
            which follows the XPG/POSIX numbering scheme.
       2.3. The current standard POSIX.1-2024 does not call
            itself "Version 5", so calling it SUSv5 would be unusual.
       2.4. The XPG/POSIX numbering scheme can be used for the entire
            history, while the SUS scheme only became available with XPG4.2.
    3. Unify the wording of the pre-XPG4.2 paragraph headers.
    4. Consistently use "Issue" for XPG and POSIX.
    
    Note that the patch makes some replacements where the meaning of the
    replacing term is not identical to the meaning of what it replaces.
    For example, SUSv1 is not identical to XPG4.2.  But that does not
    matter because after the replacements, the text is still correct and
    easy to understand.
    
    Also note that the term XPG5 is somewhat casual because starting with
    XPG4, XPG was officially renamed to CAE (Common Applications Environment).
    All the same, talking about XPG4 and XPG5 remained widespread, and
    seven .St arguments were added to the mdoc(7) language in this vein.
    Nobody is talking about CAE nowadays, so introducing that official term
    now would merely cause confusion for almost no benefit.
    
    To keep the patch readable, i intentionally preserved the order of entries.
    
    OK?
      Ingo
    
    
    Index: mdoc.7
    ===================================================================
    RCS file: /cvs/src/share/man/man7/mdoc.7,v
    diff -u -r1.184 mdoc.7
    --- mdoc.7	17 Jun 2024 15:35:33 -0000	1.184
    +++ mdoc.7	17 Jun 2024 17:36:44 -0000
    @@ -2418,7 +2418,7 @@
     .br
     The third major version of the C language standard.
     .El
    -.It POSIX.1 before the Single UNIX Specification
    +.It POSIX.1 before XPG4.2
     .Pp
     .Bl -tag -width "-p1003.1g-2000" -compact
     .It \-p1003.1-88
    @@ -2459,7 +2459,7 @@
     .br
     Includes POSIX.1-1990, 1b, 1c, and 1i.
     .El
    -.It X/Open Portability Guide version 4 and related standards
    +.It X/Open Portability Guide before XPG4.2
     .Pp
     .Bl -tag -width "-p1003.1g-2000" -compact
     .It \-xpg3
    @@ -2486,7 +2486,7 @@
     .br
     Based on POSIX.1 and POSIX.2, published in 1992.
     .El
    -.It Single UNIX Specification version 1 and related standards
    +.It X/Open Portability Guide Issue 4 Version 2 and related standards
     .Pp
     .Bl -tag -width "-p1003.1g-2000" -compact
     .It \-susv1
    @@ -2511,13 +2511,14 @@
     .br
     Published in 1995.
     .El
    -.It Single UNIX Specification version 2 and related standards
    +.It X/Open Portability Guide Issue 5 and related standards
     .Pp
     .Bl -tag -width "-p1003.1g-2000" -compact
     .It \-susv2
     .St -susv2
    +.br
     This Standard was published in 1997
    -and is also called X/Open Portability Guide version 5.
    +and is also called X/Open Portability Guide Issue 5.
     It was used as the basis for UNIX 98 certification.
     The following refer to parts of it.
     .Pp
    @@ -2535,7 +2536,7 @@
     .It \-xns5.2
     .St -xns5.2
     .El
    -.It Single UNIX Specification version 3
    +.It POSIX Issue 6
     .Pp
     .Bl -tag -width "-p1003.1-2001" -compact
     .It \-p1003.1-2001
    @@ -2544,7 +2545,7 @@
     .St -susv3
     .br
     This standard is based on C99, SUSv2, POSIX.1-1996, 1d, and 1j.
    -It is also called X/Open Portability Guide version 6.
    +It is also called X/Open Portability Guide Issue 6.
     It is used as the basis for UNIX 03 certification.
     .Pp
     .It \-p1003.1-2004
    @@ -2552,7 +2553,7 @@
     .br
     The second and last Technical Corrigendum.
     .El
    -.It POSIX issues 7 and 8
    +.It POSIX Issues 7 and 8
     .Pp
     .Bl -tag -width "-p1003.1g-2000" -compact
     .It \-p1003.1-2008
    
    
    
  • Ingo Schwarze:

    mandoc: add POSIX 2024