Improvements: - Use a versioned URL - The build won't break anymore (due to a wrong hash) after a new version is being released - It will be possible to build older versions - Add (hopefully all) runtime dependencies (Git, GnuPG and less (for "repo help")) - Add the upstream license - Add a long description - Use the name of the Git tag for the version - The version number from the script (currently 1.23) is only incremented after "important" changes (i.e. there are slightly different different scripts with "VERSION = (1, 23)")wip/yesman
parent
00672dec8a
commit
175ecbab91
@ -1,24 +1,41 @@ |
||||
{ stdenv, fetchurl, python }: |
||||
{ stdenv, fetchFromGitHub, makeWrapper |
||||
, python, git, gnupg1compat, less }: |
||||
|
||||
stdenv.mkDerivation { |
||||
name = "git-repo-1.23"; |
||||
src = fetchurl { |
||||
# I could not find a versioned url for the 1.21 version. In case |
||||
# the sha mismatches, check the homepage for new version and sha. |
||||
url = "http://commondatastorage.googleapis.com/git-repo-downloads/repo"; |
||||
sha256 = "1i8xymxh630a7d5nkqi49nmlwk77dqn36vsygpyhri464qwz0iz1"; |
||||
stdenv.mkDerivation rec { |
||||
name = "git-repo-${version}"; |
||||
version = "1.12.37"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "android"; |
||||
repo = "tools_repo"; |
||||
rev = "v${version}"; |
||||
sha256 = "0qp7jqhblv7xblfgpcq4n18dyjdv8shz7r60c3vnjxx2fngkj2jd"; |
||||
}; |
||||
|
||||
unpackPhase = "true"; |
||||
nativeBuildInputs = [ makeWrapper ]; |
||||
buildInputs = [ python git gnupg1compat less ]; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out/bin |
||||
sed -e 's,!/usr/bin/env python,!${python}/bin/python,' < $src > $out/bin/repo |
||||
chmod +x $out/bin/repo |
||||
cp $src/repo $out/bin/repo |
||||
''; |
||||
|
||||
postFixup = '' |
||||
wrapProgram $out/bin/repo --prefix PATH ":" \ |
||||
"${stdenv.lib.makeBinPath [ git gnupg1compat less ]}" |
||||
''; |
||||
|
||||
meta = { |
||||
homepage = "http://source.android.com/source/downloading.html"; |
||||
meta = with stdenv.lib; { |
||||
description = "Android's repo management tool"; |
||||
platforms = stdenv.lib.platforms.unix; |
||||
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; |
||||
}; |
||||
} |
||||
|
Loading…
Reference in new issue