about summary refs log tree commit diff
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)
downloadnixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar.gz
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar.bz2
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar.lz
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar.xz
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.tar.zst
nixlib-175ecbab9163fa6d5dc7481c6258301833e02042.zip
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;
   };
 }