On Fri, Sep 09, 2016 at 10:23:20AM +0200, Clément Lassieur wrote:
> Efraim Flashner <efr...@flashner.co.il> writes:
> 
> > On Thu, Sep 08, 2016 at 10:28:37PM +1000, Ben Woodcroft wrote:
> 
> >> I think including git simply as an input is problematic because git-review
> >> calls git via 'subprocess', as evidenced by
> >> 
> >> $ ./pre-inst-env guix environment -C --ad-hoc git-review
> >> $ git-review
> >> [..]
> >>   File 
> >> "/gnu/store/m4gc2wx4q9if1vrhgclpspdil7rqsn21-python-3.4.3/lib/python3.4/subprocess.py",
> >> line 1457, in _execute_child
> >>     raise child_exception_type(errno_num, err_msg)
> >> FileNotFoundError: [Errno 2] No such file or directory: 'git'
> >> 
> >> So, I think we need to patch the source code to call the full path to git,
> >> or otherwise wrap the 'git-review' executable.
> >> 
> >> > +    (home-page "http://docs.openstack.org/infra/git-review/";)
> >> > +    (synopsis "Command-line tool for Gerrit")
> >> > +    (description
> >> > +     "Git-review is a command-line tool that helps submitting Git 
> >> > branches to
> >> > +Gerrit for review, or fetching existing ones.")
> >> > +    (license asl2.0)))
> >> Otherwise seems OK to me. Can you test with environment -C -N?
> >> ben
> >> 
> >
> > Try it with the attached patch
> 
> Hi, sorry for the mess and thanks for the reviews.
> 
> I did not know about the "guix environment -C -N" way of testing
> packages, and I'm very happy to learn this.
> 
> The attached patch seems to work for git, but the same error now happens
> with ssh.
> 
> -- 
> Clément

I found ssh and I found an instance of scp, so this should be better.

-- 
Efraim Flashner   <efr...@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
From a4169c369d850da7859e94152f96dc71acb42e4f Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efr...@flashner.co.il>
Date: Thu, 8 Sep 2016 21:31:32 +0300
Subject: [PATCH] gnu: python-git-review: Find outside commands.

* gnu/packages/openstack.scm (python-git-review)[arguments]: Hardcode
the location of `git', `ssh' and `scp' so that `git-review' can find
it natively.
[inputs]: Add openssh.
---
 gnu/packages/openstack.scm | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 4cb38a9..65bc296 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -20,6 +20,7 @@
 
 (define-module (gnu packages openstack)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (guix build-system python)
@@ -796,11 +797,33 @@ permanence.")
         (base32
          "07d1jn9ryff5j5ic6qj5pbk10m1ccmpllj0wyalrcms1q9yhlzh8"))))
     (build-system python-build-system)
-    (arguments `(#:tests? #f)) ; tests require a running Gerrit server
+    (arguments
+     `(#:tests? #f ; tests require a running Gerrit server
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'hardcode-outside-programs
+           (lambda _
+             (let* ((git  (string-append
+                            (assoc-ref %build-inputs "git") "/bin/git"))
+                    (base (assoc-ref %build-inputs "openssh"))
+                    (ssh  (string-append base "/bin/ssh"))
+                    (scp  (string-append base "/bin/scp")))
+               (substitute* '("git_review/cmd.py" 
"git_review/tests/test_git_review.py"
+                              "git_review/tests/test_unit.py" 
"git_review/tests/utils.py")
+                            (("\"git ") (string-append "\"" git " "))
+                            (("\"git\"") (string-append "\"" git "\""))
+                            (("'git'") (string-append "'" git "'")))
+               (substitute* "git_review/cmd.py"
+                            (("\"ssh\"") (string-append "\"" ssh "\""))
+                            (("'ssh'") (string-append "'" ssh "'"))
+                            (("\"scp\"") (string-append "\"" scp "\""))
+                            (("'scp") (string-append "'" scp)))
+               #t))))))
     (native-inputs
      `(("python-pbr" ,python-pbr)))
     (inputs
      `(("python-requests" ,python-requests)
+       ("openssh" ,openssh)
        ("git" ,git)))
     (home-page "http://docs.openstack.org/infra/git-review/";)
     (synopsis "Command-line tool for Gerrit")
-- 
2.10.0

Attachment: signature.asc
Description: PGP signature

Reply via email to