postgres-github.git / summary / log / commit / refs

commit    bab656bb87b0ffed92407f93d0d4a9e4d18c0c5c
Author:   Thomas Munro <tmunro@postgresql.org>
Date:     Fri Apr 03 22:13:18 2026 +0000

    More tar portability adjustments.
    
    For the three implementations that have caused problems so far:
    
    * GNU and BSD (libarchive) tar both understand --format=ustar
    * ustar doesn't support large UID/GID values, so set them to 0 to
      avoid a hard error from at least GNU tar
    * OpenBSD tar needs -F ustar, and it appears to warn but carry
      on with "nobody" if a UID is too large
    * -f /dev/null is a more portable way to throw away the output, since
      the default destination might be a tape device depending on build
      options that a distribution might change
    * Windows ships BSD tar but lacks /dev/null, so ask perl for its name
    
    Based on their manuals, the other two implementations the tests are
    likely to encounter in the wild don't seem to need any special handling:
    
    * Solaris/illumos tar uses ustar and replaces large UIDs with 60001
    * AIX tar uses ustar (unless --format=pax) and truncates large UIDs
    
    Backpatch-through: 18
    Co-authored-by: Thomas Munro <thomas.munro@gmail.com>
    Co-authored-by: Sami Imseih <samimseih@gmail.com> (large UIDs)
    Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> (earlier version)
    Reviewed-by: Nazir Bilal Yavuz <byavuz81@gmail.com> (OpenBSD)
    Reviewed-by: Andrew Dunstan <andrew@dunslane.net> (Windows)
    Discussion: https://postgr.es/m/3676229.1775170250%40sss.pgh.pa.us
    Discussion: https://postgr.es/m/CAA5RZ0tt89MgNi4-0F4onH%2B-TFSsysFjMM-tBc6aXbuQv5xBXw%40mail.gmail.com

[parent: 4953a25b7f3b]