* [bug#52790] [PATCH 0/4] Update docker to 20.10.11. @ 2021-12-25 14:17 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois ` (2 more replies) 0 siblings, 3 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-25 14:17 UTC (permalink / raw) To: 52790 [-- Attachment #1: Type: text/plain, Size: 1070 bytes --] Hi Guix! Here's a series to update docker. My use of docker is quite limited so we might want more testing, I just have a basic Ubuntu container. Also, while looking into this I noticed containerd's patch-paths phase wasn't running at all so I fixed that. However I'm not sure how containerd worked before without it. Docker bundles its own version that we also patch, so we're probably not hitting the code that needed patching. Thanks, Pierre Pierre Langlois (4): gnu: containerd: Fix patch-paths build phase. gnu: containerd: Update to 1.5.8. gnu: runc: Update to 1.0.3. gnu: docker: Update to 20.10.11. gnu/local.mk | 1 - gnu/packages/docker.scm | 80 +++++++++------------ gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 -------- gnu/packages/virtualization.scm | 4 +- 5 files changed, 39 insertions(+), 80 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch -- 2.34.0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 519 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase. 2021-12-25 14:17 [bug#52790] [PATCH 0/4] Update docker to 20.10.11 Pierre Langlois @ 2021-12-25 14:40 ` Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 2/4] gnu: containerd: Update to 1.5.8 Pierre Langlois ` (2 more replies) 2021-12-26 11:37 ` [bug#52790] [PATCH 0/4] Update docker " Mathieu Othacehe 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois 2 siblings, 3 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-25 14:40 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd)[arguments]: Add 'patch-paths phases after 'unpack because 'chdir doesn't exist. Substitute runc binary for "pkg/cri/config/config_unix.go". --- gnu/packages/docker.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index d012ed43c6..47e4fcd2dc 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -190,7 +190,7 @@ (define-public containerd `(#:import-path "github.com/containerd/containerd" #:phases (modify-phases %standard-phases - (add-after 'chdir 'patch-paths + (add-after 'unpack 'patch-paths (lambda* (#:key inputs import-path outputs #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (substitute* "runtime/v1/linux/runtime.go" -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 2/4] gnu: containerd: Update to 1.5.8. 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois @ 2021-12-25 14:40 ` Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 3/4] gnu: runc: Update to 1.0.3 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 4/4] gnu: docker: Update to 20.10.11 Pierre Langlois 2 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-25 14:40 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd): Update to 1.5.8. [arguments]: Substitute runc binary for "pkg/cri/config/config_unix.go". --- gnu/packages/docker.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 47e4fcd2dc..062229b3b4 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -173,7 +173,7 @@ (define-public python-docker-pycreds (define-public containerd (package (name "containerd") - (version "1.4.4") + (version "1.5.8") (source (origin (method git-fetch) @@ -182,7 +182,7 @@ (define-public containerd (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb")))) + (base32 "18lzmpbhbk1kq1nwdp6zcxb577kp425l2ikcmb45jcwgqdwzla6l")))) (build-system go-build-system) (arguments (let ((make-flags (list (string-append "VERSION=" version) @@ -202,6 +202,11 @@ (define-public containerd (string-append "defaultShim = \"" (assoc-ref outputs "out") "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (assoc-ref inputs "runc") + "/sbin/runc\""))) (substitute* "vendor/github.com/containerd/go-runc/runc.go" (("DefaultCommand[ \t]*=.*") (string-append "DefaultCommand = \"" -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 3/4] gnu: runc: Update to 1.0.3. 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 2/4] gnu: containerd: Update to 1.5.8 Pierre Langlois @ 2021-12-25 14:40 ` Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 4/4] gnu: docker: Update to 20.10.11 Pierre Langlois 2 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-25 14:40 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/virtualization.scm (runc): Update to 1.0.3. --- gnu/packages/virtualization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 14f415cf1d..b34de1a4dc 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1716,7 +1716,7 @@ (define-public looking-glass-client (define-public runc (package (name "runc") - (version "1.0.0-rc93") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append @@ -1725,7 +1725,7 @@ (define-public runc (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh")))) + "1dhss89fcs7acwd6ja0hfswqvzz8zcxllk0dlk1jqf1viwrpnag9")))) (build-system go-build-system) (arguments '(#:import-path "github.com/opencontainers/runc" -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 4/4] gnu: docker: Update to 20.10.11. 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 2/4] gnu: containerd: Update to 1.5.8 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 3/4] gnu: runc: Update to 1.0.3 Pierre Langlois @ 2021-12-25 14:40 ` Pierre Langlois 2 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-25 14:40 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (%docker-version): Update to 20.10.11. (docker-libnetwork): Update commit according to vendor.conf. (docker)[origin]: Remove docker-fix-tests.patch. [arguments]: Adapt 'patch-paths phase, substitute "ip6tables" and buildkit-qemu. Remove trailing #t. [native-inputs]: Replace go-1.14 by go. (docker-cli)[arguments]: Set GO_LINKMODE to "dynamic". Remove trailing #t. * gnu/packages/networking.scm (go-sctp): Update commit according to docker-libnetwork's vendor.conf. * gnu/packages/patches/docker-fix-tests.patch: Delete. * gnu/local.mk (dist_patch_DATA): Remove patch. --- gnu/local.mk | 1 - gnu/packages/docker.scm | 69 ++++++++------------- gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 --------- 4 files changed, 29 insertions(+), 75 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index aa0117a3f5..f2dbd2330a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -996,7 +996,6 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/docker-fix-tests.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 062229b3b4..1d09184e4d 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -52,7 +52,7 @@ (define-module (gnu packages docker) ;; Note - when changing Docker versions it is important to update the versions ;; of several associated packages (docker-libnetwork and go-sctp). -(define %docker-version "19.03.15") +(define %docker-version "20.10.11") (define-public python-docker (package @@ -248,13 +248,12 @@ (define-public containerd ;;; anyway, as it needs many dependencies that aren't being satisfied. (define docker-libnetwork ;; There are no recent release for libnetwork, so choose the last commit of - ;; the branch that Docker uses, as can be seen in the Docker source file - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that - ;; this version is kept in sync with the version of Docker being used. - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker + ;; source file. NOTE - It is important that this version is kept in sync + ;; with the version of Docker being used. + (let ((commit "64b7a4574d1426139437d20e81c0b6d391130ec8") (version (version-major+minor %docker-version)) - (revision "1")) + (revision "2")) (package (name "docker-libnetwork") (version (git-version version revision commit)) @@ -267,7 +266,7 @@ (define docker-libnetwork (file-name (git-file-name name version)) (sha256 (base32 - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) + "1sxn10kn5b6wv06im3y2as7pjsz51zyv3cd007blxjl9wivxzzxs")) ;; Delete bundled ("vendored") free software source code. (modules '((guix build utils))) (snippet '(begin @@ -320,9 +319,7 @@ (define-public docker (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) - (patches - (search-patches "docker-fix-tests.patch")))) + (base32 "1h1r66j57l073iba6hwrhcz779vaym68l1gfycdiw2d2gglfrdgr")))) (build-system gnu-build-system) (arguments `(#:modules @@ -365,9 +362,10 @@ (define-public docker (("DefaultRuntimeBinary = .*") (string-append "DefaultRuntimeBinary = \"" (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultRuntimeName = .*") - (string-append "DefaultRuntimeName = \"" + "/sbin/runc\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" (assoc-ref inputs "runc") "/sbin/runc\"\n"))) (substitute* "daemon/config/config.go" @@ -396,16 +394,6 @@ (define-public docker (substitute* "pkg/archive/archive.go" (("string\\{\"xz") (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "registry/resumable/resumablerequestreader_test.go" - (("I%27m%20not%20an%20url" all) - (string-append "\"" all "\""))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "vendor/gotest.tools/x/subtest/context.go" - (("func \\(tc \\*testcase\\) Cleanup\\(" all) - (string-append all "func()")) - (("tc\\.Cleanup\\(" all) - (string-append all "nil"))) (let ((source-files (filter (lambda (name) (not (string-contains name "test"))) @@ -442,6 +430,7 @@ (define-public docker ("blkid" "util-linux" "sbin/blkid") ("unpigz" "pigz" "bin/unpigz") ("iptables" "iptables" "sbin/iptables") + ("ip6tables" "iptables" "sbin/ip6tables") ("iptables-legacy" "iptables" "sbin/iptables") ("ip" "iproute2" "sbin/ip")) @@ -490,10 +479,10 @@ (define-public docker "exec.Command") ;; Search for ZFS in PATH. (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") ;; Fail on other unsubstituted LookPaths. (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))) - #t)) + (("\\<LooxPath") "LookPath"))))) (add-after 'patch-paths 'delete-failing-tests (lambda _ ;; Needs internet access. @@ -518,8 +507,7 @@ (define-public docker ;; This file uses /var. (delete-file "daemon/oci_linux_test.go") ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go") - #t)) + (delete-file "pkg/signal/signal_linux_test.go"))) (replace 'configure (lambda _ (setenv "DOCKER_BUILDTAGS" "seccomp") @@ -532,8 +520,7 @@ (define-public docker ;; information, and the DWARF symbol table. (setenv "LDFLAGS" "-s -w") ;; Make build faster - (setenv "GOCACHE" "/tmp") - #t)) + (setenv "GOCACHE" "/tmp"))) (add-before 'build 'setup-go-environment (assoc-ref go:%standard-phases 'setup-go-environment)) (replace 'build @@ -555,8 +542,7 @@ (define-public docker "/.gopath/src/github.com/docker/docker")) (with-directory-excursion ".gopath/src/github.com/docker/docker" (invoke "hack/test/unit")) - (setenv "PWD" #f) - #t)) + (setenv "PWD" #f))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -564,8 +550,7 @@ (define-public docker (install-file "bundles/dynbinary-daemon/dockerd" out-bin) (install-file (string-append "bundles/dynbinary-daemon/dockerd-" (getenv "VERSION")) - out-bin) - #t))) + out-bin)))) (add-after 'install 'remove-go-references (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs @@ -590,7 +575,7 @@ (define-public docker ("xz" ,xz))) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go-1.14 gotestsum pkg-config)) + go gotestsum pkg-config)) (synopsis "Docker container component library, and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image @@ -611,7 +596,7 @@ (define-public docker-cli (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) + (base32 "0dmmxn9ahyq2yq935fvp1b6ka6s43ih9nh6wwx8v6rjg7y35rb1n")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" @@ -631,11 +616,11 @@ (define-public docker-cli ;; Make build reproducible. (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (symlink "src/github.com/docker/cli/scripts" "./scripts") - (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") - #t)) + (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile"))) (replace 'build (lambda _ - (invoke "./scripts/build/dynbinary"))) + (setenv "GO_LINKMODE" "dynamic") + (invoke "./scripts/build/binary"))) (replace 'check (lambda* (#:key make-flags tests? #:allow-other-keys) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) @@ -644,8 +629,7 @@ (define-public docker-cli (with-directory-excursion "src/github.com/docker/cli" ;; TODO: Run test-e2e as well? (apply invoke "make" "-f" "docker.Makefile" "test-unit" - (or make-flags '()))) - #t))) + (or make-flags '())))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -658,8 +642,7 @@ (define-public docker-cli (string-append etc "/fish/completions")) (install-file "zsh/_docker" (string-append etc "/zsh/site-functions"))) - (install-file "build/docker" out-bin) - #t)))))) + (install-file "build/docker" out-bin))))))) (native-inputs (list go libltdl pkg-config)) (synopsis "Command line interface to Docker") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 4923ec91e9..cc9864ef19 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1655,8 +1655,8 @@ (define-public go-netns (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. - (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") - (revision "2")) + (let ((commit "f2269e66cdee387bd321445d5d300893449805be") + (revision "3")) (package (name "go-sctp") (version (git-version "0.0.0" revision commit)) @@ -1668,7 +1668,7 @@ (define-public go-sctp (file-name (git-file-name name version)) (sha256 (base32 - "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) + "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g")))) (build-system go-build-system) (arguments `(#:tests? #f ; Test suite is flakey. diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch deleted file mode 100644 index 3e3e318e25..0000000000 --- a/gnu/packages/patches/docker-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Author: Danny Milosavljevic <dannym@scratchpost.org> -The socket name ended up too long inside the container. -Use a shorter one. ---- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100 -+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100 -@@ -24,7 +24,7 @@ - ) - - const ( -- pluginAddress = "authz-test-plugin.sock" -+ pluginAddress = "/tmp/authz-test-plugin.sock" - ) - - func TestAuthZRequestPluginError(t *testing.T) { -@@ -263,12 +263,7 @@ - - // createTestPlugin creates a new sample authorization plugin - func createTestPlugin(t *testing.T) *authorizationPlugin { -- pwd, err := os.Getwd() -- if err != nil { -- t.Fatal(err) -- } -- -- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) -+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) - if err != nil { - t.Fatalf("Failed to create client %v", err) - } -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 0/4] Update docker to 20.10.11. 2021-12-25 14:17 [bug#52790] [PATCH 0/4] Update docker to 20.10.11 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois @ 2021-12-26 11:37 ` Mathieu Othacehe 2021-12-27 16:42 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois 2 siblings, 1 reply; 29+ messages in thread From: Mathieu Othacehe @ 2021-12-26 11:37 UTC (permalink / raw) To: Pierre Langlois; +Cc: 52790 Hello Pierre, > Here's a series to update docker. My use of docker is quite limited so > we might want more testing, I just have a basic Ubuntu container. Thanks for updating Docker. We have two system tests, that you can run this way: --8<---------------cut here---------------start------------->8--- make check-system TESTS="docker docker-system" --8<---------------cut here---------------end--------------->8--- Mathieu ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH 0/4] Update docker to 20.10.11. 2021-12-26 11:37 ` [bug#52790] [PATCH 0/4] Update docker " Mathieu Othacehe @ 2021-12-27 16:42 ` Pierre Langlois 0 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2021-12-27 16:42 UTC (permalink / raw) To: Mathieu Othacehe; +Cc: Pierre Langlois, 52790 [-- Attachment #1: Type: text/plain, Size: 428 bytes --] Hi, Mathieu Othacehe <othacehe@gnu.org> writes: > Hello Pierre, > >> Here's a series to update docker. My use of docker is quite limited so >> we might want more testing, I just have a basic Ubuntu container. > > Thanks for updating Docker. We have two system tests, that you can run > this way: > > make check-system TESTS="docker docker-system" Oh yeah of course! These tests pass for me with this series. Thanks, Pierre [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 519 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14. 2021-12-25 14:17 [bug#52790] [PATCH 0/4] Update docker to 20.10.11 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2021-12-26 11:37 ` [bug#52790] [PATCH 0/4] Update docker " Mathieu Othacehe @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 1/7] gnu: runc: Update to 1.1.0 Pierre Langlois ` (7 more replies) 2 siblings, 8 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois Hi Guix! I rebased this series, updated it to 20.10.14 and did a bit of spring gexp cleanup. Tested manually with a simple Ubuntu container, and with make check-system TESTS="docker docker-system" I've seen reports of issues on help-guix that /look/ like patch number 2 might fix it, so we could submit that first if the rest needs more work. WDYT? Thanks, Pierre Pierre Langlois (7): gnu: runc: Update to 1.1.0. gnu: containerd: Fix patch-paths build phase. gnu: containerd: Update to 1.6.2. gnu: containerd: Switch to gexp arguments. gnu: docker: Fix mkfs.xfs reference. gnu: docker: Update to 20.10.14. gnu: docker: Switch to gexp and new input style. gnu/local.mk | 1 - gnu/packages/docker.scm | 625 ++++++++++---------- gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 - gnu/packages/virtualization.scm | 6 +- 5 files changed, 314 insertions(+), 352 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch -- 2.34.0 ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 1/7] gnu: runc: Update to 1.1.0. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois ` (6 subsequent siblings) 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/virtualization.scm (runc): Update to 1.1.0. --- gnu/packages/virtualization.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index a058e59f6b..d0a37fcb0c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> -;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> @@ -1776,7 +1776,7 @@ (define-public looking-glass-client (define-public runc (package (name "runc") - (version "1.0.0-rc93") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append @@ -1785,7 +1785,7 @@ (define-public runc (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh")))) + "08y6vp94y37ps8wx7njss8l7f57qa8bbsrz32xkmm91sg5sqjbhm")))) (build-system go-build-system) (arguments '(#:import-path "github.com/opencontainers/runc" -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 2/7] gnu: containerd: Fix patch-paths build phase. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 1/7] gnu: runc: Update to 1.1.0 Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 3/7] gnu: containerd: Update to 1.6.2 Pierre Langlois ` (5 subsequent siblings) 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd)[arguments]: Add 'patch-paths phases after 'unpack because 'chdir doesn't exist. --- gnu/packages/docker.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 3f52f4f8db..b76db22d58 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +191,7 @@ (define-public containerd `(#:import-path "github.com/containerd/containerd" #:phases (modify-phases %standard-phases - (add-after 'chdir 'patch-paths + (add-after 'unpack 'patch-paths (lambda* (#:key inputs import-path outputs #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (substitute* "runtime/v1/linux/runtime.go" -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 3/7] gnu: containerd: Update to 1.6.2. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 1/7] gnu: runc: Update to 1.1.0 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois ` (4 subsequent siblings) 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd): Update to 1.6.2. [arguments]: Substitute runc binary for "pkg/cri/config/config_unix.go". Set PREFIX to empty string, as the install directory is $DESTDIR/$PREFIX. --- gnu/packages/docker.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index b76db22d58..7a7594f2b1 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -174,7 +174,7 @@ (define-public python-docker-pycreds (define-public containerd (package (name "containerd") - (version "1.4.4") + (version "1.6.2") (source (origin (method git-fetch) @@ -183,7 +183,7 @@ (define-public containerd (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb")))) + (base32 "0fw62aya0gwxaa2kkcjkbifp8n0xmk1x0qzjahlsls6g0pmh5pkq")))) (build-system go-build-system) (arguments (let ((make-flags (list (string-append "VERSION=" version) @@ -203,6 +203,11 @@ (define-public containerd (string-append "defaultShim = \"" (assoc-ref outputs "out") "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (assoc-ref inputs "runc") + "/sbin/runc\""))) (substitute* "vendor/github.com/containerd/go-runc/runc.go" (("DefaultCommand[ \t]*=.*") (string-append "DefaultCommand = \"" @@ -226,8 +231,8 @@ (define-public containerd (lambda* (#:key import-path outputs #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (let* ((out (assoc-ref outputs "out"))) - (apply invoke "make" (string-append "DESTDIR=" out) "install" - ',make-flags))))))))) + (apply invoke "make" (string-append "DESTDIR=" out) + "PREFIX=" "install" ',make-flags))))))))) (inputs (list btrfs-progs libseccomp pigz runc util-linux)) (native-inputs -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 4/7] gnu: containerd: Switch to gexp arguments. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois ` (2 preceding siblings ...) 2022-04-01 0:46 ` [bug#52790] [PATCH v2 3/7] gnu: containerd: Update to 1.6.2 Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois ` (3 subsequent siblings) 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd)[arguments]: Rewrite as gexps. Pass all flags via make-flags variable. Switch to using search-input-file. --- gnu/packages/docker.scm | 95 +++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 7a7594f2b1..d2c022f552 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -29,6 +29,7 @@ (define-module (gnu packages docker) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -186,53 +187,55 @@ (define-public containerd (base32 "0fw62aya0gwxaa2kkcjkbifp8n0xmk1x0qzjahlsls6g0pmh5pkq")))) (build-system go-build-system) (arguments - (let ((make-flags (list (string-append "VERSION=" version) - "REVISION=0"))) - `(#:import-path "github.com/containerd/containerd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* "runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref outputs "out") - "/bin/containerd-shim\"\n"))) - (substitute* "pkg/cri/config/config_unix.go" - (("DefaultRuntimeName: \"runc\"") - (string-append "DefaultRuntimeName: \"" - (assoc-ref inputs "runc") - "/sbin/runc\""))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand[ \t]*=.*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/continuity/testutil\ + (let ((make-flags #~(list (string-append "VERSION=" #$version) + (string-append "DESTDIR=" #$output) + "PREFIX=" + "REVISION=0"))) + (list + #:import-path "github.com/containerd/containerd" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs import-path outputs #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (assoc-ref outputs "out") + "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (search-input-file inputs "/sbin/runc") + "\""))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand[ \t]*=.*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/continuity/testutil\ /loopback/loopback_linux.go" - (("exec\\.Command\\(\"losetup\"") - (string-append "exec.Command(\"" - (assoc-ref inputs "util-linux") - "/sbin/losetup\""))) - (substitute* "archive/compression/compression.go" - (("exec\\.LookPath\\(\"unpigz\"\\)") - (string-append "\"" (assoc-ref inputs "pigz") - "/bin/unpigz\", error(nil)")))))) - (replace 'build - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (apply invoke "make" ',make-flags)))) - (replace 'install - (lambda* (#:key import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (let* ((out (assoc-ref outputs "out"))) - (apply invoke "make" (string-append "DESTDIR=" out) - "PREFIX=" "install" ',make-flags))))))))) + (("exec\\.Command\\(\"losetup\"") + (string-append "exec.Command(\"" + (search-input-file inputs "/sbin/losetup") + "\""))) + (substitute* "archive/compression/compression.go" + (("exec\\.LookPath\\(\"unpigz\"\\)") + (string-append "\"" + (search-input-file inputs "/bin/unpigz") + "\", error(nil)")))))) + (replace 'build + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" #$make-flags)))) + (replace 'install + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" "install" #$make-flags)))))))) (inputs (list btrfs-progs libseccomp pigz runc util-linux)) (native-inputs -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 5/7] gnu: docker: Fix mkfs.xfs reference. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois ` (3 preceding siblings ...) 2022-04-01 0:46 ` [bug#52790] [PATCH v2 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14 Pierre Langlois ` (2 subsequent siblings) 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (docker)[arguments]: Refer to sbin/mkfs.xfs instead of bin/mkfs.xfs. --- gnu/packages/docker.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index d2c022f552..0d721ead38 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -440,7 +440,7 @@ (define-public docker (substitute-LookPath* ("containerd" "containerd" "bin/containerd") ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs") + ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") ("pvdisplay" "lvm2" "sbin/pvdisplay") ("blkid" "util-linux" "sbin/blkid") -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois ` (4 preceding siblings ...) 2022-04-01 0:46 ` [bug#52790] [PATCH v2 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-04-01 1:11 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois 2022-05-09 23:27 ` [bug#52790] [PATCH v3 0/7] Update docker to 20.10.15 Pierre Langlois 7 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (%docker-version): Update to 20.10.14. (docker-libnetwork): Update commit according to vendor.conf. (docker)[origin]: Remove docker-fix-tests.patch. [arguments]: Adapt 'patch-paths phase, substitute "ip6tables" and buildkit-qemu. Remove trailing #t. [native-inputs]: Replace go-1.14 by go. (docker-cli)[arguments]: Set GO_LINKMODE to "dynamic". Remove trailing #t. * gnu/packages/networking.scm (go-sctp): Update commit according to docker-libnetwork's vendor.conf. * gnu/packages/patches/docker-fix-tests.patch: Delete. * gnu/local.mk (dist_patch_DATA): Remove patch. --- gnu/local.mk | 1 - gnu/packages/docker.scm | 69 ++++++++------------- gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 --------- 4 files changed, 29 insertions(+), 75 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index a704161abc..d5b3d4bba3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1007,7 +1007,6 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/docker-fix-tests.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 0d721ead38..020c89bb11 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -54,7 +54,7 @@ (define-module (gnu packages docker) ;; Note - when changing Docker versions it is important to update the versions ;; of several associated packages (docker-libnetwork and go-sctp). -(define %docker-version "19.03.15") +(define %docker-version "20.10.14") (define-public python-docker (package @@ -252,13 +252,12 @@ (define-public containerd ;;; anyway, as it needs many dependencies that aren't being satisfied. (define docker-libnetwork ;; There are no recent release for libnetwork, so choose the last commit of - ;; the branch that Docker uses, as can be seen in the Docker source file - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that - ;; this version is kept in sync with the version of Docker being used. - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker + ;; source file. NOTE - It is important that this version is kept in sync + ;; with the version of Docker being used. + (let ((commit "339b972b464ee3d401b5788b2af9e31d09d6b7da") (version (version-major+minor %docker-version)) - (revision "1")) + (revision "2")) (package (name "docker-libnetwork") (version (git-version version revision commit)) @@ -271,7 +270,7 @@ (define docker-libnetwork (file-name (git-file-name name version)) (sha256 (base32 - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) + "0wx2hdwx56cbxiaky9kw2bi1prdfgzwr776lq1k0slw8kvn0cn32")) ;; Delete bundled ("vendored") free software source code. (modules '((guix build utils))) (snippet '(begin @@ -324,9 +323,7 @@ (define-public docker (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) - (patches - (search-patches "docker-fix-tests.patch")))) + (base32 "18nid42p1n20mg7spz0knh4izkk8qgjz9xi6v54czvy7aaj336i3")))) (build-system gnu-build-system) (arguments `(#:modules @@ -369,9 +366,10 @@ (define-public docker (("DefaultRuntimeBinary = .*") (string-append "DefaultRuntimeBinary = \"" (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultRuntimeName = .*") - (string-append "DefaultRuntimeName = \"" + "/sbin/runc\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" (assoc-ref inputs "runc") "/sbin/runc\"\n"))) (substitute* "daemon/config/config.go" @@ -400,16 +398,6 @@ (define-public docker (substitute* "pkg/archive/archive.go" (("string\\{\"xz") (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "registry/resumable/resumablerequestreader_test.go" - (("I%27m%20not%20an%20url" all) - (string-append "\"" all "\""))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "vendor/gotest.tools/x/subtest/context.go" - (("func \\(tc \\*testcase\\) Cleanup\\(" all) - (string-append all "func()")) - (("tc\\.Cleanup\\(" all) - (string-append all "nil"))) (let ((source-files (filter (lambda (name) (not (string-contains name "test"))) @@ -446,6 +434,7 @@ (define-public docker ("blkid" "util-linux" "sbin/blkid") ("unpigz" "pigz" "bin/unpigz") ("iptables" "iptables" "sbin/iptables") + ("ip6tables" "iptables" "sbin/ip6tables") ("iptables-legacy" "iptables" "sbin/iptables") ("ip" "iproute2" "sbin/ip")) @@ -494,10 +483,10 @@ (define-public docker "exec.Command") ;; Search for ZFS in PATH. (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") ;; Fail on other unsubstituted LookPaths. (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))) - #t)) + (("\\<LooxPath") "LookPath"))))) (add-after 'patch-paths 'delete-failing-tests (lambda _ ;; Needs internet access. @@ -522,8 +511,7 @@ (define-public docker ;; This file uses /var. (delete-file "daemon/oci_linux_test.go") ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go") - #t)) + (delete-file "pkg/signal/signal_linux_test.go"))) (replace 'configure (lambda _ (setenv "DOCKER_BUILDTAGS" "seccomp") @@ -536,8 +524,7 @@ (define-public docker ;; information, and the DWARF symbol table. (setenv "LDFLAGS" "-s -w") ;; Make build faster - (setenv "GOCACHE" "/tmp") - #t)) + (setenv "GOCACHE" "/tmp"))) (add-before 'build 'setup-go-environment (assoc-ref go:%standard-phases 'setup-go-environment)) (replace 'build @@ -559,8 +546,7 @@ (define-public docker "/.gopath/src/github.com/docker/docker")) (with-directory-excursion ".gopath/src/github.com/docker/docker" (invoke "hack/test/unit")) - (setenv "PWD" #f) - #t)) + (setenv "PWD" #f))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -568,8 +554,7 @@ (define-public docker (install-file "bundles/dynbinary-daemon/dockerd" out-bin) (install-file (string-append "bundles/dynbinary-daemon/dockerd-" (getenv "VERSION")) - out-bin) - #t))) + out-bin)))) (add-after 'install 'remove-go-references (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs @@ -594,7 +579,7 @@ (define-public docker ("xz" ,xz))) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go-1.14 gotestsum pkg-config)) + go gotestsum pkg-config)) (synopsis "Docker container component library, and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image @@ -615,7 +600,7 @@ (define-public docker-cli (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) + (base32 "1nv6mzq9i9psgfbzx7hfx1qb6fjp649qg8y392z8z2kqbjl20g3q")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" @@ -635,11 +620,11 @@ (define-public docker-cli ;; Make build reproducible. (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (symlink "src/github.com/docker/cli/scripts" "./scripts") - (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") - #t)) + (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile"))) (replace 'build (lambda _ - (invoke "./scripts/build/dynbinary"))) + (setenv "GO_LINKMODE" "dynamic") + (invoke "./scripts/build/binary"))) (replace 'check (lambda* (#:key make-flags tests? #:allow-other-keys) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) @@ -648,8 +633,7 @@ (define-public docker-cli (with-directory-excursion "src/github.com/docker/cli" ;; TODO: Run test-e2e as well? (apply invoke "make" "-f" "docker.Makefile" "test-unit" - (or make-flags '()))) - #t))) + (or make-flags '())))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -662,8 +646,7 @@ (define-public docker-cli (string-append etc "/fish/completions")) (install-file "zsh/_docker" (string-append etc "/zsh/site-functions"))) - (install-file "build/docker" out-bin) - #t)))))) + (install-file "build/docker" out-bin))))))) (native-inputs (list go libltdl pkg-config)) (synopsis "Command line interface to Docker") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b45f2f79f2..54116e4f4c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1691,8 +1691,8 @@ (define-public go-netns (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. - (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") - (revision "2")) + (let ((commit "f2269e66cdee387bd321445d5d300893449805be") + (revision "3")) (package (name "go-sctp") (version (git-version "0.0.0" revision commit)) @@ -1704,7 +1704,7 @@ (define-public go-sctp (file-name (git-file-name name version)) (sha256 (base32 - "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) + "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g")))) (build-system go-build-system) (arguments `(#:tests? #f ; Test suite is flakey. diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch deleted file mode 100644 index 3e3e318e25..0000000000 --- a/gnu/packages/patches/docker-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Author: Danny Milosavljevic <dannym@scratchpost.org> -The socket name ended up too long inside the container. -Use a shorter one. ---- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100 -+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100 -@@ -24,7 +24,7 @@ - ) - - const ( -- pluginAddress = "authz-test-plugin.sock" -+ pluginAddress = "/tmp/authz-test-plugin.sock" - ) - - func TestAuthZRequestPluginError(t *testing.T) { -@@ -263,12 +263,7 @@ - - // createTestPlugin creates a new sample authorization plugin - func createTestPlugin(t *testing.T) *authorizationPlugin { -- pwd, err := os.Getwd() -- if err != nil { -- t.Fatal(err) -- } -- -- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) -+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) - if err != nil { - t.Fatalf("Failed to create client %v", err) - } -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14 Pierre Langlois @ 2022-04-01 1:11 ` Pierre Langlois 0 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 1:11 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois [-- Attachment #1.1: Type: text/plain, Size: 7277 bytes --] Pierre Langlois <pierre.langlois@gmx.com> writes: > * gnu/packages/docker.scm (%docker-version): Update to 20.10.14. > (docker-libnetwork): Update commit according to vendor.conf. > (docker)[origin]: Remove docker-fix-tests.patch. > [arguments]: Adapt 'patch-paths phase, substitute "ip6tables" and > buildkit-qemu. Remove trailing #t. > [native-inputs]: Replace go-1.14 by go. > (docker-cli)[arguments]: Set GO_LINKMODE to "dynamic". Remove trailing #t. > * gnu/packages/networking.scm (go-sctp): Update commit according to > docker-libnetwork's vendor.conf. > * gnu/packages/patches/docker-fix-tests.patch: Delete. > * gnu/local.mk (dist_patch_DATA): Remove patch. > --- > gnu/local.mk | 1 - > gnu/packages/docker.scm | 69 ++++++++------------- > gnu/packages/networking.scm | 6 +- > gnu/packages/patches/docker-fix-tests.patch | 28 --------- > 4 files changed, 29 insertions(+), 75 deletions(-) > delete mode 100644 gnu/packages/patches/docker-fix-tests.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index a704161abc..d5b3d4bba3 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -1007,7 +1007,6 @@ dist_patch_DATA = \ > %D%/packages/patches/docbook-xsl-support-old-url.patch \ > %D%/packages/patches/doc++-include-directives.patch \ > %D%/packages/patches/doc++-segfault-fix.patch \ > - %D%/packages/patches/docker-fix-tests.patch \ > %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ > %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ > %D%/packages/patches/dstat-skip-devices-without-io.patch \ > diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm > index 0d721ead38..020c89bb11 100644 > --- a/gnu/packages/docker.scm > +++ b/gnu/packages/docker.scm > @@ -54,7 +54,7 @@ (define-module (gnu packages docker) > > ;; Note - when changing Docker versions it is important to update the versions > ;; of several associated packages (docker-libnetwork and go-sctp). > -(define %docker-version "19.03.15") > +(define %docker-version "20.10.14") > > (define-public python-docker > (package > @@ -252,13 +252,12 @@ (define-public containerd > ;;; anyway, as it needs many dependencies that aren't being satisfied. > (define docker-libnetwork > ;; There are no recent release for libnetwork, so choose the last commit of > - ;; the branch that Docker uses, as can be seen in the Docker source file > - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that > - ;; this version is kept in sync with the version of Docker being used. > - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. > - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") > + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker > + ;; source file. NOTE - It is important that this version is kept in sync > + ;; with the version of Docker being used. > + (let ((commit "339b972b464ee3d401b5788b2af9e31d09d6b7da") > (version (version-major+minor %docker-version)) > - (revision "1")) > + (revision "2")) > (package > (name "docker-libnetwork") > (version (git-version version revision commit)) > @@ -271,7 +270,7 @@ (define docker-libnetwork > (file-name (git-file-name name version)) > (sha256 > (base32 > - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) > + "0wx2hdwx56cbxiaky9kw2bi1prdfgzwr776lq1k0slw8kvn0cn32")) > ;; Delete bundled ("vendored") free software source code. > (modules '((guix build utils))) > (snippet '(begin > @@ -324,9 +323,7 @@ (define-public docker > (commit (string-append "v" version)))) > (file-name (git-file-name name version)) > (sha256 > - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) > - (patches > - (search-patches "docker-fix-tests.patch")))) > + (base32 "18nid42p1n20mg7spz0knh4izkk8qgjz9xi6v54czvy7aaj336i3")))) > (build-system gnu-build-system) > (arguments > `(#:modules > @@ -369,9 +366,10 @@ (define-public docker > (("DefaultRuntimeBinary = .*") > (string-append "DefaultRuntimeBinary = \"" > (assoc-ref inputs "runc") > - "/sbin/runc\"\n")) > - (("DefaultRuntimeName = .*") > - (string-append "DefaultRuntimeName = \"" > + "/sbin/runc\"\n"))) > + (substitute* "daemon/runtime_unix.go" > + (("defaultRuntimeName = .*") > + (string-append "defaultRuntimeName = \"" > (assoc-ref inputs "runc") > "/sbin/runc\"\n"))) > (substitute* "daemon/config/config.go" > @@ -400,16 +398,6 @@ (define-public docker > (substitute* "pkg/archive/archive.go" > (("string\\{\"xz") > (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) > - ;; TODO: Remove when Docker proper uses v1.14.x to build > - (substitute* "registry/resumable/resumablerequestreader_test.go" > - (("I%27m%20not%20an%20url" all) > - (string-append "\"" all "\""))) > - ;; TODO: Remove when Docker proper uses v1.14.x to build > - (substitute* "vendor/gotest.tools/x/subtest/context.go" > - (("func \\(tc \\*testcase\\) Cleanup\\(" all) > - (string-append all "func()")) > - (("tc\\.Cleanup\\(" all) > - (string-append all "nil"))) > > (let ((source-files (filter (lambda (name) > (not (string-contains name "test"))) > @@ -446,6 +434,7 @@ (define-public docker > ("blkid" "util-linux" "sbin/blkid") > ("unpigz" "pigz" "bin/unpigz") > ("iptables" "iptables" "sbin/iptables") > + ("ip6tables" "iptables" "sbin/ip6tables") > ("iptables-legacy" "iptables" "sbin/iptables") > ("ip" "iproute2" "sbin/ip")) > > @@ -494,10 +483,10 @@ (define-public docker > "exec.Command") > ;; Search for ZFS in PATH. > (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") > + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") I forgot, I wanted to add a comment to clarify the qemu change here. IIUC, docker can do qemu-based emulation, but we don't support it yet in Guix, I believe we'd need to add the following packages: - https://github.com/moby/buildkit: Seems to be a "next-gen" generic image builder backend. - https://github.com/docker/buildx: To have a `docker buildx' command, to link docker with the buildkit backend. Here's a new 2.5 patch that adds the following note: ;; Do not fail when buildkit-qemu-<target> isn't found. ;; FIXME: We might need to package buildkit and docker's ;; buildx plugin, to support qemu-based docker containers. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 519 bytes --] [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0006-gnu-docker-Update-to-20.10.14.patch --] [-- Type: text/x-patch, Size: 14244 bytes --] From 7c9a1ac422d802234099b7c57e067dbe217ac386 Mon Sep 17 00:00:00 2001 From: Pierre Langlois <pierre.langlois@gmx.com> Date: Sat, 25 Dec 2021 02:08:39 +0000 Subject: [PATCH v2.5 6/7] gnu: docker: Update to 20.10.14. * gnu/packages/docker.scm (%docker-version): Update to 20.10.14. (docker-libnetwork): Update commit according to vendor.conf. (docker)[origin]: Remove docker-fix-tests.patch. [arguments]: Adapt 'patch-paths phase, substitute "ip6tables" and buildkit-qemu. Remove trailing #t. [native-inputs]: Replace go-1.14 by go. (docker-cli)[arguments]: Set GO_LINKMODE to "dynamic". Remove trailing #t. * gnu/packages/networking.scm (go-sctp): Update commit according to docker-libnetwork's vendor.conf. * gnu/packages/patches/docker-fix-tests.patch: Delete. * gnu/local.mk (dist_patch_DATA): Remove patch. --- gnu/local.mk | 1 - gnu/packages/docker.scm | 72 +++++++++------------ gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 -------- 4 files changed, 32 insertions(+), 75 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index a704161abc..d5b3d4bba3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1007,7 +1007,6 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/docker-fix-tests.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 0d721ead38..82c017157d 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -54,7 +54,7 @@ (define-module (gnu packages docker) ;; Note - when changing Docker versions it is important to update the versions ;; of several associated packages (docker-libnetwork and go-sctp). -(define %docker-version "19.03.15") +(define %docker-version "20.10.14") (define-public python-docker (package @@ -252,13 +252,12 @@ (define-public containerd ;;; anyway, as it needs many dependencies that aren't being satisfied. (define docker-libnetwork ;; There are no recent release for libnetwork, so choose the last commit of - ;; the branch that Docker uses, as can be seen in the Docker source file - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that - ;; this version is kept in sync with the version of Docker being used. - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker + ;; source file. NOTE - It is important that this version is kept in sync + ;; with the version of Docker being used. + (let ((commit "339b972b464ee3d401b5788b2af9e31d09d6b7da") (version (version-major+minor %docker-version)) - (revision "1")) + (revision "2")) (package (name "docker-libnetwork") (version (git-version version revision commit)) @@ -271,7 +270,7 @@ (define docker-libnetwork (file-name (git-file-name name version)) (sha256 (base32 - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) + "0wx2hdwx56cbxiaky9kw2bi1prdfgzwr776lq1k0slw8kvn0cn32")) ;; Delete bundled ("vendored") free software source code. (modules '((guix build utils))) (snippet '(begin @@ -324,9 +323,7 @@ (define-public docker (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) - (patches - (search-patches "docker-fix-tests.patch")))) + (base32 "18nid42p1n20mg7spz0knh4izkk8qgjz9xi6v54czvy7aaj336i3")))) (build-system gnu-build-system) (arguments `(#:modules @@ -369,9 +366,10 @@ (define-public docker (("DefaultRuntimeBinary = .*") (string-append "DefaultRuntimeBinary = \"" (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultRuntimeName = .*") - (string-append "DefaultRuntimeName = \"" + "/sbin/runc\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" (assoc-ref inputs "runc") "/sbin/runc\"\n"))) (substitute* "daemon/config/config.go" @@ -400,16 +398,6 @@ (define-public docker (substitute* "pkg/archive/archive.go" (("string\\{\"xz") (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "registry/resumable/resumablerequestreader_test.go" - (("I%27m%20not%20an%20url" all) - (string-append "\"" all "\""))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "vendor/gotest.tools/x/subtest/context.go" - (("func \\(tc \\*testcase\\) Cleanup\\(" all) - (string-append all "func()")) - (("tc\\.Cleanup\\(" all) - (string-append all "nil"))) (let ((source-files (filter (lambda (name) (not (string-contains name "test"))) @@ -446,6 +434,7 @@ (define-public docker ("blkid" "util-linux" "sbin/blkid") ("unpigz" "pigz" "bin/unpigz") ("iptables" "iptables" "sbin/iptables") + ("ip6tables" "iptables" "sbin/ip6tables") ("iptables-legacy" "iptables" "sbin/iptables") ("ip" "iproute2" "sbin/ip")) @@ -494,10 +483,13 @@ (define-public docker "exec.Command") ;; Search for ZFS in PATH. (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + ;; Do not fail when buildkit-qemu-<target> isn't found. + ;; FIXME: We might need to package buildkit and docker's + ;; buildx plugin, to support qemu-based docker containers. + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") ;; Fail on other unsubstituted LookPaths. (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))) - #t)) + (("\\<LooxPath") "LookPath"))))) (add-after 'patch-paths 'delete-failing-tests (lambda _ ;; Needs internet access. @@ -522,8 +514,7 @@ (define-public docker ;; This file uses /var. (delete-file "daemon/oci_linux_test.go") ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go") - #t)) + (delete-file "pkg/signal/signal_linux_test.go"))) (replace 'configure (lambda _ (setenv "DOCKER_BUILDTAGS" "seccomp") @@ -536,8 +527,7 @@ (define-public docker ;; information, and the DWARF symbol table. (setenv "LDFLAGS" "-s -w") ;; Make build faster - (setenv "GOCACHE" "/tmp") - #t)) + (setenv "GOCACHE" "/tmp"))) (add-before 'build 'setup-go-environment (assoc-ref go:%standard-phases 'setup-go-environment)) (replace 'build @@ -559,8 +549,7 @@ (define-public docker "/.gopath/src/github.com/docker/docker")) (with-directory-excursion ".gopath/src/github.com/docker/docker" (invoke "hack/test/unit")) - (setenv "PWD" #f) - #t)) + (setenv "PWD" #f))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -568,8 +557,7 @@ (define-public docker (install-file "bundles/dynbinary-daemon/dockerd" out-bin) (install-file (string-append "bundles/dynbinary-daemon/dockerd-" (getenv "VERSION")) - out-bin) - #t))) + out-bin)))) (add-after 'install 'remove-go-references (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs @@ -594,7 +582,7 @@ (define-public docker ("xz" ,xz))) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go-1.14 gotestsum pkg-config)) + go gotestsum pkg-config)) (synopsis "Docker container component library, and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image @@ -615,7 +603,7 @@ (define-public docker-cli (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) + (base32 "1nv6mzq9i9psgfbzx7hfx1qb6fjp649qg8y392z8z2kqbjl20g3q")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" @@ -635,11 +623,11 @@ (define-public docker-cli ;; Make build reproducible. (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (symlink "src/github.com/docker/cli/scripts" "./scripts") - (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") - #t)) + (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile"))) (replace 'build (lambda _ - (invoke "./scripts/build/dynbinary"))) + (setenv "GO_LINKMODE" "dynamic") + (invoke "./scripts/build/binary"))) (replace 'check (lambda* (#:key make-flags tests? #:allow-other-keys) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) @@ -648,8 +636,7 @@ (define-public docker-cli (with-directory-excursion "src/github.com/docker/cli" ;; TODO: Run test-e2e as well? (apply invoke "make" "-f" "docker.Makefile" "test-unit" - (or make-flags '()))) - #t))) + (or make-flags '())))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -662,8 +649,7 @@ (define-public docker-cli (string-append etc "/fish/completions")) (install-file "zsh/_docker" (string-append etc "/zsh/site-functions"))) - (install-file "build/docker" out-bin) - #t)))))) + (install-file "build/docker" out-bin))))))) (native-inputs (list go libltdl pkg-config)) (synopsis "Command line interface to Docker") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b45f2f79f2..54116e4f4c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1691,8 +1691,8 @@ (define-public go-netns (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. - (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") - (revision "2")) + (let ((commit "f2269e66cdee387bd321445d5d300893449805be") + (revision "3")) (package (name "go-sctp") (version (git-version "0.0.0" revision commit)) @@ -1704,7 +1704,7 @@ (define-public go-sctp (file-name (git-file-name name version)) (sha256 (base32 - "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) + "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g")))) (build-system go-build-system) (arguments `(#:tests? #f ; Test suite is flakey. diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch deleted file mode 100644 index 3e3e318e25..0000000000 --- a/gnu/packages/patches/docker-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Author: Danny Milosavljevic <dannym@scratchpost.org> -The socket name ended up too long inside the container. -Use a shorter one. ---- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100 -+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100 -@@ -24,7 +24,7 @@ - ) - - const ( -- pluginAddress = "authz-test-plugin.sock" -+ pluginAddress = "/tmp/authz-test-plugin.sock" - ) - - func TestAuthZRequestPluginError(t *testing.T) { -@@ -263,12 +263,7 @@ - - // createTestPlugin creates a new sample authorization plugin - func createTestPlugin(t *testing.T) *authorizationPlugin { -- pwd, err := os.Getwd() -- if err != nil { -- t.Fatal(err) -- } -- -- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) -+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) - if err != nil { - t.Fatalf("Failed to create client %v", err) - } -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0007-gnu-docker-Switch-to-gexp-and-new-input-style.patch --] [-- Type: text/x-patch, Size: 27649 bytes --] From 4089db85b366e3f8fd394d254807ddd4b4631c3c Mon Sep 17 00:00:00 2001 From: Pierre Langlois <pierre.langlois@gmx.com> Date: Fri, 1 Apr 2022 01:34:52 +0100 Subject: [PATCH v2.5 7/7] gnu: docker: Switch to gexp and new input style. * gnu/packages/docker.scm (docker)[arguments]: Rewrite as gexps. Switch to using search-input-file. [inputs]: Use new style inputs. --- gnu/packages/docker.scm | 483 ++++++++++++++++++++-------------------- 1 file changed, 241 insertions(+), 242 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 82c017157d..edec4d3b27 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -326,260 +326,259 @@ (define-public docker (base32 "18nid42p1n20mg7spz0knh4izkk8qgjz9xi6v54czvy7aaj336i3")))) (build-system gnu-build-system) (arguments - `(#:modules - ((guix build gnu-build-system) + (list + #:modules + '((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) (guix build union) (guix build utils)) - #:imported-modules - (,@%gnu-build-system-modules + #:imported-modules + `(,@%gnu-build-system-modules (guix build union) (guix build go-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "builder/builder-next/executor_unix.go" - (("CommandCandidates:.*runc.*") - (string-append "CommandCandidates: []string{\"" - (assoc-ref inputs "runc") - "/sbin/runc\"},\n"))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand = .*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n"))) - (substitute* "daemon/daemon_unix.go" - (("DefaultShimBinary = .*") - (string-append "DefaultShimBinary = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n")) - (("DefaultRuntimeBinary = .*") - (string-append "DefaultRuntimeBinary = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/runtime_unix.go" - (("defaultRuntimeName = .*") - (string-append "defaultRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/config/config.go" - (("StockRuntimeName = .*") - (string-append "StockRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultInitBinary = .*") - (string-append "DefaultInitBinary = \"" - (assoc-ref inputs "tini") - "/bin/tini-static\"\n"))) - (substitute* "daemon/config/config_common_unix_test.go" - (("expectedInitPath: \"docker-init\"") - (string-append "expectedInitPath: \"" - (assoc-ref inputs "tini") - "/bin/tini-static\""))) - (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" - (("var defaultCommandCandidates = .*") - (string-append "var defaultCommandCandidates = []string{\"" - (assoc-ref inputs "runc") "/sbin/runc\"}"))) - (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" - (("var userlandProxyCommandName = .*") - (string-append "var userlandProxyCommandName = \"" - (assoc-ref inputs "docker-proxy") - "/bin/proxy\"\n"))) - (substitute* "pkg/archive/archive.go" - (("string\\{\"xz") - (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "builder/builder-next/executor_unix.go" + (("CommandCandidates:.*runc.*") + (string-append "CommandCandidates: []string{\"" + (search-input-file inputs "/sbin/runc") + "\"},\n"))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand = .*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n"))) + (substitute* "daemon/daemon_unix.go" + (("DefaultShimBinary = .*") + (string-append "DefaultShimBinary = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n")) + (("DefaultRuntimeBinary = .*") + (string-append "DefaultRuntimeBinary = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/config/config.go" + (("StockRuntimeName = .*") + (string-append "StockRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("DefaultInitBinary = .*") + (string-append "DefaultInitBinary = \"" + (search-input-file inputs "/bin/tini-static") + "\"\n"))) + (substitute* "daemon/config/config_common_unix_test.go" + (("expectedInitPath: \"docker-init\"") + (string-append "expectedInitPath: \"" + (search-input-file inputs "/bin/tini-static") + "\""))) + (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" + (("var defaultCommandCandidates = .*") + (string-append "var defaultCommandCandidates = []string{\"" + (search-input-file inputs "/sbin/runc") "\"}"))) + (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" + (("var userlandProxyCommandName = .*") + (string-append "var userlandProxyCommandName = \"" + (search-input-file inputs "/bin/proxy") + "\"\n"))) + (substitute* "pkg/archive/archive.go" + (("string\\{\"xz") + (string-append "string{\"" (search-input-file inputs "/bin/xz")))) - (let ((source-files (filter (lambda (name) - (not (string-contains name "test"))) - (find-files "." "\\.go$")))) - (let-syntax ((substitute-LookPath* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<exec\\.LookPath\\(\"" - source-text - "\")")) - (string-append "\"" - (assoc-ref inputs package) - "/" relative-path - "\", error(nil)")) ...)))) - (substitute-Command* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<(re)?exec\\.Command\\(\"" - source-text - "\"") _ re?) - (string-append (if re? re? "") - "exec.Command(\"" - (assoc-ref inputs package) - "/" relative-path - "\"")) ...))))) - (substitute-LookPath* - ("containerd" "containerd" "bin/containerd") - ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") - ("pvdisplay" "lvm2" "sbin/pvdisplay") - ("blkid" "util-linux" "sbin/blkid") - ("unpigz" "pigz" "bin/unpigz") - ("iptables" "iptables" "sbin/iptables") - ("ip6tables" "iptables" "sbin/ip6tables") - ("iptables-legacy" "iptables" "sbin/iptables") - ("ip" "iproute2" "sbin/ip")) + (let ((source-files (filter (lambda (name) + (not (string-contains name "test"))) + (find-files "." "\\.go$")))) + (let-syntax ((substitute-LookPath* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<exec\\.LookPath\\(\"" + source-text + "\")")) + (string-append "\"" + (search-input-file inputs path) + "\", error(nil)")) ...)))) + (substitute-Command* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<(re)?exec\\.Command\\(\"" + source-text + "\"") _ re?) + (string-append (if re? re? "") + "exec.Command(\"" + (search-input-file inputs path) + "\"")) ...))))) + (substitute-LookPath* + ("containerd" "/bin/containerd") + ("ps" "/bin/ps") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("lvmdiskscan" "/sbin/lvmdiskscan") + ("pvdisplay" "/sbin/pvdisplay") + ("blkid" "/sbin/blkid") + ("unpigz" "/bin/unpigz") + ("iptables" "/sbin/iptables") + ("ip6tables" "/sbin/ip6tables") + ("iptables-legacy" "/sbin/iptables") + ("ip" "/sbin/ip")) - (substitute-Command* - ("modprobe" "kmod" "bin/modprobe") - ("pvcreate" "lvm2" "sbin/pvcreate") - ("vgcreate" "lvm2" "sbin/vgcreate") - ("lvcreate" "lvm2" "sbin/lvcreate") - ("lvconvert" "lvm2" "sbin/lvconvert") - ("lvchange" "lvm2" "sbin/lvchange") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("xfs_growfs" "xfsprogs" "sbin/xfs_growfs") - ("mkfs.ext4" "e2fsprogs" "sbin/mkfs.ext4") - ("tune2fs" "e2fsprogs" "sbin/tune2fs") - ("blkid" "util-linux" "sbin/blkid") - ("resize2fs" "e2fsprogs" "sbin/resize2fs") - ("ps" "procps" "bin/ps") - ("losetup" "util-linux" "sbin/losetup") - ("uname" "coreutils" "bin/uname") - ("dbus-launch" "dbus" "bin/dbus-launch") - ("git" "git" "bin/git"))) - ;; docker-mountfrom ?? - ;; docker - ;; docker-untar ?? - ;; docker-applyLayer ?? - ;; /usr/bin/uname - ;; grep - ;; apparmor_parser + (substitute-Command* + ("modprobe" "/bin/modprobe") + ("pvcreate" "/sbin/pvcreate") + ("vgcreate" "/sbin/vgcreate") + ("lvcreate" "/sbin/lvcreate") + ("lvconvert" "/sbin/lvconvert") + ("lvchange" "/sbin/lvchange") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("xfs_growfs" "/sbin/xfs_growfs") + ("mkfs.ext4" "/sbin/mkfs.ext4") + ("tune2fs" "/sbin/tune2fs") + ("blkid" "/sbin/blkid") + ("resize2fs" "/sbin/resize2fs") + ("ps" "/bin/ps") + ("losetup" "/sbin/losetup") + ("uname" "/bin/uname") + ("dbus-launch" "/bin/dbus-launch") + ("git" "/bin/git"))) + ;; docker-mountfrom ?? + ;; docker + ;; docker-untar ?? + ;; docker-applyLayer ?? + ;; /usr/bin/uname + ;; grep + ;; apparmor_parser - ;; Make compilation fail when, in future versions, Docker - ;; invokes other programs we don't know about and thus don't - ;; substitute. - (substitute* source-files - ;; Search for Java in PATH. - (("\\<exec\\.Command\\(\"java\"") - "xxec.Command(\"java\"") - ;; Search for AUFS in PATH (mainline Linux doesn't support it). - (("\\<exec\\.Command\\(\"auplink\"") - "xxec.Command(\"auplink\"") - ;; Fail on other unsubstituted commands. - (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" - _ executable) - (string-append "exec.Guix_doesnt_want_Command(\"" - executable "\"")) - (("\\<xxec\\.Command") - "exec.Command") - ;; Search for ZFS in PATH. - (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + ;; Make compilation fail when, in future versions, Docker + ;; invokes other programs we don't know about and thus don't + ;; substitute. + (substitute* source-files + ;; Search for Java in PATH. + (("\\<exec\\.Command\\(\"java\"") + "xxec.Command(\"java\"") + ;; Search for AUFS in PATH (mainline Linux doesn't support it). + (("\\<exec\\.Command\\(\"auplink\"") + "xxec.Command(\"auplink\"") + ;; Fail on other unsubstituted commands. + (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" + _ executable) + (string-append "exec.Guix_doesnt_want_Command(\"" + executable "\"")) + (("\\<xxec\\.Command") + "exec.Command") + ;; Search for ZFS in PATH. + (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") ;; Do not fail when buildkit-qemu-<target> isn't found. ;; FIXME: We might need to package buildkit and docker's ;; buildx plugin, to support qemu-based docker containers. - (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") - ;; Fail on other unsubstituted LookPaths. - (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))))) - (add-after 'patch-paths 'delete-failing-tests - (lambda _ - ;; Needs internet access. - (delete-file "builder/remotecontext/git/gitutils_test.go") - ;; Permission denied. - (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") - ;; Operation not permitted (idtools.MkdirAllAndChown). - (delete-file "daemon/graphdriver/vfs/vfs_test.go") - ;; Timeouts after 5 min. - (delete-file "plugin/manager_linux_test.go") - ;; Operation not permitted. - (delete-file "daemon/graphdriver/aufs/aufs_test.go") - (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") - (delete-file "daemon/graphdriver/overlay/overlay_test.go") - (delete-file "daemon/graphdriver/overlay2/overlay_test.go") - (delete-file "pkg/chrootarchive/archive_unix_test.go") - (delete-file "daemon/container_unix_test.go") - ;; This file uses cgroups and /proc. - (delete-file "pkg/sysinfo/sysinfo_linux_test.go") - ;; This file uses cgroups. - (delete-file "runconfig/config_test.go") - ;; This file uses /var. - (delete-file "daemon/oci_linux_test.go") - ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go"))) - (replace 'configure - (lambda _ - (setenv "DOCKER_BUILDTAGS" "seccomp") - (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) - (setenv "VERSION" (string-append ,%docker-version "-ce")) - ;; Automatically use bundled dependencies. - ;; TODO: Unbundle - see file "vendor.conf". - (setenv "AUTO_GOPATH" "1") - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - (setenv "LDFLAGS" "-s -w") - ;; Make build faster - (setenv "GOCACHE" "/tmp"))) - (add-before 'build 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-go-environment)) - (replace 'build - (lambda _ - ;; Our LD doesn't like the statically linked relocatable things - ;; that go produces, so install the dynamic version of - ;; dockerd instead. - (invoke "hack/make.sh" "dynbinary"))) - (replace 'check - (lambda _ - ;; The build process generated a file because the environment - ;; variable "AUTO_GOPATH" was set. Use it. - (setenv "GOPATH" (string-append (getcwd) "/.gopath")) - ;; ".gopath/src/github.com/docker/docker" is a link to the current - ;; directory and chdir would canonicalize to that. - ;; But go needs to have the uncanonicalized directory name, so - ;; store that. - (setenv "PWD" (string-append (getcwd) - "/.gopath/src/github.com/docker/docker")) - (with-directory-excursion ".gopath/src/github.com/docker/docker" - (invoke "hack/test/unit")) - (setenv "PWD" #f))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-bin (string-append out "/bin"))) - (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file (string-append "bundles/dynbinary-daemon/dockerd-" - (getenv "VERSION")) - out-bin)))) - (add-after 'install 'remove-go-references - (assoc-ref go:%standard-phases 'remove-go-references))))) + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") + ;; Fail on other unsubstituted LookPaths. + (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") + (("\\<LooxPath") "LookPath"))))) + (add-after 'patch-paths 'delete-failing-tests + (lambda _ + ;; Needs internet access. + (delete-file "builder/remotecontext/git/gitutils_test.go") + ;; Permission denied. + (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") + ;; Operation not permitted (idtools.MkdirAllAndChown). + (delete-file "daemon/graphdriver/vfs/vfs_test.go") + ;; Timeouts after 5 min. + (delete-file "plugin/manager_linux_test.go") + ;; Operation not permitted. + (delete-file "daemon/graphdriver/aufs/aufs_test.go") + (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") + (delete-file "daemon/graphdriver/overlay/overlay_test.go") + (delete-file "daemon/graphdriver/overlay2/overlay_test.go") + (delete-file "pkg/chrootarchive/archive_unix_test.go") + (delete-file "daemon/container_unix_test.go") + ;; This file uses cgroups and /proc. + (delete-file "pkg/sysinfo/sysinfo_linux_test.go") + ;; This file uses cgroups. + (delete-file "runconfig/config_test.go") + ;; This file uses /var. + (delete-file "daemon/oci_linux_test.go") + ;; Signal tests fail in bizarre ways + (delete-file "pkg/signal/signal_linux_test.go"))) + (replace 'configure + (lambda _ + (setenv "DOCKER_BUILDTAGS" "seccomp") + (setenv "DOCKER_GITCOMMIT" (string-append "v" #$%docker-version)) + (setenv "VERSION" (string-append #$%docker-version "-ce")) + ;; Automatically use bundled dependencies. + ;; TODO: Unbundle - see file "vendor.conf". + (setenv "AUTO_GOPATH" "1") + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + (setenv "LDFLAGS" "-s -w") + ;; Make build faster + (setenv "GOCACHE" "/tmp"))) + (add-before 'build 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment)) + (replace 'build + (lambda _ + ;; Our LD doesn't like the statically linked relocatable things + ;; that go produces, so install the dynamic version of + ;; dockerd instead. + (invoke "hack/make.sh" "dynbinary"))) + (replace 'check + (lambda _ + ;; The build process generated a file because the environment + ;; variable "AUTO_GOPATH" was set. Use it. + (setenv "GOPATH" (string-append (getcwd) "/.gopath")) + ;; ".gopath/src/github.com/docker/docker" is a link to the current + ;; directory and chdir would canonicalize to that. + ;; But go needs to have the uncanonicalized directory name, so + ;; store that. + (setenv "PWD" (string-append (getcwd) + "/.gopath/src/github.com/docker/docker")) + (with-directory-excursion ".gopath/src/github.com/docker/docker" + (invoke "hack/test/unit")) + (setenv "PWD" #f))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "bundles/dynbinary-daemon/dockerd" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin)))) + (add-after 'install 'remove-go-references + (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs - `(("btrfs-progs" ,btrfs-progs) - ("containerd" ,containerd) ; for containerd-shim - ("coreutils" ,coreutils) - ("dbus" ,dbus) - ("docker-proxy" ,docker-libnetwork-cmd-proxy) - ("e2fsprogs" ,e2fsprogs) - ("git" ,git) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("kmod" ,kmod) - ("libseccomp" ,libseccomp) - ("pigz" ,pigz) - ("procps" ,procps) - ("runc" ,runc) - ("util-linux" ,util-linux) - ("lvm2" ,lvm2) - ("tini" ,tini) - ("xfsprogs" ,xfsprogs) - ("xz" ,xz))) + (list btrfs-progs + containerd ; for containerd-shim + coreutils + dbus + docker-libnetwork-cmd-proxy + e2fsprogs + git + iproute + iptables + kmod + libseccomp + pigz + procps + runc + util-linux + lvm2 + tini + xfsprogs + xz)) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) go gotestsum pkg-config)) -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v2 7/7] gnu: docker: Switch to gexp and new input style. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois ` (5 preceding siblings ...) 2022-04-01 0:46 ` [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14 Pierre Langlois @ 2022-04-01 0:46 ` Pierre Langlois 2022-05-09 23:27 ` [bug#52790] [PATCH v3 0/7] Update docker to 20.10.15 Pierre Langlois 7 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-04-01 0:46 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (docker)[arguments]: Rewrite as gexps. Switch to using search-input-file. [inputs]: Use new style inputs. --- gnu/packages/docker.scm | 483 ++++++++++++++++++++-------------------- 1 file changed, 241 insertions(+), 242 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 020c89bb11..b4095eb00f 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -326,257 +326,256 @@ (define-public docker (base32 "18nid42p1n20mg7spz0knh4izkk8qgjz9xi6v54czvy7aaj336i3")))) (build-system gnu-build-system) (arguments - `(#:modules - ((guix build gnu-build-system) + (list + #:modules + '((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) (guix build union) (guix build utils)) - #:imported-modules - (,@%gnu-build-system-modules + #:imported-modules + `(,@%gnu-build-system-modules (guix build union) (guix build go-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "builder/builder-next/executor_unix.go" - (("CommandCandidates:.*runc.*") - (string-append "CommandCandidates: []string{\"" - (assoc-ref inputs "runc") - "/sbin/runc\"},\n"))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand = .*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n"))) - (substitute* "daemon/daemon_unix.go" - (("DefaultShimBinary = .*") - (string-append "DefaultShimBinary = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n")) - (("DefaultRuntimeBinary = .*") - (string-append "DefaultRuntimeBinary = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/runtime_unix.go" - (("defaultRuntimeName = .*") - (string-append "defaultRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/config/config.go" - (("StockRuntimeName = .*") - (string-append "StockRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultInitBinary = .*") - (string-append "DefaultInitBinary = \"" - (assoc-ref inputs "tini") - "/bin/tini-static\"\n"))) - (substitute* "daemon/config/config_common_unix_test.go" - (("expectedInitPath: \"docker-init\"") - (string-append "expectedInitPath: \"" - (assoc-ref inputs "tini") - "/bin/tini-static\""))) - (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" - (("var defaultCommandCandidates = .*") - (string-append "var defaultCommandCandidates = []string{\"" - (assoc-ref inputs "runc") "/sbin/runc\"}"))) - (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" - (("var userlandProxyCommandName = .*") - (string-append "var userlandProxyCommandName = \"" - (assoc-ref inputs "docker-proxy") - "/bin/proxy\"\n"))) - (substitute* "pkg/archive/archive.go" - (("string\\{\"xz") - (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "builder/builder-next/executor_unix.go" + (("CommandCandidates:.*runc.*") + (string-append "CommandCandidates: []string{\"" + (search-input-file inputs "/sbin/runc") + "\"},\n"))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand = .*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n"))) + (substitute* "daemon/daemon_unix.go" + (("DefaultShimBinary = .*") + (string-append "DefaultShimBinary = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n")) + (("DefaultRuntimeBinary = .*") + (string-append "DefaultRuntimeBinary = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/config/config.go" + (("StockRuntimeName = .*") + (string-append "StockRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("DefaultInitBinary = .*") + (string-append "DefaultInitBinary = \"" + (search-input-file inputs "/bin/tini-static") + "\"\n"))) + (substitute* "daemon/config/config_common_unix_test.go" + (("expectedInitPath: \"docker-init\"") + (string-append "expectedInitPath: \"" + (search-input-file inputs "/bin/tini-static") + "\""))) + (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" + (("var defaultCommandCandidates = .*") + (string-append "var defaultCommandCandidates = []string{\"" + (search-input-file inputs "/sbin/runc") "\"}"))) + (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" + (("var userlandProxyCommandName = .*") + (string-append "var userlandProxyCommandName = \"" + (search-input-file inputs "/bin/proxy") + "\"\n"))) + (substitute* "pkg/archive/archive.go" + (("string\\{\"xz") + (string-append "string{\"" (search-input-file inputs "/bin/xz")))) - (let ((source-files (filter (lambda (name) - (not (string-contains name "test"))) - (find-files "." "\\.go$")))) - (let-syntax ((substitute-LookPath* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<exec\\.LookPath\\(\"" - source-text - "\")")) - (string-append "\"" - (assoc-ref inputs package) - "/" relative-path - "\", error(nil)")) ...)))) - (substitute-Command* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<(re)?exec\\.Command\\(\"" - source-text - "\"") _ re?) - (string-append (if re? re? "") - "exec.Command(\"" - (assoc-ref inputs package) - "/" relative-path - "\"")) ...))))) - (substitute-LookPath* - ("containerd" "containerd" "bin/containerd") - ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") - ("pvdisplay" "lvm2" "sbin/pvdisplay") - ("blkid" "util-linux" "sbin/blkid") - ("unpigz" "pigz" "bin/unpigz") - ("iptables" "iptables" "sbin/iptables") - ("ip6tables" "iptables" "sbin/ip6tables") - ("iptables-legacy" "iptables" "sbin/iptables") - ("ip" "iproute2" "sbin/ip")) + (let ((source-files (filter (lambda (name) + (not (string-contains name "test"))) + (find-files "." "\\.go$")))) + (let-syntax ((substitute-LookPath* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<exec\\.LookPath\\(\"" + source-text + "\")")) + (string-append "\"" + (search-input-file inputs path) + "\", error(nil)")) ...)))) + (substitute-Command* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<(re)?exec\\.Command\\(\"" + source-text + "\"") _ re?) + (string-append (if re? re? "") + "exec.Command(\"" + (search-input-file inputs path) + "\"")) ...))))) + (substitute-LookPath* + ("containerd" "/bin/containerd") + ("ps" "/bin/ps") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("lvmdiskscan" "/sbin/lvmdiskscan") + ("pvdisplay" "/sbin/pvdisplay") + ("blkid" "/sbin/blkid") + ("unpigz" "/bin/unpigz") + ("iptables" "/sbin/iptables") + ("ip6tables" "/sbin/ip6tables") + ("iptables-legacy" "/sbin/iptables") + ("ip" "/sbin/ip")) - (substitute-Command* - ("modprobe" "kmod" "bin/modprobe") - ("pvcreate" "lvm2" "sbin/pvcreate") - ("vgcreate" "lvm2" "sbin/vgcreate") - ("lvcreate" "lvm2" "sbin/lvcreate") - ("lvconvert" "lvm2" "sbin/lvconvert") - ("lvchange" "lvm2" "sbin/lvchange") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("xfs_growfs" "xfsprogs" "sbin/xfs_growfs") - ("mkfs.ext4" "e2fsprogs" "sbin/mkfs.ext4") - ("tune2fs" "e2fsprogs" "sbin/tune2fs") - ("blkid" "util-linux" "sbin/blkid") - ("resize2fs" "e2fsprogs" "sbin/resize2fs") - ("ps" "procps" "bin/ps") - ("losetup" "util-linux" "sbin/losetup") - ("uname" "coreutils" "bin/uname") - ("dbus-launch" "dbus" "bin/dbus-launch") - ("git" "git" "bin/git"))) - ;; docker-mountfrom ?? - ;; docker - ;; docker-untar ?? - ;; docker-applyLayer ?? - ;; /usr/bin/uname - ;; grep - ;; apparmor_parser + (substitute-Command* + ("modprobe" "/bin/modprobe") + ("pvcreate" "/sbin/pvcreate") + ("vgcreate" "/sbin/vgcreate") + ("lvcreate" "/sbin/lvcreate") + ("lvconvert" "/sbin/lvconvert") + ("lvchange" "/sbin/lvchange") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("xfs_growfs" "/sbin/xfs_growfs") + ("mkfs.ext4" "/sbin/mkfs.ext4") + ("tune2fs" "/sbin/tune2fs") + ("blkid" "/sbin/blkid") + ("resize2fs" "/sbin/resize2fs") + ("ps" "/bin/ps") + ("losetup" "/sbin/losetup") + ("uname" "/bin/uname") + ("dbus-launch" "/bin/dbus-launch") + ("git" "/bin/git"))) + ;; docker-mountfrom ?? + ;; docker + ;; docker-untar ?? + ;; docker-applyLayer ?? + ;; /usr/bin/uname + ;; grep + ;; apparmor_parser - ;; Make compilation fail when, in future versions, Docker - ;; invokes other programs we don't know about and thus don't - ;; substitute. - (substitute* source-files - ;; Search for Java in PATH. - (("\\<exec\\.Command\\(\"java\"") - "xxec.Command(\"java\"") - ;; Search for AUFS in PATH (mainline Linux doesn't support it). - (("\\<exec\\.Command\\(\"auplink\"") - "xxec.Command(\"auplink\"") - ;; Fail on other unsubstituted commands. - (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" - _ executable) - (string-append "exec.Guix_doesnt_want_Command(\"" - executable "\"")) - (("\\<xxec\\.Command") - "exec.Command") - ;; Search for ZFS in PATH. - (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") - (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") - ;; Fail on other unsubstituted LookPaths. - (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))))) - (add-after 'patch-paths 'delete-failing-tests - (lambda _ - ;; Needs internet access. - (delete-file "builder/remotecontext/git/gitutils_test.go") - ;; Permission denied. - (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") - ;; Operation not permitted (idtools.MkdirAllAndChown). - (delete-file "daemon/graphdriver/vfs/vfs_test.go") - ;; Timeouts after 5 min. - (delete-file "plugin/manager_linux_test.go") - ;; Operation not permitted. - (delete-file "daemon/graphdriver/aufs/aufs_test.go") - (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") - (delete-file "daemon/graphdriver/overlay/overlay_test.go") - (delete-file "daemon/graphdriver/overlay2/overlay_test.go") - (delete-file "pkg/chrootarchive/archive_unix_test.go") - (delete-file "daemon/container_unix_test.go") - ;; This file uses cgroups and /proc. - (delete-file "pkg/sysinfo/sysinfo_linux_test.go") - ;; This file uses cgroups. - (delete-file "runconfig/config_test.go") - ;; This file uses /var. - (delete-file "daemon/oci_linux_test.go") - ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go"))) - (replace 'configure - (lambda _ - (setenv "DOCKER_BUILDTAGS" "seccomp") - (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) - (setenv "VERSION" (string-append ,%docker-version "-ce")) - ;; Automatically use bundled dependencies. - ;; TODO: Unbundle - see file "vendor.conf". - (setenv "AUTO_GOPATH" "1") - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - (setenv "LDFLAGS" "-s -w") - ;; Make build faster - (setenv "GOCACHE" "/tmp"))) - (add-before 'build 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-go-environment)) - (replace 'build - (lambda _ - ;; Our LD doesn't like the statically linked relocatable things - ;; that go produces, so install the dynamic version of - ;; dockerd instead. - (invoke "hack/make.sh" "dynbinary"))) - (replace 'check - (lambda _ - ;; The build process generated a file because the environment - ;; variable "AUTO_GOPATH" was set. Use it. - (setenv "GOPATH" (string-append (getcwd) "/.gopath")) - ;; ".gopath/src/github.com/docker/docker" is a link to the current - ;; directory and chdir would canonicalize to that. - ;; But go needs to have the uncanonicalized directory name, so - ;; store that. - (setenv "PWD" (string-append (getcwd) - "/.gopath/src/github.com/docker/docker")) - (with-directory-excursion ".gopath/src/github.com/docker/docker" - (invoke "hack/test/unit")) - (setenv "PWD" #f))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-bin (string-append out "/bin"))) - (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file (string-append "bundles/dynbinary-daemon/dockerd-" - (getenv "VERSION")) - out-bin)))) - (add-after 'install 'remove-go-references - (assoc-ref go:%standard-phases 'remove-go-references))))) + ;; Make compilation fail when, in future versions, Docker + ;; invokes other programs we don't know about and thus don't + ;; substitute. + (substitute* source-files + ;; Search for Java in PATH. + (("\\<exec\\.Command\\(\"java\"") + "xxec.Command(\"java\"") + ;; Search for AUFS in PATH (mainline Linux doesn't support it). + (("\\<exec\\.Command\\(\"auplink\"") + "xxec.Command(\"auplink\"") + ;; Fail on other unsubstituted commands. + (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" + _ executable) + (string-append "exec.Guix_doesnt_want_Command(\"" + executable "\"")) + (("\\<xxec\\.Command") + "exec.Command") + ;; Search for ZFS in PATH. + (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") + ;; Fail on other unsubstituted LookPaths. + (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") + (("\\<LooxPath") "LookPath"))))) + (add-after 'patch-paths 'delete-failing-tests + (lambda _ + ;; Needs internet access. + (delete-file "builder/remotecontext/git/gitutils_test.go") + ;; Permission denied. + (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") + ;; Operation not permitted (idtools.MkdirAllAndChown). + (delete-file "daemon/graphdriver/vfs/vfs_test.go") + ;; Timeouts after 5 min. + (delete-file "plugin/manager_linux_test.go") + ;; Operation not permitted. + (delete-file "daemon/graphdriver/aufs/aufs_test.go") + (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") + (delete-file "daemon/graphdriver/overlay/overlay_test.go") + (delete-file "daemon/graphdriver/overlay2/overlay_test.go") + (delete-file "pkg/chrootarchive/archive_unix_test.go") + (delete-file "daemon/container_unix_test.go") + ;; This file uses cgroups and /proc. + (delete-file "pkg/sysinfo/sysinfo_linux_test.go") + ;; This file uses cgroups. + (delete-file "runconfig/config_test.go") + ;; This file uses /var. + (delete-file "daemon/oci_linux_test.go") + ;; Signal tests fail in bizarre ways + (delete-file "pkg/signal/signal_linux_test.go"))) + (replace 'configure + (lambda _ + (setenv "DOCKER_BUILDTAGS" "seccomp") + (setenv "DOCKER_GITCOMMIT" (string-append "v" #$%docker-version)) + (setenv "VERSION" (string-append #$%docker-version "-ce")) + ;; Automatically use bundled dependencies. + ;; TODO: Unbundle - see file "vendor.conf". + (setenv "AUTO_GOPATH" "1") + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + (setenv "LDFLAGS" "-s -w") + ;; Make build faster + (setenv "GOCACHE" "/tmp"))) + (add-before 'build 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment)) + (replace 'build + (lambda _ + ;; Our LD doesn't like the statically linked relocatable things + ;; that go produces, so install the dynamic version of + ;; dockerd instead. + (invoke "hack/make.sh" "dynbinary"))) + (replace 'check + (lambda _ + ;; The build process generated a file because the environment + ;; variable "AUTO_GOPATH" was set. Use it. + (setenv "GOPATH" (string-append (getcwd) "/.gopath")) + ;; ".gopath/src/github.com/docker/docker" is a link to the current + ;; directory and chdir would canonicalize to that. + ;; But go needs to have the uncanonicalized directory name, so + ;; store that. + (setenv "PWD" (string-append (getcwd) + "/.gopath/src/github.com/docker/docker")) + (with-directory-excursion ".gopath/src/github.com/docker/docker" + (invoke "hack/test/unit")) + (setenv "PWD" #f))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "bundles/dynbinary-daemon/dockerd" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin)))) + (add-after 'install 'remove-go-references + (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs - `(("btrfs-progs" ,btrfs-progs) - ("containerd" ,containerd) ; for containerd-shim - ("coreutils" ,coreutils) - ("dbus" ,dbus) - ("docker-proxy" ,docker-libnetwork-cmd-proxy) - ("e2fsprogs" ,e2fsprogs) - ("git" ,git) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("kmod" ,kmod) - ("libseccomp" ,libseccomp) - ("pigz" ,pigz) - ("procps" ,procps) - ("runc" ,runc) - ("util-linux" ,util-linux) - ("lvm2" ,lvm2) - ("tini" ,tini) - ("xfsprogs" ,xfsprogs) - ("xz" ,xz))) + (list btrfs-progs + containerd ; for containerd-shim + coreutils + dbus + docker-libnetwork-cmd-proxy + e2fsprogs + git + iproute + iptables + kmod + libseccomp + pigz + procps + runc + util-linux + lvm2 + tini + xfsprogs + xz)) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) go gotestsum pkg-config)) -- 2.34.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 0/7] Update docker to 20.10.15. 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois ` (6 preceding siblings ...) 2022-04-01 0:46 ` [bug#52790] [PATCH v2 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois @ 2022-05-09 23:27 ` Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois 7 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:27 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois [-- Attachment #1: Type: text/plain, Size: 2241 bytes --] Hi Guix! I just rebased this series, and did a quick round of new updates: runc: 1.1.0 -> 1.1.1 containerd: 1.6.2 -> 1.6.4 docker: 20.10.14 -> 20.10.15 Tested locally briefly and ran: make check-system TESTS="docker docker-system" Thanks, Pierre Pierre Langlois (7): gnu: runc: Update to 1.1.1. gnu: containerd: Fix patch-paths build phase. gnu: containerd: Update to 1.6.4. gnu: containerd: Switch to gexp arguments. gnu: docker: Fix mkfs.xfs reference. gnu: docker: Update to 20.10.15. gnu: docker: Switch to gexp and new input style. gnu/local.mk | 1 - gnu/packages/docker.scm | 628 ++++++++++---------- gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 - gnu/packages/virtualization.scm | 9 +- 5 files changed, 318 insertions(+), 354 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch -- 2.36.0 Pierre Langlois <pierre.langlois@gmx.com> writes: > Hi Guix! > > I rebased this series, updated it to 20.10.14 and did a bit of spring gexp > cleanup. Tested manually with a simple Ubuntu container, and with > > make check-system TESTS="docker docker-system" > > I've seen reports of issues on help-guix that /look/ like patch number 2 might > fix it, so we could submit that first if the rest needs more work. > > WDYT? > Thanks, > Pierre > > Pierre Langlois (7): > gnu: runc: Update to 1.1.0. > gnu: containerd: Fix patch-paths build phase. > gnu: containerd: Update to 1.6.2. > gnu: containerd: Switch to gexp arguments. > gnu: docker: Fix mkfs.xfs reference. > gnu: docker: Update to 20.10.14. > gnu: docker: Switch to gexp and new input style. > > gnu/local.mk | 1 - > gnu/packages/docker.scm | 625 ++++++++++---------- > gnu/packages/networking.scm | 6 +- > gnu/packages/patches/docker-fix-tests.patch | 28 - > gnu/packages/virtualization.scm | 6 +- > 5 files changed, 314 insertions(+), 352 deletions(-) > delete mode 100644 gnu/packages/patches/docker-fix-tests.patch [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 519 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1. 2022-05-09 23:27 ` [bug#52790] [PATCH v3 0/7] Update docker to 20.10.15 Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois ` (5 more replies) 0 siblings, 6 replies; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/virtualization.scm (runc): Update to 1.1.1. [native-inputs]: Use new style. --- gnu/packages/virtualization.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index f3396e7c94..55f1878a18 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> -;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> @@ -1762,7 +1762,7 @@ (define-public looking-glass-client (define-public runc (package (name "runc") - (version "1.0.0-rc93") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append @@ -1771,7 +1771,7 @@ (define-public runc (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh")))) + "0jx56x49dgkygdbrfb3pmxycy1n37arj97jra8n422dj36xz1hbm")))) (build-system go-build-system) (arguments '(#:import-path "github.com/opencontainers/runc" @@ -1796,8 +1796,7 @@ (define-public runc (invoke "make" "install" "install-bash" "install-man" (string-append "PREFIX=" out))))))))) (native-inputs - `(("go-md2man" ,go-github-com-go-md2man) - ("pkg-config" ,pkg-config))) + (list go-github-com-go-md2man pkg-config)) (inputs (list libseccomp)) (synopsis "Open container initiative runtime") -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 2/7] gnu: containerd: Fix patch-paths build phase. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 3/7] gnu: containerd: Update to 1.6.4 Pierre Langlois ` (4 subsequent siblings) 5 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd)[arguments]: Add 'patch-paths phases after 'unpack because 'chdir doesn't exist. --- gnu/packages/docker.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 07731886ae..5c0f4d496d 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +191,7 @@ (define-public containerd `(#:import-path "github.com/containerd/containerd" #:phases (modify-phases %standard-phases - (add-after 'chdir 'patch-paths + (add-after 'unpack 'patch-paths (lambda* (#:key inputs import-path outputs #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (substitute* "runtime/v1/linux/runtime.go" -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 3/7] gnu: containerd: Update to 1.6.4. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois ` (3 subsequent siblings) 5 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd): Update to 1.6.4. [arguments]: Substitute runc binary for "pkg/cri/config/config_unix.go". Set PREFIX to empty string, as the install directory is $DESTDIR/$PREFIX. --- gnu/packages/docker.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 5c0f4d496d..e95614cfae 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -174,7 +174,7 @@ (define-public python-docker-pycreds (define-public containerd (package (name "containerd") - (version "1.4.4") + (version "1.6.4") (source (origin (method git-fetch) @@ -183,7 +183,7 @@ (define-public containerd (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb")))) + (base32 "1hy5jaf5x8lffh3p4hdkk6ar8i4w84i0b539k1h5baqx9gnq2l2s")))) (build-system go-build-system) (arguments (let ((make-flags (list (string-append "VERSION=" version) @@ -203,6 +203,11 @@ (define-public containerd (string-append "defaultShim = \"" (assoc-ref outputs "out") "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (assoc-ref inputs "runc") + "/sbin/runc\""))) (substitute* "vendor/github.com/containerd/go-runc/runc.go" (("DefaultCommand[ \t]*=.*") (string-append "DefaultCommand = \"" @@ -226,8 +231,8 @@ (define-public containerd (lambda* (#:key import-path outputs #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (let* ((out (assoc-ref outputs "out"))) - (apply invoke "make" (string-append "DESTDIR=" out) "install" - ',make-flags))))))))) + (apply invoke "make" (string-append "DESTDIR=" out) + "PREFIX=" "install" ',make-flags))))))))) (inputs (list btrfs-progs libseccomp pigz runc util-linux)) (native-inputs -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 4/7] gnu: containerd: Switch to gexp arguments. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 3/7] gnu: containerd: Update to 1.6.4 Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois ` (2 subsequent siblings) 5 siblings, 0 replies; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (containerd)[arguments]: Rewrite as gexps. Pass all flags via make-flags variable. Switch to using search-input-file. --- gnu/packages/docker.scm | 95 +++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index e95614cfae..aa5f4d523b 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -29,6 +29,7 @@ (define-module (gnu packages docker) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -186,53 +187,55 @@ (define-public containerd (base32 "1hy5jaf5x8lffh3p4hdkk6ar8i4w84i0b539k1h5baqx9gnq2l2s")))) (build-system go-build-system) (arguments - (let ((make-flags (list (string-append "VERSION=" version) - "REVISION=0"))) - `(#:import-path "github.com/containerd/containerd" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* "runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref outputs "out") - "/bin/containerd-shim\"\n"))) - (substitute* "pkg/cri/config/config_unix.go" - (("DefaultRuntimeName: \"runc\"") - (string-append "DefaultRuntimeName: \"" - (assoc-ref inputs "runc") - "/sbin/runc\""))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand[ \t]*=.*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/continuity/testutil\ + (let ((make-flags #~(list (string-append "VERSION=" #$version) + (string-append "DESTDIR=" #$output) + "PREFIX=" + "REVISION=0"))) + (list + #:import-path "github.com/containerd/containerd" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs import-path outputs #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (assoc-ref outputs "out") + "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (search-input-file inputs "/sbin/runc") + "\""))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand[ \t]*=.*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/continuity/testutil\ /loopback/loopback_linux.go" - (("exec\\.Command\\(\"losetup\"") - (string-append "exec.Command(\"" - (assoc-ref inputs "util-linux") - "/sbin/losetup\""))) - (substitute* "archive/compression/compression.go" - (("exec\\.LookPath\\(\"unpigz\"\\)") - (string-append "\"" (assoc-ref inputs "pigz") - "/bin/unpigz\", error(nil)")))))) - (replace 'build - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (apply invoke "make" ',make-flags)))) - (replace 'install - (lambda* (#:key import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (let* ((out (assoc-ref outputs "out"))) - (apply invoke "make" (string-append "DESTDIR=" out) - "PREFIX=" "install" ',make-flags))))))))) + (("exec\\.Command\\(\"losetup\"") + (string-append "exec.Command(\"" + (search-input-file inputs "/sbin/losetup") + "\""))) + (substitute* "archive/compression/compression.go" + (("exec\\.LookPath\\(\"unpigz\"\\)") + (string-append "\"" + (search-input-file inputs "/bin/unpigz") + "\", error(nil)")))))) + (replace 'build + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" #$make-flags)))) + (replace 'install + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" "install" #$make-flags)))))))) (inputs (list btrfs-progs libseccomp pigz runc util-linux)) (native-inputs -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois ` (2 preceding siblings ...) 2022-05-09 23:35 ` [bug#52790] [PATCH v3 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-10 10:06 ` Danny Milosavljevic 2022-05-09 23:35 ` [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois 5 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (docker)[arguments]: Refer to sbin/mkfs.xfs instead of bin/mkfs.xfs. --- gnu/packages/docker.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index aa5f4d523b..ff9bbecab6 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -440,7 +440,7 @@ (define-public docker (substitute-LookPath* ("containerd" "containerd" "bin/containerd") ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs") + ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") ("pvdisplay" "lvm2" "sbin/pvdisplay") ("blkid" "util-linux" "sbin/blkid") -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois @ 2022-05-10 10:06 ` Danny Milosavljevic 0 siblings, 0 replies; 29+ messages in thread From: Danny Milosavljevic @ 2022-05-10 10:06 UTC (permalink / raw) To: Pierre Langlois; +Cc: 52790 [-- Attachment #1: Type: text/plain, Size: 972 bytes --] On Tue, 10 May 2022 00:35:17 +0100 Pierre Langlois <pierre.langlois@gmx.com> wrote: > * gnu/packages/docker.scm (docker)[arguments]: Refer to sbin/mkfs.xfs > instead of bin/mkfs.xfs. > --- > gnu/packages/docker.scm | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm > index aa5f4d523b..ff9bbecab6 100644 > --- a/gnu/packages/docker.scm > +++ b/gnu/packages/docker.scm > @@ -440,7 +440,7 @@ (define-public docker > (substitute-LookPath* > ("containerd" "containerd" "bin/containerd") > ("ps" "procps" "bin/ps") > - ("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs") > + ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") > ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") > ("pvdisplay" "lvm2" "sbin/pvdisplay") > ("blkid" "util-linux" "sbin/blkid") LGTM! [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois ` (3 preceding siblings ...) 2022-05-09 23:35 ` [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-05-10 10:11 ` Danny Milosavljevic 2022-05-09 23:35 ` [bug#52790] [PATCH v3 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois 5 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (%docker-version): Update to 20.10.15. (docker-libnetwork): Update commit according to vendor.conf. (docker)[origin]: Remove docker-fix-tests.patch. [arguments]: Adapt 'patch-paths phase, substitute "ip6tables" and buildkit-qemu. Remove trailing #t. [native-inputs]: Replace go-1.14 by go. (docker-cli)[arguments]: Set GO_LINKMODE to "dynamic". Remove trailing #t. * gnu/packages/networking.scm (go-sctp): Update commit according to docker-libnetwork's vendor.conf. * gnu/packages/patches/docker-fix-tests.patch: Delete. * gnu/local.mk (dist_patch_DATA): Remove patch. --- gnu/local.mk | 1 - gnu/packages/docker.scm | 72 +++++++++------------ gnu/packages/networking.scm | 6 +- gnu/packages/patches/docker-fix-tests.patch | 28 -------- 4 files changed, 32 insertions(+), 75 deletions(-) delete mode 100644 gnu/packages/patches/docker-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3b7db46b26..69d3f404b7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1008,7 +1008,6 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/docker-fix-tests.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index ff9bbecab6..a3d3e5fb51 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -54,7 +54,7 @@ (define-module (gnu packages docker) ;; Note - when changing Docker versions it is important to update the versions ;; of several associated packages (docker-libnetwork and go-sctp). -(define %docker-version "19.03.15") +(define %docker-version "20.10.15") (define-public python-docker (package @@ -252,13 +252,12 @@ (define-public containerd ;;; anyway, as it needs many dependencies that aren't being satisfied. (define docker-libnetwork ;; There are no recent release for libnetwork, so choose the last commit of - ;; the branch that Docker uses, as can be seen in the Docker source file - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that - ;; this version is kept in sync with the version of Docker being used. - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker + ;; source file. NOTE - It is important that this version is kept in sync + ;; with the version of Docker being used. + (let ((commit "339b972b464ee3d401b5788b2af9e31d09d6b7da") (version (version-major+minor %docker-version)) - (revision "1")) + (revision "2")) (package (name "docker-libnetwork") (version (git-version version revision commit)) @@ -271,7 +270,7 @@ (define docker-libnetwork (file-name (git-file-name name version)) (sha256 (base32 - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) + "0wx2hdwx56cbxiaky9kw2bi1prdfgzwr776lq1k0slw8kvn0cn32")) ;; Delete bundled ("vendored") free software source code. (modules '((guix build utils))) (snippet '(begin @@ -324,9 +323,7 @@ (define-public docker (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) - (patches - (search-patches "docker-fix-tests.patch")))) + (base32 "1z816496aqla4nq0aksf0kpy8qk8x1a6y5hrazzkqliycbjnqizq")))) (build-system gnu-build-system) (arguments `(#:modules @@ -369,9 +366,10 @@ (define-public docker (("DefaultRuntimeBinary = .*") (string-append "DefaultRuntimeBinary = \"" (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultRuntimeName = .*") - (string-append "DefaultRuntimeName = \"" + "/sbin/runc\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" (assoc-ref inputs "runc") "/sbin/runc\"\n"))) (substitute* "daemon/config/config.go" @@ -400,16 +398,6 @@ (define-public docker (substitute* "pkg/archive/archive.go" (("string\\{\"xz") (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "registry/resumable/resumablerequestreader_test.go" - (("I%27m%20not%20an%20url" all) - (string-append "\"" all "\""))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "vendor/gotest.tools/x/subtest/context.go" - (("func \\(tc \\*testcase\\) Cleanup\\(" all) - (string-append all "func()")) - (("tc\\.Cleanup\\(" all) - (string-append all "nil"))) (let ((source-files (filter (lambda (name) (not (string-contains name "test"))) @@ -446,6 +434,7 @@ (define-public docker ("blkid" "util-linux" "sbin/blkid") ("unpigz" "pigz" "bin/unpigz") ("iptables" "iptables" "sbin/iptables") + ("ip6tables" "iptables" "sbin/ip6tables") ("iptables-legacy" "iptables" "sbin/iptables") ("ip" "iproute2" "sbin/ip")) @@ -494,10 +483,13 @@ (define-public docker "exec.Command") ;; Search for ZFS in PATH. (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + ;; Do not fail when buildkit-qemu-<target> isn't found. + ;; FIXME: We might need to package buildkit and docker's + ;; buildx plugin, to support qemu-based docker containers. + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") ;; Fail on other unsubstituted LookPaths. (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))) - #t)) + (("\\<LooxPath") "LookPath"))))) (add-after 'patch-paths 'delete-failing-tests (lambda _ ;; Needs internet access. @@ -522,8 +514,7 @@ (define-public docker ;; This file uses /var. (delete-file "daemon/oci_linux_test.go") ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go") - #t)) + (delete-file "pkg/signal/signal_linux_test.go"))) (replace 'configure (lambda _ (setenv "DOCKER_BUILDTAGS" "seccomp") @@ -536,8 +527,7 @@ (define-public docker ;; information, and the DWARF symbol table. (setenv "LDFLAGS" "-s -w") ;; Make build faster - (setenv "GOCACHE" "/tmp") - #t)) + (setenv "GOCACHE" "/tmp"))) (add-before 'build 'setup-go-environment (assoc-ref go:%standard-phases 'setup-go-environment)) (replace 'build @@ -559,8 +549,7 @@ (define-public docker "/.gopath/src/github.com/docker/docker")) (with-directory-excursion ".gopath/src/github.com/docker/docker" (invoke "hack/test/unit")) - (setenv "PWD" #f) - #t)) + (setenv "PWD" #f))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -568,8 +557,7 @@ (define-public docker (install-file "bundles/dynbinary-daemon/dockerd" out-bin) (install-file (string-append "bundles/dynbinary-daemon/dockerd-" (getenv "VERSION")) - out-bin) - #t))) + out-bin)))) (add-after 'install 'remove-go-references (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs @@ -594,7 +582,7 @@ (define-public docker ("xz" ,xz))) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go-1.14 gotestsum pkg-config)) + go gotestsum pkg-config)) (synopsis "Docker container component library, and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image @@ -615,7 +603,7 @@ (define-public docker-cli (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) + (base32 "1jnql7szdk2wd3f5g1bxcairsmzirzybn3hy7xzqx1i679f2fg5v")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" @@ -635,11 +623,11 @@ (define-public docker-cli ;; Make build reproducible. (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (symlink "src/github.com/docker/cli/scripts" "./scripts") - (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") - #t)) + (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile"))) (replace 'build (lambda _ - (invoke "./scripts/build/dynbinary"))) + (setenv "GO_LINKMODE" "dynamic") + (invoke "./scripts/build/binary"))) (replace 'check (lambda* (#:key make-flags tests? #:allow-other-keys) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) @@ -648,8 +636,7 @@ (define-public docker-cli (with-directory-excursion "src/github.com/docker/cli" ;; TODO: Run test-e2e as well? (apply invoke "make" "-f" "docker.Makefile" "test-unit" - (or make-flags '()))) - #t))) + (or make-flags '())))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -662,8 +649,7 @@ (define-public docker-cli (string-append etc "/fish/completions")) (install-file "zsh/_docker" (string-append etc "/zsh/site-functions"))) - (install-file "build/docker" out-bin) - #t)))))) + (install-file "build/docker" out-bin))))))) (native-inputs (list go libltdl pkg-config)) (synopsis "Command line interface to Docker") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9010e1f120..28ef92679d 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1691,8 +1691,8 @@ (define-public go-netns (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. - (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") - (revision "2")) + (let ((commit "f2269e66cdee387bd321445d5d300893449805be") + (revision "3")) (package (name "go-sctp") (version (git-version "0.0.0" revision commit)) @@ -1704,7 +1704,7 @@ (define-public go-sctp (file-name (git-file-name name version)) (sha256 (base32 - "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) + "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g")))) (build-system go-build-system) (arguments `(#:tests? #f ; Test suite is flakey. diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch deleted file mode 100644 index 3e3e318e25..0000000000 --- a/gnu/packages/patches/docker-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Author: Danny Milosavljevic <dannym@scratchpost.org> -The socket name ended up too long inside the container. -Use a shorter one. ---- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100 -+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100 -@@ -24,7 +24,7 @@ - ) - - const ( -- pluginAddress = "authz-test-plugin.sock" -+ pluginAddress = "/tmp/authz-test-plugin.sock" - ) - - func TestAuthZRequestPluginError(t *testing.T) { -@@ -263,12 +263,7 @@ - - // createTestPlugin creates a new sample authorization plugin - func createTestPlugin(t *testing.T) *authorizationPlugin { -- pwd, err := os.Getwd() -- if err != nil { -- t.Fatal(err) -- } -- -- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) -+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) - if err != nil { - t.Fatalf("Failed to create client %v", err) - } -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15 Pierre Langlois @ 2022-05-10 10:11 ` Danny Milosavljevic 2022-05-14 16:01 ` Pierre Langlois 0 siblings, 1 reply; 29+ messages in thread From: Danny Milosavljevic @ 2022-05-10 10:11 UTC (permalink / raw) To: Pierre Langlois; +Cc: 52790 [-- Attachment #1: Type: text/plain, Size: 7 bytes --] LGTM! [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15. 2022-05-10 10:11 ` Danny Milosavljevic @ 2022-05-14 16:01 ` Pierre Langlois 2022-05-17 20:28 ` Danny Milosavljevic 0 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-05-14 16:01 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Pierre Langlois, 52790 [-- Attachment #1: Type: text/plain, Size: 212 bytes --] Hi Danny, Danny Milosavljevic <dannym@scratchpost.org> writes: > [[PGP Signed Part:Undecided]] > LGTM! Just to be clear, are you OK with the two patches or the entire series? Thanks for taking a look, Pierre [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 519 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15. 2022-05-14 16:01 ` Pierre Langlois @ 2022-05-17 20:28 ` Danny Milosavljevic 0 siblings, 0 replies; 29+ messages in thread From: Danny Milosavljevic @ 2022-05-17 20:28 UTC (permalink / raw) To: Pierre Langlois; +Cc: 52790 Hi Pierre, for some reason, I only see patch 5, 6, and 7 of the series. I reviewed patch 5 and 6 already and found it good. I am still reviewing patch 7. ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#52790] [PATCH v3 7/7] gnu: docker: Switch to gexp and new input style. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois ` (4 preceding siblings ...) 2022-05-09 23:35 ` [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15 Pierre Langlois @ 2022-05-09 23:35 ` Pierre Langlois 2022-06-24 5:05 ` bug#52790: [PATCH 0/4] Update docker to 20.10.11 Maxim Cournoyer 5 siblings, 1 reply; 29+ messages in thread From: Pierre Langlois @ 2022-05-09 23:35 UTC (permalink / raw) To: 52790; +Cc: Pierre Langlois * gnu/packages/docker.scm (docker)[arguments]: Rewrite as gexps. Switch to using search-input-file. [inputs]: Use new style inputs. --- gnu/packages/docker.scm | 483 ++++++++++++++++++++-------------------- 1 file changed, 241 insertions(+), 242 deletions(-) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index a3d3e5fb51..2df4cdb98a 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -326,260 +326,259 @@ (define-public docker (base32 "1z816496aqla4nq0aksf0kpy8qk8x1a6y5hrazzkqliycbjnqizq")))) (build-system gnu-build-system) (arguments - `(#:modules - ((guix build gnu-build-system) + (list + #:modules + '((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) (guix build union) (guix build utils)) - #:imported-modules - (,@%gnu-build-system-modules + #:imported-modules + `(,@%gnu-build-system-modules (guix build union) (guix build go-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "builder/builder-next/executor_unix.go" - (("CommandCandidates:.*runc.*") - (string-append "CommandCandidates: []string{\"" - (assoc-ref inputs "runc") - "/sbin/runc\"},\n"))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand = .*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n"))) - (substitute* "daemon/daemon_unix.go" - (("DefaultShimBinary = .*") - (string-append "DefaultShimBinary = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n")) - (("DefaultRuntimeBinary = .*") - (string-append "DefaultRuntimeBinary = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/runtime_unix.go" - (("defaultRuntimeName = .*") - (string-append "defaultRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/config/config.go" - (("StockRuntimeName = .*") - (string-append "StockRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultInitBinary = .*") - (string-append "DefaultInitBinary = \"" - (assoc-ref inputs "tini") - "/bin/tini-static\"\n"))) - (substitute* "daemon/config/config_common_unix_test.go" - (("expectedInitPath: \"docker-init\"") - (string-append "expectedInitPath: \"" - (assoc-ref inputs "tini") - "/bin/tini-static\""))) - (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" - (("var defaultCommandCandidates = .*") - (string-append "var defaultCommandCandidates = []string{\"" - (assoc-ref inputs "runc") "/sbin/runc\"}"))) - (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" - (("var userlandProxyCommandName = .*") - (string-append "var userlandProxyCommandName = \"" - (assoc-ref inputs "docker-proxy") - "/bin/proxy\"\n"))) - (substitute* "pkg/archive/archive.go" - (("string\\{\"xz") - (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "builder/builder-next/executor_unix.go" + (("CommandCandidates:.*runc.*") + (string-append "CommandCandidates: []string{\"" + (search-input-file inputs "/sbin/runc") + "\"},\n"))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand = .*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n"))) + (substitute* "daemon/daemon_unix.go" + (("DefaultShimBinary = .*") + (string-append "DefaultShimBinary = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n")) + (("DefaultRuntimeBinary = .*") + (string-append "DefaultRuntimeBinary = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/config/config.go" + (("StockRuntimeName = .*") + (string-append "StockRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("DefaultInitBinary = .*") + (string-append "DefaultInitBinary = \"" + (search-input-file inputs "/bin/tini-static") + "\"\n"))) + (substitute* "daemon/config/config_common_unix_test.go" + (("expectedInitPath: \"docker-init\"") + (string-append "expectedInitPath: \"" + (search-input-file inputs "/bin/tini-static") + "\""))) + (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" + (("var defaultCommandCandidates = .*") + (string-append "var defaultCommandCandidates = []string{\"" + (search-input-file inputs "/sbin/runc") "\"}"))) + (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" + (("var userlandProxyCommandName = .*") + (string-append "var userlandProxyCommandName = \"" + (search-input-file inputs "/bin/proxy") + "\"\n"))) + (substitute* "pkg/archive/archive.go" + (("string\\{\"xz") + (string-append "string{\"" (search-input-file inputs "/bin/xz")))) - (let ((source-files (filter (lambda (name) - (not (string-contains name "test"))) - (find-files "." "\\.go$")))) - (let-syntax ((substitute-LookPath* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<exec\\.LookPath\\(\"" - source-text - "\")")) - (string-append "\"" - (assoc-ref inputs package) - "/" relative-path - "\", error(nil)")) ...)))) - (substitute-Command* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<(re)?exec\\.Command\\(\"" - source-text - "\"") _ re?) - (string-append (if re? re? "") - "exec.Command(\"" - (assoc-ref inputs package) - "/" relative-path - "\"")) ...))))) - (substitute-LookPath* - ("containerd" "containerd" "bin/containerd") - ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") - ("pvdisplay" "lvm2" "sbin/pvdisplay") - ("blkid" "util-linux" "sbin/blkid") - ("unpigz" "pigz" "bin/unpigz") - ("iptables" "iptables" "sbin/iptables") - ("ip6tables" "iptables" "sbin/ip6tables") - ("iptables-legacy" "iptables" "sbin/iptables") - ("ip" "iproute2" "sbin/ip")) + (let ((source-files (filter (lambda (name) + (not (string-contains name "test"))) + (find-files "." "\\.go$")))) + (let-syntax ((substitute-LookPath* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<exec\\.LookPath\\(\"" + source-text + "\")")) + (string-append "\"" + (search-input-file inputs path) + "\", error(nil)")) ...)))) + (substitute-Command* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<(re)?exec\\.Command\\(\"" + source-text + "\"") _ re?) + (string-append (if re? re? "") + "exec.Command(\"" + (search-input-file inputs path) + "\"")) ...))))) + (substitute-LookPath* + ("containerd" "/bin/containerd") + ("ps" "/bin/ps") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("lvmdiskscan" "/sbin/lvmdiskscan") + ("pvdisplay" "/sbin/pvdisplay") + ("blkid" "/sbin/blkid") + ("unpigz" "/bin/unpigz") + ("iptables" "/sbin/iptables") + ("ip6tables" "/sbin/ip6tables") + ("iptables-legacy" "/sbin/iptables") + ("ip" "/sbin/ip")) - (substitute-Command* - ("modprobe" "kmod" "bin/modprobe") - ("pvcreate" "lvm2" "sbin/pvcreate") - ("vgcreate" "lvm2" "sbin/vgcreate") - ("lvcreate" "lvm2" "sbin/lvcreate") - ("lvconvert" "lvm2" "sbin/lvconvert") - ("lvchange" "lvm2" "sbin/lvchange") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("xfs_growfs" "xfsprogs" "sbin/xfs_growfs") - ("mkfs.ext4" "e2fsprogs" "sbin/mkfs.ext4") - ("tune2fs" "e2fsprogs" "sbin/tune2fs") - ("blkid" "util-linux" "sbin/blkid") - ("resize2fs" "e2fsprogs" "sbin/resize2fs") - ("ps" "procps" "bin/ps") - ("losetup" "util-linux" "sbin/losetup") - ("uname" "coreutils" "bin/uname") - ("dbus-launch" "dbus" "bin/dbus-launch") - ("git" "git" "bin/git"))) - ;; docker-mountfrom ?? - ;; docker - ;; docker-untar ?? - ;; docker-applyLayer ?? - ;; /usr/bin/uname - ;; grep - ;; apparmor_parser + (substitute-Command* + ("modprobe" "/bin/modprobe") + ("pvcreate" "/sbin/pvcreate") + ("vgcreate" "/sbin/vgcreate") + ("lvcreate" "/sbin/lvcreate") + ("lvconvert" "/sbin/lvconvert") + ("lvchange" "/sbin/lvchange") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("xfs_growfs" "/sbin/xfs_growfs") + ("mkfs.ext4" "/sbin/mkfs.ext4") + ("tune2fs" "/sbin/tune2fs") + ("blkid" "/sbin/blkid") + ("resize2fs" "/sbin/resize2fs") + ("ps" "/bin/ps") + ("losetup" "/sbin/losetup") + ("uname" "/bin/uname") + ("dbus-launch" "/bin/dbus-launch") + ("git" "/bin/git"))) + ;; docker-mountfrom ?? + ;; docker + ;; docker-untar ?? + ;; docker-applyLayer ?? + ;; /usr/bin/uname + ;; grep + ;; apparmor_parser - ;; Make compilation fail when, in future versions, Docker - ;; invokes other programs we don't know about and thus don't - ;; substitute. - (substitute* source-files - ;; Search for Java in PATH. - (("\\<exec\\.Command\\(\"java\"") - "xxec.Command(\"java\"") - ;; Search for AUFS in PATH (mainline Linux doesn't support it). - (("\\<exec\\.Command\\(\"auplink\"") - "xxec.Command(\"auplink\"") - ;; Fail on other unsubstituted commands. - (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" - _ executable) - (string-append "exec.Guix_doesnt_want_Command(\"" - executable "\"")) - (("\\<xxec\\.Command") - "exec.Command") - ;; Search for ZFS in PATH. - (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + ;; Make compilation fail when, in future versions, Docker + ;; invokes other programs we don't know about and thus don't + ;; substitute. + (substitute* source-files + ;; Search for Java in PATH. + (("\\<exec\\.Command\\(\"java\"") + "xxec.Command(\"java\"") + ;; Search for AUFS in PATH (mainline Linux doesn't support it). + (("\\<exec\\.Command\\(\"auplink\"") + "xxec.Command(\"auplink\"") + ;; Fail on other unsubstituted commands. + (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" + _ executable) + (string-append "exec.Guix_doesnt_want_Command(\"" + executable "\"")) + (("\\<xxec\\.Command") + "exec.Command") + ;; Search for ZFS in PATH. + (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") ;; Do not fail when buildkit-qemu-<target> isn't found. ;; FIXME: We might need to package buildkit and docker's ;; buildx plugin, to support qemu-based docker containers. - (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") - ;; Fail on other unsubstituted LookPaths. - (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))))) - (add-after 'patch-paths 'delete-failing-tests - (lambda _ - ;; Needs internet access. - (delete-file "builder/remotecontext/git/gitutils_test.go") - ;; Permission denied. - (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") - ;; Operation not permitted (idtools.MkdirAllAndChown). - (delete-file "daemon/graphdriver/vfs/vfs_test.go") - ;; Timeouts after 5 min. - (delete-file "plugin/manager_linux_test.go") - ;; Operation not permitted. - (delete-file "daemon/graphdriver/aufs/aufs_test.go") - (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") - (delete-file "daemon/graphdriver/overlay/overlay_test.go") - (delete-file "daemon/graphdriver/overlay2/overlay_test.go") - (delete-file "pkg/chrootarchive/archive_unix_test.go") - (delete-file "daemon/container_unix_test.go") - ;; This file uses cgroups and /proc. - (delete-file "pkg/sysinfo/sysinfo_linux_test.go") - ;; This file uses cgroups. - (delete-file "runconfig/config_test.go") - ;; This file uses /var. - (delete-file "daemon/oci_linux_test.go") - ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go"))) - (replace 'configure - (lambda _ - (setenv "DOCKER_BUILDTAGS" "seccomp") - (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) - (setenv "VERSION" (string-append ,%docker-version "-ce")) - ;; Automatically use bundled dependencies. - ;; TODO: Unbundle - see file "vendor.conf". - (setenv "AUTO_GOPATH" "1") - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - (setenv "LDFLAGS" "-s -w") - ;; Make build faster - (setenv "GOCACHE" "/tmp"))) - (add-before 'build 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-go-environment)) - (replace 'build - (lambda _ - ;; Our LD doesn't like the statically linked relocatable things - ;; that go produces, so install the dynamic version of - ;; dockerd instead. - (invoke "hack/make.sh" "dynbinary"))) - (replace 'check - (lambda _ - ;; The build process generated a file because the environment - ;; variable "AUTO_GOPATH" was set. Use it. - (setenv "GOPATH" (string-append (getcwd) "/.gopath")) - ;; ".gopath/src/github.com/docker/docker" is a link to the current - ;; directory and chdir would canonicalize to that. - ;; But go needs to have the uncanonicalized directory name, so - ;; store that. - (setenv "PWD" (string-append (getcwd) - "/.gopath/src/github.com/docker/docker")) - (with-directory-excursion ".gopath/src/github.com/docker/docker" - (invoke "hack/test/unit")) - (setenv "PWD" #f))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-bin (string-append out "/bin"))) - (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file (string-append "bundles/dynbinary-daemon/dockerd-" - (getenv "VERSION")) - out-bin)))) - (add-after 'install 'remove-go-references - (assoc-ref go:%standard-phases 'remove-go-references))))) + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") + ;; Fail on other unsubstituted LookPaths. + (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") + (("\\<LooxPath") "LookPath"))))) + (add-after 'patch-paths 'delete-failing-tests + (lambda _ + ;; Needs internet access. + (delete-file "builder/remotecontext/git/gitutils_test.go") + ;; Permission denied. + (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") + ;; Operation not permitted (idtools.MkdirAllAndChown). + (delete-file "daemon/graphdriver/vfs/vfs_test.go") + ;; Timeouts after 5 min. + (delete-file "plugin/manager_linux_test.go") + ;; Operation not permitted. + (delete-file "daemon/graphdriver/aufs/aufs_test.go") + (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") + (delete-file "daemon/graphdriver/overlay/overlay_test.go") + (delete-file "daemon/graphdriver/overlay2/overlay_test.go") + (delete-file "pkg/chrootarchive/archive_unix_test.go") + (delete-file "daemon/container_unix_test.go") + ;; This file uses cgroups and /proc. + (delete-file "pkg/sysinfo/sysinfo_linux_test.go") + ;; This file uses cgroups. + (delete-file "runconfig/config_test.go") + ;; This file uses /var. + (delete-file "daemon/oci_linux_test.go") + ;; Signal tests fail in bizarre ways + (delete-file "pkg/signal/signal_linux_test.go"))) + (replace 'configure + (lambda _ + (setenv "DOCKER_BUILDTAGS" "seccomp") + (setenv "DOCKER_GITCOMMIT" (string-append "v" #$%docker-version)) + (setenv "VERSION" (string-append #$%docker-version "-ce")) + ;; Automatically use bundled dependencies. + ;; TODO: Unbundle - see file "vendor.conf". + (setenv "AUTO_GOPATH" "1") + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + (setenv "LDFLAGS" "-s -w") + ;; Make build faster + (setenv "GOCACHE" "/tmp"))) + (add-before 'build 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment)) + (replace 'build + (lambda _ + ;; Our LD doesn't like the statically linked relocatable things + ;; that go produces, so install the dynamic version of + ;; dockerd instead. + (invoke "hack/make.sh" "dynbinary"))) + (replace 'check + (lambda _ + ;; The build process generated a file because the environment + ;; variable "AUTO_GOPATH" was set. Use it. + (setenv "GOPATH" (string-append (getcwd) "/.gopath")) + ;; ".gopath/src/github.com/docker/docker" is a link to the current + ;; directory and chdir would canonicalize to that. + ;; But go needs to have the uncanonicalized directory name, so + ;; store that. + (setenv "PWD" (string-append (getcwd) + "/.gopath/src/github.com/docker/docker")) + (with-directory-excursion ".gopath/src/github.com/docker/docker" + (invoke "hack/test/unit")) + (setenv "PWD" #f))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "bundles/dynbinary-daemon/dockerd" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin)))) + (add-after 'install 'remove-go-references + (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs - `(("btrfs-progs" ,btrfs-progs) - ("containerd" ,containerd) ; for containerd-shim - ("coreutils" ,coreutils) - ("dbus" ,dbus) - ("docker-proxy" ,docker-libnetwork-cmd-proxy) - ("e2fsprogs" ,e2fsprogs) - ("git" ,git) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("kmod" ,kmod) - ("libseccomp" ,libseccomp) - ("pigz" ,pigz) - ("procps" ,procps) - ("runc" ,runc) - ("util-linux" ,util-linux) - ("lvm2" ,lvm2) - ("tini" ,tini) - ("xfsprogs" ,xfsprogs) - ("xz" ,xz))) + (list btrfs-progs + containerd ; for containerd-shim + coreutils + dbus + docker-libnetwork-cmd-proxy + e2fsprogs + git + iproute + iptables + kmod + libseccomp + pigz + procps + runc + util-linux + lvm2 + tini + xfsprogs + xz)) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) go gotestsum pkg-config)) -- 2.36.0 ^ permalink raw reply related [flat|nested] 29+ messages in thread
* bug#52790: [PATCH 0/4] Update docker to 20.10.11. 2022-05-09 23:35 ` [bug#52790] [PATCH v3 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois @ 2022-06-24 5:05 ` Maxim Cournoyer 0 siblings, 0 replies; 29+ messages in thread From: Maxim Cournoyer @ 2022-06-24 5:05 UTC (permalink / raw) To: Pierre Langlois; +Cc: 52790-done Hi Pierre! Very nice work, thanks for doing it! I've reviewed the whole series (7 patches), made some changes mostly to update to the latest current version of Docker 20.10.17 and containerd at 1.6.6, added a commit to address 'guix lint' issues and another one to allow the Docker system tests to pass on my old machine. I tested using some Docker load I had at hand and pushed the series. Thanks again! Closing. Maxim ^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2022-06-24 5:07 UTC | newest] Thread overview: 29+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-12-25 14:17 [bug#52790] [PATCH 0/4] Update docker to 20.10.11 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 1/4] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 2/4] gnu: containerd: Update to 1.5.8 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 3/4] gnu: runc: Update to 1.0.3 Pierre Langlois 2021-12-25 14:40 ` [bug#52790] [PATCH 4/4] gnu: docker: Update to 20.10.11 Pierre Langlois 2021-12-26 11:37 ` [bug#52790] [PATCH 0/4] Update docker " Mathieu Othacehe 2021-12-27 16:42 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 0/7] Update docker to 20.10.14 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 1/7] gnu: runc: Update to 1.1.0 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 3/7] gnu: containerd: Update to 1.6.2 Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 6/7] gnu: docker: Update to 20.10.14 Pierre Langlois 2022-04-01 1:11 ` Pierre Langlois 2022-04-01 0:46 ` [bug#52790] [PATCH v2 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois 2022-05-09 23:27 ` [bug#52790] [PATCH v3 0/7] Update docker to 20.10.15 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 1/7] gnu: runc: Update to 1.1.1 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 2/7] gnu: containerd: Fix patch-paths build phase Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 3/7] gnu: containerd: Update to 1.6.4 Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 4/7] gnu: containerd: Switch to gexp arguments Pierre Langlois 2022-05-09 23:35 ` [bug#52790] [PATCH v3 5/7] gnu: docker: Fix mkfs.xfs reference Pierre Langlois 2022-05-10 10:06 ` Danny Milosavljevic 2022-05-09 23:35 ` [bug#52790] [PATCH v3 6/7] gnu: docker: Update to 20.10.15 Pierre Langlois 2022-05-10 10:11 ` Danny Milosavljevic 2022-05-14 16:01 ` Pierre Langlois 2022-05-17 20:28 ` Danny Milosavljevic 2022-05-09 23:35 ` [bug#52790] [PATCH v3 7/7] gnu: docker: Switch to gexp and new input style Pierre Langlois 2022-06-24 5:05 ` bug#52790: [PATCH 0/4] Update docker to 20.10.11 Maxim Cournoyer
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).