git: e7288c9f1d9a - main - devel/dura: New port: Background process that watches Git repositories and backs up data

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 05 Jan 2023 05:59:29 UTC
The branch main has been updated by yuri:

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

commit e7288c9f1d9a9b897f2f5672f7a452d76a33d19e
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-05 05:49:48 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-05 05:59:17 +0000

    devel/dura: New port: Background process that watches Git repositories and backs up data
---
 devel/Makefile       |   1 +
 devel/dura/Makefile  | 122 +++++++++++++++++++++++++++++++++
 devel/dura/distinfo  | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++
 devel/dura/pkg-descr |   9 +++
 4 files changed, 319 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 03a148e00717..96a7f27ce11d 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -563,6 +563,7 @@
     SUBDIR += dulwich
     SUBDIR += dupl
     SUBDIR += duplo
+    SUBDIR += dura
     SUBDIR += dwarf2json
     SUBDIR += dwarfdump
     SUBDIR += dwarves
diff --git a/devel/dura/Makefile b/devel/dura/Makefile
new file mode 100644
index 000000000000..e18ca4bcf771
--- /dev/null
+++ b/devel/dura/Makefile
@@ -0,0 +1,122 @@
+PORTNAME=	dura
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.0
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Background process that watches Git repositories and backs up data
+WWW=		https://github.com/tkellogg/dura
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libgit2.so:devel/libgit2 \
+		libssh2.so:security/libssh2
+
+USES=		cargo ssl
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	tkellogg
+
+CARGO_CRATES=	ansi_term-0.12.1 \
+		atty-0.2.14 \
+		autocfg-1.0.1 \
+		bitflags-1.3.2 \
+		bytes-1.1.0 \
+		cc-1.0.72 \
+		cfg-if-1.0.0 \
+		chrono-0.4.19 \
+		clap-3.1.6 \
+		dirs-4.0.0 \
+		dirs-sys-0.3.6 \
+		fastrand-1.6.0 \
+		form_urlencoded-1.0.1 \
+		getrandom-0.2.3 \
+		git2-0.13.25 \
+		hashbrown-0.11.2 \
+		hermit-abi-0.1.19 \
+		idna-0.2.3 \
+		indexmap-1.8.0 \
+		instant-0.1.12 \
+		itoa-1.0.1 \
+		jobserver-0.1.24 \
+		lazy_static-1.4.0 \
+		libc-0.2.112 \
+		libgit2-sys-0.12.26+1.3.0 \
+		libssh2-sys-0.2.23 \
+		libz-sys-1.1.3 \
+		lock_api-0.4.5 \
+		log-0.4.14 \
+		matchers-0.1.0 \
+		matches-0.1.9 \
+		memchr-2.4.1 \
+		mio-0.7.14 \
+		miow-0.3.7 \
+		ntapi-0.3.6 \
+		num-integer-0.1.44 \
+		num-traits-0.2.14 \
+		num_cpus-1.13.1 \
+		once_cell-1.9.0 \
+		openssl-probe-0.1.4 \
+		openssl-sys-0.9.72 \
+		os_str_bytes-6.0.0 \
+		parking_lot-0.11.2 \
+		parking_lot_core-0.8.5 \
+		percent-encoding-2.1.0 \
+		pin-project-lite-0.2.8 \
+		pkg-config-0.3.24 \
+		proc-macro2-1.0.36 \
+		quote-1.0.14 \
+		redox_syscall-0.2.10 \
+		redox_users-0.4.0 \
+		regex-1.5.5 \
+		regex-automata-0.1.10 \
+		regex-syntax-0.6.25 \
+		remove_dir_all-0.5.3 \
+		ryu-1.0.9 \
+		scopeguard-1.1.0 \
+		serde-1.0.133 \
+		serde_derive-1.0.133 \
+		serde_json-1.0.74 \
+		serial_test-0.5.1 \
+		serial_test_derive-0.5.1 \
+		sharded-slab-0.1.4 \
+		signal-hook-registry-1.4.0 \
+		smallvec-1.7.0 \
+		strsim-0.10.0 \
+		syn-1.0.85 \
+		tempfile-3.3.0 \
+		termcolor-1.1.2 \
+		textwrap-0.15.0 \
+		thread_local-1.1.4 \
+		time-0.1.44 \
+		tinyvec-1.5.1 \
+		tinyvec_macros-0.1.0 \
+		tokio-1.15.0 \
+		tokio-macros-1.7.0 \
+		toml-0.5.8 \
+		tracing-0.1.29 \
+		tracing-attributes-0.1.18 \
+		tracing-core-0.1.21 \
+		tracing-log-0.1.2 \
+		tracing-subscriber-0.3.5 \
+		unicode-bidi-0.3.7 \
+		unicode-normalization-0.1.19 \
+		unicode-xid-0.2.2 \
+		url-2.2.2 \
+		vcpkg-0.2.15 \
+		wasi-0.10.0+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
+
+OPENSSLINC=	/usr/include
+OPENSSLLIB=	/usr/lib
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/devel/dura/distinfo b/devel/dura/distinfo
new file mode 100644
index 000000000000..619c61c0e698
--- /dev/null
+++ b/devel/dura/distinfo
@@ -0,0 +1,187 @@
+TIMESTAMP = 1672896618
+SHA256 (rust/crates/ansi_term-0.12.1.crate) = d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2
+SIZE (rust/crates/ansi_term-0.12.1.crate) = 24838
+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/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bytes-1.1.0.crate) = c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8
+SIZE (rust/crates/bytes-1.1.0.crate) = 49640
+SHA256 (rust/crates/cc-1.0.72.crate) = 22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee
+SIZE (rust/crates/cc-1.0.72.crate) = 57495
+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-3.1.6.crate) = d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123
+SIZE (rust/crates/clap-3.1.6.crate) = 202211
+SHA256 (rust/crates/dirs-4.0.0.crate) = ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059
+SIZE (rust/crates/dirs-4.0.0.crate) = 12503
+SHA256 (rust/crates/dirs-sys-0.3.6.crate) = 03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780
+SIZE (rust/crates/dirs-sys-0.3.6.crate) = 10626
+SHA256 (rust/crates/fastrand-1.6.0.crate) = 779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2
+SIZE (rust/crates/fastrand-1.6.0.crate) = 11338
+SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
+SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753
+SIZE (rust/crates/getrandom-0.2.3.crate) = 26261
+SHA256 (rust/crates/git2-0.13.25.crate) = f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6
+SIZE (rust/crates/git2-0.13.25.crate) = 194192
+SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e
+SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8
+SIZE (rust/crates/idna-0.2.3.crate) = 271023
+SHA256 (rust/crates/indexmap-1.8.0.crate) = 282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223
+SIZE (rust/crates/indexmap-1.8.0.crate) = 52583
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
+SHA256 (rust/crates/itoa-1.0.1.crate) = 1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35
+SIZE (rust/crates/itoa-1.0.1.crate) = 11059
+SHA256 (rust/crates/jobserver-0.1.24.crate) = af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa
+SIZE (rust/crates/jobserver-0.1.24.crate) = 21303
+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.112.crate) = 1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125
+SIZE (rust/crates/libc-0.2.112.crate) = 571445
+SHA256 (rust/crates/libgit2-sys-0.12.26+1.3.0.crate) = 19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494
+SIZE (rust/crates/libgit2-sys-0.12.26+1.3.0.crate) = 1476836
+SHA256 (rust/crates/libssh2-sys-0.2.23.crate) = b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca
+SIZE (rust/crates/libssh2-sys-0.2.23.crate) = 493516
+SHA256 (rust/crates/libz-sys-1.1.3.crate) = de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66
+SIZE (rust/crates/libz-sys-1.1.3.crate) = 1341394
+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/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558
+SIZE (rust/crates/matchers-0.1.0.crate) = 6948
+SHA256 (rust/crates/matches-0.1.9.crate) = a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f
+SIZE (rust/crates/matches-0.1.9.crate) = 2246
+SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a
+SIZE (rust/crates/memchr-2.4.1.crate) = 64977
+SHA256 (rust/crates/mio-0.7.14.crate) = 8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc
+SIZE (rust/crates/mio-0.7.14.crate) = 87429
+SHA256 (rust/crates/miow-0.3.7.crate) = b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21
+SIZE (rust/crates/miow-0.3.7.crate) = 24563
+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.1.crate) = 19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1
+SIZE (rust/crates/num_cpus-1.13.1.crate) = 14752
+SHA256 (rust/crates/once_cell-1.9.0.crate) = da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5
+SIZE (rust/crates/once_cell-1.9.0.crate) = 30702
+SHA256 (rust/crates/openssl-probe-0.1.4.crate) = 28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a
+SIZE (rust/crates/openssl-probe-0.1.4.crate) = 7066
+SHA256 (rust/crates/openssl-sys-0.9.72.crate) = 7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb
+SIZE (rust/crates/openssl-sys-0.9.72.crate) = 56510
+SHA256 (rust/crates/os_str_bytes-6.0.0.crate) = 8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64
+SIZE (rust/crates/os_str_bytes-6.0.0.crate) = 21046
+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-lite-0.2.8.crate) = e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c
+SIZE (rust/crates/pin-project-lite-0.2.8.crate) = 27847
+SHA256 (rust/crates/pkg-config-0.3.24.crate) = 58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe
+SIZE (rust/crates/pkg-config-0.3.24.crate) = 16489
+SHA256 (rust/crates/proc-macro2-1.0.36.crate) = c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029
+SIZE (rust/crates/proc-macro2-1.0.36.crate) = 41411
+SHA256 (rust/crates/quote-1.0.14.crate) = 47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d
+SIZE (rust/crates/quote-1.0.14.crate) = 27252
+SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff
+SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582
+SHA256 (rust/crates/redox_users-0.4.0.crate) = 528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64
+SIZE (rust/crates/redox_users-0.4.0.crate) = 13023
+SHA256 (rust/crates/regex-1.5.5.crate) = 1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286
+SIZE (rust/crates/regex-1.5.5.crate) = 238119
+SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132
+SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533
+SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
+SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/remove_dir_all-0.5.3.crate) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7
+SIZE (rust/crates/remove_dir_all-0.5.3.crate) = 9184
+SHA256 (rust/crates/ryu-1.0.9.crate) = 73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f
+SIZE (rust/crates/ryu-1.0.9.crate) = 48391
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/serde-1.0.133.crate) = 97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a
+SIZE (rust/crates/serde-1.0.133.crate) = 75566
+SHA256 (rust/crates/serde_derive-1.0.133.crate) = ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537
+SIZE (rust/crates/serde_derive-1.0.133.crate) = 54726
+SHA256 (rust/crates/serde_json-1.0.74.crate) = ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142
+SIZE (rust/crates/serde_json-1.0.74.crate) = 115919
+SHA256 (rust/crates/serial_test-0.5.1.crate) = e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d
+SIZE (rust/crates/serial_test-0.5.1.crate) = 2993
+SHA256 (rust/crates/serial_test_derive-0.5.1.crate) = b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5
+SIZE (rust/crates/serial_test_derive-0.5.1.crate) = 3609
+SHA256 (rust/crates/sharded-slab-0.1.4.crate) = 900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31
+SIZE (rust/crates/sharded-slab-0.1.4.crate) = 52479
+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/smallvec-1.7.0.crate) = 1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309
+SIZE (rust/crates/smallvec-1.7.0.crate) = 27459
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.85.crate) = a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7
+SIZE (rust/crates/syn-1.0.85.crate) = 235056
+SHA256 (rust/crates/tempfile-3.3.0.crate) = 5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4
+SIZE (rust/crates/tempfile-3.3.0.crate) = 27578
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/textwrap-0.15.0.crate) = b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb
+SIZE (rust/crates/textwrap-0.15.0.crate) = 52998
+SHA256 (rust/crates/thread_local-1.1.4.crate) = 5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180
+SIZE (rust/crates/thread_local-1.1.4.crate) = 13106
+SHA256 (rust/crates/time-0.1.44.crate) = 6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255
+SIZE (rust/crates/time-0.1.44.crate) = 28885
+SHA256 (rust/crates/tinyvec-1.5.1.crate) = 2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2
+SIZE (rust/crates/tinyvec-1.5.1.crate) = 44942
+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.15.0.crate) = fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838
+SIZE (rust/crates/tokio-1.15.0.crate) = 540198
+SHA256 (rust/crates/tokio-macros-1.7.0.crate) = b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7
+SIZE (rust/crates/tokio-macros-1.7.0.crate) = 9261
+SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
+SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/tracing-0.1.29.crate) = 375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105
+SIZE (rust/crates/tracing-0.1.29.crate) = 72444
+SHA256 (rust/crates/tracing-attributes-0.1.18.crate) = f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e
+SIZE (rust/crates/tracing-attributes-0.1.18.crate) = 22779
+SHA256 (rust/crates/tracing-core-0.1.21.crate) = 1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4
+SIZE (rust/crates/tracing-core-0.1.21.crate) = 50683
+SHA256 (rust/crates/tracing-log-0.1.2.crate) = a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3
+SIZE (rust/crates/tracing-log-0.1.2.crate) = 14915
+SHA256 (rust/crates/tracing-subscriber-0.3.5.crate) = 5d81bfa81424cc98cb034b837c985b7a290f592e5b4322f353f94a0ab0f9f594
+SIZE (rust/crates/tracing-subscriber-0.3.5.crate) = 160537
+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-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/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426
+SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735
+SHA256 (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f
+SIZE (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 26964
+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 (tkellogg-dura-v0.2.0_GH0.tar.gz) = 6486afa167cc2c9b6b6646b9a3cb36e76c1a55e986f280607c8933a045d58cca
+SIZE (tkellogg-dura-v0.2.0_GH0.tar.gz) = 28835
diff --git a/devel/dura/pkg-descr b/devel/dura/pkg-descr
new file mode 100644
index 000000000000..019e4c0462ce
--- /dev/null
+++ b/devel/dura/pkg-descr
@@ -0,0 +1,9 @@
+Dura is a background process that watches your Git repositories and commits
+your uncommitted changes without impacting HEAD, the current branch, or the
+Git index (staged files). If you ever get into an "oh snap!" situation where
+you think you just lost days of work, checkout a `dura` branch and recover.
+
+Without `dura`, you use Ctrl-Z in your editor to get back to a good state.
+That's so 2021. Computers crash and Ctrl-Z only works on files independently.
+Dura snapshots changes across the entire repository as-you-go, so you can
+revert to "4 hours ago" instead of "hit Ctrl-Z like 40 times or whatever".