summaryrefslogtreecommitdiff
path: root/gnu/packages/android.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/android.scm')
-rw-r--r--gnu/packages/android.scm83
1 files changed, 44 insertions, 39 deletions
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 62a5466ed0..68bcb72e69 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -716,7 +717,7 @@ to be passed to the @code{udev} service.")
(define-public git-repo
(package
(name "git-repo")
- (version "1.12.37")
+ (version "2.4.1")
(source
(origin
(method git-fetch)
@@ -725,61 +726,66 @@ to be passed to the @code{udev} service.")
(commit (string-append "v" version))))
(file-name (string-append "git-repo-" version "-checkout"))
(sha256
- (base32 "0qp7jqhblv7xblfgpcq4n18dyjdv8shz7r60c3vnjxx2fngkj2jd"))))
+ (base32 "0khg1731927gvin73dcbw1657kbfq4k7agla5rpzqcnwkk5agzg3"))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2 ; code says: "Python 3 support is … experimental."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'set-executable-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(git (assoc-ref inputs "git"))
- (gpg (assoc-ref inputs "gnupg"))
(ssh (assoc-ref inputs "ssh")))
(substitute* '("repo" "git_command.py")
- (("^GIT = 'git' ")
- (string-append "GIT = '" git "/bin/git' ")))
- (substitute* "repo"
- ((" cmd = \\['gpg',")
- (string-append " cmd = ['" gpg "/bin/gpg',")))
+ (("^GIT = 'git'")
+ (string-append "GIT = '" git "/bin/git'")))
(substitute* "git_config.py"
((" command_base = \\['ssh',")
(string-append " command_base = ['" ssh "/bin/ssh',")))
#t)))
- (add-before 'build 'do-not-clone-this-source
+ (add-before 'build 'do-not-self-update
(lambda* (#:key outputs #:allow-other-keys)
+ ;; Setting the REPO_MAIN variable to an absolute file name is
+ ;; enough to have _FindRepo return the store main.py file. The
+ ;; self update mechanism is activated with the call to _Init() in
+ ;; main(), so we bypass it.
+
+ ;; Ticket requesting upstream to provide a mean to disable the
+ ;; self update mechanism:
+ ;; https://bugs.chromium.org/p/gerrit/issues/detail?id=12407.
(let* ((out (assoc-ref outputs "out"))
- (repo-dir (string-append out "/share/" ,name)))
+ (repo-main (string-append out "/share/git-repo/main.py")))
(substitute* "repo"
- (("^def _FindRepo\\(\\):.*")
- (format #f "
-def _FindRepo():
- '''Look for a repo installation, starting at the current directory.'''
- # Use the installed version of git-repo.
- repo_main = '~a/main.py'
- curdir = os.getcwd()
- olddir = None
- while curdir != '/' and curdir != olddir:
- dot_repo = os.path.join(curdir, repodir)
- if os.path.isdir(dot_repo):
- return (repo_main, dot_repo)
- else:
- olddir = curdir
- curdir = os.path.dirname(curdir)
- return None, ''
-
- # The remaining of this function is dead code. It was used to
- # find a git-checked-out version in the local project.\n" repo-dir))
- ;; Neither clone, check out, nor verify the git repository
- (("(^\\s+)_Clone\\(.*\\)") "")
- (("(^\\s+)_Checkout\\(.*\\)") "")
- ((" rev = _Verify\\(.*\\)") " rev = None"))
- #t)))
+ (("^REPO_MAIN = .*")
+ (format #f "REPO_MAIN = ~s~%" repo-main))
+ ((" _Init\\(args, gitc_init=\\(cmd ==.*" all)
+ (string-append "True #" all)))
+ ;; Prevent repo from trying to git describe its version from
+ ;; the (disabled) self updated copy.
+ (substitute* "git_command.py"
+ (("ver = getattr\\(RepoSourceVersion.*")
+ (format #f "ver = ~s~%" ,version)))
+ (substitute* "subcmds/version.py"
+ (("rp_ver = .*")
+ (format #f "rp_ver = ~s~%" ,version)))
+ ;; Prevent repo from adding its (disabled) self update copy to
+ ;; the list of projects to fetch when using 'repo sync'.
+ (substitute* "subcmds/sync.py"
+ (("to_fetch\\.extend\\(all_projects\\).*" all)
+ (string-append "#" all))
+ (("self\\._Fetch\\(to_fetch")
+ "self._Fetch(all_projects")
+ (("_PostRepoFetch\\(rp, opt\\.repo_verify).*" all)
+ (string-append "#" all))))))
(delete 'build) ; nothing to build
+ (add-before 'check 'configure-git
+ (lambda _
+ (setenv "HOME" (getcwd))
+ (invoke "git" "config" "--global" "user.email" "you@example.com")
+ (invoke "git" "config" "--global" "user.name" "Your Name")))
(replace 'check
(lambda _
- (invoke "python" "-m" "nose")))
+ (invoke "./run_tests")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -795,10 +801,9 @@ def _FindRepo():
(inputs
;; TODO: Add git-remote-persistent-https once it is available in guix
`(("git" ,git)
- ("gnupg" ,gnupg)
("ssh" ,openssh)))
(native-inputs
- `(("nose" ,python2-nose)))
+ `(("pytest" ,python-pytest)))
(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