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 <[email protected]> Co-authored-by: Sami Imseih <[email protected]> (large UIDs) Reviewed-by: Tom Lane <[email protected]> (earlier version) Reviewed-by: Nazir Bilal Yavuz <[email protected]> (OpenBSD) Reviewed-by: Andrew Dunstan <[email protected]> (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 Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/5079e420b92db58412f2af03c728ff1640bdc103 Modified Files -------------- src/test/perl/PostgreSQL/Test/Utils.pm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-)
