nixpkgs/pkgs/applications/version-management/git-repo/default.nix
Michael Weiss 14e53a0508
gitRepo: Rewrite the "urllib.request.urlopen" patch for Python 3
The old variant is still working but setting "cafile" is deprecated
since version 3.6 [0] and generates a warning:
DeprecationWarning: cafile, capath and cadefault are deprecated, use a custom context instead.

But without this patch "fetchRepoProject" still fails with
"error no host given" (see 337380ea1d).

[0]: https://docs.python.org/3.7/library/urllib.request.html#urllib.request.urlopen
2020-02-05 21:34:49 +01:00

52 lines
1.4 KiB
Nix

{ stdenv, fetchFromGitHub, makeWrapper
, python3, git, gnupg, less
}:
stdenv.mkDerivation rec {
pname = "git-repo";
version = "1.13.9.2";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
sha256 = "1a6vyj7a9qba9nidi6x3hkpvpzikskh5jsagzkx7m95p0hcvvb7v";
};
patches = [ ./import-ssl-module.patch ];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 ];
postPatch = ''
substituteInPlace repo --replace \
'urllib.request.urlopen(url)' \
'urllib.request.urlopen(url, context=ssl.create_default_context())'
'';
installPhase = ''
mkdir -p $out/bin
cp repo $out/bin/repo
'';
# Important runtime dependencies
postFixup = ''
wrapProgram $out/bin/repo --prefix PATH ":" \
"${stdenv.lib.makeBinPath [ git gnupg less ]}"
'';
meta = with stdenv.lib; {
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;
maintainers = [ maintainers.primeos ];
platforms = platforms.unix;
};
}