From 7c9a1ac422d802234099b7c57e067dbe217ac386 Mon Sep 17 00:00:00 2001 From: Pierre Langlois 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. (("\\ isn't found. + ;; FIXME: We might need to package buildkit and docker's + ;; buildx plugin, to support qemu-based docker containers. + (("\\ .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 -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