From: pc@hillside.co.uk (Peter Collinson)
Newsgroups: comp.std.unix
Subject: Report on POSIX.2: Shell and Utilities
Date: 9 Sep 1992 14:32:05 -0700
Organization: Hillside Systems, 61 Hillside Avenue, Canterbury, Kent CT2 8HA
NNTP-Posting-Host: ftp.uu.net
X-Submissions: std-unix@uunet.uu.net

Submitted-by: pc@hillside.co.uk (Peter Collinson)

USENIX Standards Watchdog Committee
Stephen Walli <stephe@usenix.org>, Report Editor
Report on POSIX.2: Shell and Utilities


David Rowley <david@mks.com> reports on the July 13-17 meeting in
Chicago, IL:

Summary

September the 16th, 1992 -- that's the date people have been waiting
for since the POSIX.2 working group was formed more than five years
ago.  It's the date the IEEE Standards Board is due to approve P1003.2
as an IEEE Full Use Standard.  The standard includes both the ``Dot 2
Classic'' and ``Dot 2a'' components, previously balloted as separate
standards.  The IEEE Standard (based on the new Draft 12) is identical
(at least from a technical standpoint) to ISO/IEC Draft International
Standard 9945-2:1992.

NIST continues to work on a new FIPS (Federal Information Processing
Standard) for POSIX.2, expected in draft form by early Fall 1992.

POSIX.2b work is progressing well, incorporating symbolic link support
within a number of utilities, a new PAX archive format, and addresses
a number of international concerns regarding locales.

Test assertion work continues.  The POSIX.2 assertions have almost
full coverage, and will go to ballot soon, perhaps as early as
October.  The POSIX.2a test assertion work is going well, though
assertions for vi have not yet been attempted.

There is talk that the test assertion work will be renamed P2003.2
instead of the current P1003.3.2.

Background

A brief POSIX.2 project description:

   - The base utilities of the POSIX.2 standard deal with the basic
     shell programming language and a set of utilities required for
     the portability of shell scripts.  It excludes most features that
     might be considered interactive.  POSIX.2 also standardizes
     command-line and function interfaces related to certain POSIX.2
     utilities (e.g., popen(), regular expressions,
     etc.). This part of POSIX.2, which was developed first,
     is sometimes known as ``Dot 2 Classic.''

   - the User Portability Utilities Option or UPUO, is an option in
     the base standard (previously known as POSIX.2a).  It
     standardizes commands, such as vi, that might not appear in shell
     scripts, but are important enough that users must learn them on
     any real system.

     Some utilities have both interactive and non- interactive
     features.  In such cases, the UPUO defines extensions from the
     base POSIX.2 utility.  Features used both interactively and in
     scripts tend to be defined in the base utility.

   - POSIX.2b is a newly approved project which covers extensions and
     new requests from other groups, such as a new file format for PAX
     and extensions for symbolic links.  It also includes resolution
     of items arising from comments by ISO Working Group 15.

POSIX.2 is equivalent to the International Standards Organization's
ISO DIS 9945-2 -- the second volume of the proposed ISO three-volume
POSIX standard.

POSIX.2 Status

The ISO Draft International Standard 9945-2 that was approved at the
May meeting of Working Group 15 is due to be approved at the IEEE on
September 16th.  There are no apparent road-blocks to the IEEE
Standards Board approving the standard, but of course there are very
few sure things in life.

POSIX.2 Draft 12 comprises the standard set of utilities (``Dot 2
Classic'') and now includes the User Portability Utilities Option
(previously ``Dot 2a, User Portability Extensions'').  Hal Jespersen
has done a fine job integrating the two separately balloted standards
into one epic tree-killing tome, coordinating it with the ISO 9945-
2:1992 Draft International Standard, POSIX.2's ISO equivalent.  The
implementors of the world owe Hal a debt of thanks for ensuring the
ISO and IEEE standards can be technically identical.

FIPS and Certification

NIST continues to work towards a new FIPS (Federal Information
Processing Standard) for POSIX.2.  Verifiable conformance to the
standard is now the critical issue.  Fortunately, it seems as though
good progress is being made within the standards industry on coming up
with a well- endorsed solution.  X/Open has issued an RFQ (Request for
Quotation) for an Integrator to put together a joint POSIX.2 and XPG4
Commands and Utilities verification suite.  This work points towards
there being a single validation suite for both the POSIX.2 and XPG4
implementations of the shell and utilities, again making life much
easier for implementors and users alike.  The XPG4 commands and
utilities specification comprises a superset of the POSIX.2
utilities.  The X/Open suite will allow verification of both the XPG4
superset, as well as the POSIX.2 subset.

NIST will likely point to this suite, once in place, as the yardstick
for gauging conformance to the POSIX.2 FIPS.

The suite will likely be finished towards the end of 1993.

PAX File Format

The group continued to define the new PAX file format, but are now
intent in verifying the sanity of using the ISO 1001 tape format as a
base format.  A posting to ``comp.std.unix'' requested feedback and
input as to the appropriateness of ISO 1001, along with a request for
alternate proposals.  The proposals will be discussed at the Utrecht
meeting in October.

The group also modified the proposal for codeset representation of
filenames, user names, etc. contained in the archive.  The format that
will be used is now specified as UTF (UCS Transformation Format).  A
slight problem with this exists because the UTF description is
contained in Annex F of the ISO 10646 Unicode standard, and is only
informative rather than normative.  The group is therefore (a little)
hesitant to point to it, but feels the space savings and the inherent
seamless ability to upgrade to the full 32-bit codeset (UCS4)
overcomes these objections.

Working Group 15 Requirements

The group also examined the Working Group 15 (ISO) requirements for
the next revision, as outlined in Annex H of the ISO Draft
International Standard 9945-2:1992.  Most of the issues centered
around the definition of locales, specifically codeset issues.  A
number of specific proposals are pending from the ISO member bodies,
including something similar to trigraphs for the sh, awk, etc.,
extensions to locale character class definitions, re-incorporation of
the substitute facility, relaxing of the restriction on NUL collating
lower than all other characters, support for state-dependent
characters sets (such as shift encoding), and a general character
translation utility (perhaps X/Open's iconv).

These issues will be discussed further at the Utrecht meeting on
October 22nd, 23rd (just before the next WG15 meeting).

Test Methods

POSIX.3.2 Test Method work is progressing well, with almost all of the
assertions corresponding to the current draft of POSIX.2.  The group
expects to go to ballot sometime around October.

Work on the UPUO test methods also progressed, with only a few gaps
remaining.  The daunting vi command still strikes fear in some that
would approach it, and has not yet been addressed.  This will be
worked on at the Utrecht meeting.

Volume-Number: Volume 29, Number 24