nixpkgs/pkgs/applications/version-management/git-repo/default.nix

63 lines
1.6 KiB
Nix
Raw Normal View History

2021-05-30 02:16:10 +00:00
{ lib, stdenv, fetchFromGitHub, makeWrapper, nix-update-script
, python3, git, gnupg, less, openssh
}:
2013-12-25 23:44:16 +00:00
stdenv.mkDerivation rec {
2019-08-30 15:49:37 +00:00
pname = "git-repo";
2021-12-08 07:33:42 +00:00
version = "2.19";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
2021-12-08 07:33:42 +00:00
sha256 = "sha256-aJnerKeZobgw3e4s7D7de7/nP6vwymLpeKnrLmPzDow=";
2013-12-25 23:44:16 +00:00
};
# Fix 'NameError: name 'ssl' is not defined'
patches = [ ./import-ssl-module.patch ];
nativeBuildInputs = [ makeWrapper ];
2020-02-04 13:29:29 +00:00
buildInputs = [ python3 ];
postPatch = ''
substituteInPlace repo --replace \
'urllib.request.urlopen(url)' \
'urllib.request.urlopen(url, context=ssl.create_default_context())'
'';
2013-12-25 23:44:16 +00:00
installPhase = ''
2021-05-30 02:16:10 +00:00
runHook preInstall
2013-12-25 23:44:16 +00:00
mkdir -p $out/bin
cp repo $out/bin/repo
2021-05-30 02:16:10 +00:00
runHook postInstall
'';
# Important runtime dependencies
postFixup = ''
wrapProgram $out/bin/repo --prefix PATH ":" \
"${lib.makeBinPath [ git gnupg less openssh ]}"
2013-12-25 23:44:16 +00:00
'';
2021-05-30 02:16:10 +00:00
passthru = {
updateScript = nix-update-script {
attrPath = "gitRepo";
};
};
meta = with lib; {
2013-12-25 23:44:16 +00:00
description = "Android's repo management tool";
longDescription = ''
Repo is a Python script based on Git that helps manage many Git
repositories, does the uploads to revision control systems, and automates
parts of the development workflow. Repo is not meant to replace Git, only
to make it easier to work with Git.
'';
homepage = "https://android.googlesource.com/tools/repo";
license = licenses.asl20;
2021-05-30 02:16:10 +00:00
maintainers = with maintainers; [ otavio ];
platforms = platforms.unix;
2013-12-25 23:44:16 +00:00
};
2015-09-16 17:12:51 +00:00
}