From 2184e212db82cbd887c452a548a759457a67a05f Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Thu, 20 Feb 2025 08:58:07 +0000 Subject: [PATCH] moby: update to 28.0.2 --- .../addon-depends/docker/moby/package.mk | 6 +- ...moby-001-user-addon-storage-location.patch | 121 ++++++++---------- 2 files changed, 57 insertions(+), 70 deletions(-) diff --git a/packages/addons/addon-depends/docker/moby/package.mk b/packages/addons/addon-depends/docker/moby/package.mk index 866e8e0c0c..0516211d83 100644 --- a/packages/addons/addon-depends/docker/moby/package.mk +++ b/packages/addons/addon-depends/docker/moby/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) PKG_NAME="moby" -PKG_VERSION="27.5.1" -PKG_SHA256="0d071c1773c855778d85590e01b924c1857000fd786485f4b674a3be2d3b893c" +PKG_VERSION="28.0.2" +PKG_SHA256="7cfc0c13358497f9c6d8e1558d70195e6b72f37cbd9605ba35812ef395186927" PKG_LICENSE="ASL" PKG_SITE="https://mobyproject.org/" PKG_URL="https://github.com/moby/moby/archive/v${PKG_VERSION}.tar.gz" @@ -12,7 +12,7 @@ PKG_LONGDESC="Moby is an open-source project created by Docker to enable and acc PKG_TOOLCHAIN="manual" # Git commit of the matching release https://github.com/moby/moby -export PKG_GIT_COMMIT="4c9b3b011ae4c30145a7b344c870bdda01b454e2" +export PKG_GIT_COMMIT="bea4de25004da0460f80ac1e0f1628e66b058287" PKG_MOBY_BUILDTAGS="daemon \ autogen \ diff --git a/packages/addons/addon-depends/docker/moby/patches/moby-001-user-addon-storage-location.patch b/packages/addons/addon-depends/docker/moby/patches/moby-001-user-addon-storage-location.patch index 1aacb2c50f..47b2a461b4 100644 --- a/packages/addons/addon-depends/docker/moby/patches/moby-001-user-addon-storage-location.patch +++ b/packages/addons/addon-depends/docker/moby/patches/moby-001-user-addon-storage-location.patch @@ -4,20 +4,20 @@ # # diff -Naur a/cmd/dockerd/daemon_unix.go b/cmd/dockerd/daemon_unix.go ---- a/cmd/dockerd/daemon_unix.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/cmd/dockerd/daemon_unix.go 2024-09-10 06:47:41.951753985 +0000 -@@ -23,7 +23,7 @@ +--- a/cmd/dockerd/daemon_unix.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/cmd/dockerd/daemon_unix.go 2025-02-20 10:29:44.441745187 +0000 +@@ -21,7 +21,7 @@ - func getDefaultDaemonConfigDir() (string, error) { + func getDefaultDaemonConfigDir() string { if !honorXDG { -- return "/etc/docker", nil -+ return "/storage/.kodi/userdata/addon_data/service.system.docker/config", nil +- return "/etc/docker" ++ return "/storage/.kodi/userdata/addon_data/service.system.docker/config" } // NOTE: CLI uses ~/.docker while the daemon uses ~/.config/docker, because // ~/.docker was not designed to store daemon configurations. diff -Naur a/cmd/dockerd/options.go b/cmd/dockerd/options.go ---- a/cmd/dockerd/options.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/cmd/dockerd/options.go 2024-09-10 06:47:41.951753985 +0000 +--- a/cmd/dockerd/options.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/cmd/dockerd/options.go 2025-02-20 10:29:44.441449933 +0000 @@ -39,7 +39,7 @@ // // - DOCKER_CONFIG only affects TLS certificates, but does not change the @@ -37,8 +37,8 @@ diff -Naur a/cmd/dockerd/options.go b/cmd/dockerd/options.go // needed for rootless, but perhaps could be used for non-rootless(?) // - When changing the location for TLS config, (ideally) they should diff -Naur a/integration/plugin/authz/authz_plugin_test.go b/integration/plugin/authz/authz_plugin_test.go ---- a/integration/plugin/authz/authz_plugin_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/integration/plugin/authz/authz_plugin_test.go 2024-09-10 06:47:41.908420295 +0000 +--- a/integration/plugin/authz/authz_plugin_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/integration/plugin/authz/authz_plugin_test.go 2025-02-20 10:29:44.406641256 +0000 @@ -56,15 +56,15 @@ ctrl = &authorizationController{} @@ -58,48 +58,23 @@ diff -Naur a/integration/plugin/authz/authz_plugin_test.go b/integration/plugin/ assert.NilError(t, err) ctrl = nil }) -diff -Naur a/integration/plugin/graphdriver/external_test.go b/integration/plugin/graphdriver/external_test.go ---- a/integration/plugin/graphdriver/external_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/integration/plugin/graphdriver/external_test.go 2024-09-10 06:47:41.908420295 +0000 -@@ -88,7 +88,7 @@ - - sserver.Close() - jserver.Close() -- err := os.RemoveAll("/etc/docker/plugins") -+ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") - assert.NilError(t, err) - } - -@@ -352,10 +352,10 @@ - respond(w, &graphDriverResponse{Size: size}) - }) - -- err = os.MkdirAll("/etc/docker/plugins", 0o755) -+ err = os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0o755) - assert.NilError(t, err) - -- specFile := "/etc/docker/plugins/" + name + "." + ext -+ specFile := "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/" + name + "." + ext - err = os.WriteFile(specFile, b, 0o644) - assert.NilError(t, err) - } diff -Naur a/integration-cli/docker_cli_external_volume_driver_test.go b/integration-cli/docker_cli_external_volume_driver_test.go ---- a/integration-cli/docker_cli_external_volume_driver_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/integration-cli/docker_cli_external_volume_driver_test.go 2024-09-10 06:47:42.278423345 +0000 -@@ -262,10 +262,10 @@ +--- a/integration-cli/docker_cli_external_volume_driver_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/integration-cli/docker_cli_external_volume_driver_test.go 2025-02-20 10:29:44.713041018 +0000 +@@ -266,10 +266,10 @@ send(w, `{"Capabilities": { "Scope": "global" }}`) }) - err := os.MkdirAll("/etc/docker/plugins", 0o755) + err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0o755) - assert.NilError(c, err) + assert.NilError(t, err) - err = os.WriteFile("/etc/docker/plugins/"+name+".spec", []byte(s.Server.URL), 0o644) + err = os.WriteFile("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/"+name+".spec", []byte(s.Server.URL), 0o644) - assert.NilError(c, err) + assert.NilError(t, err) return s } -@@ -273,7 +273,7 @@ +@@ -277,7 +277,7 @@ func (s *DockerExternalVolumeSuite) TearDownSuite(ctx context.Context, c *testing.T) { s.volumePlugin.Close() @@ -108,7 +83,7 @@ diff -Naur a/integration-cli/docker_cli_external_volume_driver_test.go b/integra assert.NilError(c, err) } -@@ -367,7 +367,7 @@ +@@ -371,7 +371,7 @@ // Make sure a request to use a down driver doesn't block other requests func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c *testing.T) { @@ -118,9 +93,9 @@ diff -Naur a/integration-cli/docker_cli_external_volume_driver_test.go b/integra assert.NilError(c, err) defer os.RemoveAll(specPath) diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go ---- a/integration-cli/docker_cli_network_unix_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/integration-cli/docker_cli_network_unix_test.go 2024-09-10 06:47:42.278423345 +0000 -@@ -225,14 +225,14 @@ +--- a/integration-cli/docker_cli_network_unix_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/integration-cli/docker_cli_network_unix_test.go 2025-02-20 10:29:44.713475312 +0000 +@@ -226,14 +226,14 @@ } }) @@ -138,7 +113,7 @@ diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/d err = os.WriteFile(ipamFileName, []byte(url), 0o644) assert.NilError(t, err) } -@@ -244,7 +244,7 @@ +@@ -245,7 +245,7 @@ s.server.Close() @@ -148,9 +123,9 @@ diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/d } diff -Naur a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_cli_swarm_test.go ---- a/integration-cli/docker_cli_swarm_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/integration-cli/docker_cli_swarm_test.go 2024-09-10 06:47:42.281756705 +0000 -@@ -823,14 +823,14 @@ +--- a/integration-cli/docker_cli_swarm_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/integration-cli/docker_cli_swarm_test.go 2025-02-20 10:29:44.716710173 +0000 +@@ -825,14 +825,14 @@ } }) @@ -168,7 +143,7 @@ diff -Naur a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_c err = os.WriteFile(ipamFileName, []byte(url), 0o644) assert.NilError(t, err) } -@@ -843,7 +843,7 @@ +@@ -845,7 +845,7 @@ setupRemoteGlobalNetworkPlugin(c, mux, s.server.URL, globalNetworkPlugin, globalIPAMPlugin) defer func() { s.server.Close() @@ -178,9 +153,9 @@ diff -Naur a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_c }() diff -Naur a/libnetwork/drivers/remote/driver_test.go b/libnetwork/drivers/remote/driver_test.go ---- a/libnetwork/drivers/remote/driver_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/libnetwork/drivers/remote/driver_test.go 2024-09-10 06:47:42.268423262 +0000 -@@ -42,7 +42,7 @@ +--- a/libnetwork/drivers/remote/driver_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/libnetwork/drivers/remote/driver_test.go 2025-02-20 10:29:44.707404748 +0000 +@@ -44,7 +44,7 @@ } func setupPlugin(t *testing.T, name string, mux *http.ServeMux) func() { @@ -190,8 +165,8 @@ diff -Naur a/libnetwork/drivers/remote/driver_test.go b/libnetwork/drivers/remot specPath = filepath.Join(os.Getenv("programdata"), "docker", "plugins") } diff -Naur a/libnetwork/ipams/remote/remote_test.go b/libnetwork/ipams/remote/remote_test.go ---- a/libnetwork/ipams/remote/remote_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/libnetwork/ipams/remote/remote_test.go 2024-09-10 06:47:42.261756541 +0000 +--- a/libnetwork/ipams/remote/remote_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/libnetwork/ipams/remote/remote_test.go 2025-02-20 10:29:44.699434031 +0000 @@ -38,7 +38,7 @@ } @@ -202,8 +177,8 @@ diff -Naur a/libnetwork/ipams/remote/remote_test.go b/libnetwork/ipams/remote/re specPath = filepath.Join(os.Getenv("programdata"), "docker", "plugins") } diff -Naur a/libnetwork/libnetwork_unix_test.go b/libnetwork/libnetwork_unix_test.go ---- a/libnetwork/libnetwork_unix_test.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/libnetwork/libnetwork_unix_test.go 2024-09-10 06:47:42.271756623 +0000 +--- a/libnetwork/libnetwork_unix_test.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/libnetwork/libnetwork_unix_test.go 2025-02-20 10:29:44.709262867 +0000 @@ -2,4 +2,4 @@ package libnetwork_test @@ -211,8 +186,8 @@ diff -Naur a/libnetwork/libnetwork_unix_test.go b/libnetwork/libnetwork_unix_tes -var specPath = "/etc/docker/plugins" +var specPath = "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins" diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go ---- a/pkg/plugins/discovery.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/pkg/plugins/discovery.go 2024-09-10 06:47:41.915087017 +0000 +--- a/pkg/plugins/discovery.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/pkg/plugins/discovery.go 2025-02-20 10:29:44.412930502 +0000 @@ -128,12 +128,12 @@ // // On Unix in non-rootless mode: @@ -229,8 +204,8 @@ diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go func SpecsPaths() []string { return specsPaths() diff -Naur a/pkg/plugins/discovery_unix.go b/pkg/plugins/discovery_unix.go ---- a/pkg/plugins/discovery_unix.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/pkg/plugins/discovery_unix.go 2024-09-10 06:47:41.915087017 +0000 +--- a/pkg/plugins/discovery_unix.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/pkg/plugins/discovery_unix.go 2025-02-20 10:29:44.412746807 +0000 @@ -12,7 +12,7 @@ if configHome, err := homedir.GetConfigHome(); err != nil { return filepath.Join(configHome, "docker/plugins") @@ -248,8 +223,8 @@ diff -Naur a/pkg/plugins/discovery_unix.go b/pkg/plugins/discovery_unix.go + return []string{"/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", "/usr/lib/docker/plugins"} } diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go ---- a/pkg/plugins/plugins.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/pkg/plugins/plugins.go 2024-09-10 06:47:41.915087017 +0000 +--- a/pkg/plugins/plugins.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/pkg/plugins/plugins.go 2025-02-20 10:29:44.413216747 +0000 @@ -4,7 +4,7 @@ // Docker discovers plugins by looking for them in the plugin directory whenever // a user or container tries to use one by name. UNIX domain socket files must @@ -260,8 +235,8 @@ diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go // its name if it exists. // diff -Naur a/registry/config_unix.go b/registry/config_unix.go ---- a/registry/config_unix.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/registry/config_unix.go 2024-09-10 06:47:42.275089984 +0000 +--- a/registry/config_unix.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/registry/config_unix.go 2025-02-20 10:29:44.712430143 +0000 @@ -5,7 +5,7 @@ // defaultCertsDir is the platform-specific default directory where certificates // are stored. On Linux, it may be overridden through certsDir, for example, when @@ -272,8 +247,8 @@ diff -Naur a/registry/config_unix.go b/registry/config_unix.go // cleanPath is used to ensure that a directory name is valid on the target // platform. It will be passed in something *similar* to a URL such as diff -Naur a/registry/search_endpoint_v1.go b/registry/search_endpoint_v1.go ---- a/registry/search_endpoint_v1.go 2024-09-06 09:57:40.000000000 +0000 -+++ b/registry/search_endpoint_v1.go 2024-09-10 06:47:42.278423345 +0000 +--- a/registry/search_endpoint_v1.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/registry/search_endpoint_v1.go 2025-02-20 10:29:44.712695815 +0000 @@ -54,7 +54,7 @@ if endpoint.IsSecure { // If registry is secure and HTTPS failed, show user the error and tell them about `--insecure-registry` @@ -283,3 +258,15 @@ diff -Naur a/registry/search_endpoint_v1.go b/registry/search_endpoint_v1.go } // registry is insecure and HTTPS failed, fallback to HTTP. +diff -Naur a/vendor/github.com/containerd/containerd/v2/core/remotes/docker/config/hosts.go b/vendor/github.com/containerd/containerd/v2/core/remotes/docker/config/hosts.go +--- a/vendor/github.com/containerd/containerd/v2/core/remotes/docker/config/hosts.go 2025-02-19 21:53:46.000000000 +0000 ++++ b/vendor/github.com/containerd/containerd/v2/core/remotes/docker/config/hosts.go 2025-02-20 10:29:44.668972179 +0000 +@@ -578,7 +578,7 @@ + return filepath.Join(base, p) + } + +-// loadCertsDir loads certs from certsDir like "/etc/docker/certs.d" . ++// loadCertsDir loads certs from certsDir like "/storage/.kodi/userdata/addon_data/service.system.docker/config/certs.d" . + // Compatible with Docker file layout + // - files ending with ".crt" are treated as CA certificate files + // - files ending with ".cert" are treated as client certificates, and