Ye olde Apple mktemp

Tomi Ollila tomi.ollila at iki.fi
Mon Jun 10 11:59:35 PDT 2019


On Mon, Jun 10 2019, Ralph Seichter wrote:

> Another quirk that occurs during the configuration phase on older macOS
> versions (when they were still called OS X, actually) in the MacPorts
> build farm:
>
>   Checking for GMime session key extraction support...
>   usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
>          mktemp [-d] [-q] [-u] -t prefix
>   No.
>
> Hooray for that ancient mktemp binary. :-/ The following local patch
> solves the issue for me:
>
> diff --git a/configure b/configure
> index 8b80f0e0..fa715946 100755
> --- a/configure
> +++ b/configure
> @@ -529,7 +529,7 @@ int main () {
>      return 0;
>  }
>  EOF
> -    if ! TEMP_GPG=$(mktemp -d); then
> +    if ! TEMP_GPG=$(mktemp -d -t /tmp); then
>          printf 'No.\nCould not make tempdir for testing session-key support.\n'
>          errors=$((errors + 1))
>      elif ${CC} ${CFLAGS} ${gmime_cflags} _check_session_keys.c ${gmime_ldflags} -o _check_session_keys \
>
> Alas, "mktemp -d -t /tmp" is incompatible with GNU coreutils' mktemp,
> while "mktemp -d -p /tmp" is not understood by Apple's variant because
> of the "-p". I don't know what syntax would be universally acceptable.
>
> Is there a way to pass platform-dependent parameters to mktemp with the
> current build mechanics?

Hmm, we have:

test/test-lib.sh:TEST_TMPDIR=$(mktemp -d "${TMPDIR:-/tmp}/notmuch-test-$$.XXXXXX")

does that test work ?

does

TEMP_GPG=$(mktemp -d /tmp/tmp.XXXXXX)

make any difference ?

if it doesn't, then we just have to do uname=$(uname) earlier
and add `-t` to mktemp(1) parameters in case it is darwin
(ot something) 

Tomi

>
> -Ralph


More information about the notmuch mailing list