GNU bug report logs - #74639
[PATCH v2] gnu: make-gitolite: Fix inputs references

Previous Next

Package: guix-patches;

Reported by: ashish.is <at> lostca.se

Date: Sun, 1 Dec 2024 23:19:02 UTC

Severity: normal

Tags: patch

Done: Hilton Chain <hako <at> ultrarare.space>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ashish.is <at> lostca.se
Subject: bug#74639: closed (Re: [PATCH v2] gnu: make-gitolite: Fix inputs
 references)
Date: Sun, 08 Dec 2024 07:50:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#74639: [PATCH v2] gnu: make-gitolite: Fix inputs references

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 74639 <at> debbugs.gnu.org.

-- 
74639: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74639
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Hilton Chain <hako <at> ultrarare.space>
To: ashish.is <at> lostca.se
Cc: 74639-done <at> debbugs.gnu.org
Subject: Re: [PATCH v2] gnu: make-gitolite: Fix inputs references
Date: Sun, 08 Dec 2024 15:45:27 +0800
Hi Ashish,

On Mon, 02 Dec 2024 17:48:23 +0800,
ashish.is <at> lostca.se wrote:
>
> From: Ashish SHUKLA <ashish.is <at> lostca.se>
>
> * gnu/packages/version-control.scm (make-gitolite)[#:phases]
> <patch-scripts,patch-source,wrap-scripts>: Update functions to reference
> inputs from the inputs alist, instead of hardcoding.
>
> Change-Id: Ia2468235b43c257ee1816d19325671d373ed2870
> ---
> Hi Hilton,
>
> Thanks for your comments. The patch is amended to incorporate your suggestions.
>
>  gnu/packages/version-control.scm | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)

Applied v2 as 810cc4764a27ddac3e15f325b02a4f665067f4ac with following change:

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3987a6e3dc..b4863698e5 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2078,18 +2078,21 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                    ;; invokes Perl.
                    (substitute* (find-files ".")
                      ((" perl -")
-                      (string-append " " (search-input-file inputs "/bin/perl") " -")))
+                      (string-append
+                       " " (search-input-file inputs "bin/perl") " -")))

                    (substitute* (find-files "src/triggers" ".*")
                      ((" sed ")
-                      (string-append " " (search-input-file inputs "/bin/sed") " ")))
+                      (string-append
+                       " " (search-input-file inputs "bin/sed") " ")))

                    (substitute*
                        '("src/triggers/post-compile/update-gitweb-access-list"
                          "src/triggers/post-compile/ssh-authkeys-split"
                          "src/triggers/upstream")
                      ((" grep ")
-                      (string-append " " (search-input-file inputs "/bin/grep") " ")))
+                      (string-append
+                       " " (search-input-file inputs "bin/grep") " ")))

                    ;; Avoid references to the store in authorized_keys.
                    ;; This works because gitolite-shell is in the PATH.
@@ -2102,20 +2105,24 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                    ;; pubkey
                    (substitute* "src/lib/Gitolite/Setup.pm"
                      (("\"cat ")
-                      (string-append "\"" (search-input-file inputs "/bin/cat") " "))
+                      (string-append
+                       "\"" (search-input-file inputs "bin/cat") " "))
                      (("\"ssh-keygen")
-                      (string-append "\"" (search-input-file inputs "/bin/ssh-keygen"))))
+                      (string-append
+                       "\"" (search-input-file inputs "bin/ssh-keygen"))))

                    (substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
                                   "src/lib/Gitolite/Hooks/Update.pm")
                      (("/usr/bin/perl")
-                      (search-input-file inputs "/bin/perl")))
+                      (search-input-file inputs "bin/perl")))

                    (substitute* "src/lib/Gitolite/Common.pm"
                      (("\"ssh-keygen")
-                      (string-append "\"" (search-input-file inputs "/bin/ssh-keygen")))
+                      (string-append
+                       "\"" (search-input-file inputs "bin/ssh-keygen")))
                      (("\"logger\"")
-                      (string-append "\"" (search-input-file inputs "/bin/logger") "\"")))
+                      (string-append
+                       "\"" (search-input-file inputs "bin/logger") "\"")))

                    (substitute* "src/lib/Gitolite/Cache.pm"
                      (("/usr/sbin/redis-server") "redis-server"))
@@ -2139,13 +2146,17 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                    (for-each (lambda (file-name)
                                (wrap-program (string-append #$output file-name)
                                  `("PATH" ":" prefix
-                                   ,(map (lambda (dir)
+                                   ,(append
+                                     (map (lambda (command)
+                                            (dirname
+                                             (search-input-file
+                                              inputs
+                                              (string-append "bin/" command))))
+                                          '("chmod" "find" "git"))
+                                     (map (lambda (dir)
                                            (string-append dir "/bin"))
                                          (list #$output
-                                               (assoc-ref inputs "coreutils")
-                                               (assoc-ref inputs "findutils")
-                                               (assoc-ref inputs "git")
-                                               #$@extra-inputs)))))
+                                               #$@extra-inputs))))))
                              '("/bin/gitolite" "/bin/gitolite-shell")))))))
     (inputs
      (append (list bash-minimal coreutils findutils git inetutils openssh perl)
--8<---------------cut here---------------end--------------->8---

Thanks

[Message part 3 (message/rfc822, inline)]
From: ashish.is <at> lostca.se
To: guix-patches <at> gnu.org
Cc: Ashish SHUKLA <ashish.is <at> lostca.se>
Subject: [PATCH] gnu: make-gitolite: Fix inputs references
Date: Mon,  2 Dec 2024 00:15:07 +0100
From: Ashish SHUKLA <ashish.is <at> lostca.se>

* gnu/packages/version-control.scm (make-gitolite)[arguments]<phases>
{patch-scripts,patch-source,wrap-scripts}: Update functions to reference
inputs from the inputs alist, instead of hardcoding.

Change-Id: Ia2468235b43c257ee1816d19325671d373ed2870
---
Hi,

When trying to override inputs of "gitolite", I noticed it's hardcoding them instead of referencing the "inputs" alist parameter which is passed to the phases, which makes overriding the inputs useless. This patches fixes that behaviour.

Thanks!

 gnu/packages/version-control.scm | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index c54833a8ec..eac3487cf1 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2070,23 +2070,23 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                (delete 'configure)
                (delete 'build)
                (add-before 'install 'patch-scripts
-                 (lambda* _
+                 (lambda* (#:key inputs #:allow-other-keys)
                    ;; This seems to take care of every shell script that
                    ;; invokes Perl.
                    (substitute* (find-files ".")
                      ((" perl -")
-                      (string-append " " #$perl "/bin/perl" " -")))
+                      (string-append " " (assoc-ref inputs "perl") "/bin/perl" " -")))
 
                    (substitute* (find-files "src/triggers" ".*")
                      ((" sed ")
-                      (string-append " " #$sed "/bin/sed" " ")))
+                      (string-append " " (assoc-ref inputs "sed") "/bin/sed" " ")))
 
                    (substitute*
                        '("src/triggers/post-compile/update-gitweb-access-list"
                          "src/triggers/post-compile/ssh-authkeys-split"
                          "src/triggers/upstream")
                      ((" grep ")
-                      (string-append " " #$grep "/bin/grep" " ")))
+                      (string-append " " (assoc-ref inputs "grep") "/bin/grep" " ")))
 
                    ;; Avoid references to the store in authorized_keys.
                    ;; This works because gitolite-shell is in the PATH.
@@ -2094,25 +2094,25 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                      (("\\$glshell \\$user")
                       "gitolite-shell $user"))))
                (add-before 'install 'patch-source
-                 (lambda* _
+                 (lambda* (#:key inputs #:allow-other-keys)
                    ;; Gitolite uses cat to test the readability of the
                    ;; pubkey
                    (substitute* "src/lib/Gitolite/Setup.pm"
                      (("\"cat ")
-                      (string-append "\"" #$coreutils "/bin/cat" " "))
+                      (string-append "\"" (assoc-ref inputs "coreutils") "/bin/cat" " "))
                      (("\"ssh-keygen")
-                      (string-append "\"" #$openssh "/bin/ssh-keygen")))
+                      (string-append "\"" (assoc-ref inputs "openssh") "/bin/ssh-keygen")))
 
                    (substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
                                   "src/lib/Gitolite/Hooks/Update.pm")
                      (("/usr/bin/perl")
-                      (string-append #$perl "/bin/perl")))
+                      (string-append (assoc-ref inputs "perl") "/bin/perl")))
 
                    (substitute* "src/lib/Gitolite/Common.pm"
                      (("\"ssh-keygen")
-                      (string-append "\"" #$openssh "/bin/ssh-keygen"))
+                      (string-append "\"" (assoc-ref inputs "openssh") "/bin/ssh-keygen"))
                      (("\"logger\"")
-                      (string-append "\"" #$inetutils "/bin/logger\"")))
+                      (string-append "\"" (assoc-ref inputs "inetutils") "/bin/logger\"")))
 
                    (substitute* "src/lib/Gitolite/Cache.pm"
                      (("/usr/sbin/redis-server") "redis-server"))
@@ -2132,16 +2132,16 @@ (define* (make-gitolite #:optional (extra-inputs '()))
                                           (string-append bindir "/" script)))
                                '("gitolite" "gitolite-shell")))))
                (add-after 'install 'wrap-scripts
-                 (lambda* _
+                 (lambda* (#:key inputs #:allow-other-keys)
                    (for-each (lambda (file-name)
                                (wrap-program (string-append #$output file-name)
                                  `("PATH" ":" prefix
                                    ,(map (lambda (dir)
                                            (string-append dir "/bin"))
                                          (list #$output
-                                               #$coreutils
-                                               #$findutils
-                                               #$git
+                                               (assoc-ref inputs "coreutils")
+                                               (assoc-ref inputs "findutils")
+                                               (assoc-ref inputs "git")
                                                #$@extra-inputs)))))
                              '("/bin/gitolite" "/bin/gitolite-shell")))))))
     (inputs

base-commit: 858dd7e721d69a6087375395037a86640418f1fb
-- 
2.47.1




This bug report was last modified 226 days ago.

Previous Next


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