git: d185ceb7c812 - main - net/rsyn: New port: Wire-compatible rsync client in Rust

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 12 Nov 2023 23:40:00 UTC
The branch main has been updated by yuri:

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

commit d185ceb7c812ec973710dbbdd7107ca143bdd512
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-11-12 23:39:34 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-11-12 23:39:58 +0000

    net/rsyn: New port: Wire-compatible rsync client in Rust
---
 net/Makefile       |   1 +
 net/rsyn/Makefile  |  75 ++++++++++++++++++++++++++++++++++++++
 net/rsyn/distinfo  | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 net/rsyn/pkg-descr |   4 ++
 4 files changed, 185 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index db6f71fdc429..552f1ae1c007 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1228,6 +1228,7 @@
     SUBDIR += rscsi
     SUBDIR += rsplib
     SUBDIR += rssguard
+    SUBDIR += rsyn
     SUBDIR += rsync
     SUBDIR += rsync-bpc
     SUBDIR += rtg
diff --git a/net/rsyn/Makefile b/net/rsyn/Makefile
new file mode 100644
index 000000000000..5eaceca08707
--- /dev/null
+++ b/net/rsyn/Makefile
@@ -0,0 +1,75 @@
+PORTNAME=	rsyn
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.0.1
+CATEGORIES=	net
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Wire-compatible rsync client in Rust
+WWW=		https://github.com/sourcefrog/rsyn
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	sourcefrog
+
+CARGO_CRATES=	aho-corasick-0.7.10 \
+		ansi_term-0.11.0 \
+		anyhow-1.0.30 \
+		atty-0.2.14 \
+		autocfg-1.0.0 \
+		bitflags-1.2.1 \
+		cfg-if-0.1.10 \
+		chrono-0.4.11 \
+		clap-2.33.1 \
+		fern-0.6.0 \
+		fuchsia-cprng-0.1.1 \
+		heck-0.3.1 \
+		hermit-abi-0.1.12 \
+		hex-0.4.2 \
+		lazy_static-1.4.0 \
+		libc-0.2.70 \
+		log-0.4.8 \
+		memchr-2.3.3 \
+		num-integer-0.1.42 \
+		num-traits-0.2.11 \
+		proc-macro-error-1.0.2 \
+		proc-macro-error-attr-1.0.2 \
+		proc-macro2-1.0.12 \
+		quote-1.0.5 \
+		rand-0.4.6 \
+		rand_core-0.3.1 \
+		rand_core-0.4.2 \
+		rdrand-0.4.0 \
+		regex-1.3.7 \
+		regex-syntax-0.6.17 \
+		remove_dir_all-0.5.2 \
+		shell-words-1.0.0 \
+		strsim-0.8.0 \
+		structopt-0.3.14 \
+		structopt-derive-0.4.7 \
+		syn-1.0.21 \
+		syn-mid-0.5.0 \
+		tempdir-0.3.7 \
+		term_size-0.3.2 \
+		textwrap-0.11.0 \
+		thread_local-1.0.1 \
+		time-0.1.43 \
+		unicode-segmentation-1.6.0 \
+		unicode-width-0.1.7 \
+		unicode-xid-0.2.0 \
+		unix_mode-0.1.1 \
+		vec_map-0.8.2 \
+		version_check-0.9.1 \
+		winapi-0.3.8 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-x86_64-pc-windows-gnu-0.4.0
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/net/rsyn/distinfo b/net/rsyn/distinfo
new file mode 100644
index 000000000000..3c2ab6bcca59
--- /dev/null
+++ b/net/rsyn/distinfo
@@ -0,0 +1,105 @@
+TIMESTAMP = 1699832010
+SHA256 (rust/crates/aho-corasick-0.7.10.crate) = 8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada
+SIZE (rust/crates/aho-corasick-0.7.10.crate) = 111039
+SHA256 (rust/crates/ansi_term-0.11.0.crate) = ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b
+SIZE (rust/crates/ansi_term-0.11.0.crate) = 17087
+SHA256 (rust/crates/anyhow-1.0.30.crate) = 2494382e9ba43995f3c56359e518641f450f5c36feeb4632a75cde2ec297c867
+SIZE (rust/crates/anyhow-1.0.30.crate) = 28445
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.0.0.crate) = f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d
+SIZE (rust/crates/autocfg-1.0.0.crate) = 12870
+SHA256 (rust/crates/bitflags-1.2.1.crate) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693
+SIZE (rust/crates/bitflags-1.2.1.crate) = 16745
+SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
+SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933
+SHA256 (rust/crates/chrono-0.4.11.crate) = 80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2
+SIZE (rust/crates/chrono-0.4.11.crate) = 139811
+SHA256 (rust/crates/clap-2.33.1.crate) = bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129
+SIZE (rust/crates/clap-2.33.1.crate) = 201567
+SHA256 (rust/crates/fern-0.6.0.crate) = 8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065
+SIZE (rust/crates/fern-0.6.0.crate) = 299856
+SHA256 (rust/crates/fuchsia-cprng-0.1.1.crate) = a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba
+SIZE (rust/crates/fuchsia-cprng-0.1.1.crate) = 2950
+SHA256 (rust/crates/heck-0.3.1.crate) = 20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205
+SIZE (rust/crates/heck-0.3.1.crate) = 54666
+SHA256 (rust/crates/hermit-abi-0.1.12.crate) = 61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4
+SIZE (rust/crates/hermit-abi-0.1.12.crate) = 9217
+SHA256 (rust/crates/hex-0.4.2.crate) = 644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35
+SIZE (rust/crates/hex-0.4.2.crate) = 13385
+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.70.crate) = 3baa92041a6fec78c687fa0cc2b3fae8884f743d672cf551bed1d6dac6988d0f
+SIZE (rust/crates/libc-0.2.70.crate) = 472909
+SHA256 (rust/crates/log-0.4.8.crate) = 14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7
+SIZE (rust/crates/log-0.4.8.crate) = 31297
+SHA256 (rust/crates/memchr-2.3.3.crate) = 3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400
+SIZE (rust/crates/memchr-2.3.3.crate) = 22566
+SHA256 (rust/crates/num-integer-0.1.42.crate) = 3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba
+SIZE (rust/crates/num-integer-0.1.42.crate) = 19463
+SHA256 (rust/crates/num-traits-0.2.11.crate) = c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096
+SIZE (rust/crates/num-traits-0.2.11.crate) = 42000
+SHA256 (rust/crates/proc-macro-error-1.0.2.crate) = 98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678
+SIZE (rust/crates/proc-macro-error-1.0.2.crate) = 23699
+SHA256 (rust/crates/proc-macro-error-attr-1.0.2.crate) = 4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53
+SIZE (rust/crates/proc-macro-error-attr-1.0.2.crate) = 6974
+SHA256 (rust/crates/proc-macro2-1.0.12.crate) = 8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319
+SIZE (rust/crates/proc-macro2-1.0.12.crate) = 35819
+SHA256 (rust/crates/quote-1.0.5.crate) = 42934bc9c8ab0d3b273a16d8551c8f0fcff46be73276ca083ec2414c15c4ba5e
+SIZE (rust/crates/quote-1.0.5.crate) = 23920
+SHA256 (rust/crates/rand-0.4.6.crate) = 552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293
+SIZE (rust/crates/rand-0.4.6.crate) = 76401
+SHA256 (rust/crates/rand_core-0.3.1.crate) = 7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b
+SIZE (rust/crates/rand_core-0.3.1.crate) = 15483
+SHA256 (rust/crates/rand_core-0.4.2.crate) = 9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc
+SIZE (rust/crates/rand_core-0.4.2.crate) = 20243
+SHA256 (rust/crates/rdrand-0.4.0.crate) = 678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2
+SIZE (rust/crates/rdrand-0.4.0.crate) = 6456
+SHA256 (rust/crates/regex-1.3.7.crate) = a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692
+SIZE (rust/crates/regex-1.3.7.crate) = 235600
+SHA256 (rust/crates/regex-syntax-0.6.17.crate) = 7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae
+SIZE (rust/crates/regex-syntax-0.6.17.crate) = 294004
+SHA256 (rust/crates/remove_dir_all-0.5.2.crate) = 4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e
+SIZE (rust/crates/remove_dir_all-0.5.2.crate) = 8907
+SHA256 (rust/crates/shell-words-1.0.0.crate) = b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074
+SIZE (rust/crates/shell-words-1.0.0.crate) = 9798
+SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
+SIZE (rust/crates/strsim-0.8.0.crate) = 9309
+SHA256 (rust/crates/structopt-0.3.14.crate) = 863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef
+SIZE (rust/crates/structopt-0.3.14.crate) = 50408
+SHA256 (rust/crates/structopt-derive-0.4.7.crate) = d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a
+SIZE (rust/crates/structopt-derive-0.4.7.crate) = 19395
+SHA256 (rust/crates/syn-1.0.21.crate) = 4696caa4048ac7ce2bcd2e484b3cef88c1004e41b8e945a277e2c25dc0b72060
+SIZE (rust/crates/syn-1.0.21.crate) = 200233
+SHA256 (rust/crates/syn-mid-0.5.0.crate) = 7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a
+SIZE (rust/crates/syn-mid-0.5.0.crate) = 14149
+SHA256 (rust/crates/tempdir-0.3.7.crate) = 15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8
+SIZE (rust/crates/tempdir-0.3.7.crate) = 11468
+SHA256 (rust/crates/term_size-0.3.2.crate) = 1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9
+SIZE (rust/crates/term_size-0.3.2.crate) = 10917
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/thread_local-1.0.1.crate) = d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14
+SIZE (rust/crates/thread_local-1.0.1.crate) = 12609
+SHA256 (rust/crates/time-0.1.43.crate) = ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438
+SIZE (rust/crates/time-0.1.43.crate) = 28653
+SHA256 (rust/crates/unicode-segmentation-1.6.0.crate) = e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0
+SIZE (rust/crates/unicode-segmentation-1.6.0.crate) = 90703
+SHA256 (rust/crates/unicode-width-0.1.7.crate) = caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479
+SIZE (rust/crates/unicode-width-0.1.7.crate) = 16644
+SHA256 (rust/crates/unicode-xid-0.2.0.crate) = 826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c
+SIZE (rust/crates/unicode-xid-0.2.0.crate) = 14994
+SHA256 (rust/crates/unix_mode-0.1.1.crate) = 9cb84adbe9bc839bc6405fc7ed0221d8d6e459d161b7de108dac026cfd5d780b
+SIZE (rust/crates/unix_mode-0.1.1.crate) = 9075
+SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
+SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
+SHA256 (rust/crates/version_check-0.9.1.crate) = 078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce
+SIZE (rust/crates/version_check-0.9.1.crate) = 11459
+SHA256 (rust/crates/winapi-0.3.8.crate) = 8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6
+SIZE (rust/crates/winapi-0.3.8.crate) = 1128308
+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-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 (sourcefrog-rsyn-v0.0.1_GH0.tar.gz) = f7fc062a63ebf1a6f35eae789028f238484881adacfc8828f2a4d7c1027456c0
+SIZE (sourcefrog-rsyn-v0.0.1_GH0.tar.gz) = 29488
diff --git a/net/rsyn/pkg-descr b/net/rsyn/pkg-descr
new file mode 100644
index 000000000000..6b794acbb701
--- /dev/null
+++ b/net/rsyn/pkg-descr
@@ -0,0 +1,4 @@
+rsyn reimplements part of the rsync network protocol in pure Rust.
+
+rsyn supports protocol version 27, which is supported by rsync versions from
+2.6.0 (released in 2004) onwards, and by openrsync.