View Issue Details

IDProjectCategoryView StatusLast Update
00020041003.1(2024)/Issue8Shell and Utilitiespublic2026-10-30 10:35
Reporterharmen.stoppels Assigned To 
PrioritynormalSeverityEditorialTypeError
Status NewResolutionOpen 
NameHarmen Stoppels
OrganizationStoppels Consulting
User Reference
Sectionpax
Page Numbern/a (html)
Line Numbern/a (html)
Interp Status
Final Accepted Text
Summary0002004: pax: editorial errors in examples, rationale and standards references
DescriptionThis report collects several small errors in the pax page, found as a result of developing a test suite https://github.com/haampie/tar-minefield and its associated website https://stoppels.ch/tar/.

Page and line numbers are not given because I only have access to the HTML edition:

  https://pubs.opengroup.org/onlinepubs/9799919799/utilities/pax.html

In order of appearance:

 1. ISO/IEC 10646-1:2020 does not exist. Part 1 of ISO/IEC 10646 was
    merged into ISO/IEC 10646 in 2003, and XBD 1.4 (Normative References)
    cites ISO/IEC 10646:2020.

 2. The largest value of the cpio and ustar size fields is 8589934591
    (octal 77777777777), not 8589934592

 3. The first listopt example prints the mode string "-rw-rw---". That is
    9 characters. The ls mode string that %M produces is 10 characters when
    there is no alternate access method flag.

 4. The second listopt example prints /usr/foo/bar as a symbolic link
    ("-> /tmp") with a size of 1492. The ustar Interchange Format requires
    the size field of a symbolic link to be specified as zero.

 5. The rationale still describes the ctime record. That record was removed
    by IEEE Std 1003.1-2001/Cor 2-2004, item XCU/TC2/D6/25 (CHANGE HISTORY,
    Issue 6).
Desired Action 1. In EXTENDED DESCRIPTION, pax Extended Header, change both instances of:

        the ISO/IEC 10646-1:2020 standard UTF-8 encoding

    to:

        the ISO/IEC 10646:2020 standard UTF-8 encoding

    (one is in the paragraph after the record format, the other in the
    description of the hdrcharset keyword).

    In RATIONALE, pax Archive Character Set Encoding/Decoding, change both
    instances of:

        the ISO/IEC 10646-1:2020 standard

    to:

        the ISO/IEC 10646:2020 standard

 2. In APPLICATION USAGE, change:

        The cpio and ustar formats can only support files up to 8589934592
        bytes (8 * 2^30) in size.

    to:

        The cpio and ustar formats can only support files less than
        8589934592 bytes (8 * 2^30) in size.

 3. In EXAMPLES, in the output of the first listopt example, change:

        -rw-rw--- Jan 12 15:53 2003 1492 /usr/foo/bar

    to:

        -rw-rw---- Jan 12 15:53 2003 1492 /usr/foo/bar

 4. In EXAMPLES, in the output of the second listopt example, change:

        /usr/foo/bar -> /tmp 1492

    to:

        /usr/foo/bar -> /tmp 0

 5. In RATIONALE, pax Interchange Format, change:

        The ustar format includes only mtime; the new format adds atime and
        ctime for symmetry. The atime access time restored to the file
        system will be affected by the -p a and -p e options. The ctime
        creation time (actually inode modification time) is described with
        appropriate privileges so that it can be ignored when writing to
        the file system. POSIX does not provide a portable means to change
        file creation time. Nothing is intended to prevent a non-portable
        implementation of pax from restoring the value.

    to:

        The ustar format includes only mtime; the new format adds atime for
        symmetry. The atime access time restored to the file system will be
        affected by the -p a and -p e options.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-10-30 10:35 harmen.stoppels New Issue