summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-10-16 14:32:50 +0200
committerLudovic Courtès <ludo@gnu.org>2020-10-16 15:00:50 +0200
commite39e8d97c17c7e7a008a4f4e125ae6b3844cc03a (patch)
tree2b7e1715bffc11e7dc7dc2b16e8c039dd43e0317
parent9a4c83bdb61d046617e87ad9b4c0e1d6b55b1810 (diff)
downloadguix-e39e8d97c17c7e7a008a4f4e125ae6b3844cc03a.tar.gz
gnu: runc, skopeo, docker-cli, umoci: Don't 'chdir' in build phases.
This fixes breaks the 'install-license-files' phase added in
6b793fa66218337a1f638466753cd5326a6a6c18 and is generally not good
practice.

Reported by divoplade on #guix.

* gnu/packages/virtualization.scm (runc)[arguments]: Use
'with-directory-excursion' instead of 'chdir' in build phases.
(skopeo)[arguments]: Likewise.
(umoci)[arguments]: Likewise.
* gnu/packages/docker.scm (docker-cli)[arguments]: In 'install' phase,
remove call to 'chdir' and adjust 'install-file' argument accordingly.
-rw-r--r--gnu/packages/virtualization.scm45
1 files changed, 24 insertions, 21 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index f536616126..ac062dfa15 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1518,18 +1518,19 @@ monitor/GPU.")
                        "-xvf" source))))
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; XXX: requires 'go-md2man'.
-             ;; (invoke "make" "man")
-             (invoke "make")))
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; XXX: requires 'go-md2man'.
+               ;; (invoke "make" "man")
+               (invoke "make"))))
          ;; (replace 'check
          ;;   (lambda _
          ;;     (invoke "make" "localunittest")))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-              (invoke "make" "install" "install-bash"
-                      (string-append "PREFIX=" out))))))))
+           (lambda* (#:key import-path outputs #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (let ((out (assoc-ref outputs "out")))
+                 (invoke "make" "install" "install-bash"
+                         (string-append "PREFIX=" out)))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -1573,14 +1574,15 @@ Open Container Initiative specification.")
                        "-xvf" source))))
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; TODO: build manpages with 'go-md2man'.
-             (invoke "make" "SHELL=bash")))
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; TODO: build manpages with 'go-md2man'.
+               (invoke "make" "SHELL=bash"))))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key import-path outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bindir (string-append out "/bin")))
-               (install-file "umoci" bindir)
+               (install-file (string-append "src/" import-path "/umoci")
+                             bindir)
                #t))))))
     (home-page "https://umo.ci/")
     (synopsis "Tool for modifying Open Container images")
@@ -1617,19 +1619,20 @@ Open Container Initiative (OCI) image layout and its tagged images.")
     (arguments
      '(#:import-path "github.com/containers/skopeo"
        #:install-source? #f
-       #:tests? #f ; The tests require Docker
+       #:tests? #f                                ; The tests require Docker
        #:phases
        (modify-phases %standard-phases
          (replace 'build
            (lambda* (#:key import-path #:allow-other-keys)
-             (chdir (string-append "src/" import-path))
-             ;; TODO: build manpages with 'go-md2man'.
-             (invoke "make" "bin/skopeo")))
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; TODO: build manpages with 'go-md2man'.
+               (invoke "make" "bin/skopeo"))))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "make" "install-binary" "install-completions"
-                       (string-append "PREFIX=" out))))))))
+           (lambda* (#:key import-path outputs #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (let ((out (assoc-ref outputs "out")))
+                 (invoke "make" "install-binary" "install-completions"
+                         (string-append "PREFIX=" out)))))))))
     (home-page "https://github.com/containers/skopeo")
     (synopsis "Interact with container images and container image registries")
     (description