git: 90b1184d93c8 - main - devel/sccache: Support sccache-dist

From: Michael Gmelin <grembo_at_FreeBSD.org>
Date: Fri, 29 Sep 2023 07:59:36 UTC
The branch main has been updated by grembo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=90b1184d93c8af5d6f37605be325f2f2e51e4aa9

commit 90b1184d93c8af5d6f37605be325f2f2e51e4aa9
Author:     Michael Gmelin <grembo@FreeBSD.org>
AuthorDate: 2023-09-05 17:16:06 +0000
Commit:     Michael Gmelin <grembo@FreeBSD.org>
CommitDate: 2023-09-29 07:56:40 +0000

    devel/sccache: Support sccache-dist
    
    This allows running an sccache build cluster. Also includes patch
    to support redis over tls (rediss://).
    
    Install more documentation.
    
    PR:             273583
    Approved by:    pizzamig (maintainer)
---
 devel/sccache/Makefile               |  48 ++++---
 devel/sccache/distinfo               |  50 +++----
 devel/sccache/files/patch-Cargo.lock | 244 ++++++++++++++++++++++++++++++++++-
 devel/sccache/files/patch-Cargo.toml |  30 ++++-
 devel/sccache/files/pkg-message.in   |  11 ++
 5 files changed, 335 insertions(+), 48 deletions(-)

diff --git a/devel/sccache/Makefile b/devel/sccache/Makefile
index 6d9c0f2fbf83..58b54cca3723 100644
--- a/devel/sccache/Makefile
+++ b/devel/sccache/Makefile
@@ -17,18 +17,25 @@ ONLY_FOR_ARCHS_REASON=	ring crate not ported to other architectures
 
 USES=		cargo ssl
 
-LIB_DEPENDS+=libzstd.so:archivers/zstd
+LIB_DEPENDS+=	libzstd.so:archivers/zstd
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	mozilla
 
-OPTIONS_DEFINE=	DOCS
+OPTIONS_DEFINE=		DOCS
 OPTIONS_DEFAULT=	DOCS
 
-PLIST_FILES=	bin/sccache
-PORTDOCS=	README.md
+PLIST_FILES=	bin/sccache \
+		bin/sccache-dist
+PORTDOCS=	README.md docs/Architecture.md docs/Azure.md docs/Caching.md \
+		docs/Configuration.md docs/Distributed.md \
+		docs/DistributedFreeBSD.md docs/DistributedQuickstart.md \
+		docs/GHA.md docs/Gcs.md docs/Jenkins.md docs/Local.md \
+		docs/Memcached.md docs/Redis.md docs/Releasing.md \
+		docs/ResponseFiles.md docs/Rust.md docs/S3.md docs/Webdav.md
+SUB_FILES=	pkg-message
 
-CARGO_FEATURES=	all
+CARGO_FEATURES=	dist-client,dist-server
 CARGO_CRATES=	addr2line-0.19.0 \
 		adler-1.0.2 \
 		aho-corasick-0.7.20 \
@@ -36,7 +43,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		android_system_properties-0.1.5 \
 		anstyle-0.3.5 \
 		anstyle-1.0.0 \
-		anyhow-1.0.70 \
+		anyhow-1.0.71 \
 		ar-0.9.0 \
 		arc-swap-1.5.1 \
 		arrayref-0.3.6 \
@@ -47,7 +54,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		async-compat-0.2.1 \
 		async-trait-0.1.68 \
 		autocfg-1.1.0 \
-		backon-0.4.0 \
+		backon-0.4.1 \
 		backtrace-0.3.67 \
 		base64-0.13.1 \
 		base64-0.21.0 \
@@ -110,7 +117,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		errno-0.3.1 \
 		errno-dragonfly-0.1.2 \
 		error-chain-0.12.4 \
-		fastrand-1.8.0 \
+		fastrand-1.9.0 \
 		filetime-0.2.21 \
 		flagset-0.4.3 \
 		flate2-1.0.26 \
@@ -205,7 +212,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		number_prefix-0.4.0 \
 		object-0.30.3 \
 		once_cell-1.17.1 \
-		opendal-0.37.0 \
+		opendal-0.39.0 \
 		openssl-0.10.55 \
 		openssl-macros-0.1.0 \
 		openssl-probe-0.1.5 \
@@ -231,21 +238,20 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		proc-macro-error-1.0.4 \
 		proc-macro-error-attr-1.0.4 \
 		proc-macro-hack-0.5.20+deprecated \
-		proc-macro2-1.0.56 \
+		proc-macro2-1.0.63 \
 		quick-error-1.2.3 \
-		quick-xml-0.27.1 \
-		quick-xml-0.28.1 \
+		quick-xml-0.29.0 \
 		quote-1.0.26 \
 		rand-0.8.5 \
 		rand_chacha-0.3.1 \
 		rand_core-0.6.4 \
-		redis-0.22.1 \
+		redis-0.23.3 \
 		redox_syscall-0.2.16 \
 		redox_users-0.4.3 \
 		regex-1.7.3 \
 		regex-automata-0.1.10 \
 		regex-syntax-0.6.29 \
-		reqsign-0.13.0 \
+		reqsign-0.14.1 \
 		reqwest-0.11.18 \
 		resolv-conf-0.7.0 \
 		retry-2.0.0 \
@@ -258,10 +264,10 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		rustix-0.36.4 \
 		rustix-0.37.7 \
 		rustls-0.20.7 \
-		rustls-0.21.1 \
+		rustls-0.21.7 \
 		rustls-native-certs-0.6.2 \
 		rustls-pemfile-1.0.1 \
-		rustls-webpki-0.100.1 \
+		rustls-webpki-0.101.4 \
 		ryu-1.0.11 \
 		safemem-0.3.3 \
 		same-file-1.0.6 \
@@ -270,7 +276,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		sct-0.7.0 \
 		security-framework-2.7.0 \
 		security-framework-sys-2.6.1 \
-		semver-1.0.16 \
+		semver-1.0.17 \
 		serde-1.0.159 \
 		serde_derive-1.0.159 \
 		serde_json-1.0.94 \
@@ -321,6 +327,7 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		tokio-1.28.2 \
 		tokio-macros-2.1.0 \
 		tokio-native-tls-0.3.0 \
+		tokio-retry-0.3.0 \
 		tokio-rustls-0.23.4 \
 		tokio-rustls-0.24.0 \
 		tokio-serde-0.8.0 \
@@ -409,9 +416,12 @@ CARGO_CRATES=	addr2line-0.19.0 \
 		zstd-sys-2.0.7+zstd.1.5.4
 
 do-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}/docs
+.for f in ${PORTDOCS}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}/${f}
+.endfor
 
 post-install:
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/sccache
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/sccache-dist
 .include <bsd.port.mk>
diff --git a/devel/sccache/distinfo b/devel/sccache/distinfo
index 689ec5180c0a..885e6bc66ba0 100644
--- a/devel/sccache/distinfo
+++ b/devel/sccache/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1690133956
+TIMESTAMP = 1693932012
 SHA256 (rust/crates/addr2line-0.19.0.crate) = a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97
 SIZE (rust/crates/addr2line-0.19.0.crate) = 33210
 SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
@@ -13,8 +13,8 @@ SHA256 (rust/crates/anstyle-0.3.5.crate) = 23ea9e81bd02e310c216d080f6223c1790122
 SIZE (rust/crates/anstyle-0.3.5.crate) = 14272
 SHA256 (rust/crates/anstyle-1.0.0.crate) = 41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d
 SIZE (rust/crates/anstyle-1.0.0.crate) = 13972
-SHA256 (rust/crates/anyhow-1.0.70.crate) = 7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4
-SIZE (rust/crates/anyhow-1.0.70.crate) = 43803
+SHA256 (rust/crates/anyhow-1.0.71.crate) = 9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8
+SIZE (rust/crates/anyhow-1.0.71.crate) = 43808
 SHA256 (rust/crates/ar-0.9.0.crate) = d67af77d68a931ecd5cbd8a3b5987d63a1d1d1278f7f6a60ae33db485cdebb69
 SIZE (rust/crates/ar-0.9.0.crate) = 14636
 SHA256 (rust/crates/arc-swap-1.5.1.crate) = 983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164
@@ -35,8 +35,8 @@ SHA256 (rust/crates/async-trait-0.1.68.crate) = b9ccdd8f2a161be9bd5c023df56f1b2a
 SIZE (rust/crates/async-trait-0.1.68.crate) = 28625
 SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
 SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
-SHA256 (rust/crates/backon-0.4.0.crate) = f34fac4d7cdaefa2deded0eda2d5d59dbfd43370ff3f856209e72340ae84c294
-SIZE (rust/crates/backon-0.4.0.crate) = 12070
+SHA256 (rust/crates/backon-0.4.1.crate) = 0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9
+SIZE (rust/crates/backon-0.4.1.crate) = 21485
 SHA256 (rust/crates/backtrace-0.3.67.crate) = 233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca
 SIZE (rust/crates/backtrace-0.3.67.crate) = 78564
 SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
@@ -161,8 +161,8 @@ SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d25187
 SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
 SHA256 (rust/crates/error-chain-0.12.4.crate) = 2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc
 SIZE (rust/crates/error-chain-0.12.4.crate) = 29274
-SHA256 (rust/crates/fastrand-1.8.0.crate) = a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499
-SIZE (rust/crates/fastrand-1.8.0.crate) = 11369
+SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
+SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
 SHA256 (rust/crates/filetime-0.2.21.crate) = 5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153
 SIZE (rust/crates/filetime-0.2.21.crate) = 15026
 SHA256 (rust/crates/flagset-0.4.3.crate) = cda653ca797810c02f7ca4b804b40b8b95ae046eb989d356bce17919a8c25499
@@ -351,8 +351,8 @@ SHA256 (rust/crates/object-0.30.3.crate) = ea86265d3d3dcb6a27fc51bd29a4bf387fae9
 SIZE (rust/crates/object-0.30.3.crate) = 258901
 SHA256 (rust/crates/once_cell-1.17.1.crate) = b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3
 SIZE (rust/crates/once_cell-1.17.1.crate) = 32856
-SHA256 (rust/crates/opendal-0.37.0.crate) = 6a37de9fe637d53550bf3f76d5c731f69cb6f9685ada6afd390ada98994a3f91
-SIZE (rust/crates/opendal-0.37.0.crate) = 402485
+SHA256 (rust/crates/opendal-0.39.0.crate) = 1ad95e460e5976ab1b74f398ab856c59f8417b3dd32202329e3491dcbe3a6b84
+SIZE (rust/crates/opendal-0.39.0.crate) = 425118
 SHA256 (rust/crates/openssl-0.10.55.crate) = 345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d
 SIZE (rust/crates/openssl-0.10.55.crate) = 258750
 SHA256 (rust/crates/openssl-macros-0.1.0.crate) = b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c
@@ -403,14 +403,12 @@ SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b1
 SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
 SHA256 (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068
 SIZE (rust/crates/proc-macro-hack-0.5.20+deprecated.crate) = 15045
-SHA256 (rust/crates/proc-macro2-1.0.56.crate) = 2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435
-SIZE (rust/crates/proc-macro2-1.0.56.crate) = 44454
+SHA256 (rust/crates/proc-macro2-1.0.63.crate) = 7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb
+SIZE (rust/crates/proc-macro2-1.0.63.crate) = 44867
 SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0
 SIZE (rust/crates/quick-error-1.2.3.crate) = 15066
-SHA256 (rust/crates/quick-xml-0.27.1.crate) = ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41
-SIZE (rust/crates/quick-xml-0.27.1.crate) = 146699
-SHA256 (rust/crates/quick-xml-0.28.1.crate) = e5c1a97b1bc42b1d550bfb48d4262153fe400a12bab1511821736f7eac76d7e2
-SIZE (rust/crates/quick-xml-0.28.1.crate) = 155431
+SHA256 (rust/crates/quick-xml-0.29.0.crate) = 81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51
+SIZE (rust/crates/quick-xml-0.29.0.crate) = 160308
 SHA256 (rust/crates/quote-1.0.26.crate) = 4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc
 SIZE (rust/crates/quote-1.0.26.crate) = 28397
 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
@@ -419,8 +417,8 @@ SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4
 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
 SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
 SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
-SHA256 (rust/crates/redis-0.22.1.crate) = 513b3649f1a111c17954296e4a3b9eecb108b766c803e2b99f179ebe27005985
-SIZE (rust/crates/redis-0.22.1.crate) = 138512
+SHA256 (rust/crates/redis-0.23.3.crate) = 4f49cdc0bb3f412bf8e7d1bd90fe1d9eb10bc5c399ba90973c14662a27b3f8ba
+SIZE (rust/crates/redis-0.23.3.crate) = 184669
 SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
 SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
 SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
@@ -431,8 +429,8 @@ SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142
 SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
 SHA256 (rust/crates/regex-syntax-0.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1
 SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752
-SHA256 (rust/crates/reqsign-0.13.0.crate) = b6cb65eb3405f9c2de5c18bfc37338d6bbdb2c35eb8eb0e946208cbb564e4833
-SIZE (rust/crates/reqsign-0.13.0.crate) = 62572
+SHA256 (rust/crates/reqsign-0.14.1.crate) = 3228e570df74d69d3d3236a71371f1edd748a3e4eb728ea1f29d403bc10fc727
+SIZE (rust/crates/reqsign-0.14.1.crate) = 64205
 SHA256 (rust/crates/reqwest-0.11.18.crate) = cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55
 SIZE (rust/crates/reqwest-0.11.18.crate) = 154387
 SHA256 (rust/crates/resolv-conf-0.7.0.crate) = 52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00
@@ -457,14 +455,14 @@ SHA256 (rust/crates/rustix-0.37.7.crate) = 2aae838e49b3d63e9274e1c01833cc8139d3f
 SIZE (rust/crates/rustix-0.37.7.crate) = 307751
 SHA256 (rust/crates/rustls-0.20.7.crate) = 539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c
 SIZE (rust/crates/rustls-0.20.7.crate) = 268469
-SHA256 (rust/crates/rustls-0.21.1.crate) = c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e
-SIZE (rust/crates/rustls-0.21.1.crate) = 275001
+SHA256 (rust/crates/rustls-0.21.7.crate) = cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8
+SIZE (rust/crates/rustls-0.21.7.crate) = 283818
 SHA256 (rust/crates/rustls-native-certs-0.6.2.crate) = 0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50
 SIZE (rust/crates/rustls-native-certs-0.6.2.crate) = 22089
 SHA256 (rust/crates/rustls-pemfile-1.0.1.crate) = 0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55
 SIZE (rust/crates/rustls-pemfile-1.0.1.crate) = 19171
-SHA256 (rust/crates/rustls-webpki-0.100.1.crate) = d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b
-SIZE (rust/crates/rustls-webpki-0.100.1.crate) = 70719
+SHA256 (rust/crates/rustls-webpki-0.101.4.crate) = 7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d
+SIZE (rust/crates/rustls-webpki-0.101.4.crate) = 164324
 SHA256 (rust/crates/ryu-1.0.11.crate) = 4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09
 SIZE (rust/crates/ryu-1.0.11.crate) = 47007
 SHA256 (rust/crates/safemem-0.3.3.crate) = ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072
@@ -481,8 +479,8 @@ SHA256 (rust/crates/security-framework-2.7.0.crate) = 2bc1bb97804af6631813c55739
 SIZE (rust/crates/security-framework-2.7.0.crate) = 72601
 SHA256 (rust/crates/security-framework-sys-2.6.1.crate) = 0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556
 SIZE (rust/crates/security-framework-sys-2.6.1.crate) = 17717
-SHA256 (rust/crates/semver-1.0.16.crate) = 58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a
-SIZE (rust/crates/semver-1.0.16.crate) = 29850
+SHA256 (rust/crates/semver-1.0.17.crate) = bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed
+SIZE (rust/crates/semver-1.0.17.crate) = 29685
 SHA256 (rust/crates/serde-1.0.159.crate) = 3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065
 SIZE (rust/crates/serde-1.0.159.crate) = 77014
 SHA256 (rust/crates/serde_derive-1.0.159.crate) = 4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585
@@ -583,6 +581,8 @@ SHA256 (rust/crates/tokio-macros-2.1.0.crate) = 630bdcf245f78637c13ec01ffae6187c
 SIZE (rust/crates/tokio-macros-2.1.0.crate) = 11472
 SHA256 (rust/crates/tokio-native-tls-0.3.0.crate) = f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b
 SIZE (rust/crates/tokio-native-tls-0.3.0.crate) = 20759
+SHA256 (rust/crates/tokio-retry-0.3.0.crate) = 7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f
+SIZE (rust/crates/tokio-retry-0.3.0.crate) = 6146
 SHA256 (rust/crates/tokio-rustls-0.23.4.crate) = c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59
 SIZE (rust/crates/tokio-rustls-0.23.4.crate) = 27024
 SHA256 (rust/crates/tokio-rustls-0.24.0.crate) = e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5
diff --git a/devel/sccache/files/patch-Cargo.lock b/devel/sccache/files/patch-Cargo.lock
index b2c39994437d..4dfcacac6b8c 100644
--- a/devel/sccache/files/patch-Cargo.lock
+++ b/devel/sccache/files/patch-Cargo.lock
@@ -1,6 +1,78 @@
 --- Cargo.lock.orig	2023-06-27 08:23:13 UTC
 +++ Cargo.lock
-@@ -1702,15 +1702,6 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178
+@@ -55,9 +55,9 @@ checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc6
+ 
+ [[package]]
+ name = "anyhow"
+-version = "1.0.70"
++version = "1.0.71"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
++checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+ dependencies = [
+  "backtrace",
+ ]
+@@ -145,13 +145,13 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b
+ 
+ [[package]]
+ name = "backon"
+-version = "0.4.0"
++version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f34fac4d7cdaefa2deded0eda2d5d59dbfd43370ff3f856209e72340ae84c294"
++checksum = "0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9"
+ dependencies = [
+- "futures",
++ "fastrand",
++ "futures-core",
+  "pin-project",
+- "rand",
+  "tokio",
+ ]
+ 
+@@ -734,9 +734,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "fastrand"
+-version = "1.8.0"
++version = "1.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
++checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+ dependencies = [
+  "instant",
+ ]
+@@ -1119,7 +1119,7 @@ checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d10
+ dependencies = [
+  "http",
+  "hyper",
+- "rustls 0.21.1",
++ "rustls 0.21.7",
+  "tokio",
+  "tokio-rustls 0.24.0",
+ ]
+@@ -1636,9 +1636,9 @@ checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f
+ 
+ [[package]]
+ name = "opendal"
+-version = "0.37.0"
++version = "0.39.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6a37de9fe637d53550bf3f76d5c731f69cb6f9685ada6afd390ada98994a3f91"
++checksum = "1ad95e460e5976ab1b74f398ab856c59f8417b3dd32202329e3491dcbe3a6b84"
+ dependencies = [
+  "anyhow",
+  "async-compat",
+@@ -1658,7 +1658,7 @@ dependencies = [
+  "parking_lot",
+  "percent-encoding",
+  "pin-project",
+- "quick-xml 0.27.1",
++ "quick-xml",
+  "redis",
+  "reqsign",
+  "reqwest",
+@@ -1702,15 +1702,6 @@ source = "registry+https://github.com/rust-lang/crates
  checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
  
  [[package]]
@@ -16,7 +88,7 @@
  name = "openssl-sys"
  version = "0.9.90"
  source = "registry+https://github.com/rust-lang/crates.io-index"
-@@ -1718,7 +1709,6 @@ dependencies = [
+@@ -1718,7 +1709,6 @@ checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03d
  dependencies = [
   "cc",
   "libc",
@@ -24,3 +96,171 @@
   "pkg-config",
   "vcpkg",
  ]
+@@ -1914,9 +1904,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc07
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.56"
++version = "1.0.63"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
++checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+ dependencies = [
+  "unicode-ident",
+ ]
+@@ -1929,25 +1919,15 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eb
+ 
+ [[package]]
+ name = "quick-xml"
+-version = "0.27.1"
++version = "0.29.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41"
++checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+ dependencies = [
+  "memchr",
+  "serde",
+ ]
+ 
+ [[package]]
+-name = "quick-xml"
+-version = "0.28.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e5c1a97b1bc42b1d550bfb48d4262153fe400a12bab1511821736f7eac76d7e2"
+-dependencies = [
+- "memchr",
+- "serde",
+-]
+-
+-[[package]]
+ name = "quote"
+ version = "1.0.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1988,9 +1968,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "redis"
+-version = "0.22.1"
++version = "0.23.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "513b3649f1a111c17954296e4a3b9eecb108b766c803e2b99f179ebe27005985"
++checksum = "4f49cdc0bb3f412bf8e7d1bd90fe1d9eb10bc5c399ba90973c14662a27b3f8ba"
+ dependencies = [
+  "arc-swap",
+  "async-trait",
+@@ -2001,9 +1981,14 @@ dependencies = [
+  "itoa",
+  "percent-encoding",
+  "pin-project-lite",
++ "rustls 0.21.7",
++ "rustls-native-certs",
+  "ryu",
+  "sha1_smol",
++ "socket2",
+  "tokio",
++ "tokio-retry",
++ "tokio-rustls 0.24.0",
+  "tokio-util",
+  "url",
+ ]
+@@ -2053,9 +2038,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9
+ 
+ [[package]]
+ name = "reqsign"
+-version = "0.13.0"
++version = "0.14.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b6cb65eb3405f9c2de5c18bfc37338d6bbdb2c35eb8eb0e946208cbb564e4833"
++checksum = "3228e570df74d69d3d3236a71371f1edd748a3e4eb728ea1f29d403bc10fc727"
+ dependencies = [
+  "anyhow",
+  "async-trait",
+@@ -2070,7 +2055,7 @@ dependencies = [
+  "log",
+  "once_cell",
+  "percent-encoding",
+- "quick-xml 0.28.1",
++ "quick-xml",
+  "rand",
+  "reqwest",
+  "rsa",
+@@ -2107,7 +2092,7 @@ dependencies = [
+  "once_cell",
+  "percent-encoding",
+  "pin-project-lite",
+- "rustls 0.21.1",
++ "rustls 0.21.7",
+  "rustls-native-certs",
+  "rustls-pemfile",
+  "serde",
+@@ -2279,9 +2264,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustls"
+-version = "0.21.1"
++version = "0.21.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e"
++checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+ dependencies = [
+  "log",
+  "ring",
+@@ -2312,9 +2297,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustls-webpki"
+-version = "0.100.1"
++version = "0.101.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
++checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
+ dependencies = [
+  "ring",
+  "untrusted",
+@@ -2349,6 +2334,7 @@ dependencies = [
+  "ar",
+  "assert_cmd",
+  "async-trait",
++ "backon",
+  "base64 0.21.0",
+  "bincode",
+  "blake3",
+@@ -2470,9 +2456,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "semver"
+-version = "1.0.16"
++version = "1.0.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
++checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+ 
+ [[package]]
+ name = "serde"
+@@ -2985,6 +2971,17 @@ dependencies = [
+ ]
+ 
+ [[package]]
++name = "tokio-retry"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f"
++dependencies = [
++ "pin-project",
++ "rand",
++ "tokio",
++]
++
++[[package]]
+ name = "tokio-rustls"
+ version = "0.23.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -3001,7 +2998,7 @@ version = "0.24.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
+ dependencies = [
+- "rustls 0.21.1",
++ "rustls 0.21.7",
+  "tokio",
+ ]
+ 
diff --git a/devel/sccache/files/patch-Cargo.toml b/devel/sccache/files/patch-Cargo.toml
index 7d8ee01cef89..50aa20ec2e50 100644
--- a/devel/sccache/files/patch-Cargo.toml
+++ b/devel/sccache/files/patch-Cargo.toml
@@ -1,7 +1,33 @@
 --- Cargo.toml.orig	2023-06-27 08:23:13 UTC
 +++ Cargo.toml
-@@ -154,10 +154,6 @@ webdav = ["opendal"]
- redis = ["url", "opendal/services-redis"]
+@@ -27,6 +27,7 @@ strip = true
+ anyhow = { version = "1.0", features = ["backtrace"] }
+ ar = "0.9"
+ async-trait = "0.1"
++backon = "0.4.1"
+ base64 = "0.21"
+ bincode = "1"
+ blake3 = "1"
+@@ -56,11 +57,11 @@ log = "0.4"
+ num_cpus = "1.15"
+ number_prefix = "0.4"
+ once_cell = "1.17"
+-opendal = { version = "0.37.0", optional = true }
++opendal = { version = "0.39.0", optional = true }
+ openssl = { version = "0.10.55", optional = true }
+ rand = "0.8.4"
+ regex = "1.7.3"
+-reqsign = { version = "0.13.0", optional = true }
++reqsign = { version = "0.14.1", optional = true }
+ reqwest = { version = "0.11", features = [
+   "json",
+   "blocking",
+@@ -151,13 +152,9 @@ gcs = ["opendal", "reqsign", "url", "reqwest/blocking"
+ gha = ["opendal"]
+ memcached = ["opendal/services-memcached"]
+ native-zlib = []
+-redis = ["url", "opendal/services-redis"]
++redis = ["url", "opendal/services-redis", "opendal/services-redis-rustls"]
  s3 = ["opendal", "reqsign"]
  webdav = ["opendal"]
 -# Enable features that will build a vendored version of openssl and
diff --git a/devel/sccache/files/pkg-message.in b/devel/sccache/files/pkg-message.in
new file mode 100644
index 000000000000..b7de35a66afa
--- /dev/null
+++ b/devel/sccache/files/pkg-message.in
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+When using sccache as a build server (sccache-dist server), make sure
+to follow the instruction in:
+
+  %%DOCSDIR%%docs/DistributedFreeBSD.md
+                              
+EOM
+}
+]