From: Reinhard Tartler <siretart@tauware.de>
Date: Mon, 20 Oct 2025 05:52:28 -0400
Subject: Revert "vendor: update github.com/docker/docker to v28.2.2"

This reverts commit d44f0afa84a620127a9a4ece2eb8a7bd20b7a9fc.
---
 pkg/api/handlers/compat/images.go | 56 +++++++++++++++++++++++++++++----------
 pkg/api/handlers/compat/info.go   |  2 ++
 pkg/api/handlers/compat/system.go |  4 +--
 3 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/pkg/api/handlers/compat/images.go b/pkg/api/handlers/compat/images.go
index b800714..e92df5a 100644
--- a/pkg/api/handlers/compat/images.go
+++ b/pkg/api/handlers/compat/images.go
@@ -24,9 +24,8 @@ import (
 	dockerContainer "github.com/docker/docker/api/types/container"
 	dockerImage "github.com/docker/docker/api/types/image"
 	dockerStorage "github.com/docker/docker/api/types/storage"
-	dockerSpec "github.com/moby/docker-image-spec/specs-go/v1"
+	"github.com/docker/go-connections/nat"
 	"github.com/opencontainers/go-digest"
-	imageSpec "github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/sirupsen/logrus"
 	"go.podman.io/common/libimage"
 	"go.podman.io/common/pkg/config"
@@ -355,20 +354,22 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
 	if err != nil {
 		return nil, err
 	}
+	ports, err := portsToPortSet(info.Config.ExposedPorts)
+	if err != nil {
+		return nil, err
+	}
 
 	// TODO: many fields in Config still need wiring
-	config := dockerSpec.DockerOCIImageConfig{
-		ImageConfig: imageSpec.ImageConfig{
-			User:         info.User,
-			ExposedPorts: info.Config.ExposedPorts,
-			Env:          info.Config.Env,
-			Cmd:          info.Config.Cmd,
-			Volumes:      info.Config.Volumes,
-			WorkingDir:   info.Config.WorkingDir,
-			Entrypoint:   info.Config.Entrypoint,
-			Labels:       info.Labels,
-			StopSignal:   info.Config.StopSignal,
-		},
+	config := dockerContainer.Config{
+		User:         info.User,
+		ExposedPorts: ports,
+		Env:          info.Config.Env,
+		Cmd:          info.Config.Cmd,
+		Volumes:      info.Config.Volumes,
+		WorkingDir:   info.Config.WorkingDir,
+		Entrypoint:   info.Config.Entrypoint,
+		Labels:       info.Labels,
+		StopSignal:   info.Config.StopSignal,
 	}
 
 	rootfs := dockerImage.RootFS{}
@@ -421,6 +422,33 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
 	return &handlers.ImageInspect{InspectResponse: dockerImageInspect}, nil
 }
 
+// portsToPortSet converts libpod's exposed ports to docker's structs
+func portsToPortSet(input map[string]struct{}) (nat.PortSet, error) {
+	ports := make(nat.PortSet)
+	for k := range input {
+		proto, port := nat.SplitProtoPort(k)
+		switch proto {
+		// See the OCI image spec for details:
+		// https://github.com/opencontainers/image-spec/blob/e562b04403929d582d449ae5386ff79dd7961a11/config.md#properties
+		case "tcp", "":
+			p, err := nat.NewPort("tcp", port)
+			if err != nil {
+				return nil, fmt.Errorf("unable to create tcp port from %s: %w", k, err)
+			}
+			ports[p] = struct{}{}
+		case "udp":
+			p, err := nat.NewPort("udp", port)
+			if err != nil {
+				return nil, fmt.Errorf("unable to create tcp port from %s: %w", k, err)
+			}
+			ports[p] = struct{}{}
+		default:
+			return nil, fmt.Errorf("invalid port proto %q in %q", proto, k)
+		}
+	}
+	return ports, nil
+}
+
 func GetImages(w http.ResponseWriter, r *http.Request) {
 	decoder := utils.GetDecoder(r)
 	runtime := r.Context().Value(api.RuntimeKey).(*libpod.Runtime)
diff --git a/pkg/api/handlers/compat/info.go b/pkg/api/handlers/compat/info.go
index cb3fa79..297bf72 100644
--- a/pkg/api/handlers/compat/info.go
+++ b/pkg/api/handlers/compat/info.go
@@ -56,6 +56,8 @@ func GetInfo(w http.ResponseWriter, r *http.Request) {
 	info := &handlers.Info{
 		Info: dockerSystem.Info{
 			Architecture:        goRuntime.GOARCH,
+			BridgeNfIP6tables:   !sysInfo.BridgeNFCallIP6TablesDisabled,
+			BridgeNfIptables:    !sysInfo.BridgeNFCallIPTablesDisabled,
 			CPUCfsPeriod:        sysInfo.CPUCfsPeriod,
 			CPUCfsQuota:         sysInfo.CPUCfsQuota,
 			CPUSet:              sysInfo.Cpuset,
diff --git a/pkg/api/handlers/compat/system.go b/pkg/api/handlers/compat/system.go
index b839272..2688d8d 100644
--- a/pkg/api/handlers/compat/system.go
+++ b/pkg/api/handlers/compat/system.go
@@ -14,7 +14,6 @@ import (
 	"github.com/containers/podman/v5/pkg/domain/entities"
 	"github.com/containers/podman/v5/pkg/domain/infra/abi"
 	docker "github.com/docker/docker/api/types"
-	"github.com/docker/docker/api/types/build"
 	"github.com/docker/docker/api/types/container"
 	dockerImage "github.com/docker/docker/api/types/image"
 	"github.com/docker/docker/api/types/volume"
@@ -103,6 +102,7 @@ func GetDiskUsage(w http.ResponseWriter, r *http.Request) {
 		Images:     imgs,
 		Containers: ctnrs,
 		Volumes:    vols,
-		BuildCache: []*build.CacheRecord{},
+		BuildCache:  []*docker.BuildCache{},
+		BuilderSize: 0,
 	}})
 }
