~ruther/guix-local

92b725829bb8597a5828f1892812aa32620203c9 — Ludovic Courtès 9 years ago 8a8f659
gnu: guile-ssh: Compile .scm files after patching them.

Before this commit, the .go files were obtained by compiling the
unpatched .scm files, so they would refer to libguile-ssh without its
absolute file name.

* gnu/packages/ssh.scm (guile-ssh)[arguments]: Move
'fix-libguile-ssh-file-name' before 'build'.  Have it run "make install
-C libguile-ssh" first.
1 files changed, 14 insertions(+), 14 deletions(-)

M gnu/packages/ssh.scm
M gnu/packages/ssh.scm => gnu/packages/ssh.scm +14 -14
@@ 228,21 228,21 @@ Additionally, various channel-specific options can be negotiated.")
                    (lambda* (#:key inputs #:allow-other-keys)
                      (chmod "doc/version.texi" #o777) ;make it writable
                      (zero? (system* "autoreconf" "-vfi"))))
                  (add-after 'install 'fix-libguile-ssh-file-name
                  (add-before 'build 'fix-libguile-ssh-file-name
                    (lambda* (#:key outputs #:allow-other-keys)
                      (let* ((out      (assoc-ref outputs "out"))
                             (libdir   (string-append out "/lib"))
                             (guiledir (string-append out
                                                      "/share/guile/site/2.0")))
                        (substitute* (find-files guiledir ".scm")
                          (("\"libguile-ssh\"")
                           (string-append "\"" libdir "/libguile-ssh\"")))

                        ;; Make sure it works.
                        (setenv "GUILE_LOAD_PATH" guiledir)
                        (setenv "GUILE_LOAD_COMPILED_PATH" guiledir)
                        (zero?
                         (system* "guile" "-c" "(use-modules (ssh session))"))))))
                      ;; Build and install libguile-ssh.so so that we can use
                      ;; its absolute file name in .scm files, before we build
                      ;; the .go files.
                      (and (zero? (system* "make" "install"
                                           "-C" "libguile-ssh"
                                           "-j" (number->string
                                                 (parallel-job-count))))
                           (let* ((out      (assoc-ref outputs "out"))
                                  (libdir   (string-append out "/lib")))
                             (substitute* (find-files "." "\\.scm$")
                               (("\"libguile-ssh\"")
                                (string-append "\"" libdir "/libguile-ssh\"")))
                             #t)))))
       #:configure-flags (list (string-append "--with-guilesitedir="
                                              (assoc-ref %outputs "out")
                                              "/share/guile/site/2.0"))