Hello Simon, On Thu, Jun 14 2018, Simon McVittie wrote:
> http://pubs.opengroup.org/onlinepubs/9699919799/ has now been replaced > (see #900882, for which I'm preparing a patch) with POSIX.1-2017, which > is variously labelled as: > > * POSIX.1-2017 > * IEEE Std 1003.1-2017 > * The Open Group Technical Standard Base Specifications, Issue 7 > * The Open Group Base Specifications Issue 7, 2018 Edition > > and no longer has visible "Single Unix Specification" branding at all. > However, the downloadable tarballs at > http://pubs.opengroup.org/onlinepubs/9699919799/download/ > have basename susv4-2018. According to Wikipedia it "incorporates Singles > UNIX Specification TC1 and TC2, and is technically identical to the > 2016 edition." > > I'd suggest replacing SUSv3 with POSIX.1-2017 or SUSv4 2018 edition > instead, Thank you for this. Let's use POSIX.1-2017 rather than relying on the download filenames. Please find a revised patch below; hopefully Gunnar will renew his second, and perhaps you'll second too, Simon. Again, all that the patch does is: - replace the string "SUSv3" with "POSIX.1-2017" wherever it appears - update the footnote which gives the download URI for the standard > or perhaps replacing SUSv3 with POSIX and clarifying that we use POSIX > to refer to the latest version of the POSIX.1 standard. This is an interesting suggestion. So far as I can see the only advantage to this is that we don't need Policy bugs to bump the version of the standard we target. That does not strike me as a large enough advantage to justify giving up explicit control over the version of the standard that applies to Debian -- do you see other advantages? Patch: > diff --git a/policy/ch-files.rst b/policy/ch-files.rst > index 90ae58a..f31a3b4 100644 > --- a/policy/ch-files.rst > +++ b/policy/ch-files.rst > @@ -203,9 +203,9 @@ may instead be easier to check the exit status of > commands directly. See > Every script should use ``set -e`` or check the exit status of *every* > command. > > -Scripts may assume that ``/bin/sh`` implements the SUSv3 Shell Command > +Scripts may assume that ``/bin/sh`` implements the POSIX.1-2017 Shell Command > Language [#]_ plus the following additional features not mandated by > -SUSv3.. [#]_ > +POSIX.1-2017.. [#]_ > > - ``echo -n``, if implemented as a shell built-in, must not generate a > newline. > @@ -238,13 +238,13 @@ SUSv3.. [#]_ > which are the same as for ``kill`` above, 13 (SIGPIPE) must be > allowed. > > -If a shell script requires non-SUSv3 features from the shell interpreter > +If a shell script requires non-POSIX.1-2017 features from the shell > interpreter > other than those listed above, the appropriate shell must be specified > in the first line of the script (e.g., ``#!/bin/bash``) and the package > must depend on the package providing the shell (unless the shell package > is marked "Essential", as in the case of ``bash``). > > -You may wish to restrict your script to SUSv3 features plus the above > +You may wish to restrict your script to POSIX.1-2017 features plus the above > set when possible so that it may use ``/bin/sh`` as its interpreter. > Checking your script with ``checkbashisms`` from the devscripts package > or running your script with an alternate shell such as ``posh`` may help > @@ -762,10 +762,10 @@ restricted to ASCII when it is possible to do so. > complicated and difficult to manage. > > .. [#] > - Single UNIX Specification, version 3, which is also IEEE 1003.1-2004 > - (POSIX), and is available on the World Wide Web from `The Open > - Group <http://www.unix.org/version3/online.html>`_ after free > - registration. > + The Open Group Base Specifications Issue 7, 2018 Edition, which is > + also known as POSIX.1-2017 and as IEEE Std 1003.1-2017 and is > + available on the World Wide Web from `The Open Group > + <http://pubs.opengroup.org/onlinepubs/9699919799/download/>`_. > > .. [#] > These features are in widespread use in the Linux community and are > diff --git a/policy/ch-opersys.rst b/policy/ch-opersys.rst > index 7d85c00..32619e8 100644 > --- a/policy/ch-opersys.rst > +++ b/policy/ch-opersys.rst > @@ -479,7 +479,7 @@ configurable values should not be placed directly in the > script. > Instead, they should be placed in a file in ``/etc/default``, which > typically will have the same base name as the ``init.d`` script. This > extra file should be sourced by the script when the script runs. It must > -contain only variable settings and comments in SUSv3 ``sh`` format. It > +contain only variable settings and comments in POSIX.1-2017 ``sh`` format. It > may either be a ``conffile`` or a configuration file maintained by the > package maintainer scripts. See :ref:`s-config-files` for > more details. -- Sean Whitton