Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package buildkit for openSUSE:Factory 
checked in at 2026-08-11 17:11:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/buildkit (Old)
 and      /work/SRC/openSUSE:Factory/.buildkit.new.17972 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "buildkit"

Tue Aug 11 17:11:47 2026 rev:33 rq:1370469 version:0.32.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/buildkit/buildkit.changes        2026-08-09 
21:41:58.571838539 +0200
+++ /work/SRC/openSUSE:Factory/.buildkit.new.17972/buildkit.changes     
2026-08-11 17:12:59.659518037 +0200
@@ -1,0 +2,10 @@
+Mon Aug 10 04:50:02 UTC 2026 - Bharti Gautam <[email protected]>
+
+- Update to version 0.32.2:
+  * ci: use Docker Hub OIDC for buildkit images
+  * build(deps): bump github/codeql-action/upload-sarif
+  * ci: use Docker Hub OIDC for dockerfile-upstream image
+  * exporter: revert attestation manifest push order
+  * build(deps): bump docker/login-action from 4.5.2 to 4.6.0
+
+-------------------------------------------------------------------

Old:
----
  buildkit-0.32.1.obscpio

New:
----
  buildkit-0.32.2.obscpio

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

Other differences:
------------------
++++++ buildkit.spec ++++++
--- /var/tmp/diff_new_pack.k02JCn/_old  2026-08-11 17:13:05.071747299 +0200
+++ /var/tmp/diff_new_pack.k02JCn/_new  2026-08-11 17:13:05.075747468 +0200
@@ -23,7 +23,7 @@
 %global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
 %global import_path     %{provider_prefix}
 Name:           buildkit
-Version:        0.32.1
+Version:        0.32.2
 Release:        0
 Summary:        Toolkit for converting source code to build artifacts
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.k02JCn/_old  2026-08-11 17:13:05.107748824 +0200
+++ /var/tmp/diff_new_pack.k02JCn/_new  2026-08-11 17:13:05.111748993 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/moby/buildkit.git</param>
     <param name="scm">git</param>
     <param name="filename">buildkit</param>
-    <param name="version">v0.32.1</param>
+    <param name="version">v0.32.2</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.k02JCn/_old  2026-08-11 17:13:05.135750010 +0200
+++ /var/tmp/diff_new_pack.k02JCn/_new  2026-08-11 17:13:05.139750180 +0200
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
     <param name="url">https://github.com/moby/buildkit.git</param>
-    <param 
name="changesrevision">ad8b7a721b434a3b9ecb4cc514fbe812f4751d45</param>
+    <param 
name="changesrevision">8f966671738d20a4e05e6e0f7fd344b9299ea6cd</param>
   </service>
 </servicedata>
 (No newline at EOF)

++++++ buildkit-0.32.1.obscpio -> buildkit-0.32.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/buildkit-0.32.1/.github/workflows/buildkit.yml 
new/buildkit-0.32.2/.github/workflows/buildkit.yml
--- old/buildkit-0.32.1/.github/workflows/buildkit.yml  2026-08-03 
12:15:03.000000000 +0200
+++ new/buildkit-0.32.2/.github/workflows/buildkit.yml  2026-08-06 
14:57:14.000000000 +0200
@@ -160,7 +160,7 @@
       -
         name: Upload SARIF report
         if: ${{ github.ref == 'refs/heads/master' && github.repository == 
'moby/buildkit' }}
-        uses: 
github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # 
v4.37.4
+        uses: 
github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # 
v4.37.6
         with:
           sarif_file: ${{ env.DESTDIR }}/govulncheck.out
 
@@ -221,7 +221,7 @@
             core.setOutput('includes', JSON.stringify(matrix));
 
   image:
-    uses: 
docker/github-builder/.github/workflows/bake.yml@27ade872c1e2296e62ef15ab3b10d37665e57cf7
 # v1.15.0
+    uses: 
docker/github-builder/.github/workflows/bake.yml@a492c6d04fd3315f67230809b44d60cc0acd50b3
 # v1.16.0
     needs:
       - image-prepare
       - test
@@ -231,7 +231,7 @@
         include: ${{ fromJson(needs.image-prepare.outputs.includes) }}
     permissions:
       contents: read # same as global permission
-      id-token: write # for signing attestation(s) with GitHub OIDC Token
+      id-token: write # for signing attestations, cache entries and logging in 
to Docker Hub with GitHub OIDC
     with:
       runner: ubuntu-24.04
       target: image-cross
@@ -279,20 +279,18 @@
         org.opencontainers.image.title=BuildKit
         org.opencontainers.image.vendor=Moby
       meta-bake-target: meta-helper
-    secrets:
-      registry-auths: |
-        - registry: docker.io
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      registry-identities: |
+        - type: dockerhub
+          registry: docker.io
+          username: moby
+          connection_id: ${{ vars.BUILDKIT_OIDC_CONNECTIONID }}
 
   scout:
     runs-on: ubuntu-24.04
     if: ${{ github.ref == 'refs/heads/master' && github.repository == 
'moby/buildkit' }}
     permissions:
-      # same as global permission
-      contents: read
-      # required to write sarif report
-      security-events: write
+      contents: read # same as global permission
+      security-events: write # required to write sarif report
     needs:
       - image
     strategy:
@@ -306,8 +304,9 @@
         name: Checkout
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
       -
+        # FIXME: switch to OIDC once Scout supports it
         name: Login to DockerHub
-        uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # 
v4.5.2
+        uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # 
v4.6.0
         with:
           username: ${{ secrets.DOCKERHUB_USERNAME }}
           password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -325,7 +324,7 @@
           jq . ${{ steps.scout.outputs.result-file }}
       -
         name: Upload SARIF report
-        uses: 
github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # 
v4.37.4
+        uses: 
github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # 
v4.37.6
         with:
           sarif_file: ${{ steps.scout.outputs.result-file }}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/buildkit-0.32.1/.github/workflows/buildx-image.yml 
new/buildkit-0.32.2/.github/workflows/buildx-image.yml
--- old/buildkit-0.32.1/.github/workflows/buildx-image.yml      2026-08-03 
12:15:03.000000000 +0200
+++ new/buildkit-0.32.2/.github/workflows/buildx-image.yml      2026-08-06 
14:57:14.000000000 +0200
@@ -55,11 +55,12 @@
           buildkitd-flags: --debug
       -
         name: Login to DockerHub
-        if: github.event.inputs.dry-run != 'true'
-        uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # 
v4.5.2
+        if: ${{ !inputs['dry-run'] }}
+        uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # 
v4.6.0
+        env:
+          DOCKERHUB_OIDC_CONNECTIONID: ${{ vars.BUILDKIT_OIDC_CONNECTIONID }}
         with:
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
+          username: moby
       -
         name: Create
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/buildkit-0.32.1/.github/workflows/frontend.yml 
new/buildkit-0.32.2/.github/workflows/frontend.yml
--- old/buildkit-0.32.1/.github/workflows/frontend.yml  2026-08-03 
12:15:03.000000000 +0200
+++ new/buildkit-0.32.2/.github/workflows/frontend.yml  2026-08-06 
14:57:14.000000000 +0200
@@ -125,7 +125,7 @@
             core.setOutput('includes', JSON.stringify(matrix));
 
   image:
-    uses: 
docker/github-builder/.github/workflows/bake.yml@27ade872c1e2296e62ef15ab3b10d37665e57cf7
 # v1.15.0
+    uses: 
docker/github-builder/.github/workflows/bake.yml@a492c6d04fd3315f67230809b44d60cc0acd50b3
 # v1.16.0
     needs:
       - prepare
       - test
@@ -135,7 +135,7 @@
         include: ${{ fromJson(needs.prepare.outputs.includes) }}
     permissions:
       contents: read # same as global permission
-      id-token: write # for signing attestation(s) with GitHub OIDC Token
+      id-token: write # for signing attestations, cache entries and logging in 
to Docker Hub with GitHub OIDC
     with:
       runner: ubuntu-24.04
       target: frontend-image-cross
@@ -180,20 +180,18 @@
         org.opencontainers.image.title=Dockerfile Frontend
         org.opencontainers.image.vendor=Moby
       meta-bake-target: frontend-meta-helper
-    secrets:
-      registry-auths: |
-        - registry: docker.io
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      registry-identities: |
+        - type: dockerhub
+          registry: docker.io
+          username: docker
+          connection_id: ${{ vars.DOCKERFILE_OIDC_CONNECTIONID }}
 
   scout:
     runs-on: ubuntu-24.04
     if: ${{ github.repository == 'moby/buildkit' && github.ref == 
'refs/heads/master' }}
     permissions:
-      # same as global permission
-      contents: read
-      # required to write sarif report
-      security-events: write
+      contents: read # same as global permission
+      security-events: write # required to write sarif report
     needs:
       - image
     strategy:
@@ -207,8 +205,9 @@
         name: Checkout
         uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 
v7.0.1
       -
+        # FIXME: switch to OIDC once Scout supports it
         name: Login to DockerHub
-        uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # 
v4.5.2
+        uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # 
v4.6.0
         with:
           username: ${{ secrets.DOCKERHUB_USERNAME }}
           password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -226,7 +225,7 @@
           jq . ${{ steps.scout.outputs.result-file }}
       -
         name: Upload SARIF report
-        uses: 
github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # 
v4.37.4
+        uses: 
github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # 
v4.37.6
         with:
           sarif_file: ${{ steps.scout.outputs.result-file }}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/buildkit-0.32.1/client/client_export_metadata_test.go 
new/buildkit-0.32.2/client/client_export_metadata_test.go
--- old/buildkit-0.32.1/client/client_export_metadata_test.go   2026-08-03 
12:15:03.000000000 +0200
+++ new/buildkit-0.32.2/client/client_export_metadata_test.go   2026-08-06 
14:57:14.000000000 +0200
@@ -5,17 +5,12 @@
        "context"
        "encoding/json"
        "fmt"
-       "io"
-       "net/http"
-       "net/http/httptest"
-       "net/http/httputil"
        "net/url"
        "os"
        "path"
        "path/filepath"
        "strconv"
        "strings"
-       "sync"
        "testing"
        "time"
 
@@ -673,7 +668,7 @@
        require.Equal(t, ocispecs.MediaTypeImageIndex, imgs2.Index.MediaType)
 }
 
-func testExportAttestations(t *testing.T, sb integration.Sandbox, ociArtifact 
bool, setOCIArtifact bool, strictSubjectRegistry bool) {
+func testExportAttestations(t *testing.T, sb integration.Sandbox, ociArtifact 
bool, setOCIArtifact bool) {
        workers.CheckFeatureCompat(t, sb, workers.FeatureDirectPush)
        requiresLinux(t)
        c, err := New(sb.Context(), sb.Address())
@@ -686,12 +681,6 @@
        }
        require.NoError(t, err)
 
-       var strictRegistry *strictSubjectRegistryProxy
-       if strictSubjectRegistry {
-               strictRegistry = newStrictSubjectRegistryProxy(t, registry)
-               registry = strictRegistry.host
-       }
-
        ps := []ocispecs.Platform{
                platforms.MustParse("linux/amd64"),
                platforms.MustParse("linux/arm64"),
@@ -909,10 +898,6 @@
                        require.Equal(t, subjects, attest2.Subject)
                }
 
-               if strictRegistry != nil {
-                       require.True(t, strictRegistry.sawSubjectManifest(), 
"expected an OCI artifact manifest with subject")
-               }
-
                cdAddress := sb.ContainerdAddress()
                if cdAddress == "" {
                        return
@@ -929,10 +914,6 @@
                checkAllReleasable(t, c, sb, true)
        })
 
-       if strictRegistry != nil {
-               return // strict registry only exercises the image push path
-       }
-
        t.Run("local", func(t *testing.T) {
                dir := t.TempDir()
                _, err = c.Build(sb.Context(), SolveOpt{
@@ -1041,19 +1022,15 @@
 }
 
 func testExportAttestationsDefaultOCIArtifact(t *testing.T, sb 
integration.Sandbox) {
-       testExportAttestations(t, sb, false, false, false)
+       testExportAttestations(t, sb, false, false)
 }
 
 func testExportAttestationsImageManifest(t *testing.T, sb integration.Sandbox) 
{
-       testExportAttestations(t, sb, false, true, false)
+       testExportAttestations(t, sb, false, true)
 }
 
 func testExportAttestationsOCIArtifact(t *testing.T, sb integration.Sandbox) {
-       testExportAttestations(t, sb, true, true, false)
-}
-
-func testExportAttestationsOCIArtifactSubjectPushOrder(t *testing.T, sb 
integration.Sandbox) {
-       testExportAttestations(t, sb, true, true, true)
+       testExportAttestations(t, sb, true, true)
 }
 
 func testImageResolveAttestationChainLocal(t *testing.T, sb 
integration.Sandbox) {
@@ -2443,124 +2420,3 @@
                return false
        }
 }
-
-type strictSubjectRegistryProxy struct {
-       host string
-
-       mu         sync.Mutex
-       manifests  map[digest.Digest]struct{}
-       sawSubject bool
-}
-
-func newStrictSubjectRegistryProxy(t *testing.T, registry string) 
*strictSubjectRegistryProxy {
-       t.Helper()
-
-       target, err := url.Parse("http://"; + registry)
-       require.NoError(t, err)
-
-       p := &strictSubjectRegistryProxy{
-               manifests: map[digest.Digest]struct{}{},
-       }
-       proxy := &httputil.ReverseProxy{
-               Rewrite: func(pr *httputil.ProxyRequest) {
-                       pr.SetURL(target)
-                       pr.Out.Host = target.Host
-               },
-       }
-
-       s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r 
*http.Request) {
-               if r.Method != http.MethodPut || !strings.Contains(r.URL.Path, 
"/manifests/") {
-                       proxy.ServeHTTP(w, r)
-                       return
-               }
-
-               body, err := io.ReadAll(r.Body)
-               if err != nil {
-                       http.Error(w, err.Error(), http.StatusBadRequest)
-                       return
-               }
-               r.Body = io.NopCloser(bytes.NewReader(body))
-               r.ContentLength = int64(len(body))
-
-               subject, err := manifestSubject(body)
-               if err != nil {
-                       http.Error(w, err.Error(), http.StatusBadRequest)
-                       return
-               }
-               if subject != "" && !p.hasManifest(subject) {
-                       w.WriteHeader(http.StatusBadRequest)
-                       _, _ = fmt.Fprintf(w, "unknown: blob unknown to 
registry - %s", subject)
-                       return
-               }
-
-               rw := &statusRecorder{ResponseWriter: w}
-               proxy.ServeHTTP(rw, r)
-               if rw.success() {
-                       p.recordManifest(digest.FromBytes(body), subject)
-               }
-       }))
-       t.Cleanup(s.Close)
-
-       p.host = strings.TrimPrefix(s.URL, "http://";)
-       return p
-}
-
-func (p *strictSubjectRegistryProxy) hasManifest(dgst digest.Digest) bool {
-       p.mu.Lock()
-       defer p.mu.Unlock()
-       _, ok := p.manifests[dgst]
-       return ok
-}
-
-func (p *strictSubjectRegistryProxy) recordManifest(dgst, subject 
digest.Digest) {
-       p.mu.Lock()
-       defer p.mu.Unlock()
-       p.manifests[dgst] = struct{}{}
-       p.sawSubject = p.sawSubject || subject != ""
-}
-
-func (p *strictSubjectRegistryProxy) sawSubjectManifest() bool {
-       p.mu.Lock()
-       defer p.mu.Unlock()
-       return p.sawSubject
-}
-
-func manifestSubject(dt []byte) (digest.Digest, error) {
-       var manifest struct {
-               Subject *ocispecs.Descriptor `json:"subject"`
-       }
-       if err := json.Unmarshal(dt, &manifest); err != nil {
-               return "", err
-       }
-       if manifest.Subject == nil {
-               return "", nil
-       }
-       return manifest.Subject.Digest, nil
-}
-
-type statusRecorder struct {
-       http.ResponseWriter
-       status int
-}
-
-func (r *statusRecorder) WriteHeader(status int) {
-       r.status = status
-       r.ResponseWriter.WriteHeader(status)
-}
-
-func (r *statusRecorder) Write(dt []byte) (int, error) {
-       if r.status == 0 {
-               r.status = http.StatusOK
-       }
-       return r.ResponseWriter.Write(dt)
-}
-
-func (r *statusRecorder) Flush() {
-       if f, ok := r.ResponseWriter.(http.Flusher); ok {
-               f.Flush()
-       }
-}
-
-func (r *statusRecorder) success() bool {
-       return r.status == 0 || r.status >= http.StatusOK && r.status < 
http.StatusMultipleChoices
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/buildkit-0.32.1/client/client_test.go 
new/buildkit-0.32.2/client/client_test.go
--- old/buildkit-0.32.1/client/client_test.go   2026-08-03 12:15:03.000000000 
+0200
+++ new/buildkit-0.32.2/client/client_test.go   2026-08-06 14:57:14.000000000 
+0200
@@ -104,7 +104,6 @@
        testExportAttestationsDefaultOCIArtifact,
        testExportAttestationsImageManifest,
        testExportAttestationsOCIArtifact,
-       testExportAttestationsOCIArtifactSubjectPushOrder,
        testImageResolveAttestationChainLocal,
        testImageResolveAttestationChainRequiresNetwork,
        testImageResolveProvenanceAttestation,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/buildkit-0.32.1/util/push/push.go 
new/buildkit-0.32.2/util/push/push.go
--- old/buildkit-0.32.1/util/push/push.go       2026-08-03 12:15:03.000000000 
+0200
+++ new/buildkit-0.32.2/util/push/push.go       2026-08-06 14:57:14.000000000 
+0200
@@ -138,13 +138,8 @@
                return err
        }
 
-       manifestStack, err = orderManifests(ctx, provider, manifestStack)
-       if err != nil {
-               return err
-       }
-
        mfstDone := progress.OneOff(ctx, fmt.Sprintf("pushing manifest for %s", 
ref))
-       for _, desc := range manifestStack {
+       for _, desc := range slices.Backward(manifestStack) {
                if _, err := pushHandler(ctx, desc); err != nil {
                        return mfstDone(err)
                }
@@ -152,56 +147,6 @@
        return mfstDone(nil)
 }
 
-// orderManifests returns manifests in push order. It preserves the existing
-// child-before-parent behavior from reversing the dispatch stack, and also
-// ensures that subjects present in the same push are uploaded before the
-// manifests or indexes that reference them.
-func orderManifests(ctx context.Context, provider content.Provider, manifests 
[]ocispecs.Descriptor) ([]ocispecs.Descriptor, error) {
-       manifestByDigest := make(map[digest.Digest]ocispecs.Descriptor, 
len(manifests))
-       for _, desc := range manifests {
-               manifestByDigest[desc.Digest] = desc
-       }
-
-       ordered := make([]ocispecs.Descriptor, 0, len(manifests))
-       visited := make(map[digest.Digest]struct{}, len(manifests))
-
-       var visit func(ocispecs.Descriptor) error
-       visit = func(desc ocispecs.Descriptor) error {
-               if _, ok := visited[desc.Digest]; ok {
-                       return nil
-               }
-               visited[desc.Digest] = struct{}{}
-               if images.IsManifestType(desc.MediaType) || 
images.IsIndexType(desc.MediaType) {
-                       p, err := content.ReadBlob(ctx, provider, desc)
-                       if err != nil {
-                               return err
-                       }
-                       var withSubject struct {
-                               Subject *ocispecs.Descriptor `json:"subject"`
-                       }
-                       if err := json.Unmarshal(p, &withSubject); err != nil {
-                               return err
-                       }
-                       if withSubject.Subject != nil {
-                               if dep, ok := 
manifestByDigest[withSubject.Subject.Digest]; ok {
-                                       if err := visit(dep); err != nil {
-                                               return err
-                                       }
-                               }
-                       }
-               }
-               ordered = append(ordered, desc)
-               return nil
-       }
-
-       for _, desc := range slices.Backward(manifests) {
-               if err := visit(desc); err != nil {
-                       return nil, err
-               }
-       }
-       return ordered, nil
-}
-
 // TODO: the containerd function for this is filtering too much, that needs to 
be fixed.
 // For now we just carry this.
 func skipNonDistributableBlobs(f images.HandlerFunc) images.HandlerFunc {

++++++ buildkit.obsinfo ++++++
--- /var/tmp/diff_new_pack.k02JCn/_old  2026-08-11 17:13:13.680111949 +0200
+++ /var/tmp/diff_new_pack.k02JCn/_new  2026-08-11 17:13:13.684112118 +0200
@@ -1,5 +1,5 @@
 name: buildkit
-version: 0.32.1
-mtime: 1785752103
-commit: ad8b7a721b434a3b9ecb4cc514fbe812f4751d45
+version: 0.32.2
+mtime: 1786021034
+commit: 8f966671738d20a4e05e6e0f7fd344b9299ea6cd
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/buildkit/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.buildkit.new.17972/vendor.tar.zst differ: char 7, 
line 1

Reply via email to