summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-01-19 15:51:10 +0100
committerEelco Dolstra <edolstra@gmail.com>2018-01-19 15:54:33 +0100
commit3d5391c2561fc1d848fc4edd267c6a890457fbb5 (patch)
tree3b84da763a0fe0ffbf621dc4954eac3ce2eae0ce
parenta4edba9943586793b636b42e3610deba1ab3269c (diff)
downloadnixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar.gz
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar.bz2
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar.lz
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar.xz
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.tar.zst
nixlib-3d5391c2561fc1d848fc4edd267c6a890457fbb5.zip
fetchFromGitHub: Revert to the original version
fetchFromGitHub was intended as a simple wrapper around the common
pattern 'fetchzip { url =
https://github.com/${owner}/${repo}/archive/${rev}.zip"; ... }'. It
was not intended to handle private repositories, submodules, other
sites than github.com (!), etc. In particular, we don't want to use
fetchgit because it's not reproducible.
-rw-r--r--pkgs/top-level/all-packages.nix37
1 files changed, 5 insertions, 32 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a36547af80dd..788d40747fd5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -203,38 +203,11 @@ with pkgs;
 
   fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { };
 
-  fetchFromGitHub = {
-    owner, repo, rev, name ? "source",
-    fetchSubmodules ? false, private ? false,
-    githubBase ? "github.com", varPrefix ? null,
-    ... # For hash agility
-  }@args: assert private -> !fetchSubmodules;
-  let
-    baseUrl = "https://${githubBase}/${owner}/${repo}";
-    passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ];
-    varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
-    # We prefer fetchzip in cases we don't need submodules as the hash
-    # is more stable in that case.
-    fetcher = if fetchSubmodules then fetchgit else fetchzip;
-    privateAttrs = lib.optionalAttrs private {
-      netrcPhase = ''
-        if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
-          echo "Error: Private fetchFromGitHub requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&2
-          exit 1
-        fi
-        cat > netrc <<EOF
-        machine ${githubBase}
-                login ''$${varBase}USERNAME
-                password ''$${varBase}PASSWORD
-        EOF
-      '';
-      netrcImpureEnvVars = [ "${varBase}USERNAME" "${varBase}PASSWORD" ];
-    };
-    fetcherArgs = (if fetchSubmodules
-        then { inherit rev fetchSubmodules; url = "${baseUrl}.git"; }
-        else ({ url = "${baseUrl}/archive/${rev}.tar.gz"; } // privateAttrs)
-      ) // passthruAttrs // { inherit name; };
-  in fetcher fetcherArgs // { meta.homepage = baseUrl; inherit rev; };
+  fetchFromGitHub = { owner, repo, rev, sha256 }: fetchzip {
+    name = "source";
+    url = "https://github.com/${owner}/${repo}/archive/${rev}.zip";
+    inherit sha256;
+  };
 
   fetchFromBitbucket = {
     owner, repo, rev, name ? "source",