diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2019-06-21 08:20:26 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2019-06-21 08:20:26 +0200 |
commit | 72d647f3d854d88feeb377d928be63acbe9a24b0 (patch) | |
tree | 08e43b603056ad2cbbee1cc35e7ad8454390c5dc /pkgs/build-support | |
parent | 63dd7b7ac7ae4d4d7b841498394658727f227c88 (diff) | |
parent | d3157cbede7a1cc11a864ac8597b46765498ee9e (diff) | |
download | nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar.gz nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar.bz2 nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar.lz nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar.xz nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.tar.zst nixlib-72d647f3d854d88feeb377d928be63acbe9a24b0.zip |
Merge master into staging-next
Diffstat (limited to 'pkgs/build-support')
-rwxr-xr-x | pkgs/build-support/fetchgit/nix-prefetch-git | 47 | ||||
-rw-r--r-- | pkgs/build-support/libredirect/libredirect.c | 13 | ||||
-rw-r--r-- | pkgs/build-support/nix-prefetch-github/default.nix | 5 |
3 files changed, 47 insertions, 18 deletions
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git index c681be8e4c35..b447911ab8d3 100755 --- a/pkgs/build-support/fetchgit/nix-prefetch-git +++ b/pkgs/build-support/fetchgit/nix-prefetch-git @@ -270,7 +270,7 @@ make_deterministic_repo(){ } -_clone_user_rev() { +clone_user_rev() { local dir="$1" local url="$2" local rev="${3:-HEAD}" @@ -307,19 +307,29 @@ _clone_user_rev() { fi } -clone_user_rev() { - if ! test -n "$QUIET"; then - _clone_user_rev "$@" - else - errfile="$(mktemp "${TMPDIR:-/tmp}/git-checkout-err-XXXXXXXX")" - # shellcheck disable=SC2064 - trap "rm -rf \"$errfile\"" EXIT - _clone_user_rev "$@" 2> "$errfile" || ( - status="$?" - cat "$errfile" >&2 - exit "$status" - ) +exit_handlers=() + +run_exit_handlers() { + exit_status=$? + for handler in "${exit_handlers[@]}"; do + eval "$handler $exit_status" + done +} + +trap run_exit_handlers EXIT + +quiet_exit_handler() { + exec 2>&3 3>&- + if [ $1 -ne 0 ]; then + cat "$errfile" >&2 fi + rm -f "$errfile" +} + +quiet_mode() { + errfile="$(mktemp "${TMPDIR:-/tmp}/git-checkout-err-XXXXXXXX")" + exit_handlers+=(quiet_exit_handler) + exec 3>&2 2>"$errfile" } json_escape() { @@ -362,6 +372,14 @@ EOF fi } +remove_tmpPath() { + rm -rf "$tmpPath" +} + +if test -n "$QUIET"; then + quiet_mode +fi + if test -z "$branchName"; then branchName=fetchgit fi @@ -390,8 +408,7 @@ else if test -z "$finalPath"; then tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")" - # shellcheck disable=SC2064 - trap "rm -rf \"$tmpPath\"" EXIT + exit_handlers+=(remove_tmpPath) tmpFile="$tmpPath/$(url_to_name "$url" "$rev")" mkdir -p "$tmpFile" diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c index 655399af58f5..8e8da00b02a2 100644 --- a/pkgs/build-support/libredirect/libredirect.c +++ b/pkgs/build-support/libredirect/libredirect.c @@ -160,6 +160,19 @@ int posix_spawn(pid_t * pid, const char * path, return posix_spawn_real(pid, rewrite(path, buf), file_actions, attrp, argv, envp); } +int posix_spawnp(pid_t * pid, const char * file, + const posix_spawn_file_actions_t * file_actions, + const posix_spawnattr_t * attrp, + char * const argv[], char * const envp[]) +{ + int (*posix_spawnp_real) (pid_t *, const char *, + const posix_spawn_file_actions_t *, + const posix_spawnattr_t *, + char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "posix_spawnp"); + char buf[PATH_MAX]; + return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp); +} + int execv(const char *path, char *const argv[]) { int (*execv_real) (const char *path, char *const argv[]) = dlsym(RTLD_NEXT, "execv"); diff --git a/pkgs/build-support/nix-prefetch-github/default.nix b/pkgs/build-support/nix-prefetch-github/default.nix index acc95eaf993f..3c5cbe2b4928 100644 --- a/pkgs/build-support/nix-prefetch-github/default.nix +++ b/pkgs/build-support/nix-prefetch-github/default.nix @@ -5,13 +5,13 @@ python3.pkgs.buildPythonApplication rec { pname = "nix-prefetch-github"; - version = "2.2"; + version = "2.3"; src = fetchFromGitHub { owner = "seppeljordan"; repo = "nix-prefetch-github"; rev = "v${version}"; - sha256 = "1m1d1fzacvwprfvhxih1hzr1m0y1jjxiznf8p8b3bi5a41yzvrrl"; + sha256 = "0b2hgfyxhlqq6lyi5cr98dz6if5kl6b3kq67f2lzfkalydywl1dh"; }; propagatedBuildInputs = with python3.pkgs; [ @@ -19,7 +19,6 @@ python3.pkgs.buildPythonApplication rec { click effect jinja2 - requests ]; meta = with stdenv.lib; { description = "Prefetch sources from github"; |