Hartmut Goebel writes: > * gnu/packages/android.scm (git-repo): New variable. > --- > gnu/packages/android.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm > index e23d0fd..23ffa2b 100644 > --- a/gnu/packages/android.scm > +++ b/gnu/packages/android.scm > @@ -3,6 +3,7 @@ > ;;; Copyright © 2015 Kai-Chung Yan > ;;; Copyright © 2016 Marius Bakke > ;;; Copyright © 2017 Julien Lepiller > +;;; Copyright © 2017 Hartmut Goebel > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -23,8 +24,11 @@ > #:use-module (guix packages) > #:use-module (guix git-download) > #:use-module (guix build-system gnu) > + #:use-module (guix build-system python) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (gnu packages) > + #:use-module (gnu packages python) > + #:use-module (gnu packages version-control) > #:use-module (gnu packages tls)) > > ;; The Makefiles that we add are largely based on the Debian > @@ -298,3 +302,57 @@ with an emulator instance or connected Android device. It facilitates a variety > of device actions, such as installing and debugging apps, and it provides access > to a Unix shell that can run commands on the connected device or emulator.") > (license license:asl2.0))) > + > +(define-public git-repo > + (package > + (name "git-repo") > + (version "1.12.37") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://gerrit.googlesource.com/git-repo") > + (commit (string-append "v" version)))) > + (file-name (string-append "git-repo-" version "-checkout")) > + (sha256 > + (base32 "0qp7jqhblv7xblfgpcq4n18dyjdv8shz7r60c3vnjxx2fngkj2jd")))) The indentation of (sha256.. should align with file-name. > + (build-system python-build-system) > + (arguments > + `(#:python ,python-2 > + #:phases > + (modify-phases %standard-phases > + (replace 'build > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (repo-dir (string-append out "/share/" ,name))) > + (substitute* "repo" > + (("^repodir = '\\.repo'") > + (string-append "repodir = '" repo-dir "'")) > + (("^S_repo = 'repo'") "S_repo = '.'")) > + #t > + ))) These parens want to stay closer to the #t. > + (replace 'check > + (lambda _ > + (zero? (system* "python" "-m" "nose")))) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin-dir (string-append out "/bin")) > + (repo-dir (string-append out "/share/" ,name))) > + (mkdir-p bin-dir) > + (mkdir-p repo-dir) > + (copy-recursively "." repo-dir) > + (delete-file-recursively (string-append repo-dir "/tests")) > + (symlink (string-append repo-dir "/repo") > + (string-append bin-dir "/repo")))))))) (symlink* ..) has an unspecified return value, so please return #t here. Otherwise looks good. Would it make sense to have it in version-control.scm, or is this tool mostly for doing Android development? > + (native-inputs > + `(("nose" ,python2-nose) > + ("git" ,git))) > + (home-page "https://code.google.com/p/git-repo/") > + (synopsis "Helps to manage many Git repositories.") > + (description "Repo is a tool built on top of Git. Repo 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. The repo command is an executable Python > +script that you can put anywhere in your path.") > + (license license:asl2.0))) > -- > 2.7.4