Subject: Re: bug#23107: new snapshot available: gzip-1.6.56-9190

From: Assaf Gordon <[email-masked]>
Date: Fri, 25 Mar 2016 23:17:29 -0400

Hello,

On that minimalist Alpine 3.3.3 system, the attached patch fixed the "check-local" step, but then two other tests fail (help-version and zless).
The 'help-version' might be related to 'mktemp' (not sure),
while the 'zless' fails because it assumes 'less' supports '-V', which busybox's 'less' does not.
log attached.

It might be a bit tricker than expected to adapt to such minimalist system - whether it's a show-stopper or not is a different matter.
I'm happy to test further (and I'll soon send similar reports for other packages). 

Regarding netbsd/mktemp - sorry for creating some confusion. I noticed gnulib was updated then reverted with some related changes, please let me know if there's a specific version to check.

Examining 'mktemp' support on various systems, I see the following:
===
FreeBSD 10.1:           mktemp [-d] [-q] [-t prefix] [-u] template ...
       (and)            mktemp [-d] [-q] [-u] -t prefix 

Mac OS X:               (same as FreeBSD)

OpenBSD 5.8:            mktemp [-dqtu] [-p directory] [template]

NetBSD 7:		mktemp [-dqu] [-p <tmpdir>] {-t prefix | template ...}

Alpine (BusyBox):	mktemp [-dt] [-p DIR] [TEMPLATE]

OpenSolaris 5.10        mktemp [-dqtu] [-p prefix_dir] [template]

OpenSolaris 5.11        mktemp [-dqtu] [-p prefix_dir] [--directory][--dry-run] [--help] [--quiet] [--suffix=SUFF] [--tmpdir[=DIR]] [tmeplate]

AIX 7:                  (missing?)
===

Specifically, it seems the '-t' parameter for NetBSD requires a parameter, while on most other systems it is just a flag. This makes the order of the parameters effect the outcome.

In './tests/init.sh', the function 'mktempd_' has code like this:
  # First, try to use mktemp.
  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
    || fail=1

Trying it on NetBSD yields unexpected results:

    $ mktemp -d -t -p destdir template.XXXXXX  
    /tmp/-p.xHVlMf3f
    destdir
    template.xUCbsO

While if we just change the order, and make '-t' the last parameter, it would "just work" (assuming TMPDIR is unset).		

    $ mktemp -d -p destdir -t template.XXXXXX
    destdir/template.XXXXXX.SEvvNSKE

An attempt to make a portable version:

  d=`unset TMPDIR; { mktemp -d -p "$destdir_" -t "$template_"; } 2>/dev/null` \
    || e=`TMPDIR="$destdir_" mktemp -d -t "$template_" 2>/dev/null` \
    || fail=1

Running the attached script on various systems gives:

===
Linux:       with-p    foo/bar.nNBIHo   (=alpine/busybox)
Linux:       with-p    foo/bar.Da60cG   (=debian/gnu-coreutils)
FreeBSD:     no-p      foo/bar.XXXXXX.60xAkfa8
NetBSD:      with-p    foo/bar.XXXXXX.myeDmTST
Darwin:      no-p      foo/bar.XXXXXX.xKNmTTzN
OpenBSD:     with-p    foo/bar.zVf8w1
SunOS:       with-p    foo/bar.rtai1S    (=OpenSolaris 5.10)
SunOS:       with-p    foo/bar.rXa4bY    (=OpenSolaris 5.11)
===

Hope this helps, and happy to test further,
regards,
 - assaf