git: 83aae5b5d3b7 - main - sysutils/docker-registry: upgrade from 2.7.1 to 2.8.3

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Thu, 20 Feb 2025 23:27:58 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=83aae5b5d3b75d9e8c83ad15fb2b042d3544f866

commit 83aae5b5d3b75d9e8c83ad15fb2b042d3544f866
Author:     Mikhail Teterin <mi@FreeBSD.org>
AuthorDate: 2025-02-05 00:45:21 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2025-02-20 23:27:23 +0000

    sysutils/docker-registry: upgrade from 2.7.1 to 2.8.3
    
    Also update all dependencies to the latest versions, where possible.
    
    PR:             284580
    Approved by:    freebsd@yapsoft.it (maintainer timeout)
---
 sysutils/docker-registry/Makefile            |  90 +++++++-------
 sysutils/docker-registry/distinfo            | 180 +++++++++++++--------------
 sysutils/docker-registry/files/patch-imports |  27 ++++
 sysutils/docker-registry/files/patch-pr3943  | 142 +++++++++++++++++++++
 4 files changed, 296 insertions(+), 143 deletions(-)

diff --git a/sysutils/docker-registry/Makefile b/sysutils/docker-registry/Makefile
index cda7ac4084bf..27522a03b9e7 100644
--- a/sysutils/docker-registry/Makefile
+++ b/sysutils/docker-registry/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	docker-registry
-PORTVERSION=	2.7.1
+PORTVERSION=	2.8.3
 DISTVERSIONPREFIX=v
-PORTREVISION=	22
 CATEGORIES=	sysutils
 
 MAINTAINER=	freebsd@yapsoft.it
@@ -25,58 +24,53 @@ GO_BUILDFLAGS=	-ldflags "-s -w -X github.com/docker/distribution/version.Version
 
 PLIST_FILES=	bin/registry \
 		"@sample ${ETCDIR}/config.yml.sample"
+EXTRACT_AFTER_ARGS=--exclude vendor.conf --exclude vendor
 
 GH_TUPLE=	\
-		Azure:azure-sdk-for-go:v16.2.1:azure_azure_sdk_for_go/vendor/github.com/Azure/azure-sdk-for-go \
-		Azure:go-autorest:v10.8.1:azure_go_autorest/vendor/github.com/Azure/go-autorest \
-		Shopify:logrus-bugsnag:577dee27f20d:shopify_logrus_bugsnag/vendor/github.com/Shopify/logrus-bugsnag \
-		aws:aws-sdk-go:v1.15.11:aws_aws_sdk_go/vendor/github.com/aws/aws-sdk-go \
+		Azure:azure-sdk-for-go:v68.0.0:azure_azure_sdk_for_go/vendor/github.com/Azure/azure-sdk-for-go \
+		Azure:go-autorest:v14.2.0:azure_go_autorest/vendor/github.com/Azure/go-autorest \
+		Shopify:logrus-bugsnag:004243a:shopify_logrus_bugsnag/vendor/github.com/Shopify/logrus-bugsnag \
+		aws:aws-sdk-go:v1.55.6:aws_aws_sdk_go/vendor/github.com/aws/aws-sdk-go \
 		beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
 		bshuster-repo:logrus-logstash-hook:v0.4.1:bshuster_repo_logrus_logstash_hook/vendor/github.com/bshuster-repo/logrus-logstash-hook \
-		bugsnag:bugsnag-go:b1d153021fcd:bugsnag_bugsnag_go/vendor/github.com/bugsnag/bugsnag-go \
-		bugsnag:osext:0dd3f918b21b:bugsnag_osext/vendor/github.com/bugsnag/osext \
-		bugsnag:panicwrap:e2c28503fcd0:bugsnag_panicwrap/vendor/github.com/bugsnag/panicwrap \
-		denverdino:aliyungo:a747050bb1ba:denverdino_aliyungo/vendor/github.com/denverdino/aliyungo \
-		dgrijalva:jwt-go:a601269ab70c:dgrijalva_jwt_go/vendor/github.com/dgrijalva/jwt-go \
-		docker:go-events:e31b211e4f1c:docker_go_events/vendor/github.com/docker/go-events \
+		bugsnag:bugsnag-go:v2.5.1:bugsnag_bugsnag_go/vendor/github.com/bugsnag/bugsnag-go \
+		bugsnag:panicwrap:v1.3.4:bugsnag_panicwrap/vendor/github.com/bugsnag/panicwrap \
+		cespare:xxhash:v2.3.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
+		distribution:reference:v0.6.0:distribution_reference/vendor/github.com/distribution/reference \
+		dgrijalva:jwt-go:v3.2.0:dgrijalva_jwt_go/vendor/github.com/dgrijalva/jwt-go \
 		docker:go-metrics:v0.0.1:docker_go_metrics/vendor/github.com/docker/go-metrics \
-		docker:libtrust:fa567046d9b1:docker_libtrust/vendor/github.com/docker/libtrust \
-		garyburd:redigo:535138d7bcd7:garyburd_redigo/vendor/github.com/garyburd/redigo \
-		go-check:check:64131543e789:go_check_check/vendor/gopkg.in/check.v1 \
-		go-ini:ini:v1.25.4:go_ini_ini/vendor/github.com/go-ini/ini \
-		go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
-		golang:appengine:v1.4.0:golang_appengine/vendor/google.golang.org/appengine \
-		golang:crypto:69ecbb4d6d5d:golang_crypto/vendor/golang.org/x/crypto \
-		golang:net:b5b0513f8c1b:golang_net/vendor/golang.org/x/net \
-		golang:oauth2:0f29369cfe45:golang_oauth2/vendor/golang.org/x/oauth2 \
-		golang:protobuf:v1.3.2:golang_protobuf/vendor/github.com/golang/protobuf \
-		golang:sys:cbf593c0f2f3:golang_sys/vendor/golang.org/x/sys \
-		golang:text:v0.3.0:golang_text/vendor/golang.org/x/text \
-		googleapis:google-api-go-client:9bf6e6e569ff:googleapis_google_api_go_client/vendor/google.golang.org/api \
-		googleapis:google-cloud-go:v0.34.0:googleapis_google_cloud_go/vendor/cloud.google.com/go \
-		gorilla:handlers:60c7bfde3e33:gorilla_handlers/vendor/github.com/gorilla/handlers \
-		gorilla:mux:v1.7.2:gorilla_mux/vendor/github.com/gorilla/mux \
-		grpc:grpc-go:d3ddb4469d5a:grpc_grpc_go/vendor/google.golang.org/grpc \
-		inconshreveable:mousetrap:v1.0.0:inconshreveable_mousetrap/vendor/github.com/inconshreveable/mousetrap \
-		jmespath:go-jmespath:bd40a432e4c7:jmespath_go_jmespath/vendor/github.com/jmespath/go-jmespath \
-		konsorten:go-windows-terminal-sequences:v1.0.1:konsorten_go_windows_terminal_sequences/vendor/github.com/konsorten/go-windows-terminal-sequences \
-		marstr:guid:v1.1.0:marstr_guid/vendor/github.com/marstr/guid \
-		matttproud:golang_protobuf_extensions:v1.0.1:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \
-		mitchellh:mapstructure:v1.1.2:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
-		ncw:swift:v1.0.47:ncw_swift/vendor/github.com/ncw/swift \
-		opencontainers:go-digest:v1.0.0-rc1:opencontainers_go_digest/vendor/github.com/opencontainers/go-digest \
-		opencontainers:image-spec:v1.0.1:opencontainers_image_spec/vendor/github.com/opencontainers/image-spec \
-		prometheus:client_golang:v1.1.0:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
-		prometheus:client_model:fd36f4220a90:prometheus_client_model/vendor/github.com/prometheus/client_model \
-		prometheus:common:v0.6.0:prometheus_common/vendor/github.com/prometheus/common \
-		prometheus:procfs:v0.0.3:prometheus_procfs/vendor/github.com/prometheus/procfs \
-		satori:go.uuid:v1.2.0:satori_go_uuid/vendor/github.com/satori/go.uuid \
-		sirupsen:logrus:v1.4.2:sirupsen_logrus/vendor/github.com/sirupsen/logrus \
-		spf13:cobra:v0.0.3:spf13_cobra/vendor/github.com/spf13/cobra \
-		spf13:pflag:v1.0.3:spf13_pflag/vendor/github.com/spf13/pflag \
-		yvasiyarov:go-metrics:57bccd1ccd43:yvasiyarov_go_metrics/vendor/github.com/yvasiyarov/go-metrics \
+		docker:libtrust:aabc10e:docker_libtrust/vendor/github.com/docker/libtrust \
+		felixge:httpsnoop:v1.0.4:felixge_httpsnoop/vendor/github.com/felixge/httpsnoop \
+		garyburd:redigo:v1.6.4:garyburd_redigo/vendor/github.com/garyburd/redigo \
+		golang:crypto:v0.32.0:golang_crypto/vendor/golang.org/x/crypto \
+		golang:net:v0.34.0:golang_net/vendor/golang.org/x/net \
+		golang:protobuf:v1.5.4:golang_protobuf/vendor/github.com/golang/protobuf \
+		golang:sys:v0.30.0:golang_sys/vendor/golang.org/x/sys \
+		golang:text:v0.22.0:golang_text/vendor/golang.org/x/text \
+		gofrs:uuid:v5.3.0:gofrs_uuid/vendor/github.com/gofrs/uuid \
+		google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \
+		gorilla:handlers:v1.5.2:gorilla_handlers/vendor/github.com/gorilla/handlers \
+		gorilla:mux:v1.8.1:gorilla_mux/vendor/github.com/gorilla/mux \
+		jmespath:go-jmespath:v0.4.0:jmespath_go_jmespath/vendor/github.com/jmespath/go-jmespath \
+		klauspost:compress:v1.17.11:klauspost_compress/vendor/github.com/klauspost/compress \
+		mitchellh:mapstructure:v1.5.0:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
+		munnerz:goautoneg:a7dc8b61c822:munnerz_goautoneg/vendor/github.com/munnerz/goautoneg \
+		ncw:swift:v1.0.53:ncw_swift/vendor/github.com/ncw/swift \
+		opencontainers:go-digest:v1.0.0:opencontainers_go_digest/vendor/github.com/opencontainers/go-digest \
+		opencontainers:image-spec:v1.1.0:opencontainers_image_spec/vendor/github.com/opencontainers/image-spec \
+		pkg:errors:v0.9.1:pkg_errors/vendor/github.com/pkg/errors \
+		prometheus:client_golang:v1.20.5:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
+		prometheus:client_model:v0.6.1:prometheus_client_model/vendor/github.com/prometheus/client_model \
+		prometheus:common:v0.62.0:prometheus_common/vendor/github.com/prometheus/common \
+		prometheus:procfs:v0.15.1:prometheus_procfs/vendor/github.com/prometheus/procfs \
+		protocolbuffers:protobuf-go:v1.36.4:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+		sirupsen:logrus:v1.9.3:sirupsen_logrus/vendor/github.com/sirupsen/logrus \
+		spf13:cobra:v1.8.1:spf13_cobra/vendor/github.com/spf13/cobra \
+		spf13:pflag:v1.0.6:spf13_pflag/vendor/github.com/spf13/pflag \
 		yvasiyarov:gorelic:a9bba5b9ab50:yvasiyarov_gorelic/vendor/github.com/yvasiyarov/gorelic \
-		yvasiyarov:newrelic_platform_go:b21fdbd4370f:yvasiyarov_newrelic_platform_go/vendor/github.com/yvasiyarov/newrelic_platform_go
+		yvasiyarov:newrelic_platform_go:9c099fb:yvasiyarov_newrelic_platform_go/vendor/github.com/yvasiyarov/newrelic_platform_go \
+		yvasiyarov:go-metrics:57bccd1ccd43:yvasiyarov_go_metrics/vendor/github.com/yvasiyarov/go-metrics \
+		go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
 
 post-install:
 	${MKDIR} ${STAGEDIR}${ETCDIR}
diff --git a/sysutils/docker-registry/distinfo b/sysutils/docker-registry/distinfo
index fc61b3df6450..7a2bfb5ae63d 100644
--- a/sysutils/docker-registry/distinfo
+++ b/sysutils/docker-registry/distinfo
@@ -1,103 +1,93 @@
-TIMESTAMP = 1587684458
-SHA256 (docker-distribution-v2.7.1_GH0.tar.gz) = 4c3609c102351f15c0386f619d48bb592f3100726b4bde86f3eba7739192ff55
-SIZE (docker-distribution-v2.7.1_GH0.tar.gz) = 1996699
-SHA256 (Azure-azure-sdk-for-go-v16.2.1_GH0.tar.gz) = 6c37a88c40c748a4fbccf1d1af19c5e1ce7a694ac8b4e5e5e3fc968f66c72590
-SIZE (Azure-azure-sdk-for-go-v16.2.1_GH0.tar.gz) = 10306381
-SHA256 (Azure-go-autorest-v10.8.1_GH0.tar.gz) = 203f03692c090c95d36576bbf0236de31b59c6f61c9bad16cea9db8c5de337f7
-SIZE (Azure-go-autorest-v10.8.1_GH0.tar.gz) = 114532
-SHA256 (Shopify-logrus-bugsnag-577dee27f20d_GH0.tar.gz) = 8b9835cfe1c87ddc292a8a636b0a6adae5ed62a9f819e708be0f5bcd383151d6
-SIZE (Shopify-logrus-bugsnag-577dee27f20d_GH0.tar.gz) = 3379
-SHA256 (aws-aws-sdk-go-v1.15.11_GH0.tar.gz) = 3a3e97e2a4a2eb59a1d9546f4bd79cc1c38818e265ed4338d1e82bb737af7ed3
-SIZE (aws-aws-sdk-go-v1.15.11_GH0.tar.gz) = 8806725
+TIMESTAMP = 1738715156
+SHA256 (docker-distribution-v2.8.3_GH0.tar.gz) = c44841796ff59d8b4d62c7f86b58a0fb8f6e60b887a974758cc90079dca628ba
+SIZE (docker-distribution-v2.8.3_GH0.tar.gz) = 2010569
+SHA256 (Azure-azure-sdk-for-go-v68.0.0_GH0.tar.gz) = 71c2a4a54e13cbdf3074333318c56c86d6ef6becf4fd487ebc229a81b6f96b1c
+SIZE (Azure-azure-sdk-for-go-v68.0.0_GH0.tar.gz) = 46273074
+SHA256 (Azure-go-autorest-v14.2.0_GH0.tar.gz) = d0db0e47112570e3f2bd2e38ae56338f1e74625dd4cb553007082fdad5fd844d
+SIZE (Azure-go-autorest-v14.2.0_GH0.tar.gz) = 167851
+SHA256 (Shopify-logrus-bugsnag-004243a_GH0.tar.gz) = db39689e0e9c540c676b985aacbd74d08996f396d1cf411717e7350bf788c16c
+SIZE (Shopify-logrus-bugsnag-004243a_GH0.tar.gz) = 7197
+SHA256 (aws-aws-sdk-go-v1.55.6_GH0.tar.gz) = ae51032a0575b798a24670ec1f006dcd7dc0804c7131f4061887df96f7d114c5
+SIZE (aws-aws-sdk-go-v1.55.6_GH0.tar.gz) = 33373600
 SHA256 (beorn7-perks-v1.0.1_GH0.tar.gz) = 98db84bb0224a26094e6adba91b7ee7a1a7ace28cb648d818f8e779e6a19f825
 SIZE (beorn7-perks-v1.0.1_GH0.tar.gz) = 10867
 SHA256 (bshuster-repo-logrus-logstash-hook-v0.4.1_GH0.tar.gz) = 7e332cfd49f657a390066cf2ffd7b8141b949b7ca4b8095f14b21eb9b4504ddc
 SIZE (bshuster-repo-logrus-logstash-hook-v0.4.1_GH0.tar.gz) = 6616
-SHA256 (bugsnag-bugsnag-go-b1d153021fcd_GH0.tar.gz) = 164d5189a3c4130b815965073ce88dca43f512cbff5b476f39acf9ba1796ba68
-SIZE (bugsnag-bugsnag-go-b1d153021fcd_GH0.tar.gz) = 24686
-SHA256 (bugsnag-osext-0dd3f918b21b_GH0.tar.gz) = 164c7c6d6e45fa84bfdf22c276ddb34ab475186df33da2f946df02167dd31983
-SIZE (bugsnag-osext-0dd3f918b21b_GH0.tar.gz) = 2791
-SHA256 (bugsnag-panicwrap-e2c28503fcd0_GH0.tar.gz) = 48b115946e1c5d026c95dfeeaf808967183b277a68bda594f95cefddcb9a22e7
-SIZE (bugsnag-panicwrap-e2c28503fcd0_GH0.tar.gz) = 8117
-SHA256 (denverdino-aliyungo-a747050bb1ba_GH0.tar.gz) = 0906dfa7f3c991a7ef3b0c81df7e453ac9211db88199d6d7c16d0dfec7c34f56
-SIZE (denverdino-aliyungo-a747050bb1ba_GH0.tar.gz) = 171720
-SHA256 (dgrijalva-jwt-go-a601269ab70c_GH0.tar.gz) = 2603357fb28a77c3dbd56be5f075e2b10ff000289ee19e157fdfbd3e40937e78
-SIZE (dgrijalva-jwt-go-a601269ab70c_GH0.tar.gz) = 33582
-SHA256 (docker-go-events-e31b211e4f1c_GH0.tar.gz) = 2ed79a03599da09a8a35e955f962fb6b134a9ecadb5686133d4256a1ace5a5b0
-SIZE (docker-go-events-e31b211e4f1c_GH0.tar.gz) = 15603
+SHA256 (bugsnag-bugsnag-go-v2.5.1_GH0.tar.gz) = 2bc72de404561907a57d67fc27bb434fa8dea8c6907341aa38b7cca6a23caab4
+SIZE (bugsnag-bugsnag-go-v2.5.1_GH0.tar.gz) = 128981
+SHA256 (bugsnag-panicwrap-v1.3.4_GH0.tar.gz) = 786bda4ed5bb42272772e5c7784703c90468ad113ba897f534ec15be4ccf7e9b
+SIZE (bugsnag-panicwrap-v1.3.4_GH0.tar.gz) = 11190
+SHA256 (cespare-xxhash-v2.3.0_GH0.tar.gz) = 0e3dda07b03a5f3733506218860ecb2d50c0f01f16299b5d60902ef5158cbde5
+SIZE (cespare-xxhash-v2.3.0_GH0.tar.gz) = 12696
+SHA256 (distribution-reference-v0.6.0_GH0.tar.gz) = 379bbf93dc3365a5c5fcd6c2538b63f21f9e5493a439b69999e01fad3de1ea39
+SIZE (distribution-reference-v0.6.0_GH0.tar.gz) = 34139
+SHA256 (dgrijalva-jwt-go-v3.2.0_GH0.tar.gz) = 197465ef53219f3aeb1a6940b70e16d288fe4e4108d4831b91ea101118440e63
+SIZE (dgrijalva-jwt-go-v3.2.0_GH0.tar.gz) = 36960
 SHA256 (docker-go-metrics-v0.0.1_GH0.tar.gz) = a8a31fd2f59880f4d771c7de45b7dbcee309468ed94740d960e0c76488f9a60b
 SIZE (docker-go-metrics-v0.0.1_GH0.tar.gz) = 19923
-SHA256 (docker-libtrust-fa567046d9b1_GH0.tar.gz) = e2d7ddb648fa2b0a1ce9713647cbb5a3bdbb43c1cc5a882c480758d325c76a30
-SIZE (docker-libtrust-fa567046d9b1_GH0.tar.gz) = 38950
-SHA256 (garyburd-redigo-535138d7bcd7_GH0.tar.gz) = 8b2897fcd43ea92f50f274ad4130aad76d74b3bf4ea1de7dc2d8b71a1a485b79
-SIZE (garyburd-redigo-535138d7bcd7_GH0.tar.gz) = 26863
-SHA256 (go-check-check-64131543e789_GH0.tar.gz) = fa62444fa7b170b6192738bab29df8e802d918e87e4877d35d34b19597bf7de2
-SIZE (go-check-check-64131543e789_GH0.tar.gz) = 29289
-SHA256 (go-ini-ini-v1.25.4_GH0.tar.gz) = 915225ca3aedd7e7fbcdffda345c07fe5e2ffeab1aa95df15457b11b7d2b69db
-SIZE (go-ini-ini-v1.25.4_GH0.tar.gz) = 37297
-SHA256 (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 42c3e4ef9eca2860d22b3c6c5582c6c13fb4b417e5ebc1acc56ee5e2c4ddcaff
-SIZE (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 70656
-SHA256 (golang-appengine-v1.4.0_GH0.tar.gz) = 88b39d4ea8c910849238fea21a52b7fbb53ed63bce64c2496959ebdb8ab36dad
-SIZE (golang-appengine-v1.4.0_GH0.tar.gz) = 325752
-SHA256 (golang-crypto-69ecbb4d6d5d_GH0.tar.gz) = 006815c146fa85ab4b28f862748df3d7866f51688d5803d015c8a397019de0f9
-SIZE (golang-crypto-69ecbb4d6d5d_GH0.tar.gz) = 1719992
-SHA256 (golang-net-b5b0513f8c1b_GH0.tar.gz) = c964b833e5e90f5f84ded2ed3b5b12a1294f116762d83a5cdd4e4bf319981029
-SIZE (golang-net-b5b0513f8c1b_GH0.tar.gz) = 1099187
-SHA256 (golang-oauth2-0f29369cfe45_GH0.tar.gz) = 468421ddfe905216454006b309ebda6e97aa6089265b995bce4259d6a9efd141
-SIZE (golang-oauth2-0f29369cfe45_GH0.tar.gz) = 45498
-SHA256 (golang-protobuf-v1.3.2_GH0.tar.gz) = c9cda622857a17cf0877c5ba76688a931883e505f40744c9495638b6e3da1f65
-SIZE (golang-protobuf-v1.3.2_GH0.tar.gz) = 312285
-SHA256 (golang-sys-cbf593c0f2f3_GH0.tar.gz) = 3590c55ef807ee27909fecdd771996ab55ad5306f5174b877810a9a9915f0a18
-SIZE (golang-sys-cbf593c0f2f3_GH0.tar.gz) = 1454976
-SHA256 (golang-text-v0.3.0_GH0.tar.gz) = 8f4c9a048345befc7beccd09267737ee1f55c7b35e5ff80f344ec9e0aa90febb
-SIZE (golang-text-v0.3.0_GH0.tar.gz) = 6102619
-SHA256 (googleapis-google-api-go-client-9bf6e6e569ff_GH0.tar.gz) = 69b374167e8ef32ee309d65cda8adfbb7b75f674086ff1603ac66446ceb6e5f3
-SIZE (googleapis-google-api-go-client-9bf6e6e569ff_GH0.tar.gz) = 4224911
-SHA256 (googleapis-google-cloud-go-v0.34.0_GH0.tar.gz) = 858035d2031c8ea1eb9ff958a94acccd4d01f8c47e9a135e64444ce352cc5ed2
-SIZE (googleapis-google-cloud-go-v0.34.0_GH0.tar.gz) = 2047971
-SHA256 (gorilla-handlers-60c7bfde3e33_GH0.tar.gz) = bd3b5343a44eee7cdf3548d4759346d3ed4e0192cce841cada1ec319fe02841c
-SIZE (gorilla-handlers-60c7bfde3e33_GH0.tar.gz) = 11018
-SHA256 (gorilla-mux-v1.7.2_GH0.tar.gz) = 56920f5c8a9286478005a13940c27069242447812ac47f4e6221cfc9d13ea73f
-SIZE (gorilla-mux-v1.7.2_GH0.tar.gz) = 40933
-SHA256 (grpc-grpc-go-d3ddb4469d5a_GH0.tar.gz) = 6275aff408dada023c0c403de46d49f80c4fd0e376eced232ee3f306df7c1a21
-SIZE (grpc-grpc-go-d3ddb4469d5a_GH0.tar.gz) = 145693
-SHA256 (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 5edc7731c819c305623568e317aa253d342be3447def97f1fa9e10eb5ad819f6
-SIZE (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 2290
-SHA256 (jmespath-go-jmespath-bd40a432e4c7_GH0.tar.gz) = 89a18e31d4056046173e5490d68b1b78c58ed6ca626c461e46987203aa9cea36
-SIZE (jmespath-go-jmespath-bd40a432e4c7_GH0.tar.gz) = 48275
-SHA256 (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = e36c5a5de388bf72db3037b47f025b09e574be8d0bc74b3e44c960cba0880e87
-SIZE (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = 1909
-SHA256 (marstr-guid-v1.1.0_GH0.tar.gz) = 70f816c253248a34e7943b1893a854e45fd9487cee3aff158db195ef62af3706
-SIZE (marstr-guid-v1.1.0_GH0.tar.gz) = 6587
-SHA256 (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 2def0ee6f6b12b1efc0e3007d89f598608a072610e805c3655ea9d13c3ead49b
-SIZE (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 37184
-SHA256 (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 53fbc06b125ff1c9c73a4eb1764346932671a29c67a45a92e2ebc6855635069b
-SIZE (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 20980
-SHA256 (ncw-swift-v1.0.47_GH0.tar.gz) = 7ac6e3a02f58cb7223c938bd530e009d980ae90ac83c2ef80188cbb54a8946bb
-SIZE (ncw-swift-v1.0.47_GH0.tar.gz) = 61815
-SHA256 (opencontainers-go-digest-v1.0.0-rc1_GH0.tar.gz) = 3f511b32c46f60482644f0ad6a345f52e672c82164bfb08274f15f7c14cd3076
-SIZE (opencontainers-go-digest-v1.0.0-rc1_GH0.tar.gz) = 19206
-SHA256 (opencontainers-image-spec-v1.0.1_GH0.tar.gz) = c7ca467de2cca65e7ea74414a3f51e91450156213af485830dcdfff0571e10d2
-SIZE (opencontainers-image-spec-v1.0.1_GH0.tar.gz) = 138674
-SHA256 (prometheus-client_golang-v1.1.0_GH0.tar.gz) = 4fd80a210cc090db117d92d126d15cdb5108c84e3178ffc7bd26cb2fa4298343
-SIZE (prometheus-client_golang-v1.1.0_GH0.tar.gz) = 140006
-SHA256 (prometheus-client_model-fd36f4220a90_GH0.tar.gz) = 17571c708bab9a1ba18d9dd0c9bfe96dff3f1b84c63e7d8d4c3489ef5c34ee40
-SIZE (prometheus-client_model-fd36f4220a90_GH0.tar.gz) = 57491
-SHA256 (prometheus-common-v0.6.0_GH0.tar.gz) = 3b58d10c44520d8fd3817b45599a6229123ccf8967db528063143266405b7c4f
-SIZE (prometheus-common-v0.6.0_GH0.tar.gz) = 99696
-SHA256 (prometheus-procfs-v0.0.3_GH0.tar.gz) = 3af9b805166932b771dfa19a4c94eb83ceefd2eb54d1a314c3bf15a5f3154d0d
-SIZE (prometheus-procfs-v0.0.3_GH0.tar.gz) = 91880
-SHA256 (satori-go.uuid-v1.2.0_GH0.tar.gz) = 6f9d9549958252d7c5a5ed1cabeedeaab7a600ca0b888a3666cce4c3590aa5a7
-SIZE (satori-go.uuid-v1.2.0_GH0.tar.gz) = 8297
-SHA256 (sirupsen-logrus-v1.4.2_GH0.tar.gz) = 67f2ddf467b7e63d2d2529d227946a331e245aeef7e2e4521ae82647b5ef84d9
-SIZE (sirupsen-logrus-v1.4.2_GH0.tar.gz) = 41373
-SHA256 (spf13-cobra-v0.0.3_GH0.tar.gz) = 7eafb953b58fdd738c4db5202d94a0b6ac0de4f07718fc85a80450c2347c2f9c
-SIZE (spf13-cobra-v0.0.3_GH0.tar.gz) = 101526
-SHA256 (spf13-pflag-v1.0.3_GH0.tar.gz) = 9e57f86f493f04d9077fccd04e7139ebf243dd544e917ab83d35729b3e54a124
-SIZE (spf13-pflag-v1.0.3_GH0.tar.gz) = 46002
-SHA256 (yvasiyarov-go-metrics-57bccd1ccd43_GH0.tar.gz) = e3957d5684a51ae7b91462d8bbb279aaa5cb66f3fdd63eb524bea5bf67c244ad
-SIZE (yvasiyarov-go-metrics-57bccd1ccd43_GH0.tar.gz) = 30677
+SHA256 (docker-libtrust-aabc10e_GH0.tar.gz) = 55d689db846324d2f14023908beb9c1789f9335b8608ec03d4e2c945dee350d2
+SIZE (docker-libtrust-aabc10e_GH0.tar.gz) = 39341
+SHA256 (felixge-httpsnoop-v1.0.4_GH0.tar.gz) = ffb63ba081e4c2360342dea2079d08b8560c315b2f458885fd34639786a1aa3d
+SIZE (felixge-httpsnoop-v1.0.4_GH0.tar.gz) = 11954
+SHA256 (garyburd-redigo-v1.6.4_GH0.tar.gz) = 133b2b05f040f705bbce6de34cee07150968e0e44e040d3c708cf3141bda5c16
+SIZE (garyburd-redigo-v1.6.4_GH0.tar.gz) = 42595
+SHA256 (golang-crypto-v0.32.0_GH0.tar.gz) = d75d72fbd1dc99bef96cfb288c5c8ae1fbb6bf27d2debcaebb7ffda4aaea8198
+SIZE (golang-crypto-v0.32.0_GH0.tar.gz) = 1837831
+SHA256 (golang-net-v0.34.0_GH0.tar.gz) = 3d5ec65e81b6f1d9530a3008f35722e9cf6d4905b20c19a7126f58aae515996c
+SIZE (golang-net-v0.34.0_GH0.tar.gz) = 1466242
+SHA256 (golang-protobuf-v1.5.4_GH0.tar.gz) = d75e6960ecfabaaa83a7261b1b630d24e9c63aca79615fb15bf33e11b62fd019
+SIZE (golang-protobuf-v1.5.4_GH0.tar.gz) = 172992
+SHA256 (golang-sys-v0.30.0_GH0.tar.gz) = 3e54dfe262f4f09341622679101c0f10935028cc945f78a97f898b2416edb1f0
+SIZE (golang-sys-v0.30.0_GH0.tar.gz) = 1523069
+SHA256 (golang-text-v0.22.0_GH0.tar.gz) = ac8bdce0477effd5a830345979626745e5e5bcb81d1a77c8029b0e8b3d621089
+SIZE (golang-text-v0.22.0_GH0.tar.gz) = 8970985
+SHA256 (gofrs-uuid-v5.3.0_GH0.tar.gz) = 6a9a1521e0d00ee7439f077b6cb1e3c6b779aa590b956bf4d06af95cdff75c77
+SIZE (gofrs-uuid-v5.3.0_GH0.tar.gz) = 25903
+SHA256 (google-uuid-v1.6.0_GH0.tar.gz) = ee63376b5675376c60e055ed66e5f3651ccc703bd580c022b8ad00cea309252d
+SIZE (google-uuid-v1.6.0_GH0.tar.gz) = 20896
+SHA256 (gorilla-handlers-v1.5.2_GH0.tar.gz) = 8760b84a1b5cd49ce81a56c9fce0ba0de157355b1bb38d112bdfd7cf7ad7a44d
+SIZE (gorilla-handlers-v1.5.2_GH0.tar.gz) = 21627
+SHA256 (gorilla-mux-v1.8.1_GH0.tar.gz) = c2a09e78d1886abb2d291b472eba3ac9185acb35234c1f5616669664ba893d6d
+SIZE (gorilla-mux-v1.8.1_GH0.tar.gz) = 47033
+SHA256 (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = aa86d00b6836345eee196c13df2df084a18e0b1159935de9289f2ef6a7fe375d
+SIZE (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = 128861
+SHA256 (klauspost-compress-v1.17.11_GH0.tar.gz) = d06b1a6f8c5fd1c79a3733acdeac9e3411f88acbe0dcd1ba0823c54e3567e31e
+SIZE (klauspost-compress-v1.17.11_GH0.tar.gz) = 39082191
+SHA256 (mitchellh-mapstructure-v1.5.0_GH0.tar.gz) = 81106cbac93000812c194b4a2069dd32913ec18819b1e99e8436595ce4939413
+SIZE (mitchellh-mapstructure-v1.5.0_GH0.tar.gz) = 30123
+SHA256 (munnerz-goautoneg-a7dc8b61c822_GH0.tar.gz) = 3a455e3bcf8237ecee0385f97223ca821ec2547284e827e90f94a4984801ca1c
+SIZE (munnerz-goautoneg-a7dc8b61c822_GH0.tar.gz) = 2810
+SHA256 (ncw-swift-v1.0.53_GH0.tar.gz) = bf8e19e6fa5b78cfeaa5744e4be7439d45e40a3dd429a7a58397ad0e6e8d9144
+SIZE (ncw-swift-v1.0.53_GH0.tar.gz) = 65614
+SHA256 (opencontainers-go-digest-v1.0.0_GH0.tar.gz) = 1e74706d265c92f62793af741e322163f3c08afa66f5a7926c9b9ccb44fed230
+SIZE (opencontainers-go-digest-v1.0.0_GH0.tar.gz) = 24456
+SHA256 (opencontainers-image-spec-v1.1.0_GH0.tar.gz) = 751b0ea90f9c3b589ea05336854e34f72323f043154fec21c472ed7c69ccc2bf
+SIZE (opencontainers-image-spec-v1.1.0_GH0.tar.gz) = 161395
+SHA256 (pkg-errors-v0.9.1_GH0.tar.gz) = 56bfd893023daa498508bfe161de1be83299fcf15376035e7df79cbd7d6fa608
+SIZE (pkg-errors-v0.9.1_GH0.tar.gz) = 13415
+SHA256 (prometheus-client_golang-v1.20.5_GH0.tar.gz) = ab8aa5a2a56f2fb739ea7db4485d0a05df30476924a872b28cce3a319a347af8
+SIZE (prometheus-client_golang-v1.20.5_GH0.tar.gz) = 1103272
+SHA256 (prometheus-client_model-v0.6.1_GH0.tar.gz) = b9b690bc35d80061f255faa7df7621eae39fe157179ccd78ff6409c3b004f05e
+SIZE (prometheus-client_model-v0.6.1_GH0.tar.gz) = 17373
+SHA256 (prometheus-common-v0.62.0_GH0.tar.gz) = 8ef329ff7a746436e3a1ba66eb20b6ef88bcf7af2cc09a88b2d068caace2cf79
+SIZE (prometheus-common-v0.62.0_GH0.tar.gz) = 144719
+SHA256 (prometheus-procfs-v0.15.1_GH0.tar.gz) = ba96bb6d45f1fcbff820c7d844e6acdef4416bb0ff2d9e24656f5cbacb8e46b5
+SIZE (prometheus-procfs-v0.15.1_GH0.tar.gz) = 243687
+SHA256 (protocolbuffers-protobuf-go-v1.36.4_GH0.tar.gz) = aba12e3abb045d9fc995aad578f0c0ab569325bedc277ffc9b5d159ccc78bbc5
+SIZE (protocolbuffers-protobuf-go-v1.36.4_GH0.tar.gz) = 1962884
+SHA256 (sirupsen-logrus-v1.9.3_GH0.tar.gz) = cfa48a647a28c1f12fb6a9b672bc4d88b6407ff05aedcf23ce939d342646acce
+SIZE (sirupsen-logrus-v1.9.3_GH0.tar.gz) = 50320
+SHA256 (spf13-cobra-v1.8.1_GH0.tar.gz) = 5d45f6fcce63f9f4dd12b34a15669335a35ca3f7bf297ba465c3fbf62308e5fe
+SIZE (spf13-cobra-v1.8.1_GH0.tar.gz) = 192358
+SHA256 (spf13-pflag-v1.0.6_GH0.tar.gz) = b6beba1d0a8ce6e0827567931ff9b1b1c93b0fb4b091e825aa09bf0310664ff7
+SIZE (spf13-pflag-v1.0.6_GH0.tar.gz) = 52840
 SHA256 (yvasiyarov-gorelic-a9bba5b9ab50_GH0.tar.gz) = 6581f0bb89a64ffea0c348f39661c2e747be363687d7743ce46fd38192eaf47e
 SIZE (yvasiyarov-gorelic-a9bba5b9ab50_GH0.tar.gz) = 8243
-SHA256 (yvasiyarov-newrelic_platform_go-b21fdbd4370f_GH0.tar.gz) = e220f805098db72967f79acb660cde2ab594a233a0cfedd912e92917fdca7500
-SIZE (yvasiyarov-newrelic_platform_go-b21fdbd4370f_GH0.tar.gz) = 4633
+SHA256 (yvasiyarov-go-metrics-57bccd1ccd43_GH0.tar.gz) = e3957d5684a51ae7b91462d8bbb279aaa5cb66f3fdd63eb524bea5bf67c244ad
+SIZE (yvasiyarov-go-metrics-57bccd1ccd43_GH0.tar.gz) = 30677
+SHA256 (yvasiyarov-newrelic_platform_go-9c099fb_GH0.tar.gz) = 1036fdc6003cfa72b67d3942e55292ec9be8f8d803f97790e7bb01b2d49d7564
+SIZE (yvasiyarov-newrelic_platform_go-9c099fb_GH0.tar.gz) = 5406
+SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
+SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
+SHA256 (9b4f2caaf89c63b015bbed3e710501df5cf2f75a.patch) = 395fdae6c17e9bf1ccbe185771a0b4c8fdc3a3198e00da06f6c6a63dfb0eefff
+SIZE (9b4f2caaf89c63b015bbed3e710501df5cf2f75a.patch) = 6225504
diff --git a/sysutils/docker-registry/files/patch-imports b/sysutils/docker-registry/files/patch-imports
new file mode 100644
index 000000000000..29462dc43361
--- /dev/null
+++ b/sysutils/docker-registry/files/patch-imports
@@ -0,0 +1,27 @@
+--- configuration/parser.go	2023-10-02 13:09:30.000000000 -0400
++++ configuration/parser.go	2025-02-04 15:23:06.588689000 -0500
+@@ -10,5 +10,5 @@
+ 
+ 	"github.com/sirupsen/logrus"
+-	"gopkg.in/yaml.v2"
++	"gopkg.in/yaml.v3"
+ )
+ 
+--- configuration/configuration_test.go	2023-10-02 13:09:30.000000000 -0400
++++ configuration/configuration_test.go	2025-02-04 15:23:55.324424000 -0500
+@@ -11,5 +11,5 @@
+ 
+ 	. "gopkg.in/check.v1"
+-	"gopkg.in/yaml.v2"
++	"gopkg.in/yaml.v3"
+ )
+ 
+--- vendor/github.com/yvasiyarov/gorelic/agent.go	2014-12-12 02:35:37.000000000 -0500
++++ vendor/github.com/yvasiyarov/gorelic/agent.go	2025-02-04 18:23:32.348173000 -0500
+@@ -96,5 +96,5 @@
+ 
+ 	agent.plugin = newrelic_platform_go.NewNewrelicPlugin(agent.AgentVersion, agent.NewrelicLicense, agent.NewrelicPollInterval)
+-	component := newrelic_platform_go.NewPluginComponent(agent.NewrelicName, agent.AgentGUID)
++	component := newrelic_platform_go.NewPluginComponent(agent.NewrelicName, agent.AgentGUID, true)
+ 	agent.plugin.AddComponent(component)
+ 
diff --git a/sysutils/docker-registry/files/patch-pr3943 b/sysutils/docker-registry/files/patch-pr3943
new file mode 100644
index 000000000000..f24c07350ed3
--- /dev/null
+++ b/sysutils/docker-registry/files/patch-pr3943
@@ -0,0 +1,142 @@
+Adapted from the https://github.com/distribution/distribution/pull/3943
+
+	-mi
+
+From 9b4f2caaf89c63b015bbed3e710501df5cf2f75a Mon Sep 17 00:00:00 2001
+From: Alex Lavallee <73203142+lavalleeale@users.noreply.github.com>
+Date: Sun, 18 Jun 2023 09:52:12 -0700
+Subject: [PATCH] Add support for modern ACME
+
+Signed-off-by: Alex Lavallee <73203142+lavalleeale@users.noreply.github.com>
+---
+ configuration/configuration.go                |    4 +
+ configuration/configuration_test.go           |   14 +-
+ docs/configuration.md                         |   12 +-
+ registry/registry.go                          |   29 +-
+...
+
+--- configuration/configuration.go
++++ configuration/configuration.go
+@@ -129,6 +129,10 @@ type Configuration struct {
+ 				// Hosts specifies the hosts which are allowed to obtain Let's
+ 				// Encrypt certificates.
+ 				Hosts []string `yaml:"hosts,omitempty"`
++
++				// DirectoryURL points to the CA directory endpoint.
++				// If empty, LetsEncrypt is used.
++				DirectoryURL string `yaml:"directoryurl,omitempty"`
+ 			} `yaml:"letsencrypt,omitempty"`
+ 		} `yaml:"tls,omitempty"`
+ 
+--- configuration/configuration_test.go
++++ configuration/configuration_test.go
+@@ -89,9 +89,10 @@ var configStruct = Configuration{
+ 			MinimumTLS   string   `yaml:"minimumtls,omitempty"`
+ 			CipherSuites []string `yaml:"ciphersuites,omitempty"`
+ 			LetsEncrypt  struct {
+-				CacheFile string   `yaml:"cachefile,omitempty"`
+-				Email     string   `yaml:"email,omitempty"`
+-				Hosts     []string `yaml:"hosts,omitempty"`
++				CacheFile    string   `yaml:"cachefile,omitempty"`
++				Email        string   `yaml:"email,omitempty"`
++				Hosts        []string `yaml:"hosts,omitempty"`
++				DirectoryURL string   `yaml:"directoryurl,omitempty"`
+ 			} `yaml:"letsencrypt,omitempty"`
+ 		} `yaml:"tls,omitempty"`
+ 		Headers http.Header `yaml:"headers,omitempty"`
+@@ -113,9 +114,10 @@ var configStruct = Configuration{
+ 			MinimumTLS   string   `yaml:"minimumtls,omitempty"`
+ 			CipherSuites []string `yaml:"ciphersuites,omitempty"`
+ 			LetsEncrypt  struct {
+-				CacheFile string   `yaml:"cachefile,omitempty"`
+-				Email     string   `yaml:"email,omitempty"`
+-				Hosts     []string `yaml:"hosts,omitempty"`
++				CacheFile    string   `yaml:"cachefile,omitempty"`
++				Email        string   `yaml:"email,omitempty"`
++				Hosts        []string `yaml:"hosts,omitempty"`
++				DirectoryURL string   `yaml:"directoryurl,omitempty"`
+ 			} `yaml:"letsencrypt,omitempty"`
+ 		}{
+ 			ClientCAs: []string{"/path/to/ca.pem"},
+--- docs/configuration.md
++++ docs/configuration.md
+@@ -229,6 +229,7 @@ http:
+       cachefile: /path/to/cache-file
+       email: emailused@letsencrypt.com
+       hosts: [myregistryaddress.org]
++      directoryurl: https://acme-v02.api.letsencrypt.org/directory
+   debug:
+     addr: localhost:5001
+     prometheus:
+@@ -879,11 +880,12 @@ TLS certificates provided by
+ > that are valid for this registry to avoid trying to get certificates for random
+ > hostnames due to malicious clients connecting with bogus SNI hostnames.
+ 
+-| Parameter | Required | Description                                           |
+-|-----------|----------|-------------------------------------------------------|
+-| `cachefile` | yes    | Absolute path to a file where the Let's Encrypt agent can cache data. |
+-| `email`   | yes      | The email address used to register with Let's Encrypt. |
+-| `hosts`   | no       | The hostnames allowed for Let's Encrypt certificates. |
++| Parameter      | Required | Description                                                           |
++|----------------|----------|-----------------------------------------------------------------------|
++| `cachefile`    | yes      | Absolute path to a file where the Let's Encrypt agent can cache data. |
++| `email`        | yes      | The email address used to register with Let's Encrypt.                |
++| `hosts`        | no       | The hostnames allowed for Let's Encrypt certificates.                 |
++| `directoryurl` | no       | The url to use for the ACME server.                                   |
+ 
+ ### `debug`
+ 
+--- registry/registry.go
++++ registry/registry.go
+@@ -13,7 +13,8 @@ import (
+ 	"syscall"
+ 	"time"
+ 
+-	"rsc.io/letsencrypt"
++	"golang.org/x/crypto/acme"
++	"golang.org/x/crypto/acme/autocert"
+ 
+ 	logrus_bugsnag "github.com/Shopify/logrus-bugsnag"
+ 
+@@ -210,6 +211,14 @@ func getCipherSuiteNames(ids []uint16) []string {
+ 	return names
+ }
+ 
++// set ACME-server/DirectoryURL, if provided
++func setDirectoryURL(directoryurl string) *acme.Client {
++	if len(directoryurl) > 0 {
++		return &acme.Client{DirectoryURL: directoryurl}
++	}
++	return nil
++}
++
+ // ListenAndServe runs the registry's HTTP server.
+ func (registry *Registry) ListenAndServe() error {
+ 	config := registry.config
+@@ -247,19 +256,15 @@ func (registry *Registry) ListenAndServe() error {
+ 			if config.HTTP.TLS.Certificate != "" {
+ 				return fmt.Errorf("cannot specify both certificate and Let's Encrypt")
+ 			}
+-			var m letsencrypt.Manager
+-			if err := m.CacheFile(config.HTTP.TLS.LetsEncrypt.CacheFile); err != nil {
+-				return err
+-			}
+-			if !m.Registered() {
+-				if err := m.Register(config.HTTP.TLS.LetsEncrypt.Email, nil); err != nil {
+-					return err
+-				}
+-			}
+-			if len(config.HTTP.TLS.LetsEncrypt.Hosts) > 0 {
+-				m.SetHosts(config.HTTP.TLS.LetsEncrypt.Hosts)
++			m := &autocert.Manager{
++				HostPolicy: autocert.HostWhitelist(config.HTTP.TLS.LetsEncrypt.Hosts...),
++				Cache:      autocert.DirCache(config.HTTP.TLS.LetsEncrypt.CacheFile),
++				Email:      config.HTTP.TLS.LetsEncrypt.Email,
++				Prompt:     autocert.AcceptTOS,
++				Client:     setDirectoryURL(config.HTTP.TLS.LetsEncrypt.DirectoryURL),
+ 			}
+ 			tlsConf.GetCertificate = m.GetCertificate
++			tlsConf.NextProtos = append(tlsConf.NextProtos, acme.ALPNProto)
+ 		} else {
+ 			tlsConf.Certificates = make([]tls.Certificate, 1)
+ 			tlsConf.Certificates[0], err = tls.LoadX509KeyPair(config.HTTP.TLS.Certificate, config.HTTP.TLS.Key)