Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nerdctl for openSUSE:Factory checked in at 2026-10-06 19:18:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nerdctl (Old) and /work/SRC/openSUSE:Factory/.nerdctl.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nerdctl" Tue Oct 6 19:18:24 2026 rev:35 rq:1382701 version:2.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/nerdctl/nerdctl.changes 2026-09-21 12:24:26.276347667 +0200 +++ /work/SRC/openSUSE:Factory/.nerdctl.new.3698736/nerdctl.changes 2026-10-06 19:18:25.665565949 +0200 @@ -1,0 +2,24 @@ +Mon Oct 05 05:29:05 UTC 2026 - Yash Maurya <[email protected]> + +- Update to version 2.4.1: + * build(deps): bump containerd/project-checks from 1.2.2 to 1.2.3 + * update golangci-lint (2.14.0) + * update Docker (29.8.2) + * update soci-snapshotter (0.16.1) + * update BuildKit (0.33.1) + * update runc (1.5.2) + * update containerd 1.7 (1.7.36) + * update containerd (2.4.1) + * build(deps): bump github.com/docker/cli + * fix(compose): support cgroup_parent and cgroup service fields + * cp: pass the directory to tar via -C instead of the working directory + * fix(compose): pass CDI device names through unchanged + * build(deps): bump github.com/containerd/nydus-snapshotter + * build(deps): bump github.com/klauspost/compress from 1.20.0 to 1.20.1 + * Remove implemented fields from unimplemented list in compose.md + * build(deps): bump github.com/containerd/accelerated-container-image + * build(deps): bump github.com/containerd/containerd/v2 + * Add `cgroup_parent` to unimplemented YAML fields in compose.md + * fix(netutil): enable portMappings and dns capabilities in default nat CNI plugin (#5157) + +------------------------------------------------------------------- Old: ---- nerdctl-2.4.0.tar.xz New: ---- nerdctl-2.4.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nerdctl.spec ++++++ --- /var/tmp/diff_new_pack.6vVLok/_old 2026-10-06 19:18:26.783612890 +0200 +++ /var/tmp/diff_new_pack.6vVLok/_new 2026-10-06 19:18:26.785612974 +0200 @@ -24,7 +24,7 @@ %global import_path %{provider_prefix} Name: nerdctl -Version: 2.4.0 +Version: 2.4.1 Release: 0 Summary: Docker-compatible CLI for containerd License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6vVLok/_old 2026-10-06 19:18:26.824614612 +0200 +++ /var/tmp/diff_new_pack.6vVLok/_new 2026-10-06 19:18:26.828614780 +0200 @@ -2,9 +2,9 @@ <service name="tar_scm" mode="disabled"> <param name="url">https://github.com/containerd/nerdctl.git</param> <param name="scm">git</param> - <param name="revision">v2.4.0</param> + <param name="revision">v2.4.1</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="changesgenerate">disable</param> + <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> </service> <service mode="disabled" name="set_version"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.6vVLok/_old 2026-10-06 19:18:26.853615830 +0200 +++ /var/tmp/diff_new_pack.6vVLok/_new 2026-10-06 19:18:26.856615955 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/containerd/nerdctl.git</param> - <param name="changesrevision">bbc533ce69509508731f7993ef1cc078bcb99245</param></service></servicedata> + <param name="changesrevision">9039d5272eb8646d35322b9f4413bdf18ce7231a</param></service></servicedata> (No newline at EOF) ++++++ nerdctl-2.4.0.tar.xz -> nerdctl-2.4.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/.github/workflows/job-lint-project.yml new/nerdctl-2.4.1/.github/workflows/job-lint-project.yml --- old/nerdctl-2.4.0/.github/workflows/job-lint-project.yml 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/.github/workflows/job-lint-project.yml 2026-10-02 23:04:34.000000000 +0200 @@ -44,7 +44,7 @@ cache-dependency-path: src/github.com/containerd/nerdctl - name: "Run" - uses: containerd/project-checks@d7751f3c375b8fe4a84c02a068184ee4c1f59bc4 # v1.2.2 + uses: containerd/project-checks@9d887fad80ae4e40d6f10a68529082e7fc06a9af # v1.2.3 with: working-directory: src/github.com/containerd/nerdctl repo-access-token: ${{ secrets.GITHUB_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/.github/workflows/workflow-test.yml new/nerdctl-2.4.1/.github/workflows/workflow-test.yml --- old/nerdctl-2.4.0/.github/workflows/workflow-test.yml 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/.github/workflows/workflow-test.yml 2026-10-02 23:04:34.000000000 +0200 @@ -52,7 +52,7 @@ - runner: ubuntu-26.04-arm # Additionally build for old containerd on amd - runner: ubuntu-26.04 - containerd-version: v1.7.35 + containerd-version: v1.7.36 with: runner: ${{ matrix.runner }} containerd-version: ${{ matrix.containerd-version }} @@ -81,7 +81,7 @@ # old containerd + old ubuntu + old rootlesskit - runner: ubuntu-22.04 target: rootless - containerd-version: v1.7.35 + containerd-version: v1.7.36 rootlesskit-version: v1.1.1 # gomodjail - runner: ubuntu-26.04 @@ -103,7 +103,7 @@ # old containerd + old ubuntu - runner: ubuntu-22.04 target: rootful - containerd-version: v1.7.35 + containerd-version: v1.7.36 # ipv6 - runner: ubuntu-26.04 target: rootful @@ -153,6 +153,6 @@ no-hyperv: ${{ matrix.canary && true || false }} go-version: 1.26 windows-cni-version: v0.3.3 - docker-version: 5:29.8.1-1~ubuntu.26.04~resolute - windows-containerd-version: 2.4.0 - windows-containerd-sha: cadffa872e2385e5eccfaf0425d4f7be8571e6d2118dbb090efa0f681d5083d9 + docker-version: 5:29.8.2-1~ubuntu.26.04~resolute + windows-containerd-version: 2.4.1 + windows-containerd-sha: 57ebdac7c130dc6d17869c261325ae4282362304a6d38a2503de9da5524a4a05 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/.golangci.yml new/nerdctl-2.4.1/.golangci.yml --- old/nerdctl-2.4.0/.golangci.yml 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/.golangci.yml 2026-10-02 23:04:34.000000000 +0200 @@ -163,6 +163,11 @@ - name: package-naming # 1 occurrence (pkg/api/types). Renaming a public package is not worth the churn. disabled: true + - name: multiline-if-init + # 34 occurrences. New in revive v1.17 (golangci-lint v2.14). + # Would force rewriting the `if err := f(...); err != nil` statements whose call + # arguments are spread over several lines. + disabled: true ##### P2: nice to have. - name: max-public-structs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/Dockerfile new/nerdctl-2.4.1/Dockerfile --- old/nerdctl-2.4.0/Dockerfile 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/Dockerfile 2026-10-02 23:04:34.000000000 +0200 @@ -17,12 +17,12 @@ # Basic deps # @BINARY: the binary checksums are verified via Dockerfile.d/SHA256SUMS.d/<COMPONENT>-<VERSION> -ARG CONTAINERD_VERSION=v2.4.0@a7fe631d96c08fb14cf8eff0afdc280e99c30a94 -ARG RUNC_VERSION=v1.5.1@8f2685a471d3347a686ad3909783d8aafc6bb208 +ARG CONTAINERD_VERSION=v2.4.1@f2551031d7276a770f65f98c9b52e57e7dad07e8 +ARG RUNC_VERSION=v1.5.2@29dd3dc2b13b4123162e5fe132504bb4b15569f1 ARG CNI_PLUGINS_VERSION=v1.9.1@BINARY # Extra deps: Build -ARG BUILDKIT_VERSION=v0.33.0@BINARY +ARG BUILDKIT_VERSION=v0.33.1@BINARY # Extra deps: Lazy-pulling ARG STARGZ_SNAPSHOTTER_VERSION=v0.18.2@BINARY # Extra deps: Encryption @@ -47,7 +47,7 @@ ARG UBUNTU_VERSION=26.04 ARG CONTAINERIZED_SYSTEMD_VERSION=v0.1.2 ARG NYDUS_VERSION=v2.4.5 -ARG SOCI_SNAPSHOTTER_VERSION=0.15.0 +ARG SOCI_SNAPSHOTTER_VERSION=0.16.1 ARG KUBO_VERSION=v0.43.1 FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.9.0@sha256:c64defb9ed5a91eacb37f96ccc3d4cd72521c4bd18d5442905b95e2226b0e707 AS xx diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.0 new/nerdctl-2.4.1/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.0 --- old/nerdctl-2.4.0/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.0 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.0 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -b6242896d343100808dcbe37565caf381e0a444a6a83d7255926bb1519248ead buildkit-v0.33.0.linux-amd64.tar.gz -e5acfb5929f967fde3b925ddb39f79fd481a0e96774c641fab3a0e83950d7bfa buildkit-v0.33.0.linux-arm64.tar.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.1 new/nerdctl-2.4.1/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.1 --- old/nerdctl-2.4.0/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.1 1970-01-01 01:00:00.000000000 +0100 +++ new/nerdctl-2.4.1/Dockerfile.d/SHA256SUMS.d/buildkit-v0.33.1 2026-10-02 23:04:34.000000000 +0200 @@ -0,0 +1,2 @@ +4e044bcd62a0c0bbe6a8c94d73989de2bfe4c04dbc0f9d6021cf96b72cd1d965 buildkit-v0.33.1.linux-amd64.tar.gz +4e1ba91f139761f249a1fa6c71e632dfdbdafeda416176ecadefbb95225e56c4 buildkit-v0.33.1.linux-arm64.tar.gz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/Makefile new/nerdctl-2.4.1/Makefile --- old/nerdctl-2.4.0/Makefile 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/Makefile 2026-10-02 23:04:34.000000000 +0200 @@ -280,7 +280,7 @@ ########################## install-dev-tools: $(call title, $@) - # golangci: v2.13.2 (2026-08-27) + # golangci: v2.14.0 (2026-09-24) # git-validation: v1.2.2 (2025-02-26) # ltag: v0.3.0 (2025-03-04) # gotestsum: v1.13.0 (2025-09-11) @@ -288,7 +288,7 @@ # gosocialcheck: v0.2.0 (2026-09-11) @cd $(MAKEFILE_DIR) \ && go install github.com/google/go-licenses/v2@3e084b0caf710f7bfead967567539214f598c0a2 \ - && go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@27774aaf853a4fd21f1dd5e69439459dc1b26e68 \ + && go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@114493f9b3e7257d29e4130f2b4a4aadefbb6845 \ && go install github.com/vbatts/git-validation@7b60e35b055dd2eab5844202ffffad51d9c93922 \ && go install github.com/containerd/ltag@66e6a514664ee2d11a470735519fa22b1a9eaabd \ && go install gotest.tools/gotestsum@c4a0df2e75a225d979a444342dd3db752b53619f \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/docs/compose.md new/nerdctl-2.4.1/docs/compose.md --- old/nerdctl-2.4.0/docs/compose.md 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/docs/compose.md 2026-10-02 23:04:34.000000000 +0200 @@ -25,12 +25,9 @@ - `services.<SERVICE>.credential_spec` - `services.<SERVICE>.deploy.update_config` - `services.<SERVICE>.deploy.rollback_config` -- `services.<SERVICE>.deploy.resources.reservations` - `services.<SERVICE>.deploy.placement` - `services.<SERVICE>.deploy.endpoint_mode` - `services.<SERVICE>.healthcheck.start_interval` -- `services.<SERVICE>.stop_grace_period` -- `services.<SERVICE>.stop_signal` - `configs.<CONFIG>.external` - `secrets.<SECRET>.external` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/go.mod new/nerdctl-2.4.1/go.mod --- old/nerdctl-2.4.0/go.mod 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/go.mod 2026-10-02 23:04:34.000000000 +0200 @@ -6,11 +6,11 @@ // containerd, Docker/Moby, OCI, and golang.org/x packages are trusted //gosocialcheck:trusted require ( - github.com/containerd/accelerated-container-image v1.4.4 //gomodjail:unconfined + github.com/containerd/accelerated-container-image v1.4.5 //gomodjail:unconfined github.com/containerd/cgroups/v3 v3.1.3 //gomodjail:unconfined github.com/containerd/console v1.0.5 //gomodjail:unconfined github.com/containerd/containerd/api v1.12.0 //gomodjail:unconfined - github.com/containerd/containerd/v2 v2.4.0 //gomodjail:unconfined + github.com/containerd/containerd/v2 v2.4.1 //gomodjail:unconfined github.com/containerd/continuity v0.5.0 //gomodjail:unconfined github.com/containerd/errdefs v1.0.0 github.com/containerd/fifo v1.1.0 //gomodjail:unconfined @@ -18,13 +18,13 @@ github.com/containerd/imgcrypt/v2 v2.0.3 //gomodjail:unconfined github.com/containerd/log v0.2.0 //gomodjail:unconfined github.com/containerd/nerdctl/mod/tigron v0.0.0 //gomodjail:unconfined - github.com/containerd/nydus-snapshotter v0.15.16 //gomodjail:unconfined + github.com/containerd/nydus-snapshotter v0.16.0 //gomodjail:unconfined github.com/containerd/platforms v1.0.0-rc.5 //gomodjail:unconfined github.com/containerd/stargz-snapshotter v0.18.2 //gomodjail:unconfined github.com/containerd/stargz-snapshotter/estargz v0.18.2 //gomodjail:unconfined github.com/containerd/stargz-snapshotter/ipfs v0.18.2 //gomodjail:unconfined github.com/containerd/typeurl/v2 v2.3.0 - github.com/docker/cli v29.8.1+incompatible //gomodjail:unconfined + github.com/docker/cli v29.8.2+incompatible //gomodjail:unconfined github.com/docker/go-connections v0.8.1 //gomodjail:unconfined github.com/docker/go-units v0.5.0 github.com/moby/moby/client v0.6.0 //gomodjail:unconfined @@ -63,7 +63,7 @@ github.com/fsnotify/fsnotify v1.10.1 //gomodjail:unconfined github.com/go-viper/mapstructure/v2 v2.5.0 github.com/ipfs/go-cid v0.6.2 //gomodjail:unconfined - github.com/klauspost/compress v1.20.0 + github.com/klauspost/compress v1.20.1 github.com/mattn/go-isatty v0.0.24 //gomodjail:unconfined github.com/muesli/cancelreader v0.2.2 //gomodjail:unconfined github.com/pelletier/go-toml/v2 v2.4.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/go.sum new/nerdctl-2.4.1/go.sum --- old/nerdctl-2.4.0/go.sum 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/go.sum 2026-10-02 23:04:34.000000000 +0200 @@ -22,16 +22,16 @@ github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/compose-spec/compose-go/v2 v2.15.0 h1:tdQw+eMyT+P6ZIb09JfcIVvbMmIa+PjST7cWezVLf00= github.com/compose-spec/compose-go/v2 v2.15.0/go.mod h1:Q1+qtN4vhzEjGrnqRtzx1xa8raDZQlMUe3WJxndYNiQ= -github.com/containerd/accelerated-container-image v1.4.4 h1:88mL7plI0lvrzCiU1obhB4CFE8YFWFiqzNipydqiYCM= -github.com/containerd/accelerated-container-image v1.4.4/go.mod h1:h8+s7FnzpT1fnPqH31JK9LybCqiRd1IgLgA82vtX+Tc= +github.com/containerd/accelerated-container-image v1.4.5 h1:m3dw34J2qVq36TGOg0GCHUewwx2L3U2B8dgfSaA7Mmc= +github.com/containerd/accelerated-container-image v1.4.5/go.mod h1:vCgrmhBDiF4dLRPLSHrcwGTrrW/ooioV+xQhTzwUUxk= github.com/containerd/cgroups/v3 v3.1.3 h1:eUNflyMddm18+yrDmZPn3jI7C5hJ9ahABE5q6dyLYXQ= github.com/containerd/cgroups/v3 v3.1.3/go.mod h1:PKZ2AcWmSBsY/tJUVhtS/rluX0b1uq1GmPO1ElCmbOw= github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc= github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/containerd/containerd/api v1.12.0 h1:kuQm82SbDrCuO4n7hf2L8zsBtZLuympyq5X/VotfX2A= github.com/containerd/containerd/api v1.12.0/go.mod h1:EBcSzoi9Vl18cdODaXUCskf3D2NT8lsSXeZJnU5jIUc= -github.com/containerd/containerd/v2 v2.4.0 h1:mZLYWkPAgF4tfTjinClrRfvUxmxHxg1PQL7cjrrpTtk= -github.com/containerd/containerd/v2 v2.4.0/go.mod h1:gHZz+v5y8mGt9grF3ynuaa3r6bXLmghBZWTAftHAUtg= +github.com/containerd/containerd/v2 v2.4.1 h1:DUx/ZJN7cEu0WuzHClDB+68H/bqMEH5pWoEjf0ae4hc= +github.com/containerd/containerd/v2 v2.4.1/go.mod h1:vgLdtvl3prFk1d3ZVqQcsDD5Q9IKM+vAIdU54U85w+I= github.com/containerd/continuity v0.5.0 h1:7a85HZpCSs+1Zps0Ee3DPSuAWY+0SJM1JNM51nlEVDg= github.com/containerd/continuity v0.5.0/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -50,8 +50,8 @@ github.com/containerd/log v0.2.0/go.mod h1:/M7L7CXKcPTfNC74XzaK+5H5KbO5+4lJVpuVI6vRLoM= github.com/containerd/log/otel v0.1.0 h1:Az5rFFo0+c4v2yC8ROR63sWsZpKl/vhtUnUhqLSpE6U= github.com/containerd/log/otel v0.1.0/go.mod h1:65C5iYF2xIQByCyxzoO2KKKK1+/tGxD4XqhdlrTtvzE= -github.com/containerd/nydus-snapshotter v0.15.16 h1:FkAmNADhOQFeWZtrHcDz04ZoOKsIeKZtKbz7PHxIFtc= -github.com/containerd/nydus-snapshotter v0.15.16/go.mod h1:x+/i5WkV8w4jSXbdv57YSMWvkzT2JFwpeIDJxvcYe38= +github.com/containerd/nydus-snapshotter v0.16.0 h1:ruNhliMvo7D5nOHIWmt6nHZbJZephVMX5MclRDYHZ/8= +github.com/containerd/nydus-snapshotter v0.16.0/go.mod h1:bOppnH1X941XidPS8FadVSijJ/pIOK8L+Mc0fGFw74A= github.com/containerd/platforms v1.0.0-rc.5 h1:vXd569rDrz8LeMXzAnBsy6LADV5YtsD8oyaRarxdmSU= github.com/containerd/platforms v1.0.0-rc.5/go.mod h1:lKlMXyLybmBedS/JJm11uDofzI8L2v0J2ZbYvNsbq1A= github.com/containerd/plugin v1.1.0 h1:O+7lczNJVMy8rz0YNx3xGB8tTf5qY4i5abF041Ew19U= @@ -87,8 +87,8 @@ github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0= github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/docker/cli v29.8.1+incompatible h1:qYL1bCp6cRw2SB1xmLlIOPyV171dilw9W2Jew38vy9c= -github.com/docker/cli v29.8.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v29.8.2+incompatible h1:2zgdFuoFst2T80oS42vhKGxkd0JRo305eIEKTsxR7pQ= +github.com/docker/cli v29.8.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8= github.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo= github.com/docker/go-connections v0.8.1 h1:JibmG5hULs5qXSr/cp/w3Pw5fZuStt4MOHMUExb29/M= @@ -139,8 +139,8 @@ github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/jsimonetti/rtnetlink/v2 v2.0.1 h1:xda7qaHDSVOsADNouv7ukSuicKZO7GgVUCXxpaIEIlM= github.com/jsimonetti/rtnetlink/v2 v2.0.1/go.mod h1:7MoNYNbb3UaDHtF8udiJo/RH6VsTKP1pqKLUTVCvToE= -github.com/klauspost/compress v1.20.0 h1:a3C1ke2ohxFymNlb2HWAHjDeKCI90scRskErZkR0ezA= -github.com/klauspost/compress v1.20.0/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI= +github.com/klauspost/compress v1.20.1 h1:T7kKElXUMXrUJ2E9QhQhxFtcK5rPyLdsGZvdbLMPdiQ= +github.com/klauspost/compress v1.20.1/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI= github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/mod/tigron/Makefile new/nerdctl-2.4.1/mod/tigron/Makefile --- old/nerdctl-2.4.0/mod/tigron/Makefile 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/mod/tigron/Makefile 2026-10-02 23:04:34.000000000 +0200 @@ -164,12 +164,12 @@ ########################## install-dev-tools: $(call title, $@) - # golangci: v2.13.2 (2026-08-27) + # golangci: v2.14.0 (2026-09-24) # git-validation: v1.2.2 (2025-02-26) # ltag: v0.3.0 (2025-03-04) # go-licenses: v2.0.1 (2025-09-08) @cd $(MAKEFILE_DIR) \ - && go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@27774aaf853a4fd21f1dd5e69439459dc1b26e68 \ + && go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@114493f9b3e7257d29e4130f2b4a4aadefbb6845 \ && go install github.com/vbatts/git-validation@7b60e35b055dd2eab5844202ffffad51d9c93922 \ && go install github.com/containerd/ltag@66e6a514664ee2d11a470735519fa22b1a9eaabd \ && go install github.com/google/go-licenses/v2@3e084b0caf710f7bfead967567539214f598c0a2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/pkg/composer/serviceparser/serviceparser.go new/nerdctl-2.4.1/pkg/composer/serviceparser/serviceparser.go --- old/nerdctl-2.4.0/pkg/composer/serviceparser/serviceparser.go 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/pkg/composer/serviceparser/serviceparser.go 2026-10-02 23:04:34.000000000 +0200 @@ -29,6 +29,7 @@ "time" "github.com/compose-spec/compose-go/v2/types" + cdiparser "tags.cncf.io/container-device-interface/pkg/parser" "github.com/containerd/log" @@ -61,6 +62,8 @@ "BlkioConfig", "CapAdd", "CapDrop", + "Cgroup", + "CgroupParent", "CPUS", "CPUSet", "CPUShares", @@ -562,7 +565,21 @@ c.RunArgs = append(c.RunArgs, fmt.Sprintf("--cpu-shares=%d", svc.CPUShares)) } + if svc.Cgroup != "" { + c.RunArgs = append(c.RunArgs, fmt.Sprintf("--cgroupns=%s", svc.Cgroup)) + } + + if svc.CgroupParent != "" { + c.RunArgs = append(c.RunArgs, fmt.Sprintf("--cgroup-parent=%s", svc.CgroupParent)) + } + for _, v := range svc.Devices { + // A CDI device is passed by its qualified name alone; `nerdctl run` + // only recognizes the name when nothing is appended to it. + if cdiparser.IsQualifiedName(v.Source) { + c.RunArgs = append(c.RunArgs, fmt.Sprintf("--device=%s", v.Source)) + continue + } c.RunArgs = append(c.RunArgs, fmt.Sprintf("--device=%s:%s:%s", v.Source, v.Target, v.Permissions)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/pkg/composer/serviceparser/serviceparser_test.go new/nerdctl-2.4.1/pkg/composer/serviceparser/serviceparser_test.go --- old/nerdctl-2.4.0/pkg/composer/serviceparser/serviceparser_test.go 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/pkg/composer/serviceparser/serviceparser_test.go 2026-10-02 23:04:34.000000000 +0200 @@ -357,6 +357,7 @@ - /dev/a - /dev/b:/dev/b - /dev/c:/dev/c:rw + - vendor.com/class=name ` comp := testutil.NewComposeDir(t, dockerComposeYAML) defer comp.CleanUp() @@ -375,6 +376,34 @@ assert.Assert(t, in(c.RunArgs, "--device=/dev/a:/dev/a:rwm")) assert.Assert(t, in(c.RunArgs, "--device=/dev/b:/dev/b:rwm")) assert.Assert(t, in(c.RunArgs, "--device=/dev/c:/dev/c:rw")) + assert.Assert(t, in(c.RunArgs, "--device=vendor.com/class=name")) + } +} + +func TestParseCgroup(t *testing.T) { + const dockerComposeYAML = ` +services: + foo: + image: nginx:alpine + cgroup: host + cgroup_parent: foo.slice +` + comp := testutil.NewComposeDir(t, dockerComposeYAML) + defer comp.CleanUp() + + project, err := testutil.LoadProject(comp.YAMLFullPath(), comp.ProjectName(), nil) + assert.NilError(t, err) + + fooSvc, err := project.GetService("foo") + assert.NilError(t, err) + + foo, err := Parse(project, fooSvc) + assert.NilError(t, err) + + t.Logf("foo: %+v", foo) + for _, c := range foo.Containers { + assert.Assert(t, in(c.RunArgs, "--cgroupns=host")) + assert.Assert(t, in(c.RunArgs, "--cgroup-parent=foo.slice")) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/pkg/containerutil/cp_linux.go new/nerdctl-2.4.1/pkg/containerutil/cp_linux.go --- old/nerdctl-2.4.0/pkg/containerutil/cp_linux.go 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/pkg/containerutil/cp_linux.go 2026-10-02 23:04:34.000000000 +0200 @@ -28,6 +28,8 @@ "strconv" "strings" + "golang.org/x/sys/unix" + containerd "github.com/containerd/containerd/v2/client" "github.com/containerd/containerd/v2/core/containers" "github.com/containerd/containerd/v2/core/mount" @@ -262,7 +264,11 @@ if options.FollowSymLink { tarC = append(tarC, "-h") } - tarC = append(tarC, "-c", "-f", "-", tarCArg) + // Use -C rather than setting the working directory of the tar process, as GNU tar + // 1.30-13.el8_10 (AlmaLinux 8) fails with "Cannot getcwd" when its working directory is + // under /proc/<pid>/root of another mount namespace. + // https://github.com/containerd/nerdctl/issues/5237 + tarC = append(tarC, "-C", tarCDir, "-c", "-f", "-", tarCArg) } tarXDir := destinationSpec.resolvedPath @@ -277,7 +283,13 @@ if options.Container2Host && isGNUTar { tarX = append(tarX, "--no-same-owner") } - tarX = append(tarX, "-f", "-") + tarX = append(tarX, "-C", tarXDir, "-f", "-") + + // tar opens the -C directory by itself and fails with an unhelpful error when the directory + // is not accessible, so detect this beforehand. + if accessErr := unix.Access(tarXDir, unix.X_OK); errors.Is(accessErr, unix.EACCES) { + return ErrTargetIsReadOnly + } } if rootlessutil.IsRootless() { @@ -293,12 +305,10 @@ // WARNING: some of our testing on stderr might not be portable across different versions of tar // In these cases (readonly target), we will just get the straight tar output instead tarCCmd := exec.CommandContext(ctx, tarC[0], tarC[1:]...) - tarCCmd.Dir = tarCDir tarCCmd.Stdin = nil tarCCmd.Stderr = os.Stderr tarXCmd := exec.CommandContext(ctx, tarX[0], tarX[1:]...) - tarXCmd.Dir = tarXDir if sourceSpec.fromStdin { // Reading from tar should pipe stdin into dst tarXCmd.Stdin = bufio.NewReader(os.Stdin) @@ -319,12 +329,12 @@ var tarErr bytes.Buffer tarXCmd.Stderr = &tarErr - log.G(ctx).Debugf("executing %v in %q", tarCCmd.Args, tarCCmd.Dir) + log.G(ctx).Debugf("executing %v", tarCCmd.Args) if err := tarCCmd.Start(); err != nil { return errors.Join(fmt.Errorf("failed to execute %v", tarCCmd.Args), err) } - log.G(ctx).Debugf("executing %v in %q", tarXCmd.Args, tarXCmd.Dir) + log.G(ctx).Debugf("executing %v", tarXCmd.Args) if err := tarXCmd.Start(); err != nil { if strings.Contains(err.Error(), "permission denied") { return ErrTargetIsReadOnly diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/pkg/netutil/cni_plugin_windows.go new/nerdctl-2.4.1/pkg/netutil/cni_plugin_windows.go --- old/nerdctl-2.4.0/pkg/netutil/cni_plugin_windows.go 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/pkg/netutil/cni_plugin_windows.go 2026-10-02 23:04:34.000000000 +0200 @@ -17,9 +17,10 @@ package netutil type natConfig struct { - PluginType string `json:"type"` - Master string `json:"master,omitempty"` - IPAM map[string]interface{} `json:"ipam"` + PluginType string `json:"type"` + Master string `json:"master,omitempty"` + IPAM map[string]interface{} `json:"ipam"` + Capabilities map[string]bool `json:"capabilities,omitempty"` } func (*natConfig) GetPluginType() string { @@ -30,6 +31,10 @@ return &natConfig{ PluginType: "nat", Master: master, + Capabilities: map[string]bool{ + "portMappings": true, + "dns": true, + }, } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nerdctl-2.4.0/pkg/netutil/netutil_windows_test.go new/nerdctl-2.4.1/pkg/netutil/netutil_windows_test.go --- old/nerdctl-2.4.0/pkg/netutil/netutil_windows_test.go 2026-09-20 05:38:53.000000000 +0200 +++ new/nerdctl-2.4.1/pkg/netutil/netutil_windows_test.go 2026-10-02 23:04:34.000000000 +0200 @@ -16,10 +16,26 @@ package netutil -import "testing" +import ( + "testing" + + "gotest.tools/v3/assert" +) // Tests whether nerdctl properly creates the default network when required. // On Windows, the default driver used will be "nat". (netutil.DefaultNetworkName) func TestDefaultNetworkCreation(t *testing.T) { testDefaultNetworkCreation(t) } + +func TestGenerateCNIPluginsNatCapabilities(t *testing.T) { + e := &CNIEnv{} + plugins, err := e.generateCNIPlugins("nat", "nat", nil, nil, false, false) + assert.NilError(t, err) + assert.Assert(t, len(plugins) == 1) + nat, ok := plugins[0].(*natConfig) + assert.Assert(t, ok) + assert.Assert(t, nat.Capabilities != nil) + assert.Assert(t, nat.Capabilities["portMappings"]) + assert.Assert(t, nat.Capabilities["dns"]) +} ++++++ vendor.tar.xz ++++++ ++++ 14186 lines of diff (skipped)
