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)

Reply via email to