git: 4066838a867e - main - www/garage: New port: Open-source distributed storage service

From: Ashish SHUKLA <ashish_at_FreeBSD.org>
Date: Tue, 08 Feb 2022 20:59:48 UTC
The branch main has been updated by ashish:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4066838a867e8e9ebd15914d590afb57cf2f0b55

commit 4066838a867e8e9ebd15914d590afb57cf2f0b55
Author:     Ashish SHUKLA <ashish@FreeBSD.org>
AuthorDate: 2022-02-08 19:25:26 +0000
Commit:     Ashish SHUKLA <ashish@FreeBSD.org>
CommitDate: 2022-02-08 20:59:36 +0000

    www/garage: New port: Open-source distributed storage service
    
    An open-source distributed storage service you can
    self-host to fullfill many needs.
    
    Goals:
    
     - Self-contained
     - Fast to deploy, safe to operate
     - Deploy everywhere on every machine
     - Highly resilient
    
    WWW: https://garagehq.deuxfleurs.fr/
---
 www/Makefile                              |   1 +
 www/garage/Makefile                       | 202 +++++++++++++++++
 www/garage/distinfo                       | 349 ++++++++++++++++++++++++++++++
 www/garage/files/patch-src_garage_main.rs |  13 ++
 www/garage/files/pkg-message.in           |   9 +
 www/garage/pkg-descr                      |  11 +
 www/garage/pkg-plist                      | 112 ++++++++++
 7 files changed, 697 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index 49dd3c6efe11..89924d89b41e 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -179,6 +179,7 @@
     SUBDIR += g-gcl
     SUBDIR += gallery-dl
     SUBDIR += gallery2
+    SUBDIR += garage
     SUBDIR += gatling
     SUBDIR += gauche-makiki
     SUBDIR += gecko-mediaplayer
diff --git a/www/garage/Makefile b/www/garage/Makefile
new file mode 100644
index 000000000000..dfc17fb460e0
--- /dev/null
+++ b/www/garage/Makefile
@@ -0,0 +1,202 @@
+PORTNAME=	garage
+DISTVERSION=	0.6.0
+CATEGORIES=	www
+MASTER_SITES=	https://git.deuxfleurs.fr/Deuxfleurs/${PORTNAME}/archive/v${PORTVERSION}.tar.gz?dummy=/
+DISTFILES=	${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}
+
+MAINTAINER=	ashish@FreeBSD.org
+COMMENT=	Open-source distributed storage service
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libsodium.so:security/libsodium
+
+USES=		cargo pkgconfig
+CARGO_ENV+=	SODIUM_USE_PKG_CONFIG=1
+CARGO_INSTALL_PATH=	src/garage
+CARGO_CRATES=	aho-corasick-0.7.18 \
+		arc-swap-1.4.0 \
+		arrayvec-0.5.2 \
+		async-trait-0.1.51 \
+		atty-0.2.14 \
+		autocfg-1.0.1 \
+		base64-0.13.0 \
+		bitflags-1.3.2 \
+		blake2-0.9.2 \
+		block-buffer-0.9.0 \
+		byteorder-1.4.3 \
+		bytes-0.6.0 \
+		bytes-1.1.0 \
+		cc-1.0.71 \
+		cfg-if-1.0.0 \
+		chrono-0.4.19 \
+		clap-2.33.3 \
+		cpufeatures-0.2.1 \
+		crc32fast-1.2.1 \
+		crossbeam-epoch-0.9.5 \
+		crossbeam-utils-0.8.5 \
+		crypto-mac-0.8.0 \
+		crypto-mac-0.10.1 \
+		digest-0.9.0 \
+		env_logger-0.7.1 \
+		err-derive-0.2.4 \
+		err-derive-0.3.0 \
+		fnv-1.0.7 \
+		form_urlencoded-1.0.1 \
+		fs2-0.4.3 \
+		futures-0.3.17 \
+		futures-channel-0.3.17 \
+		futures-core-0.3.17 \
+		futures-executor-0.3.17 \
+		futures-io-0.3.17 \
+		futures-macro-0.3.17 \
+		futures-sink-0.3.17 \
+		futures-task-0.3.17 \
+		futures-util-0.3.17 \
+		fxhash-0.2.1 \
+		garage_model-0.5.1 \
+		garage_rpc-0.5.1 \
+		garage_table-0.5.1 \
+		garage_util-0.5.1 \
+		generic-array-0.14.4 \
+		gethostname-0.2.1 \
+		getrandom-0.2.3 \
+		git-version-0.3.5 \
+		git-version-macro-0.3.5 \
+		heck-0.3.3 \
+		hermit-abi-0.1.19 \
+		hex-0.4.3 \
+		hexdump-0.1.1 \
+		hmac-0.10.1 \
+		http-0.2.5 \
+		http-body-0.4.3 \
+		http-range-0.1.4 \
+		httparse-1.5.1 \
+		httpdate-0.3.2 \
+		httpdate-1.0.1 \
+		humantime-1.3.0 \
+		hyper-0.14.13 \
+		idna-0.2.3 \
+		instant-0.1.11 \
+		itertools-0.4.19 \
+		itoa-0.4.8 \
+		jobserver-0.1.24 \
+		kuska-handshake-0.2.0 \
+		kuska-sodiumoxide-0.2.5-0 \
+		lazy_static-1.4.0 \
+		libc-0.2.103 \
+		libsodium-sys-0.2.7 \
+		lock_api-0.4.5 \
+		log-0.4.14 \
+		matches-0.1.9 \
+		md-5-0.9.1 \
+		memchr-2.4.1 \
+		memoffset-0.6.4 \
+		minimal-lexical-0.2.1 \
+		mio-0.7.13 \
+		miow-0.3.7 \
+		netapp-0.3.0 \
+		nom-7.1.0 \
+		ntapi-0.3.6 \
+		num-integer-0.1.44 \
+		num-traits-0.2.14 \
+		num_cpus-1.13.0 \
+		once_cell-1.8.0 \
+		opaque-debug-0.3.0 \
+		parking_lot-0.11.2 \
+		parking_lot_core-0.8.5 \
+		percent-encoding-2.1.0 \
+		pin-project-1.0.8 \
+		pin-project-internal-1.0.8 \
+		pin-project-lite-0.2.7 \
+		pin-utils-0.1.0 \
+		pkg-config-0.3.20 \
+		ppv-lite86-0.2.14 \
+		pretty_env_logger-0.4.0 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro-hack-0.5.19 \
+		proc-macro-nested-0.1.7 \
+		proc-macro2-1.0.30 \
+		quick-error-1.2.3 \
+		quick-xml-0.21.0 \
+		quote-1.0.10 \
+		rand-0.8.4 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.3 \
+		rand_hc-0.3.1 \
+		redox_syscall-0.2.10 \
+		regex-1.5.4 \
+		regex-syntax-0.6.25 \
+		rmp-0.8.10 \
+		rmp-serde-0.14.4 \
+		rmp-serde-0.15.5 \
+		roxmltree-0.14.1 \
+		rustversion-1.0.5 \
+		ryu-1.0.5 \
+		same-file-1.0.6 \
+		scopeguard-1.1.0 \
+		serde-1.0.130 \
+		serde_bytes-0.11.5 \
+		serde_derive-1.0.130 \
+		serde_json-1.0.68 \
+		sha2-0.9.8 \
+		signal-hook-registry-1.4.0 \
+		slab-0.4.5 \
+		sled-0.34.7 \
+		smallvec-1.7.0 \
+		socket2-0.4.2 \
+		structopt-0.3.23 \
+		structopt-derive-0.4.16 \
+		subtle-2.4.1 \
+		syn-1.0.80 \
+		synstructure-0.12.6 \
+		termcolor-1.1.2 \
+		textwrap-0.11.0 \
+		thiserror-1.0.30 \
+		thiserror-impl-1.0.30 \
+		time-0.1.43 \
+		tinyvec-1.5.0 \
+		tinyvec_macros-0.1.0 \
+		tokio-1.12.0 \
+		tokio-macros-1.5.0 \
+		tokio-stream-0.1.7 \
+		tokio-util-0.6.8 \
+		toml-0.5.8 \
+		tower-service-0.3.1 \
+		tracing-0.1.29 \
+		tracing-core-0.1.21 \
+		try-lock-0.2.3 \
+		typenum-1.14.0 \
+		unicode-bidi-0.3.7 \
+		unicode-normalization-0.1.19 \
+		unicode-segmentation-1.8.0 \
+		unicode-width-0.1.9 \
+		unicode-xid-0.2.2 \
+		url-2.2.2 \
+		version_check-0.9.3 \
+		walkdir-2.3.2 \
+		want-0.3.0 \
+		wasi-0.10.2+wasi-snapshot-preview1 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		xmlparser-0.13.3 \
+		xxhash-rust-0.8.2 \
+		zstd-0.9.0+zstd.1.5.0 \
+		zstd-safe-4.1.1+zstd.1.5.0 \
+		zstd-sys-1.6.1+zstd.1.5.0
+SUB_FILES=	pkg-message
+WRKSRC=		${WRKDIR}/${PORTNAME}
+
+post-patch:
+	${GREP} -F -Rl /etc/garage ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
+		-e 's,/etc/garage,${ETCDIR},g'
+
+post-install:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} "! -name *\.bak"
+
+.include <bsd.port.mk>
diff --git a/www/garage/distinfo b/www/garage/distinfo
new file mode 100644
index 000000000000..cd1ad9fb0dc2
--- /dev/null
+++ b/www/garage/distinfo
@@ -0,0 +1,349 @@
+TIMESTAMP = 1644334913
+SHA256 (garage-0.6.0.tar.gz) = ad7b8e91380b946c9e61b29ac962ba8f7a6baf7707c0955bdec92e1b09716072
+SIZE (garage-0.6.0.tar.gz) = 5050230
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/arc-swap-1.4.0.crate) = e6df5aef5c5830360ce5218cecb8f018af3438af5686ae945094affc86fdec63
+SIZE (rust/crates/arc-swap-1.4.0.crate) = 64384
+SHA256 (rust/crates/arrayvec-0.5.2.crate) = 23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b
+SIZE (rust/crates/arrayvec-0.5.2.crate) = 27838
+SHA256 (rust/crates/async-trait-0.1.51.crate) = 44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e
+SIZE (rust/crates/async-trait-0.1.51.crate) = 25531
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
+SIZE (rust/crates/autocfg-1.0.1.crate) = 12908
+SHA256 (rust/crates/base64-0.13.0.crate) = 904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd
+SIZE (rust/crates/base64-0.13.0.crate) = 62070
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/blake2-0.9.2.crate) = 0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174
+SIZE (rust/crates/blake2-0.9.2.crate) = 48035
+SHA256 (rust/crates/block-buffer-0.9.0.crate) = 4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4
+SIZE (rust/crates/block-buffer-0.9.0.crate) = 7108
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/bytes-0.6.0.crate) = e0dcbc35f504eb6fc275a6d20e4ebcda18cf50d40ba6fabff8c711fa16cb3b16
+SIZE (rust/crates/bytes-0.6.0.crate) = 47796
+SHA256 (rust/crates/bytes-1.1.0.crate) = c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8
+SIZE (rust/crates/bytes-1.1.0.crate) = 49640
+SHA256 (rust/crates/cc-1.0.71.crate) = 79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd
+SIZE (rust/crates/cc-1.0.71.crate) = 57452
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chrono-0.4.19.crate) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73
+SIZE (rust/crates/chrono-0.4.19.crate) = 155663
+SHA256 (rust/crates/clap-2.33.3.crate) = 37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002
+SIZE (rust/crates/clap-2.33.3.crate) = 201925
+SHA256 (rust/crates/cpufeatures-0.2.1.crate) = 95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469
+SIZE (rust/crates/cpufeatures-0.2.1.crate) = 10500
+SHA256 (rust/crates/crc32fast-1.2.1.crate) = 81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a
+SIZE (rust/crates/crc32fast-1.2.1.crate) = 38172
+SHA256 (rust/crates/crossbeam-epoch-0.9.5.crate) = 4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd
+SIZE (rust/crates/crossbeam-epoch-0.9.5.crate) = 43883
+SHA256 (rust/crates/crossbeam-utils-0.8.5.crate) = d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db
+SIZE (rust/crates/crossbeam-utils-0.8.5.crate) = 38414
+SHA256 (rust/crates/crypto-mac-0.8.0.crate) = b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab
+SIZE (rust/crates/crypto-mac-0.8.0.crate) = 9115
+SHA256 (rust/crates/crypto-mac-0.10.1.crate) = bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a
+SIZE (rust/crates/crypto-mac-0.10.1.crate) = 9531
+SHA256 (rust/crates/digest-0.9.0.crate) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066
+SIZE (rust/crates/digest-0.9.0.crate) = 13247
+SHA256 (rust/crates/env_logger-0.7.1.crate) = 44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36
+SIZE (rust/crates/env_logger-0.7.1.crate) = 32281
+SHA256 (rust/crates/err-derive-0.2.4.crate) = 22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4
+SIZE (rust/crates/err-derive-0.2.4.crate) = 14934
+SHA256 (rust/crates/err-derive-0.3.0.crate) = dcc7f65832b62ed38939f98966824eb6294911c3629b0e9a262bfb80836d9686
+SIZE (rust/crates/err-derive-0.3.0.crate) = 13152
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
+SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/fs2-0.4.3.crate) = 9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213
+SIZE (rust/crates/fs2-0.4.3.crate) = 13138
+SHA256 (rust/crates/futures-0.3.17.crate) = a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca
+SIZE (rust/crates/futures-0.3.17.crate) = 47388
+SHA256 (rust/crates/futures-channel-0.3.17.crate) = 5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888
+SIZE (rust/crates/futures-channel-0.3.17.crate) = 31765
+SHA256 (rust/crates/futures-core-0.3.17.crate) = 88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d
+SIZE (rust/crates/futures-core-0.3.17.crate) = 14478
+SHA256 (rust/crates/futures-executor-0.3.17.crate) = 45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c
+SIZE (rust/crates/futures-executor-0.3.17.crate) = 17102
+SHA256 (rust/crates/futures-io-0.3.17.crate) = 522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377
+SIZE (rust/crates/futures-io-0.3.17.crate) = 9050
+SHA256 (rust/crates/futures-macro-0.3.17.crate) = 18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb
+SIZE (rust/crates/futures-macro-0.3.17.crate) = 11830
+SHA256 (rust/crates/futures-sink-0.3.17.crate) = 36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11
+SIZE (rust/crates/futures-sink-0.3.17.crate) = 7663
+SHA256 (rust/crates/futures-task-0.3.17.crate) = 1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99
+SIZE (rust/crates/futures-task-0.3.17.crate) = 11712
+SHA256 (rust/crates/futures-util-0.3.17.crate) = 36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481
+SIZE (rust/crates/futures-util-0.3.17.crate) = 147679
+SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
+SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
+SHA256 (rust/crates/garage_model-0.5.1.crate) = 584619e8999713d73761775591ad6f01ff8c9d724f3b20984f5932f1fc7f9988
+SIZE (rust/crates/garage_model-0.5.1.crate) = 14657
+SHA256 (rust/crates/garage_rpc-0.5.1.crate) = 81e693aa4582cfe7a7ce70c07880e3662544b5d0cd68bc4b59c53febfbb8d1ec
+SIZE (rust/crates/garage_rpc-0.5.1.crate) = 16837
+SHA256 (rust/crates/garage_table-0.5.1.crate) = 5c3557f3757e2acd29eaee86804d4e6c38d2abda81b4b349d8a0d2277044265c
+SIZE (rust/crates/garage_table-0.5.1.crate) = 18559
+SHA256 (rust/crates/garage_util-0.5.1.crate) = 1e096994382447431e2f3c70e3685eb8b24c00eceff8667bb22a2a27ff17832f
+SIZE (rust/crates/garage_util-0.5.1.crate) = 13720
+SHA256 (rust/crates/generic-array-0.14.4.crate) = 501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817
+SIZE (rust/crates/generic-array-0.14.4.crate) = 28916
+SHA256 (rust/crates/gethostname-0.2.1.crate) = e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028
+SIZE (rust/crates/gethostname-0.2.1.crate) = 8988
+SHA256 (rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753
+SIZE (rust/crates/getrandom-0.2.3.crate) = 26261
+SHA256 (rust/crates/git-version-0.3.5.crate) = f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899
+SIZE (rust/crates/git-version-0.3.5.crate) = 3203
+SHA256 (rust/crates/git-version-macro-0.3.5.crate) = fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f
+SIZE (rust/crates/git-version-macro-0.3.5.crate) = 4302
+SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
+SIZE (rust/crates/heck-0.3.3.crate) = 10260
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/hexdump-0.1.1.crate) = e40283dadb02f3af778878be1d717b17b4e4ab92e1d935ab03a730b0542905f2
+SIZE (rust/crates/hexdump-0.1.1.crate) = 7965
+SHA256 (rust/crates/hmac-0.10.1.crate) = c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15
+SIZE (rust/crates/hmac-0.10.1.crate) = 11120
+SHA256 (rust/crates/http-0.2.5.crate) = 1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b
+SIZE (rust/crates/http-0.2.5.crate) = 106297
+SHA256 (rust/crates/http-body-0.4.3.crate) = 399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5
+SIZE (rust/crates/http-body-0.4.3.crate) = 7660
+SHA256 (rust/crates/http-range-0.1.4.crate) = eee9694f83d9b7c09682fdb32213682939507884e5bcf227be9aff5d644b90dc
+SIZE (rust/crates/http-range-0.1.4.crate) = 4857
+SHA256 (rust/crates/httparse-1.5.1.crate) = acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503
+SIZE (rust/crates/httparse-1.5.1.crate) = 26758
+SHA256 (rust/crates/httpdate-0.3.2.crate) = 494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47
+SIZE (rust/crates/httpdate-0.3.2.crate) = 10768
+SHA256 (rust/crates/httpdate-1.0.1.crate) = 6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440
+SIZE (rust/crates/httpdate-1.0.1.crate) = 10293
+SHA256 (rust/crates/humantime-1.3.0.crate) = df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f
+SIZE (rust/crates/humantime-1.3.0.crate) = 17020
+SHA256 (rust/crates/hyper-0.14.13.crate) = 15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593
+SIZE (rust/crates/hyper-0.14.13.crate) = 171435
+SHA256 (rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8
+SIZE (rust/crates/idna-0.2.3.crate) = 271023
+SHA256 (rust/crates/instant-0.1.11.crate) = 716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd
+SIZE (rust/crates/instant-0.1.11.crate) = 5408
+SHA256 (rust/crates/itertools-0.4.19.crate) = c4a9b56eb56058f43dc66e58f40a214b2ccbc9f3df51861b63d51dec7b65bc3f
+SIZE (rust/crates/itertools-0.4.19.crate) = 64212
+SHA256 (rust/crates/itoa-0.4.8.crate) = b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4
+SIZE (rust/crates/itoa-0.4.8.crate) = 11926
+SHA256 (rust/crates/jobserver-0.1.24.crate) = af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa
+SIZE (rust/crates/jobserver-0.1.24.crate) = 21303
+SHA256 (rust/crates/kuska-handshake-0.2.0.crate) = e33da4b69f23c2ece0b3e729d079cebdc2c0206e493e42f510f500ad81c631d5
+SIZE (rust/crates/kuska-handshake-0.2.0.crate) = 32285
+SHA256 (rust/crates/kuska-sodiumoxide-0.2.5-0.crate) = ae0f8eafdd240b722243787b51fdaf8df6693fb8621d0f7061cdba574214cf88
+SIZE (rust/crates/kuska-sodiumoxide-0.2.5-0.crate) = 2119501
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.103.crate) = dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6
+SIZE (rust/crates/libc-0.2.103.crate) = 540563
+SHA256 (rust/crates/libsodium-sys-0.2.7.crate) = 6b779387cd56adfbc02ea4a668e704f729be8d6a6abd2c27ca5ee537849a92fd
+SIZE (rust/crates/libsodium-sys-0.2.7.crate) = 4595870
+SHA256 (rust/crates/lock_api-0.4.5.crate) = 712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109
+SIZE (rust/crates/lock_api-0.4.5.crate) = 25199
+SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
+SIZE (rust/crates/log-0.4.14.crate) = 34582
+SHA256 (rust/crates/matches-0.1.9.crate) = a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f
+SIZE (rust/crates/matches-0.1.9.crate) = 2246
+SHA256 (rust/crates/md-5-0.9.1.crate) = 7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15
+SIZE (rust/crates/md-5-0.9.1.crate) = 15494
+SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a
+SIZE (rust/crates/memchr-2.4.1.crate) = 64977
+SHA256 (rust/crates/memoffset-0.6.4.crate) = 59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9
+SIZE (rust/crates/memoffset-0.6.4.crate) = 7664
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/mio-0.7.13.crate) = 8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16
+SIZE (rust/crates/mio-0.7.13.crate) = 87027
+SHA256 (rust/crates/miow-0.3.7.crate) = b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21
+SIZE (rust/crates/miow-0.3.7.crate) = 24563
+SHA256 (rust/crates/netapp-0.3.0.crate) = d202ff23744499a8e5d89a3199ca7b9a8aef9980a23b1b09d6508a8db2a118d2
+SIZE (rust/crates/netapp-0.3.0.crate) = 29672
+SHA256 (rust/crates/nom-7.1.0.crate) = 1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109
+SIZE (rust/crates/nom-7.1.0.crate) = 115647
+SHA256 (rust/crates/ntapi-0.3.6.crate) = 3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44
+SIZE (rust/crates/ntapi-0.3.6.crate) = 127221
+SHA256 (rust/crates/num-integer-0.1.44.crate) = d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db
+SIZE (rust/crates/num-integer-0.1.44.crate) = 22216
+SHA256 (rust/crates/num-traits-0.2.14.crate) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290
+SIZE (rust/crates/num-traits-0.2.14.crate) = 45476
+SHA256 (rust/crates/num_cpus-1.13.0.crate) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3
+SIZE (rust/crates/num_cpus-1.13.0.crate) = 14704
+SHA256 (rust/crates/once_cell-1.8.0.crate) = 692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56
+SIZE (rust/crates/once_cell-1.8.0.crate) = 28925
+SHA256 (rust/crates/opaque-debug-0.3.0.crate) = 624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5
+SIZE (rust/crates/opaque-debug-0.3.0.crate) = 5767
+SHA256 (rust/crates/parking_lot-0.11.2.crate) = 7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99
+SIZE (rust/crates/parking_lot-0.11.2.crate) = 39869
+SHA256 (rust/crates/parking_lot_core-0.8.5.crate) = d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216
+SIZE (rust/crates/parking_lot_core-0.8.5.crate) = 32466
+SHA256 (rust/crates/percent-encoding-2.1.0.crate) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e
+SIZE (rust/crates/percent-encoding-2.1.0.crate) = 9748
+SHA256 (rust/crates/pin-project-1.0.8.crate) = 576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08
+SIZE (rust/crates/pin-project-1.0.8.crate) = 54991
+SHA256 (rust/crates/pin-project-internal-1.0.8.crate) = 6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389
+SIZE (rust/crates/pin-project-internal-1.0.8.crate) = 27941
+SHA256 (rust/crates/pin-project-lite-0.2.7.crate) = 8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443
+SIZE (rust/crates/pin-project-lite-0.2.7.crate) = 27212
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/pkg-config-0.3.20.crate) = 7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb
+SIZE (rust/crates/pkg-config-0.3.20.crate) = 15395
+SHA256 (rust/crates/ppv-lite86-0.2.14.crate) = c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741
+SIZE (rust/crates/ppv-lite86-0.2.14.crate) = 21543
+SHA256 (rust/crates/pretty_env_logger-0.4.0.crate) = 926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d
+SIZE (rust/crates/pretty_env_logger-0.4.0.crate) = 8690
+SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
+SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
+SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
+SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
+SHA256 (rust/crates/proc-macro-hack-0.5.19.crate) = dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5
+SIZE (rust/crates/proc-macro-hack-0.5.19.crate) = 15556
+SHA256 (rust/crates/proc-macro-nested-0.1.7.crate) = bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086
+SIZE (rust/crates/proc-macro-nested-0.1.7.crate) = 6495
+SHA256 (rust/crates/proc-macro2-1.0.30.crate) = edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70
+SIZE (rust/crates/proc-macro2-1.0.30.crate) = 39155
+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.21.0.crate) = 0452695941410a58c8ce4391707ba9bad26a247173bd9886a05a5e8a8babec75
+SIZE (rust/crates/quick-xml-0.21.0.crate) = 129013
+SHA256 (rust/crates/quote-1.0.10.crate) = 38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05
+SIZE (rust/crates/quote-1.0.10.crate) = 29960
+SHA256 (rust/crates/rand-0.8.4.crate) = 2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8
+SIZE (rust/crates/rand-0.8.4.crate) = 87406
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_core-0.6.3.crate) = d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7
+SIZE (rust/crates/rand_core-0.6.3.crate) = 21938
+SHA256 (rust/crates/rand_hc-0.3.1.crate) = d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7
+SIZE (rust/crates/rand_hc-0.3.1.crate) = 11891
+SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff
+SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582
+SHA256 (rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461
+SIZE (rust/crates/regex-1.5.4.crate) = 236581
+SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
+SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/rmp-0.8.10.crate) = 4f55e5fa1446c4d5dd1f5daeed2a4fe193071771a2636274d0d7a3b082aa7ad6
+SIZE (rust/crates/rmp-0.8.10.crate) = 23541
+SHA256 (rust/crates/rmp-serde-0.14.4.crate) = 4ce7d70c926fe472aed493b902010bccc17fa9f7284145cb8772fd22fdb052d8
+SIZE (rust/crates/rmp-serde-0.14.4.crate) = 24668
+SHA256 (rust/crates/rmp-serde-0.15.5.crate) = 723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d
+SIZE (rust/crates/rmp-serde-0.15.5.crate) = 28657
+SHA256 (rust/crates/roxmltree-0.14.1.crate) = 921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b
+SIZE (rust/crates/roxmltree-0.14.1.crate) = 39163
+SHA256 (rust/crates/rustversion-1.0.5.crate) = 61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088
+SIZE (rust/crates/rustversion-1.0.5.crate) = 16984
+SHA256 (rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e
+SIZE (rust/crates/ryu-1.0.5.crate) = 49570
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/serde-1.0.130.crate) = f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913
+SIZE (rust/crates/serde-1.0.130.crate) = 75305
+SHA256 (rust/crates/serde_bytes-0.11.5.crate) = 16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9
+SIZE (rust/crates/serde_bytes-0.11.5.crate) = 11067
+SHA256 (rust/crates/serde_derive-1.0.130.crate) = d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b
+SIZE (rust/crates/serde_derive-1.0.130.crate) = 54703
+SHA256 (rust/crates/serde_json-1.0.68.crate) = 0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8
+SIZE (rust/crates/serde_json-1.0.68.crate) = 114986
+SHA256 (rust/crates/sha2-0.9.8.crate) = b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa
+SIZE (rust/crates/sha2-0.9.8.crate) = 22132
+SHA256 (rust/crates/signal-hook-registry-1.4.0.crate) = e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0
+SIZE (rust/crates/signal-hook-registry-1.4.0.crate) = 17912
+SHA256 (rust/crates/slab-0.4.5.crate) = 9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5
+SIZE (rust/crates/slab-0.4.5.crate) = 15888
+SHA256 (rust/crates/sled-0.34.7.crate) = 7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935
+SIZE (rust/crates/sled-0.34.7.crate) = 485296
+SHA256 (rust/crates/smallvec-1.7.0.crate) = 1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309
+SIZE (rust/crates/smallvec-1.7.0.crate) = 27459
+SHA256 (rust/crates/socket2-0.4.2.crate) = 5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516
+SIZE (rust/crates/socket2-0.4.2.crate) = 41721
+SHA256 (rust/crates/structopt-0.3.23.crate) = bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa
+SIZE (rust/crates/structopt-0.3.23.crate) = 52029
+SHA256 (rust/crates/structopt-derive-0.4.16.crate) = 134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba
+SIZE (rust/crates/structopt-derive-0.4.16.crate) = 20996
+SHA256 (rust/crates/subtle-2.4.1.crate) = 6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601
+SIZE (rust/crates/subtle-2.4.1.crate) = 12630
+SHA256 (rust/crates/syn-1.0.80.crate) = d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194
+SIZE (rust/crates/syn-1.0.80.crate) = 234102
+SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
+SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/thiserror-1.0.30.crate) = 854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417
+SIZE (rust/crates/thiserror-1.0.30.crate) = 17748
+SHA256 (rust/crates/thiserror-impl-1.0.30.crate) = aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b
+SIZE (rust/crates/thiserror-impl-1.0.30.crate) = 15230
+SHA256 (rust/crates/time-0.1.43.crate) = ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438
+SIZE (rust/crates/time-0.1.43.crate) = 28653
+SHA256 (rust/crates/tinyvec-1.5.0.crate) = f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7
+SIZE (rust/crates/tinyvec-1.5.0.crate) = 42745
+SHA256 (rust/crates/tinyvec_macros-0.1.0.crate) = cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c
+SIZE (rust/crates/tinyvec_macros-0.1.0.crate) = 1817
+SHA256 (rust/crates/tokio-1.12.0.crate) = c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc
+SIZE (rust/crates/tokio-1.12.0.crate) = 522732
+SHA256 (rust/crates/tokio-macros-1.5.0.crate) = b2dd85aeaba7b68df939bd357c6afb36c87951be9e80bf9c859f2fc3e9fca0fd
+SIZE (rust/crates/tokio-macros-1.5.0.crate) = 8582
+SHA256 (rust/crates/tokio-stream-0.1.7.crate) = 7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f
+SIZE (rust/crates/tokio-stream-0.1.7.crate) = 30323
+SHA256 (rust/crates/tokio-util-0.6.8.crate) = 08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd
+SIZE (rust/crates/tokio-util-0.6.8.crate) = 74116
+SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
+SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/tower-service-0.3.1.crate) = 360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6
+SIZE (rust/crates/tower-service-0.3.1.crate) = 6299
+SHA256 (rust/crates/tracing-0.1.29.crate) = 375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105
+SIZE (rust/crates/tracing-0.1.29.crate) = 72444
+SHA256 (rust/crates/tracing-core-0.1.21.crate) = 1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4
+SIZE (rust/crates/tracing-core-0.1.21.crate) = 50683
+SHA256 (rust/crates/try-lock-0.2.3.crate) = 59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642
+SIZE (rust/crates/try-lock-0.2.3.crate) = 4158
+SHA256 (rust/crates/typenum-1.14.0.crate) = b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec
+SIZE (rust/crates/typenum-1.14.0.crate) = 40518
+SHA256 (rust/crates/unicode-bidi-0.3.7.crate) = 1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f
+SIZE (rust/crates/unicode-bidi-0.3.7.crate) = 33759
+SHA256 (rust/crates/unicode-normalization-0.1.19.crate) = d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9
+SIZE (rust/crates/unicode-normalization-0.1.19.crate) = 107353
+SHA256 (rust/crates/unicode-segmentation-1.8.0.crate) = 8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b
+SIZE (rust/crates/unicode-segmentation-1.8.0.crate) = 94011
+SHA256 (rust/crates/unicode-width-0.1.9.crate) = 3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973
+SIZE (rust/crates/unicode-width-0.1.9.crate) = 16745
+SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
+SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
+SHA256 (rust/crates/url-2.2.2.crate) = a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c
+SIZE (rust/crates/url-2.2.2.crate) = 68555
+SHA256 (rust/crates/version_check-0.9.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe
+SIZE (rust/crates/version_check-0.9.3.crate) = 12547
+SHA256 (rust/crates/walkdir-2.3.2.crate) = 808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56
+SIZE (rust/crates/walkdir-2.3.2.crate) = 23516
+SHA256 (rust/crates/want-0.3.0.crate) = 1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0
+SIZE (rust/crates/want-0.3.0.crate) = 6550
+SHA256 (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6
+SIZE (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = 27505
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/xmlparser-0.13.3.crate) = 114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8
+SIZE (rust/crates/xmlparser-0.13.3.crate) = 25732
+SHA256 (rust/crates/xxhash-rust-0.8.2.crate) = e575e15bedf6e57b5c2d763ffc6c3c760143466cbd09d762d539680ab5992ded
+SIZE (rust/crates/xxhash-rust-0.8.2.crate) = 16721
+SHA256 (rust/crates/zstd-0.9.0+zstd.1.5.0.crate) = 07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd
+SIZE (rust/crates/zstd-0.9.0+zstd.1.5.0.crate) = 25973
+SHA256 (rust/crates/zstd-safe-4.1.1+zstd.1.5.0.crate) = c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079
+SIZE (rust/crates/zstd-safe-4.1.1+zstd.1.5.0.crate) = 12665
+SHA256 (rust/crates/zstd-sys-1.6.1+zstd.1.5.0.crate) = 615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33
+SIZE (rust/crates/zstd-sys-1.6.1+zstd.1.5.0.crate) = 650935
diff --git a/www/garage/files/patch-src_garage_main.rs b/www/garage/files/patch-src_garage_main.rs
new file mode 100644
index 000000000000..dda9ab09341d
--- /dev/null
+++ b/www/garage/files/patch-src_garage_main.rs
@@ -0,0 +1,13 @@
+--- src/garage/main.rs.orig	2022-02-08 20:27:47 UTC
++++ src/garage/main.rs
+@@ -67,7 +67,9 @@ async fn main() {
+ 			// Abort on panic (same behavior as in Go)
+ 			std::panic::set_hook(Box::new(|panic_info| {
+ 				error!("{}", panic_info.to_string());
+-				std::process::abort();
++                std::process::exit(1);
++                // On FreeBSD it dumps core:
++				// std::process::abort();
+ 			}));
+ 
+ 			server::run_server(opt.config_file).await
diff --git a/www/garage/files/pkg-message.in b/www/garage/files/pkg-message.in
new file mode 100644
index 000000000000..daee2c00d0c4
--- /dev/null
+++ b/www/garage/files/pkg-message.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+  message: <<EOM
+  To get started, refer to the documentation at:
+
+    %%DOCSDIR%%/book/src/quick_start/index.md
+EOM
+}
+]
diff --git a/www/garage/pkg-descr b/www/garage/pkg-descr
new file mode 100644
index 000000000000..060d6e56ae52
--- /dev/null
+++ b/www/garage/pkg-descr
@@ -0,0 +1,11 @@
+An open-source distributed storage service you can
+self-host to fullfill many needs.
+
+Goals:
+
+ - Self-contained
+ - Fast to deploy, safe to operate
+ - Deploy everywhere on every machine
+ - Highly resilient
+
+WWW: https://garagehq.deuxfleurs.fr/
diff --git a/www/garage/pkg-plist b/www/garage/pkg-plist
new file mode 100644
index 000000000000..ddd747e1843b
--- /dev/null
+++ b/www/garage/pkg-plist
@@ -0,0 +1,112 @@
+bin/garage
+%%DOCSDIR%%/book/.gitignore
+%%DOCSDIR%%/book/book.toml
+%%DOCSDIR%%/book/src/SUMMARY.md
+%%DOCSDIR%%/book/src/connect/apps.md
+%%DOCSDIR%%/book/src/connect/backup.md
+%%DOCSDIR%%/book/src/connect/cli-nextcloud-gui.png
+%%DOCSDIR%%/book/src/connect/cli.md
+%%DOCSDIR%%/book/src/connect/code.md
+%%DOCSDIR%%/book/src/connect/fs.md
+%%DOCSDIR%%/book/src/connect/index.md
+%%DOCSDIR%%/book/src/connect/repositories.md
+%%DOCSDIR%%/book/src/connect/websites.md
+%%DOCSDIR%%/book/src/cookbook/exposing_websites.md
+%%DOCSDIR%%/book/src/cookbook/from_source.md
+%%DOCSDIR%%/book/src/cookbook/gateways.md
+%%DOCSDIR%%/book/src/cookbook/index.md
+%%DOCSDIR%%/book/src/cookbook/real_world.md
+%%DOCSDIR%%/book/src/cookbook/recovering.md
+%%DOCSDIR%%/book/src/cookbook/reverse_proxy.md
+%%DOCSDIR%%/book/src/cookbook/systemd.md
+%%DOCSDIR%%/book/src/cookbook/website.md
+%%DOCSDIR%%/book/src/design/benchmarks.md
+%%DOCSDIR%%/book/src/design/goals.md
+%%DOCSDIR%%/book/src/design/img/endpoint-latency-dc.png
+%%DOCSDIR%%/book/src/design/img/endpoint-latency.png
+%%DOCSDIR%%/book/src/design/index.md
+%%DOCSDIR%%/book/src/design/internals.md
+%%DOCSDIR%%/book/src/design/related_work.md
+%%DOCSDIR%%/book/src/development/devenv.md
+%%DOCSDIR%%/book/src/development/index.md
+%%DOCSDIR%%/book/src/development/miscellaneous_notes.md
+%%DOCSDIR%%/book/src/development/release_process.md
+%%DOCSDIR%%/book/src/development/scripts.md
+%%DOCSDIR%%/book/src/img/eu-flag-logo.png
+%%DOCSDIR%%/book/src/img/logo.svg
+%%DOCSDIR%%/book/src/img/map.svg
+%%DOCSDIR%%/book/src/img/ngi-logo.png
+%%DOCSDIR%%/book/src/img/software.svg
+%%DOCSDIR%%/book/src/img/usage.svg
+%%DOCSDIR%%/book/src/intro.md
+%%DOCSDIR%%/book/src/quick_start/index.md
+%%DOCSDIR%%/book/src/reference_manual/cli.md
+%%DOCSDIR%%/book/src/reference_manual/configuration.md
+%%DOCSDIR%%/book/src/reference_manual/index.md
+%%DOCSDIR%%/book/src/reference_manual/layout.md
+%%DOCSDIR%%/book/src/reference_manual/s3_compatibility.md
+%%DOCSDIR%%/book/src/working_documents/compatibility_target.md
+%%DOCSDIR%%/book/src/working_documents/design_draft.md
+%%DOCSDIR%%/book/src/working_documents/index.md
+%%DOCSDIR%%/book/src/working_documents/load_balancing.md
+%%DOCSDIR%%/book/src/working_documents/migration_04.md
+%%DOCSDIR%%/book/src/working_documents/migration_06.md
+%%DOCSDIR%%/logo/garage-dark-notext.png
+%%DOCSDIR%%/logo/garage-dark-notext.svg
+%%DOCSDIR%%/logo/garage-dark.svg
+%%DOCSDIR%%/logo/garage-notext.png
+%%DOCSDIR%%/logo/garage-notext.svg
+%%DOCSDIR%%/logo/garage.png
+%%DOCSDIR%%/logo/garage.svg
+%%DOCSDIR%%/sticker/Garage.pdf
+%%DOCSDIR%%/sticker/Garage.png
+%%DOCSDIR%%/sticker/Garage.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/.gitignore
+%%DOCSDIR%%/talks/2020-12-02_wide-team/Makefile
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/Amazon-S3.jpg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/cloud.png
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/consistent_hashing_1.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/consistent_hashing_2.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/consistent_hashing_3.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/consistent_hashing_4.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/dc.jpg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/death.jpg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/garage_distributed.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/garage_tables.svg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/rustacean-flat-happy.png
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/shh.jpg
+%%DOCSDIR%%/talks/2020-12-02_wide-team/img/sync.png
+%%DOCSDIR%%/talks/2020-12-02_wide-team/talk.pdf
+%%DOCSDIR%%/talks/2020-12-02_wide-team/talk.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/.gitignore
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/Makefile
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/README.md
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/bibliography.bib
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/conclusion.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/escaping_the_cloud.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/c1.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/c2.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/c3.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/c4.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/conflict_acid.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/conflict_base.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/conflict_crdt.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/conflict_problem.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/dag_crdt.png
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/garage_distributed.png
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/garage_tables.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/m_proxy_gray.pdf
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/minio_edge.png
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/rustacean-flat-happy.png
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/svg/conflict.svg
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/figures/svg/crdt.svg
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/garage.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/header.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/introduction.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/main.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/sota.tex
+%%DOCSDIR%%/talks/2021-04-28_spirals-team/talk.pdf
+%%DOCSDIR%%/talks/2021-09-13-ngi-kickoff/.gitignore
+%%DOCSDIR%%/talks/2021-09-13-ngi-kickoff/Makefile
+%%DOCSDIR%%/talks/2021-09-13-ngi-kickoff/talk.pdf
+%%DOCSDIR%%/talks/2021-09-13-ngi-kickoff/talk.tex