summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Langlois <pierre.langlois@gmx.com>2022-06-23 23:06:55 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-06-23 23:54:19 -0400
commit185ae9b410a43f0415e83f9fb88549c21ca4a673 (patch)
tree45f6257c65860a0b9674f4c072f5364872e338b6
parent6c1dac4f06a2dddf1f30bea6bf8edfeb74a1ebb7 (diff)
downloadguix-185ae9b410a43f0415e83f9fb88549c21ca4a673.tar.gz
gnu: docker: Update to 20.10.17.
* gnu/packages/docker.scm (%docker-version): Update to 20.10.17.
(docker-libnetwork)[source]: Update commit according to vendor.conf.  Reset
revision to 1.  Simplify snippet.
(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)[source]: Update hash.
[arguments]: Set GO_LINKMODE to "dynamic".  Remove trailing #t.
[phases]{check}: Replace 'if' with 'when'.
* 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.

Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/docker.scm96
-rw-r--r--gnu/packages/networking.scm6
-rw-r--r--gnu/packages/patches/docker-fix-tests.patch28
4 files changed, 43 insertions, 88 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 58a83c4916..353b91cfd2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1004,7 +1004,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 5be32ab554..5ff574dbc9 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -54,7 +54,7 @@
 
 ;; 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.17")
 
 (define-public python-docker
   (package
@@ -252,11 +252,10 @@ network attachments.")
 ;;; 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 "f6ccccb1c082a432c2a5814aaedaca56af33d9ea")
         (version (version-major+minor %docker-version))
         (revision "1"))
     (package
@@ -271,12 +270,10 @@ network attachments.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp"))
+                  "0nxpr0h0smv4n641g41vxibr5r85ixfcvs9cp3c4fc7zvrhjc49s"))
                 ;; Delete bundled ("vendored") free software source code.
                 (modules '((guix build utils)))
-                (snippet '(begin
-                            (delete-file-recursively "vendor")
-                            #t))))
+                (snippet '(delete-file-recursively "vendor"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "github.com/moby/libnetwork/"))
@@ -324,9 +321,7 @@ built-in registry server of Docker.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8"))
-       (patches
-        (search-patches "docker-fix-tests.patch"))))
+        (base32 "0hn7fg717rggwk6dbicrwa7aglqp7dp0jp5rvn6p9gfcnrp2w97d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules
@@ -369,9 +364,10 @@ built-in registry server of 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 +396,6 @@ built-in registry server of 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 +432,7 @@ built-in registry server of 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 +481,13 @@ built-in registry server of 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 +512,7 @@ built-in registry server of 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 +525,7 @@ built-in registry server of 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 +547,7 @@ built-in registry server of 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 +555,7 @@ built-in registry server of 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 +580,7 @@ built-in registry server of 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
@@ -609,13 +595,13 @@ provisioning etc.")
     (version %docker-version)
     (source
      (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://github.com/docker/cli")
-            (commit (string-append "v" version))))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0"))))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/docker/cli")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ksicj4iqvgp9jabd4xmhkf3vax6dwn4f5dsr73bdqj4mf3ahav0"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/docker/cli"
@@ -635,21 +621,20 @@ provisioning etc.")
              ;; 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")))
-             (if tests?
-                 ;; Use the newly-built docker client for the tests.
-                 (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)))
+             (when tests?
+               ;; Use the newly-built docker client for the tests.
+               (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 '()))))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -662,8 +647,7 @@ provisioning etc.")
                                (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 473df7f3d0..b4c50bc783 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1778,8 +1778,8 @@ handling network namespaces in Go.")
 (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))
@@ -1791,7 +1791,7 @@ handling network namespaces in Go.")
                 (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)
- 	}