Subject: [bug#30809] [PATCH 2/2] WIP: gitolite package changes to make the service work.

From: Christopher Baines <[email-masked]>
Date: Tue, 13 Mar 2018 21:39:33 +0000

---
 gnu/packages/version-control.scm | 37 ++++++++++++++++++++++++++++++++-----
 1 file changed, 32 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index a3f4a4dd4..4af41b37e 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -958,9 +958,9 @@ also walk each side of a merge and test those changes individually.")
 
                         ;; Avoid references to the store in authorized_keys.
                         ;; This works because gitolite-shell is in the PATH.
-                        (substitute* "src/triggers/post-compile/ssh-authkeys"
-                          (("\\$glshell \\$user")
-                           "gitolite-shell $user"))
+                        ;; (substitute* "src/triggers/post-compile/ssh-authkeys"
+                        ;;   (("\\$glshell \\$user")
+                        ;;    "gitolite-shell $user"))
                         #t)))
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -975,9 +975,36 @@ also walk each side of a merge and test those changes individually.")
                                     (symlink (string-append sharedir "/" script)
                                              (string-append bindir "/" script)))
                                   '("gitolite" "gitolite-shell"))
-                        #t))))))
+                        #t)))
+                  (add-after 'install 'wrap-scripts
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (wrap-program (string-append (assoc-ref outputs "out")
+                                                   "/share/gitolite/gitolite-shell")
+                        `("PATH" ":" prefix
+                          (,(string-append (assoc-ref inputs "git")
+                                           "/bin"))))
+                      (wrap-program (string-append (assoc-ref outputs "out")
+                                                   "/bin/gitolite")
+                        `("PATH" ":" prefix
+                          (,(string-append (assoc-ref outputs "out")
+                                           "/bin")
+                           ,(string-append (assoc-ref inputs "coreutils")
+                                           "/bin")
+                           ,(string-append (assoc-ref inputs "findutils")
+                                           "/bin")
+                           ,(string-append (assoc-ref inputs "openssh")
+                                           "/bin")
+                           ,(string-append (assoc-ref inputs "git")
+                                           "/bin")
+                           ,(string-append (assoc-ref inputs "inetutils")
+                                           "/bin")))))))))
     (inputs
-     `(("perl" ,perl)))
+     `(("perl" ,perl)
+       ("git" ,git)
+       ("openssh" ,openssh)
+       ("coreutils" ,coreutils)
+       ("findutils" ,findutils)
+       ("inetutils" ,inetutils)))
     ;; git and openssh are propagated because trying to patch the source via
     ;; regexp matching is too brittle and prone to false positives.
     (propagated-inputs
-- 
2.16.2