diff options
Diffstat (limited to 'pkgs/build-support/fetchzip/default.nix')
-rw-r--r-- | pkgs/build-support/fetchzip/default.nix | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix index c61df8ceb00..cde4d4f579f 100644 --- a/pkgs/build-support/fetchzip/default.nix +++ b/pkgs/build-support/fetchzip/default.nix @@ -5,16 +5,19 @@ # (e.g. due to minor changes in the compression algorithm, or changes # in timestamps). -{ fetchurl, unzip }: +{ lib, fetchurl, unzip }: { # Optionally move the contents of the unpacked tree up one level. stripRoot ? true -, url +, url ? "" +, urls ? [] , extraPostFetch ? "" , name ? "source" , ... } @ args: -(fetchurl ({ +(fetchurl (let + basename = baseNameOf (if url != "" then url else builtins.head urls); +in { inherit name; recursiveHash = true; @@ -27,7 +30,7 @@ mkdir "$unpackDir" cd "$unpackDir" - renamed="$TMPDIR/${baseNameOf url}" + renamed="$TMPDIR/${basename}" mv "$downloadedFile" "$renamed" unpackFile "$renamed" '' @@ -44,8 +47,15 @@ mv "$unpackDir/$fn" "$out" '' else '' mv "$unpackDir" "$out" - '') #*/ - + extraPostFetch; + '') + + '' + ${extraPostFetch} + '' + # Remove non-owner write permissions + # Fixes https://github.com/NixOS/nixpkgs/issues/38649 + + '' + chmod 755 "$out" + ''; } // removeAttrs args [ "stripRoot" "extraPostFetch" ])).overrideAttrs (x: { # Hackety-hack: we actually need unzip hooks, too nativeBuildInputs = x.nativeBuildInputs ++ [ unzip ]; |