jjb: MacOSX: mktemp wrapper that respects $TMPDIR
authorKienan Stewart <kstewart@efficios.com>
Fri, 17 May 2024 15:23:04 +0000 (11:23 -0400)
committerKienan Stewart <kstewart@efficios.com>
Fri, 17 May 2024 15:27:17 +0000 (11:27 -0400)
Change-Id: Ia6c5a6cadf707423a9236ea33248e35f1b0084bd
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
scripts/babeltrace/build.sh
scripts/binutils-gdb/build.sh
scripts/liburcu/build.sh
scripts/lttng-tools/build.sh

index e09324cbc35cdb48b2bbb68f22b8e44fc5cf7f28..12900c74fe0e07c66ce6c649e9dd85fa31df4ec6 100755 (executable)
@@ -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,
index 73224e748d67415d63776008da19c48e25fda2af..3d7c561a477f60e75105289a7c2f9ca803a8fe5a 100755 (executable)
 
 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
index cc4d15c85462a00b004b7eeb8a3de9b6157bd13e..d7ae0d1641d75edf6c52d0a8935f4d681cca79bc 100755 (executable)
@@ -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,
index c241e7ba9d256cb86bf238c1449bcfc87a34c3ea..bb2b6b59e085e603b5c399c335469c299753468c 100755 (executable)
@@ -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,
This page took 0.027778 seconds and 4 git commands to generate.