(address . guix-patches@gnu.org)(name . Zongyuan Li)(address . zongyuan.li@c0x0o.me)
* gnu/packages/containers.scm: New 'docker' output for podman
Signed-off-by: Zongyuan Li <zongyuan.li@c0x0o.me>
---
gnu/packages/containers.scm | 157 +++++++++++++++++++-----------------
1 file changed, 83 insertions(+), 74 deletions(-)
Toggle diff (171 lines)
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index 272b67c38d..80c4aaa400 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -312,83 +312,92 @@ (define-public podman
(package
(name "podman")
(version "4.3.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/containers/podman")
- (commit (string-append "v" version))))
- (modules '((guix build utils)))
- ;; FIXME: Btrfs libraries not detected by these scripts.
- (snippet '(substitute* "Makefile"
- ((".*hack/btrfs.*") "")))
- (sha256
- (base32 "05hv4xdf06n728lmsx793zygypc9i404bgcgpy0fyrg8c2s11q2h"))
- (file-name (git-file-name name version))))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/containers/podman")
+ (commit (string-append "v" version))))
+ (modules '((guix build utils)))
+ ;; FIXME: Btrfs libraries not detected by these scripts.
+ (snippet '(substitute* "Makefile"
+ ((".*hack/btrfs.*")
+ "")))
+ (sha256
+ (base32
+ "05hv4xdf06n728lmsx793zygypc9i404bgcgpy0fyrg8c2s11q2h"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
+ (outputs '("out" "docker"))
(arguments
- (list
- #:make-flags
- #~(list #$(string-append "CC=" (cc-for-target))
- (string-append "PREFIX=" #$output))
- #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox
- #:test-target "test"
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'set-env
- (lambda* (#:key inputs #:allow-other-keys)
- ;; when running go, things fail because
- ;; HOME=/homeless-shelter.
- (setenv "HOME" "/tmp")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- ;; (invoke "strace" "-f" "bin/podman" "version")
- (invoke "make" "localsystem")
- (invoke "make" "remotesystem"))))
- (add-after 'unpack 'fix-hardcoded-paths
- (lambda _
- (substitute* (find-files "libpod" "\\.go")
- (("exec.LookPath[(][\"]slirp4netns[\"][)]")
- (string-append "exec.LookPath(\""
- (which "slirp4netns") "\")")))
- (substitute* "hack/install_catatonit.sh"
- (("CATATONIT_PATH=\"[^\"]+\"")
- (string-append "CATATONIT_PATH=" (which "true"))))
- (substitute* "vendor/github.com/containers/common/pkg/config/config_linux.go"
- (("/usr/local/libexec/podman")
- (string-append #$output "/bin")))
- (substitute* "vendor/github.com/containers/common/pkg/config/default.go"
- (("/usr/libexec/podman/conmon") (which "conmon"))
- (("/usr/local/libexec/cni")
- (string-append #$(this-package-input "cni-plugins")
- "/bin"))
- (("/usr/bin/crun") (which "crun")))))
- (add-after 'install 'install-completions
- (lambda _
- (invoke "make" "install.completions"
- (string-append "PREFIX=" #$output)))))))
- (inputs
- (list btrfs-progs
- cni-plugins
- conmon
- crun
- gpgme
- go-github-com-go-md2man
- iptables
- libassuan
- libseccomp
- libselinux
- slirp4netns))
- (native-inputs
- (list bats
- git
- go
- ; strace ; XXX debug
- pkg-config
- python))
+ (list #:make-flags #~(list #$(string-append "CC="
+ (cc-for-target))
+ (string-append "PREFIX="
+ #$output))
+ #:tests? #f ;/sys/fs/cgroup not set up in guix sandbox
+ #:test-target "test"
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'set-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "HOME" "/tmp")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "localsystem")
+ (invoke "make" "remotesystem"))))
+ (add-after 'unpack 'fix-hardcoded-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* (find-files "libpod" "\\.go")
+ (("exec.LookPath[(][\"]slirp4netns[\"][)]")
+ (string-append "exec.LookPath(\""
+ (which "slirp4netns") "\")")))
+ (substitute* "hack/install_catatonit.sh"
+ (("CATATONIT_PATH=\"[^\"]+\"")
+ (string-append "CATATONIT_PATH="
+ (which "true"))))
+ (substitute* "vendor/github.com/containers/common/pkg/config/config_linux.go"
+ (("/usr/local/libexec/podman")
+ (string-append #$output "/bin")))
+ (substitute* "vendor/github.com/containers/common/pkg/config/default.go"
+ (("/usr/libexec/podman/conmon")
+ (which "conmon"))
+ (("/usr/local/libexec/cni")
+ (string-append #$(this-package-input
+ "cni-plugins") "/bin"))
+ (("/usr/bin/crun")
+ (which "crun")))
+ (substitute* "docker"
+ (("/usr/bin/podman")
+ (string-append (assoc-ref outputs "out")
+ "/bin/podman")))))
+ (add-after 'install 'install-docker
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((docker (assoc-ref outputs "docker")))
+ (install-file "docker"
+ (string-append docker "/bin")) #t)))
+ (add-after 'install 'install-completions
+ (lambda _
+ (invoke "make" "install.completions"
+ (string-append "PREFIX="
+ #$output)))))))
+ (inputs (list btrfs-progs
+ cni-plugins
+ conmon
+ crun
+ gpgme
+ go-github-com-go-md2man
+ iptables
+ libassuan
+ libseccomp
+ libselinux
+ slirp4netns))
+ (native-inputs (list bats
+ git
+ go
+ ;; strace ; XXX debug
+ pkg-config
+ python))
(home-page "https://podman.io")
(synopsis "Manage containers, images, pods, and their volumes")
(description
--
2.37.1 (Apple Git-137.1)