Skip to content

Commit

Permalink
Allow any hash for git-based fetch* derivations
Browse files Browse the repository at this point in the history
Instead of hard-coding which hash types are available, merge the input
arg set into the fetchzip arguments to enable passing any hash type
that the underyling fetchurl (underneath fetchzip, which does the same
thing) supports for hash agility.

Also, provide rev attributes on all of these derivations,
not just fetchFromGitHub.
  • Loading branch information
aneeshusa committed May 2, 2016
1 parent 41efe65 commit 208f1fb
Showing 1 changed file with 30 additions and 15 deletions.
45 changes: 30 additions & 15 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -223,39 +223,54 @@ in

fetchzip = callPackage ../build-support/fetchzip { };

fetchFromGitHub = { owner, repo, rev, sha256, name ? "${repo}-${rev}-src" }: fetchzip {
inherit name sha256;
fetchFromGitHub = {
owner, repo, rev, name ? "${repo}-${rev}-src",
... # For hash agility
}@args: fetchzip ({
inherit name;
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
meta.homepage = "https://github.com/${owner}/${repo}/";
} // { inherit rev; };
} // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; };

fetchFromBitbucket = { owner, repo, rev, sha256, name ? "${repo}-${rev}-src" }: fetchzip {
inherit name sha256;
fetchFromBitbucket = {
owner, repo, rev, name ? "${repo}-${rev}-src",
... # For hash agility
}@args: fetchzip ({
inherit name;
url = "https://bitbucket.org/${owner}/${repo}/get/${rev}.tar.gz";
meta.homepage = "https://bitbucket.org/${owner}/${repo}/";
extraPostFetch = ''rm -f "$out"/.hg_archival.txt''; # impure file; see #12002
};
} // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; };

# cgit example, snapshot support is optional in cgit
fetchFromSavannah = { repo, rev, sha256, name ? "${repo}-${rev}-src" }: fetchzip {
inherit name sha256;
fetchFromSavannah = {
repo, rev, name ? "${repo}-${rev}-src",
... # For hash agility
}@args: fetchzip ({
inherit name;
url = "http://git.savannah.gnu.org/cgit/${repo}.git/snapshot/${repo}-${rev}.tar.gz";
meta.homepage = "http://git.savannah.gnu.org/cgit/${repo}.git/";
};
} // removeAttrs args [ "repo" "rev" ]) // { inherit rev; };

# gitlab example
fetchFromGitLab = { owner, repo, rev, sha256, name ? "${repo}-${rev}-src" }: fetchzip {
inherit name sha256;
fetchFromGitLab = {
owner, repo, rev, name ? "${repo}-${rev}-src",
... # For hash agility
}@args: fetchzip ({
inherit name;
url = "https://gitlab.com/${owner}/${repo}/repository/archive.tar.gz?ref=${rev}";
meta.homepage = "https://gitlab.com/${owner}/${repo}/";
};
} // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; };

# gitweb example, snapshot support is optional in gitweb
fetchFromRepoOrCz = { repo, rev, sha256, name ? "${repo}-${rev}-src" }: fetchzip {
inherit name sha256;
fetchFromRepoOrCz = {
repo, rev, name ? "${repo}-${rev}-src",
... # For hash agility
}@args: fetchzip ({
inherit name;
url = "http://repo.or.cz/${repo}.git/snapshot/${rev}.tar.gz";
meta.homepage = "http://repo.or.cz/${repo}.git/";
};
} // removeAttrs args [ "repo" "rev" ]) // { inherit rev; };

fetchNuGet = callPackage ../build-support/fetchnuget { };
buildDotnetPackage = callPackage ../build-support/build-dotnet-package { };
Expand Down

0 comments on commit 208f1fb

Please sign in to comment.