From 52be573959303e1d3ca63565eecdba39adb7635c Mon Sep 17 00:00:00 2001 From: Kienan Stewart Date: Fri, 17 May 2024 11:23:04 -0400 Subject: [PATCH] jjb: MacOSX: mktemp wrapper that respects $TMPDIR Change-Id: Ia6c5a6cadf707423a9236ea33248e35f1b0084bd Signed-off-by: Kienan Stewart --- scripts/babeltrace/build.sh | 29 ++++++++++++++++++++++++----- scripts/binutils-gdb/build.sh | 21 ++++++++++++++++++++- scripts/liburcu/build.sh | 29 ++++++++++++++++++++++++----- scripts/lttng-tools/build.sh | 29 ++++++++++++++++++++++++----- 4 files changed, 92 insertions(+), 16 deletions(-) diff --git a/scripts/babeltrace/build.sh b/scripts/babeltrace/build.sh index e09324c..12900c7 100755 --- a/scripts/babeltrace/build.sh +++ b/scripts/babeltrace/build.sh @@ -70,6 +70,25 @@ verne() { [ "$res" -ne "0" ] } +mktemp_compat() { + case "$platform" in + macos*) + # On MacOSX, mktemp doesn't respect TMPDIR in the same way as many + # other systems. Use the final positional argument to force the + # tempfile or tempdir to be created inside $TMPDIR, which must + # already exist. + if [ -n "${TMPDIR}" ] ; then + mktemp "${@}" "${TMPDIR}/tmp.XXXXXXXXXX" + else + mktemp "${@}" + fi + ;; + *) + mktemp "${@}" + ;; + esac +} + print_header() { set +x @@ -327,7 +346,7 @@ oot) print_header "Build: Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" "$SRCDIR/configure" "${CONF_OPTS[@]}" || failed_configure @@ -342,7 +361,7 @@ dist) $MAKE dist # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Extract the distribution tar in the build directory, @@ -357,14 +376,14 @@ oot-dist) print_header "Build: Distribution Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Run configure out of tree and generate the tar file "$SRCDIR/configure" || failed_configure $MAKE dist - dist_srcdir="$(mktemp -d)" + dist_srcdir="$(mktemp_compat -d)" cd "$dist_srcdir" # Extract the distribution tar in the new source directory, @@ -372,7 +391,7 @@ oot-dist) $TAR xvf "$builddir"/*.tar.* --strip 1 # Create and enter a second temporary build directory - builddir="$(mktemp -d)" + builddir="$(mktemp_compat -d)" cd "$builddir" # Run configure from the extracted distribution tar, diff --git a/scripts/binutils-gdb/build.sh b/scripts/binutils-gdb/build.sh index 73224e7..3d7c561 100755 --- a/scripts/binutils-gdb/build.sh +++ b/scripts/binutils-gdb/build.sh @@ -17,6 +17,25 @@ set -exu +mktemp_compat() { + case "$platform" in + macos*) + # On MacOSX, mktemp doesn't respect TMPDIR in the same way as many + # other systems. Use the final positional argument to force the + # tempfile or tempdir to be created inside $TMPDIR, which must + # already exist. + if [ -n "${TMPDIR}" ] ; then + mktemp "${@}" "${TMPDIR}/tmp.XXXXXXXXXX" + else + mktemp "${@}" + fi + ;; + *) + mktemp "${@}" + ;; + esac +} + print_header() { set +x @@ -283,7 +302,7 @@ case "$build" in echo "Out of tree build" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" "$SRCDIR/configure" "${CONF_OPTS[@]}" || failed_configure diff --git a/scripts/liburcu/build.sh b/scripts/liburcu/build.sh index cc4d15c..d7ae0d1 100755 --- a/scripts/liburcu/build.sh +++ b/scripts/liburcu/build.sh @@ -61,6 +61,25 @@ verne() { [ "$res" -ne "0" ] } +mktemp_compat() { + case "$platform" in + macos*) + # On MacOSX, mktemp doesn't respect TMPDIR in the same way as many + # other systems. Use the final positional argument to force the + # tempfile or tempdir to be created inside $TMPDIR, which must + # already exist. + if [ -n "${TMPDIR}" ] ; then + mktemp "${@}" "${TMPDIR}/tmp.XXXXXXXXXX" + else + mktemp "${@}" + fi + ;; + *) + mktemp "${@}" + ;; + esac +} + print_header() { set +x @@ -268,7 +287,7 @@ oot) print_header "Build: Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" "$SRCDIR/configure" "${CONF_OPTS[@]}" || failed_configure @@ -283,7 +302,7 @@ dist) $MAKE dist # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Extract the distribution tar in the build directory, @@ -298,14 +317,14 @@ oot-dist) print_header "Build: Distribution Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Run configure out of tree and generate the tar file "$SRCDIR/configure" || failed_configure $MAKE dist - dist_srcdir="$(mktemp -d)" + dist_srcdir="$(mktemp_compat -d)" cd "$dist_srcdir" # Extract the distribution tar in the new source directory, @@ -313,7 +332,7 @@ oot-dist) $TAR xvf "$builddir"/*.tar.* --strip 1 # Create and enter a second temporary build directory - builddir="$(mktemp -d)" + builddir="$(mktemp_compat -d)" cd "$builddir" # Run configure from the extracted distribution tar, diff --git a/scripts/lttng-tools/build.sh b/scripts/lttng-tools/build.sh index c241e7b..bb2b6b5 100755 --- a/scripts/lttng-tools/build.sh +++ b/scripts/lttng-tools/build.sh @@ -63,6 +63,25 @@ verne() { [ "$res" -ne "0" ] } +mktemp_compat() { + case "$platform" in + macos*) + # On MacOSX, mktemp doesn't respect TMPDIR in the same way as many + # other systems. Use the final positional argument to force the + # tempfile or tempdir to be created inside $TMPDIR, which must + # already exist. + if [ -n "${TMPDIR}" ] ; then + mktemp "${@}" "${TMPDIR}/tmp.XXXXXXXXXX" + else + mktemp "${@}" + fi + ;; + *) + mktemp "${@}" + ;; + esac +} + print_header() { set +x @@ -399,7 +418,7 @@ oot) print_header "Build: Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" "$SRCDIR/configure" "${CONF_OPTS[@]}" || failed_configure @@ -415,7 +434,7 @@ dist) $MAKE dist # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Extract the distribution tar in the build directory, @@ -430,14 +449,14 @@ oot-dist) print_header "Build: Distribution Out of tree" # Create and enter a temporary build directory - builddir=$(mktemp -d) + builddir=$(mktemp_compat -d) cd "$builddir" # Run configure out of tree and generate the tar file "$SRCDIR/configure" "${DIST_CONF_OPTS[@]}" || failed_configure $MAKE dist - dist_srcdir="$(mktemp -d)" + dist_srcdir="$(mktemp_compat -d)" cd "$dist_srcdir" # Extract the distribution tar in the new source directory, @@ -445,7 +464,7 @@ oot-dist) $TAR xvf "$builddir"/*.tar.* --strip 1 # Create and enter a second temporary build directory - builddir="$(mktemp -d)" + builddir="$(mktemp_compat -d)" cd "$builddir" # Run configure from the extracted distribution tar, -- 2.34.1