From 9e45c4ce64ab09f7b3f2e468e65666dda3334b88 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 18 Dec 2024 18:02:37 +0100 Subject: [PATCH] build-support: add `writableTmpDirAsHomeHook` hook --- .../setup-hooks/writable-tmpdir-as-home.sh | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 7 +++++++ 2 files changed, 21 insertions(+) create mode 100644 pkgs/build-support/setup-hooks/writable-tmpdir-as-home.sh diff --git a/pkgs/build-support/setup-hooks/writable-tmpdir-as-home.sh b/pkgs/build-support/setup-hooks/writable-tmpdir-as-home.sh new file mode 100644 index 00000000000000..4fcd874b241687 --- /dev/null +++ b/pkgs/build-support/setup-hooks/writable-tmpdir-as-home.sh @@ -0,0 +1,14 @@ +# shellcheck shell=bash +# This setup hook set the HOME environment variable to a temporary directory. + +export HOME + +writableTmpDirAsHome () { + if [[ ! -w "$HOME" ]]; then + HOME=$(mktemp -d) + export HOME + fi +} + +# shellcheck disable=SC2154 +addEnvHooks "$targetOffset" writableTmpDirAsHome diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f1f651ce65d14c..3afcb3abecea46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -866,6 +866,13 @@ with pkgs; name = "setup-debug-info-dirs-hook"; } ../build-support/setup-hooks/setup-debug-info-dirs.sh; + writableTmpDirAsHomeHook = callPackage ( + { makeSetupHook }: + makeSetupHook { + name = "writable-tmpdir-as-home-hook"; + } ../build-support/setup-hooks/writable-tmpdir-as-home.sh + ) { }; + useOldCXXAbi = makeSetupHook { name = "use-old-cxx-abi-hook"; } ../build-support/setup-hooks/use-old-cxx-abi.sh;