GNU bug report logs - #77873
[PATCH] gnu: git-repo: Update to 2.54.

Previous Next

Package: guix-patches;

Reported by: Jakob Kirsch <jakob.kirsch <at> web.de>

Date: Thu, 17 Apr 2025 19:52:04 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 77873 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#77873; Package guix-patches. (Thu, 17 Apr 2025 19:52:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakob Kirsch <jakob.kirsch <at> web.de>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 17 Apr 2025 19:52:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jakob Kirsch <jakob.kirsch <at> web.de>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: git-repo: Update to 2.54.
Date: Thu, 17 Apr 2025 21:50:31 +0200
* gnu/packages/android.scm (git-repo): Update to 2.54.

Change-Id: I241ba0acb19c72272780500b593ea4d3b5b9ddf6
---
 gnu/packages/android.scm | 116 +++++++++++++--------------------------
 1 file changed, 37 insertions(+), 79 deletions(-)

diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index cb699b06dc..27a0f2c7e6 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
 ;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico <at> riseup.net>
+;;; Copyright © 2025 Jakob Kirsch <jakob.kirsch <at> web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@ (define-module (gnu packages android)
   #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docker)
@@ -922,7 +924,7 @@ (define-public etc1tool
 (define-public git-repo
   (package
     (name "git-repo")
-    (version "2.4.1")
+    (version "2.54")
     (source
      (origin
        (method git-fetch)
@@ -931,87 +933,43 @@ (define-public git-repo
              (commit (string-append "v" version))))
        (file-name (string-append "git-repo-" version "-checkout"))
        (sha256
-        (base32 "0khg1731927gvin73dcbw1657kbfq4k7agla5rpzqcnwkk5agzg3"))))
+        (base32 "0a1qa7gq3ink0cfgdxx3l3p26jm2w5vsifqs9xdvb98kkswak45d"))))
     (build-system python-build-system)
     (arguments
-     `(#: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"))
-                    (ssh (assoc-ref inputs "ssh")))
-               (substitute* '("repo" "git_command.py")
-                 (("^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-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-main (string-append out "/share/git-repo/main.py")))
-               (substitute* "repo"
-                 (("^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 <at> example.com")
-             (invoke "git" "config" "--global" "user.name" "Your Name")))
-         (replace 'check
-           (lambda _
-             (invoke "./run_tests")))
-         (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"))
-               #t))))))
-    (inputs
-     ;; TODO: Add git-remote-persistent-https once it is available in guix
-     `(("git" ,git)
-       ("ssh" ,openssh)))
-    (native-inputs
-     `(("pytest" ,python-pytest)))
-    (home-page "https://code.google.com/p/git-repo/")
+     (list
+      #:tests? #f ;tests consist of just formatting the code
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'set-executable-paths
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (begin
+                (substitute* '("repo" "git_command.py")
+                  (("^GIT = 'git'")
+                   (string-append "GIT = '"
+                                  #$git "/bin/git'")))
+                (substitute* "git_config.py"
+                  ((" command_base = \\['ssh',")
+                   (string-append " command_base = ['"
+                                  #$openssh "/bin/ssh',"))) #t)))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((bin-dir (string-append #$output "/bin"))
+                     (repo-dir (string-append #$output "/share/git-repo")))
+                (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"))
+                (wrap-program (string-append bin-dir "/repo")
+                  '("REPO_SKIP_SELF_UPDATE" =
+                    ("1")))
+                #t))))))
+    (inputs (list git openssh bash-minimal))
+    (home-page "https://gerrit.googlesource.com/git-repo/")
     (synopsis "Helps to manage many Git repositories")
-    (description "Repo is a tool built on top of Git.  Repo helps manage many
+    (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

base-commit: cc4b392a8303788762ed9adb9c5635cf227e58a2
-- 
2.49.0





Information forwarded to guix-patches <at> gnu.org:
bug#77873; Package guix-patches. (Thu, 17 Apr 2025 20:39:04 GMT) Full text and rfc822 format available.

Message #8 received at 77873 <at> debbugs.gnu.org (full text, mbox):

From: Jakob Kirsch <jakob.kirsch <at> web.de>
To: 77873 <at> debbugs.gnu.org
Subject: [PATCH v2] gnu: git-repo: Update to 2.54.
Date: Thu, 17 Apr 2025 22:38:05 +0200
* gnu/packages/android.scm (git-repo): Update to 2.54.

Change-Id: I241ba0acb19c72272780500b593ea4d3b5b9ddf6
---
 gnu/packages/android.scm | 118 +++++++++++++--------------------------
 1 file changed, 39 insertions(+), 79 deletions(-)

diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index cb699b06dc..30dc1a53b5 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv <at> posteo.net>
 ;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico <at> riseup.net>
+;;; Copyright © 2025 Jakob Kirsch <jakob.kirsch <at> web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@ (define-module (gnu packages android)
   #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docker)
@@ -922,7 +924,7 @@ (define-public etc1tool
 (define-public git-repo
   (package
     (name "git-repo")
-    (version "2.4.1")
+    (version "2.54")
     (source
      (origin
        (method git-fetch)
@@ -931,87 +933,45 @@ (define-public git-repo
              (commit (string-append "v" version))))
        (file-name (string-append "git-repo-" version "-checkout"))
        (sha256
-        (base32 "0khg1731927gvin73dcbw1657kbfq4k7agla5rpzqcnwkk5agzg3"))))
+        (base32 "0a1qa7gq3ink0cfgdxx3l3p26jm2w5vsifqs9xdvb98kkswak45d"))))
     (build-system python-build-system)
     (arguments
-     `(#: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"))
-                    (ssh (assoc-ref inputs "ssh")))
-               (substitute* '("repo" "git_command.py")
-                 (("^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-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-main (string-append out "/share/git-repo/main.py")))
-               (substitute* "repo"
-                 (("^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 <at> example.com")
-             (invoke "git" "config" "--global" "user.name" "Your Name")))
-         (replace 'check
-           (lambda _
-             (invoke "./run_tests")))
-         (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"))
-               #t))))))
-    (inputs
-     ;; TODO: Add git-remote-persistent-https once it is available in guix
-     `(("git" ,git)
-       ("ssh" ,openssh)))
-    (native-inputs
-     `(("pytest" ,python-pytest)))
-    (home-page "https://code.google.com/p/git-repo/")
+     (list
+      #:tests? #f ;tests consist of just formatting the code
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'set-executable-paths
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (begin
+                (substitute* '("repo" "git_command.py")
+                  (("^GIT = 'git'")
+                   (string-append "GIT = '"
+                                  #$git "/bin/git'")))
+                (substitute* "git_config.py"
+                  ((" command_base = \\['ssh',")
+                   (string-append " command_base = ['"
+                                  #$openssh "/bin/ssh',"))) #t)))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((bin-dir (string-append #$output "/bin"))
+                     (repo-dir (string-append #$output "/share/git-repo")))
+                (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"))
+                (wrap-program (string-append bin-dir "/repo")
+                  '("REPO_SKIP_SELF_UPDATE" =
+                    ("1"))
+                  '("REPO_TRACE" =
+                    ("0")))
+                #t))))))
+    (inputs (list git openssh bash-minimal))
+    (home-page "https://gerrit.googlesource.com/git-repo/")
     (synopsis "Helps to manage many Git repositories")
-    (description "Repo is a tool built on top of Git.  Repo helps manage many
+    (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

base-commit: cc4b392a8303788762ed9adb9c5635cf227e58a2
-- 
2.49.0





This bug report was last modified 6 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.