summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/version-management/git-repo
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2017-05-26 15:43:50 +0200
committerMichael Weiss <dev.primeos@gmail.com>2017-05-26 16:04:15 +0200
commit175ecbab9163fa6d5dc7481c6258301833e02042 (patch)
treec0dcdaf0baf8a4f71e9bfdf3172f92cb69f1031b /pkgs/applications/version-management/git-repo
parent00672dec8a1367a1d559660aa7a125b31f3f6562 (diff)
gitRepo: Improve the packaging
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)")
Diffstat (limited to 'pkgs/applications/version-management/git-repo')
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix45
1 files changed, 31 insertions, 14 deletions
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index 001aa0c5b097..886efefa8bbb 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -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;
};
}