Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package docker-compose for openSUSE:Factory 
checked in at 2025-04-18 16:21:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker-compose (Old)
 and      /work/SRC/openSUSE:Factory/.docker-compose.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "docker-compose"

Fri Apr 18 16:21:43 2025 rev:64 rq:1270704 version:2.35.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes    
2025-04-11 16:49:42.642619268 +0200
+++ /work/SRC/openSUSE:Factory/.docker-compose.new.30101/docker-compose.changes 
2025-04-20 19:51:17.495183487 +0200
@@ -1,0 +2,36 @@
+Fri Apr 18 05:36:53 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 2.35.1:
+  * Fixes
+    - Use bind API for bind mounts by @ndeloof in #12733
+    - Prefer bind API by @ndeloof in #12734
+  * Internal
+    - CI(bin-image): free disk space by @crazy-max in #12732
+    - Fix zizmor security alerts on GHA workflows by @glours in
+      #12737
+    - Chore: make function comment match function name by @dufucun
+      in #12748
+    - Migrate to use github.com/moby/go-archive by @thaJeztah in
+      #12716
+  * Dependencies
+    - Build(deps): bump github.com/moby/buildkit from 0.20.1 to
+      0.20.2 by @dependabot in #12667
+    - Build(deps): bump google.golang.org/grpc from 1.71.0 to
+      1.71.1 by @dependabot in #12691
+    - Build(deps): bump go.uber.org/mock from 0.5.0 to 0.5.1 by
+      @dependabot in #12720
+    - Build(deps): bump golang.org/x/crypto from 0.32.0 to 0.35.0
+      by @dependabot in #12745
+    - Bump buildkit v0.21.0, buildx v0.23.0 by @thaJeztah in #12754
+    - Downgrade go-difflib and go-spew to tagged releases by
+      @thaJeztah in #12755
+    - Bump github.com/docker/docker, github.com/docker/cli v28.1.0
+      by @thaJeztah in #12738
+    - go.mod: bump github.com/docker/docker-credential-helpers
+      v0.9.3
+    - go.mod: bump golang.org/x/net v0.39.0
+    - go.mod: bump golang.org/x/term v0.31.0
+    - go.mod: bump golang.org/x/text v0.24.0
+    - go.mod: bump golang.org/x/time v0.11.0
+
+-------------------------------------------------------------------

Old:
----
  docker-compose-2.35.0.obscpio

New:
----
  docker-compose-2.35.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ docker-compose.spec ++++++
--- /var/tmp/diff_new_pack.WHWvbj/_old  2025-04-20 19:51:18.383220444 +0200
+++ /var/tmp/diff_new_pack.WHWvbj/_new  2025-04-20 19:51:18.383220444 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           docker-compose
-Version:        2.35.0
+Version:        2.35.1
 Release:        0
 Summary:        Define and run multi-container applications with Docker
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.WHWvbj/_old  2025-04-20 19:51:18.411221609 +0200
+++ /var/tmp/diff_new_pack.WHWvbj/_new  2025-04-20 19:51:18.415221776 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/docker/compose</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.35.0</param>
+    <param name="revision">v2.35.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WHWvbj/_old  2025-04-20 19:51:18.435222608 +0200
+++ /var/tmp/diff_new_pack.WHWvbj/_new  2025-04-20 19:51:18.439222775 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/docker/compose</param>
-              <param 
name="changesrevision">0c37c10964b1ec79d1fc80d0aa4dd2215eec5775</param></service></servicedata>
+              <param 
name="changesrevision">2d7cd2a999461ddb740fbdd935921648bdff1414</param></service></servicedata>
 (No newline at EOF)
 

++++++ docker-compose-2.35.0.obscpio -> docker-compose-2.35.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/go.mod 
new/docker-compose-2.35.1/go.mod
--- old/docker-compose-2.35.0/go.mod    2025-04-10 11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/go.mod    2025-04-17 16:17:55.000000000 +0200
@@ -11,12 +11,12 @@
        github.com/compose-spec/compose-go/v2 v2.6.0
        github.com/containerd/containerd/v2 v2.0.4
        github.com/containerd/platforms v1.0.0-rc.1
-       github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
+       github.com/davecgh/go-spew v1.1.1
        github.com/distribution/reference v0.6.0
-       github.com/docker/buildx v0.22.0
-       github.com/docker/cli v28.0.4+incompatible
+       github.com/docker/buildx v0.23.0
+       github.com/docker/cli v28.1.0+incompatible
        github.com/docker/cli-docs-tool v0.9.0
-       github.com/docker/docker v28.0.4+incompatible
+       github.com/docker/docker v28.1.0+incompatible
        github.com/docker/go-connections v0.5.0
        github.com/docker/go-units v0.5.0
        github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203
@@ -28,7 +28,8 @@
        github.com/mattn/go-shellwords v1.0.12
        github.com/mitchellh/go-ps v1.0.0
        github.com/mitchellh/mapstructure v1.5.0
-       github.com/moby/buildkit v0.20.1
+       github.com/moby/buildkit v0.21.0
+       github.com/moby/go-archive v0.1.0
        github.com/moby/patternmatcher v0.6.0
        github.com/moby/sys/atomicwriter v0.1.0
        github.com/moby/term v0.5.2
@@ -52,11 +53,11 @@
        go.opentelemetry.io/otel/sdk v1.34.0
        go.opentelemetry.io/otel/trace v1.34.0
        go.uber.org/goleak v1.3.0
-       go.uber.org/mock v0.5.0
-       golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f
+       go.uber.org/mock v0.5.1
+       golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
        golang.org/x/sync v0.13.0
        golang.org/x/sys v0.32.0
-       google.golang.org/grpc v1.71.0
+       google.golang.org/grpc v1.71.1
        gopkg.in/yaml.v3 v3.0.1
        gotest.tools/v3 v3.5.2
        tags.cncf.io/container-device-interface v1.0.1
@@ -94,7 +95,7 @@
        github.com/containerd/typeurl/v2 v2.2.3 // indirect
        github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
        github.com/docker/distribution v2.8.3+incompatible // indirect
-       github.com/docker/docker-credential-helpers v0.8.2 // indirect
+       github.com/docker/docker-credential-helpers v0.9.3 // indirect
        github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
        github.com/docker/go-metrics v0.0.1 // indirect
        github.com/emicklei/go-restful/v3 v3.11.0 // indirect
@@ -127,7 +128,7 @@
        github.com/josharian/intern v1.0.0 // indirect
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // 
indirect
-       github.com/klauspost/compress v1.17.11 // indirect
+       github.com/klauspost/compress v1.18.0 // indirect
        github.com/magiconair/properties v1.8.9 // indirect
        github.com/mailru/easyjson v0.7.7 // indirect
        github.com/mattn/go-colorable v0.1.13 // indirect
@@ -144,7 +145,7 @@
        github.com/moby/sys/sequential v0.6.0 // indirect
        github.com/moby/sys/signal v0.7.1 // indirect
        github.com/moby/sys/symlink v0.3.0 // indirect
-       github.com/moby/sys/user v0.3.0 // indirect
+       github.com/moby/sys/user v0.4.0 // indirect
        github.com/moby/sys/userns v0.1.0 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
        github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -154,7 +155,7 @@
        github.com/pelletier/go-toml v1.9.5 // indirect
        github.com/pkg/errors v0.9.1 // indirect
        github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 
// indirect
-       github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // 
indirect
+       github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/prometheus/client_golang v1.20.5 // indirect
        github.com/prometheus/client_model v0.6.1 // indirect
        github.com/prometheus/common v0.55.0 // indirect
@@ -164,8 +165,8 @@
        github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
        github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // 
indirect
        github.com/shibumi/go-pathspec v1.3.0 // indirect
-       github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 
// indirect
-       github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a // 
indirect
+       github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 
// indirect
+       github.com/tonistiigi/fsutil v0.0.0-20250410151801-5b74a7ad7583 // 
indirect
        github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // 
indirect
        github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // 
indirect
        github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // 
indirect
@@ -183,12 +184,12 @@
        go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 
// indirect
        go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
        go.opentelemetry.io/proto/otlp v1.3.1 // indirect
-       golang.org/x/crypto v0.32.0 // indirect
-       golang.org/x/net v0.34.0 // indirect
+       golang.org/x/crypto v0.37.0 // indirect
+       golang.org/x/net v0.39.0 // indirect
        golang.org/x/oauth2 v0.25.0 // indirect
-       golang.org/x/term v0.28.0 // indirect
-       golang.org/x/text v0.21.0 // indirect
-       golang.org/x/time v0.6.0 // indirect
+       golang.org/x/term v0.31.0 // indirect
+       golang.org/x/text v0.24.0 // indirect
+       golang.org/x/time v0.11.0 // indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20250106144421-5f5ef82da422 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250115164207-1a7da9e5054f // indirect
        google.golang.org/protobuf v1.36.4 // indirect
@@ -206,3 +207,12 @@
        sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
        sigs.k8s.io/yaml v1.4.0 // indirect
 )
+
+exclude (
+       // FIXME(thaJeztah): remoove this once kubernetes updated their 
dependencies to no longer need this.
+       //
+       // For additional details, see this PR and links mentioned in that PR:
+       // 
https://github.com/kubernetes-sigs/kustomize/pull/5830#issuecomment-2569960859
+       github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
+       github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/go.sum 
new/docker-compose-2.35.1/go.sum
--- old/docker-compose-2.35.0/go.sum    2025-04-10 11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/go.sum    2025-04-17 16:17:55.000000000 +0200
@@ -20,9 +20,8 @@
 github.com/Microsoft/hcsshim v0.12.9/go.mod 
h1:fJ0gkFAna6ukt0bLdKB8djt4XIJhF/vEPuoIWYVvZ8Y=
 github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 
h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
 github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod 
h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
+github.com/Shopify/logrus-bugsnag v0.0.0-20170309145241-6dbc35f2c30d 
h1:hi6J4K6DKrR4/ljxn6SF6nURyu785wKMuQcjt7H3VCQ=
 github.com/Shopify/logrus-bugsnag v0.0.0-20170309145241-6dbc35f2c30d/go.mod 
h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
-github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d 
h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=
-github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod 
h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
 github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d 
h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=
 github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod 
h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod 
h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -123,25 +122,24 @@
 github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
 github.com/creack/pty v1.1.24/go.mod 
h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
-github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod 
h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 github.com/distribution/reference v0.6.0 
h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
 github.com/distribution/reference v0.6.0/go.mod 
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
-github.com/docker/buildx v0.22.0 
h1:pGTcGZa+kxpYUlM/6ACsp1hXhkEDulz++RNXPdE8Afk=
-github.com/docker/buildx v0.22.0/go.mod 
h1:ThbnUe4kNiStlq6cLXruElyEdSTdPL3k/QerNUmPvHE=
-github.com/docker/cli v28.0.4+incompatible 
h1:pBJSJeNd9QeIWPjRcV91RVJihd/TXB77q1ef64XEu4A=
-github.com/docker/cli v28.0.4+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/buildx v0.23.0 
h1:qoYhuWyZ6PVCrWbkxClLzBWDBCUkyFK6Chjzg6nU+V8=
+github.com/docker/buildx v0.23.0/go.mod 
h1:y/6Zf/y3Bf0zTWqgg8PuNFATcqnuhFmQuNf4VyrnPtg=
+github.com/docker/cli v28.1.0+incompatible 
h1:WiJhUBbuIH/BsJtth+C1hPwra4P0nsKJiWy9ie5My5s=
+github.com/docker/cli v28.1.0+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/cli-docs-tool v0.9.0 
h1:CVwQbE+ZziwlPqrJ7LRyUF6GvCA+6gj7MTCsayaK9t0=
 github.com/docker/cli-docs-tool v0.9.0/go.mod 
h1:ClrwlNW+UioiRyH9GiAOe1o3J/TsY3Tr1ipoypjAUtc=
 github.com/docker/distribution v2.7.1+incompatible/go.mod 
h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/distribution v2.8.3+incompatible 
h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
 github.com/docker/distribution v2.8.3+incompatible/go.mod 
h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v28.0.4+incompatible 
h1:JNNkBctYKurkw6FrHfKqY0nKIDf5nrbxjVBtS+cdcok=
-github.com/docker/docker v28.0.4+incompatible/go.mod 
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker-credential-helpers v0.8.2 
h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
-github.com/docker/docker-credential-helpers v0.8.2/go.mod 
h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
+github.com/docker/docker v28.1.0+incompatible 
h1:4iqpcWQCt3Txcz7iWIb1U3SZ/n9ffo4U+ryY5/3eOp0=
+github.com/docker/docker v28.1.0+incompatible/go.mod 
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+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 v1.5.1-1.0.20160303222718-d30aec9fd63c 
h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
 github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c/go.mod 
h1:CADgU4DSXK5QUlFslkQu2yW2TKzFZcXq/leZfM0UH5Q=
 github.com/docker/go-connections v0.4.0/go.mod 
h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
@@ -274,8 +272,8 @@
 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod 
h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
 github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.17.11 
h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
-github.com/klauspost/compress v1.17.11/go.mod 
h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
+github.com/klauspost/compress v1.18.0 
h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
+github.com/klauspost/compress v1.18.0/go.mod 
h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod 
h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod 
h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod 
h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
@@ -320,10 +318,12 @@
 github.com/mitchellh/mapstructure v0.0.0-20150613213606-2caf8efc9366/go.mod 
h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/buildkit v0.20.1 
h1:sT0ZXhhNo5rVbMcYfgttma3TdUHfO5JjFA0UAL8p9fY=
-github.com/moby/buildkit v0.20.1/go.mod 
h1:Rq9nB/fJImdk6QeM0niKtOHJqwKeYMrK847hTTDVuA4=
+github.com/moby/buildkit v0.21.0 
h1:+z4vVqgt0spLrOSxi4DLedRbIh2gbNVlZ5q4rsnNp60=
+github.com/moby/buildkit v0.21.0/go.mod 
h1:mBq0D44uCyz2PdX8T/qym5LBbkBO3GGv0wqgX9ABYYw=
 github.com/moby/docker-image-spec v1.3.1 
h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
 github.com/moby/docker-image-spec v1.3.1/go.mod 
h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
+github.com/moby/go-archive v0.1.0 
h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ=
+github.com/moby/go-archive v0.1.0/go.mod 
h1:G9B+YoujNohJmrIYFBpSd54GTUB4lt9S+xVQvsJyFuo=
 github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
 github.com/moby/locker v1.0.1/go.mod 
h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
 github.com/moby/patternmatcher v0.6.0 
h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
@@ -342,8 +342,8 @@
 github.com/moby/sys/signal v0.7.1/go.mod 
h1:Se1VGehYokAkrSQwL4tDzHvETwUZlnY7S5XtQ50mQp8=
 github.com/moby/sys/symlink v0.3.0 
h1:GZX89mEZ9u53f97npBy4Rc3vJKj7JBDj/PN2I22GrNU=
 github.com/moby/sys/symlink v0.3.0/go.mod 
h1:3eNdhduHmYPcgsJtZXW1W4XUJdZGBIkttZ8xKqPUJq0=
-github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo=
-github.com/moby/sys/user v0.3.0/go.mod 
h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs=
+github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs=
+github.com/moby/sys/user v0.4.0/go.mod 
h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs=
 github.com/moby/sys/userns v0.1.0 
h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g=
 github.com/moby/sys/userns v0.1.0/go.mod 
h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28=
 github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
@@ -396,9 +396,8 @@
 github.com/pkg/errors v0.9.1/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 
h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
 github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod 
h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
+github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 
h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/prometheus/client_golang 
v0.9.0-pre1.0.20180209125602-c332b6f63c06/go.mod 
h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v0.9.1/go.mod 
h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v1.0.0/go.mod 
h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
@@ -476,10 +475,10 @@
 github.com/theupdateframework/notary v0.7.0/go.mod 
h1:c9DRxcmhHmVLDay4/2fUYdISnHqbFDGRSlXPO0AhYWw=
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 
h1:QB54BJwA6x8QU9nHY3xJSZR2kX9bgpZekRKGkLTmEXA=
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375/go.mod 
h1:xRroudyp5iVtxKqZCrA6n2TLFRBf8bmnjr1UD4x+z7g=
-github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205 
h1:eUk79E1w8yMtXeHSzjKorxuC8qJOnyXQnLaJehxpJaI=
-github.com/tonistiigi/dchapes-mode v0.0.0-20241001053921-ca0759fec205/go.mod 
h1:3Iuxbr0P7D3zUzBMAZB+ois3h/et0shEz0qApgHYGpY=
-github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a 
h1:EfGw4G0x/8qXWgtcZ6KVaPS+wpWOQMaypczzP8ojkMY=
-github.com/tonistiigi/fsutil v0.0.0-20250113203817-b14e27f4135a/go.mod 
h1:Dl/9oEjK7IqnjAm21Okx/XIxUCFJzvh+XdVHUlBwXTw=
+github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 
h1:r0p7fK56l8WPequOaR3i9LBqfPtEdXIQbUTzT55iqT4=
+github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323/go.mod 
h1:3Iuxbr0P7D3zUzBMAZB+ois3h/et0shEz0qApgHYGpY=
+github.com/tonistiigi/fsutil v0.0.0-20250410151801-5b74a7ad7583 
h1:mK+ZskNt7SG4dxfKIi27C7qHAQzyjAVt1iyTf0hmsNc=
+github.com/tonistiigi/fsutil v0.0.0-20250410151801-5b74a7ad7583/go.mod 
h1:BKdcez7BiVtBvIcef90ZPc6ebqIWr4JWD7+EvLm6J98=
 github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 
h1:7I5c2Ig/5FgqkYOh/N87NzoyI9U15qUPXhDD8uCupv8=
 github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4/go.mod 
h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE=
 github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea 
h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0=
@@ -538,8 +537,8 @@
 go.opentelemetry.io/proto/otlp v1.3.1/go.mod 
h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
 go.uber.org/goleak v1.3.0/go.mod 
h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
-go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
-go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
+go.uber.org/mock v0.5.1 h1:ASgazW/qBmR+A32MYFDB6E2POoTgOwT509VP0CT/fjs=
+go.uber.org/mock v0.5.1/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod 
h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -548,15 +547,15 @@
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod 
h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
-golang.org/x/crypto v0.32.0/go.mod 
h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
-golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f 
h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo=
-golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod 
h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak=
+golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
+golang.org/x/crypto v0.37.0/go.mod 
h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
+golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 
h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM=
+golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod 
h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
-golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
+golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -567,8 +566,8 @@
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
-golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
+golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
+golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
 golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
 golang.org/x/oauth2 v0.25.0/go.mod 
h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -606,23 +605,23 @@
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod 
h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
-golang.org/x/term v0.28.0/go.mod 
h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
+golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o=
+golang.org/x/term v0.31.0/go.mod 
h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
-golang.org/x/text v0.21.0/go.mod 
h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
-golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
+golang.org/x/text v0.24.0/go.mod 
h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
+golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
+golang.org/x/time v0.11.0/go.mod 
h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o=
-golang.org/x/tools v0.27.0/go.mod 
h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
+golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
+golang.org/x/tools v0.32.0/go.mod 
h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -632,8 +631,8 @@
 google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f 
h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
 google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250115164207-1a7da9e5054f/go.mod 
h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
 google.golang.org/grpc v1.0.5/go.mod 
h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
-google.golang.org/grpc v1.71.0/go.mod 
h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
+google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI=
+google.golang.org/grpc v1.71.1/go.mod 
h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
 google.golang.org/protobuf v1.36.4 
h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
 google.golang.org/protobuf v1.36.4/go.mod 
h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod 
h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/internal/sync/tar.go 
new/docker-compose-2.35.1/internal/sync/tar.go
--- old/docker-compose-2.35.0/internal/sync/tar.go      2025-04-10 
11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/internal/sync/tar.go      2025-04-17 
16:17:55.000000000 +0200
@@ -33,7 +33,7 @@
        "github.com/hashicorp/go-multierror"
 
        "github.com/docker/docker/api/types/container"
-       "github.com/docker/docker/pkg/archive"
+       "github.com/moby/go-archive"
 )
 
 type archiveEntry struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/compose/build_classic.go 
new/docker-compose-2.35.1/pkg/compose/build_classic.go
--- old/docker-compose-2.35.0/pkg/compose/build_classic.go      2025-04-10 
11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/pkg/compose/build_classic.go      2025-04-17 
16:17:55.000000000 +0200
@@ -37,11 +37,10 @@
        dockertypes "github.com/docker/docker/api/types"
        "github.com/docker/docker/api/types/container"
        "github.com/docker/docker/builder/remotecontext/urlutil"
-       "github.com/docker/docker/pkg/archive"
-       "github.com/docker/docker/pkg/idtools"
        "github.com/docker/docker/pkg/jsonmessage"
        "github.com/docker/docker/pkg/progress"
        "github.com/docker/docker/pkg/streamformatter"
+       "github.com/moby/go-archive"
 
        "github.com/docker/compose/v2/pkg/api"
 
@@ -131,7 +130,7 @@
                excludes = build.TrimBuildFilesFromExcludes(excludes, 
relDockerfile, false)
                buildCtx, err = archive.TarWithOptions(contextDir, 
&archive.TarOptions{
                        ExcludePatterns: excludes,
-                       ChownOpts:       &idtools.Identity{},
+                       ChownOpts:       &archive.ChownOpts{},
                })
                if err != nil {
                        return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/compose/cp.go 
new/docker-compose-2.35.1/pkg/compose/cp.go
--- old/docker-compose-2.35.0/pkg/compose/cp.go 2025-04-10 11:52:35.000000000 
+0200
+++ new/docker-compose-2.35.1/pkg/compose/cp.go 2025-04-17 16:17:55.000000000 
+0200
@@ -31,8 +31,8 @@
        "github.com/docker/cli/cli/command"
        "github.com/docker/compose/v2/pkg/api"
        "github.com/docker/docker/api/types/container"
-       "github.com/docker/docker/pkg/archive"
        "github.com/docker/docker/pkg/system"
+       "github.com/moby/go-archive"
 )
 
 type copyDirection int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/compose/create.go 
new/docker-compose-2.35.1/pkg/compose/create.go
--- old/docker-compose-2.35.0/pkg/compose/create.go     2025-04-10 
11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/pkg/compose/create.go     2025-04-17 
16:17:55.000000000 +0200
@@ -39,7 +39,6 @@
        "github.com/docker/docker/api/types/blkiodev"
        "github.com/docker/docker/api/types/container"
        "github.com/docker/docker/api/types/filters"
-       "github.com/docker/docker/api/types/image"
        "github.com/docker/docker/api/types/mount"
        "github.com/docker/docker/api/types/network"
        "github.com/docker/docker/api/types/strslice"
@@ -828,7 +827,6 @@
        return ""
 }
 
-//nolint:gocyclo
 func (s *composeService) buildContainerVolumes(
        ctx context.Context,
        p types.Project,
@@ -838,13 +836,7 @@
        var mounts []mount.Mount
        var binds []string
 
-       img := api.GetImageNameOrDefault(service, p.Name)
-       imgInspect, err := s.apiClient().ImageInspect(ctx, img)
-       if err != nil {
-               return nil, nil, err
-       }
-
-       mountOptions, err := buildContainerMountOptions(p, service, imgInspect, 
inherit)
+       mountOptions, err := s.buildContainerMountOptions(ctx, p, service, 
inherit)
        if err != nil {
                return nil, nil, err
        }
@@ -857,24 +849,24 @@
                        // see https://github.com/moby/moby/issues/43483
                        v := findVolumeByTarget(service.Volumes, m.Target)
                        if v != nil {
-                               switch {
-                               case v.Type != types.VolumeTypeBind:
+                               if v.Type != types.VolumeTypeBind {
                                        v.Source = m.Source
-                                       fallthrough
-                               case !requireMountAPI(v.Bind):
-                                       vol := findVolumeByName(p.Volumes, 
m.Source)
-                                       if vol != nil {
-                                               binds = append(binds, 
toBindString(vol.Name, v))
-                                               continue
+                               }
+                               if !bindRequiresMountAPI(v.Bind) {
+                                       source := m.Source
+                                       if vol := findVolumeByName(p.Volumes, 
m.Source); vol != nil {
+                                               source = m.Source
                                        }
+                                       binds = append(binds, 
toBindString(source, v))
+                                       continue
                                }
                        }
                case mount.TypeVolume:
                        v := findVolumeByTarget(service.Volumes, m.Target)
                        vol := findVolumeByName(p.Volumes, m.Source)
                        if v != nil && vol != nil {
-                               if _, ok := vol.DriverOpts["device"]; ok && 
vol.Driver == "local" && vol.DriverOpts["o"] == "bind" {
-                                       // Looks like a volume, but actually a 
bind mount which requires the bind API
+                               // Prefer the bind API if no advanced option is 
used, to preserve backward compatibility
+                               if !volumeRequiresMountAPI(v.Volume) {
                                        binds = append(binds, 
toBindString(vol.Name, v))
                                        continue
                                }
@@ -929,9 +921,9 @@
        return nil
 }
 
-// requireMountAPI check if Bind declaration can be implemented by the plain 
old Bind API or uses any of the advanced
+// bindRequiresMountAPI check if Bind declaration can be implemented by the 
plain old Bind API or uses any of the advanced
 // options which require use of Mount API
-func requireMountAPI(bind *types.ServiceVolumeBind) bool {
+func bindRequiresMountAPI(bind *types.ServiceVolumeBind) bool {
        switch {
        case bind == nil:
                return false
@@ -946,7 +938,24 @@
        }
 }
 
-func buildContainerMountOptions(p types.Project, s types.ServiceConfig, img 
image.InspectResponse, inherit *container.Summary) ([]mount.Mount, error) {
+// volumeRequiresMountAPI check if Volume declaration can be implemented by 
the plain old Bind API or uses any of the advanced
+// options which require use of Mount API
+func volumeRequiresMountAPI(vol *types.ServiceVolumeVolume) bool {
+       switch {
+       case vol == nil:
+               return false
+       case len(vol.Labels) > 0:
+               return true
+       case vol.Subpath != "":
+               return true
+       case vol.NoCopy:
+               return true
+       default:
+               return false
+       }
+}
+
+func (s *composeService) buildContainerMountOptions(ctx context.Context, p 
types.Project, service types.ServiceConfig, inherit *container.Summary) 
([]mount.Mount, error) {
        mounts := map[string]mount.Mount{}
        if inherit != nil {
                for _, m := range inherit.Mounts {
@@ -958,6 +967,11 @@
                                src = m.Name
                        }
 
+                       img, err := s.apiClient().ImageInspect(ctx, 
api.GetImageNameOrDefault(service, p.Name))
+                       if err != nil {
+                               return nil, err
+                       }
+
                        if img.Config != nil {
                                if _, ok := img.Config.Volumes[m.Destination]; 
ok {
                                        // inherit previous container's 
anonymous volume
@@ -970,7 +984,7 @@
                                }
                        }
                        volumes := []types.ServiceVolumeConfig{}
-                       for _, v := range s.Volumes {
+                       for _, v := range service.Volumes {
                                if v.Target != m.Destination || v.Source != "" {
                                        volumes = append(volumes, v)
                                        continue
@@ -983,11 +997,11 @@
                                        ReadOnly: !m.RW,
                                }
                        }
-                       s.Volumes = volumes
+                       service.Volumes = volumes
                }
        }
 
-       mounts, err := fillBindMounts(p, s, mounts)
+       mounts, err := fillBindMounts(p, service, mounts)
        if err != nil {
                return nil, err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/compose/create_test.go 
new/docker-compose-2.35.1/pkg/compose/create_test.go
--- old/docker-compose-2.35.0/pkg/compose/create_test.go        2025-04-10 
11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/pkg/compose/create_test.go        2025-04-17 
16:17:55.000000000 +0200
@@ -17,13 +17,16 @@
 package compose
 
 import (
+       "context"
        "os"
        "path/filepath"
        "sort"
        "testing"
 
+       composeloader "github.com/compose-spec/compose-go/v2/loader"
        "github.com/docker/docker/api/types/container"
        "github.com/docker/docker/api/types/image"
+       "go.uber.org/mock/gomock"
        "gotest.tools/v3/assert/cmp"
 
        "github.com/docker/compose/v2/pkg/api"
@@ -154,7 +157,16 @@
                },
        }
 
-       mounts, err := buildContainerMountOptions(project, 
project.Services["myService"], image.InspectResponse{}, inherit)
+       mockCtrl := gomock.NewController(t)
+       defer mockCtrl.Finish()
+
+       mock, cli := prepareMocks(mockCtrl)
+       s := composeService{
+               dockerCli: cli,
+       }
+       mock.EXPECT().ImageInspect(gomock.Any(), 
"myProject-myService").AnyTimes().Return(image.InspectResponse{}, nil)
+
+       mounts, err := s.buildContainerMountOptions(context.TODO(), project, 
project.Services["myService"], inherit)
        sort.Slice(mounts, func(i, j int) bool {
                return mounts[i].Target < mounts[j].Target
        })
@@ -166,7 +178,7 @@
        assert.Equal(t, mounts[2].VolumeOptions.Subpath, "etc")
        assert.Equal(t, mounts[3].Target, "\\\\.\\pipe\\docker_engine")
 
-       mounts, err = buildContainerMountOptions(project, 
project.Services["myService"], image.InspectResponse{}, inherit)
+       mounts, err = s.buildContainerMountOptions(context.TODO(), project, 
project.Services["myService"], inherit)
        sort.Slice(mounts, func(i, j int) bool {
                return mounts[i].Target < mounts[j].Target
        })
@@ -321,3 +333,123 @@
                IPv6Gateway: "fdb4:7a7f:373a:3f0c::42",
        }))
 }
+
+func Test_buildContainerVolumes(t *testing.T) {
+       pwd, err := os.Getwd()
+       assert.NilError(t, err)
+
+       tests := []struct {
+               name   string
+               yaml   string
+               binds  []string
+               mounts []mountTypes.Mount
+       }{
+               {
+                       name: "bind mount local path",
+                       yaml: `
+services:
+  test:
+    volumes:
+      - ./data:/data
+`,
+                       binds:  []string{filepath.Join(pwd, "data") + 
":/data:rw"},
+                       mounts: nil,
+               },
+               {
+                       name: "bind mount, not create host path",
+                       yaml: `
+services:
+  test:
+    volumes:
+      - type: bind
+        source: ./data
+        target: /data
+        bind:
+          create_host_path: false
+`,
+                       binds: nil,
+                       mounts: []mountTypes.Mount{
+                               {
+                                       Type:        "bind",
+                                       Source:      filepath.Join(pwd, "data"),
+                                       Target:      "/data",
+                                       BindOptions: 
&mountTypes.BindOptions{CreateMountpoint: false},
+                               },
+                       },
+               },
+               {
+                       name: "mount volume",
+                       yaml: `
+services:
+  test:
+    volumes:
+      - data:/data
+volumes:
+  data:
+    name: my_volume
+`,
+                       binds:  []string{"my_volume:/data:rw"},
+                       mounts: nil,
+               },
+               {
+                       name: "mount volume, readonly",
+                       yaml: `
+services:
+  test:
+    volumes:
+      - data:/data:ro
+volumes:
+  data:
+    name: my_volume
+`,
+                       binds:  []string{"my_volume:/data:ro"},
+                       mounts: nil,
+               },
+               {
+                       name: "mount volume subpath",
+                       yaml: `
+services:
+  test:
+    volumes:
+      - type: volume
+        source: data
+        target: /data
+        volume:
+          subpath: test/
+volumes:
+  data: 
+    name: my_volume
+`,
+                       binds: nil,
+                       mounts: []mountTypes.Mount{
+                               {
+                                       Type:          "volume",
+                                       Source:        "my_volume",
+                                       Target:        "/data",
+                                       VolumeOptions: 
&mountTypes.VolumeOptions{Subpath: "test/"},
+                               },
+                       },
+               },
+       }
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       p, err := composeloader.LoadWithContext(context.TODO(), 
composetypes.ConfigDetails{
+                               ConfigFiles: []composetypes.ConfigFile{
+                                       {
+                                               Filename: "test",
+                                               Content:  []byte(tt.yaml),
+                                       },
+                               },
+                       }, func(options *composeloader.Options) {
+                               options.SkipValidation = true
+                               options.SkipConsistencyCheck = true
+                       })
+                       assert.NilError(t, err)
+                       s := &composeService{}
+                       binds, mounts, err := 
s.buildContainerVolumes(context.TODO(), *p, p.Services["test"], nil)
+                       assert.NilError(t, err)
+                       assert.DeepEqual(t, tt.binds, binds)
+                       assert.DeepEqual(t, tt.mounts, mounts)
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/watch/debounce.go 
new/docker-compose-2.35.1/pkg/watch/debounce.go
--- old/docker-compose-2.35.0/pkg/watch/debounce.go     2025-04-10 
11:52:35.000000000 +0200
+++ new/docker-compose-2.35.1/pkg/watch/debounce.go     2025-04-17 
16:17:55.000000000 +0200
@@ -25,7 +25,7 @@
 
 const QuietPeriod = 500 * time.Millisecond
 
-// batchDebounceEvents groups identical file events within a sliding time 
window and writes the results to the returned
+// BatchDebounceEvents groups identical file events within a sliding time 
window and writes the results to the returned
 // channel.
 //
 // The returned channel is closed when the debouncer is stopped via context 
cancellation or by closing the input channel.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-compose-2.35.0/pkg/watch/temp.go 
new/docker-compose-2.35.1/pkg/watch/temp.go
--- old/docker-compose-2.35.0/pkg/watch/temp.go 2025-04-10 11:52:35.000000000 
+0200
+++ new/docker-compose-2.35.1/pkg/watch/temp.go 2025-04-17 16:17:55.000000000 
+0200
@@ -31,7 +31,7 @@
        return NewDirAtRoot("", prefix)
 }
 
-// NewDir creates a new TempDir at the given root.
+// NewDirAtRoot creates a new TempDir at the given root.
 func NewDirAtRoot(root, prefix string) (*TempDir, error) {
        tmpDir, err := os.MkdirTemp(root, prefix)
        if err != nil {

++++++ docker-compose.obsinfo ++++++
--- /var/tmp/diff_new_pack.WHWvbj/_old  2025-04-20 19:51:18.695233429 +0200
+++ /var/tmp/diff_new_pack.WHWvbj/_new  2025-04-20 19:51:18.699233596 +0200
@@ -1,5 +1,5 @@
 name: docker-compose
-version: 2.35.0
-mtime: 1744278755
-commit: 0c37c10964b1ec79d1fc80d0aa4dd2215eec5775
+version: 2.35.1
+mtime: 1744899475
+commit: 2d7cd2a999461ddb740fbdd935921648bdff1414
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/docker-compose/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.docker-compose.new.30101/vendor.tar.gz differ: char 
13, line 1

Reply via email to