git: b2dbe58eaa2a - main - sysutils/gstat-rs: new port

From: Alan Somers <asomers_at_FreeBSD.org>
Date: Wed, 06 Oct 2021 16:10:05 UTC
The branch main has been updated by asomers (src committer):

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

commit b2dbe58eaa2aedb2755f549c8182f18d00c05345
Author:     Alan Somers <asomers@FreeBSD.org>
AuthorDate: 2021-07-30 22:23:25 +0000
Commit:     Alan Somers <asomers@FreeBSD.org>
CommitDate: 2021-10-06 16:09:09 +0000

    sysutils/gstat-rs: new port
    
    Sponsored by:   Axcient
    Reviewed by:    brd, 0mp
    Differential Revision: https://reviews.freebsd.org/D31359
---
 sysutils/Makefile                      |   1 +
 sysutils/gstat-rs/Makefile             | 105 +++++++++++++++++++++++
 sysutils/gstat-rs/distinfo             | 149 +++++++++++++++++++++++++++++++++
 sysutils/gstat-rs/files/pkg-message.in |  16 ++++
 sysutils/gstat-rs/pkg-descr            |  21 +++++
 5 files changed, 292 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index e0dbc39b49a8..dd95b1febebe 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -483,6 +483,7 @@
     SUBDIR += grub2-pcbsd
     SUBDIR += gsh
     SUBDIR += gsmartcontrol
+    SUBDIR += gstat-rs
     SUBDIR += gstopd
     SUBDIR += gstreamer1-plugins-cdio
     SUBDIR += gtk-imonc
diff --git a/sysutils/gstat-rs/Makefile b/sysutils/gstat-rs/Makefile
new file mode 100644
index 000000000000..2b3bb12576d8
--- /dev/null
+++ b/sysutils/gstat-rs/Makefile
@@ -0,0 +1,105 @@
+PORTNAME=	gstat-rs
+DISTVERSIONPREFIX=	gstat-v
+DISTVERSION=	0.1.2
+CATEGORIES=	sysutils
+
+MAINTAINER=	asomers@FreeBSD.org
+COMMENT=	Replacement for gstat(8)
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
+
+USES=		cargo
+USE_GITHUB=	yes
+GH_ACCOUNT=	asomers
+SUB_FILES=	pkg-message
+
+CARGO_CRATES=	aho-corasick-0.7.18 \
+		ansi_term-0.11.0 \
+		approx-0.5.0 \
+		atty-0.2.14 \
+		autocfg-1.0.1 \
+		bindgen-0.53.3 \
+		bitfield-0.13.2 \
+		bitflags-1.2.1 \
+		cassowary-0.3.0 \
+		cc-1.0.69 \
+		cexpr-0.4.0 \
+		cfg-if-0.1.10 \
+		cfg-if-1.0.0 \
+		clang-sys-0.29.3 \
+		clap-2.33.3 \
+		confy-0.4.0 \
+		directories-2.0.2 \
+		dirs-sys-0.3.6 \
+		env_logger-0.7.1 \
+		getrandom-0.2.3 \
+		glob-0.3.0 \
+		heck-0.3.3 \
+		hermit-abi-0.1.19 \
+		humanize-rs-0.1.5 \
+		humantime-1.3.0 \
+		lazy_static-1.4.0 \
+		lazycell-1.3.0 \
+		libc-0.2.98 \
+		libloading-0.5.2 \
+		log-0.4.14 \
+		memchr-2.4.0 \
+		memoffset-0.6.4 \
+		nix-0.22.0 \
+		nom-5.1.2 \
+		nonzero_ext-0.2.0 \
+		num-traits-0.2.14 \
+		numtoa-0.1.0 \
+		peeking_take_while-0.1.2 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.27 \
+		quick-error-1.2.3 \
+		quote-1.0.9 \
+		redox_syscall-0.2.9 \
+		redox_termios-0.1.2 \
+		redox_users-0.4.0 \
+		regex-1.5.4 \
+		regex-syntax-0.6.25 \
+		rustc-hash-1.1.0 \
+		serde-1.0.126 \
+		serde_derive-1.0.126 \
+		shlex-0.1.1 \
+		strsim-0.8.0 \
+		structopt-0.3.22 \
+		structopt-derive-0.4.15 \
+		syn-1.0.73 \
+		term_size-0.3.2 \
+		termcolor-1.1.2 \
+		termion-1.5.6 \
+		textwrap-0.11.0 \
+		toml-0.5.8 \
+		tui-0.15.0 \
+		unicode-segmentation-1.8.0 \
+		unicode-width-0.1.8 \
+		unicode-xid-0.2.2 \
+		vec_map-0.8.2 \
+		version_check-0.9.3 \
+		wasi-0.10.2+wasi-snapshot-preview1 \
+		which-3.1.1 \
+		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
+CARGO_INSTALL_PATH=	gstat
+CARGO_CARGOTOML=	${WRKSRC}/gstat/Cargo.toml
+CARGO_TEST_ARGS=	--all
+CARGO_ENV+=	LLVM_CONFIG_PATH=${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT}
+
+PLIST_FILES=	sbin/gstat-rs \
+		share/man/man8/gstat-rs.8.gz
+
+post-install:
+	${INSTALL_PROGRAM} ${STAGEDIR}${PREFIX}/bin/gstat ${STAGEDIR}${PREFIX}/sbin/gstat-rs
+	${RM} ${STAGEDIR}${PREFIX}/bin/gstat
+	${INSTALL_MAN} ${WRKSRC}/gstat/doc/gstat.8 ${STAGEDIR}${MAN8PREFIX}/share/man/man8/gstat-rs.8
+
+.include <bsd.port.mk>
diff --git a/sysutils/gstat-rs/distinfo b/sysutils/gstat-rs/distinfo
new file mode 100644
index 000000000000..aeeac02239c0
--- /dev/null
+++ b/sysutils/gstat-rs/distinfo
@@ -0,0 +1,149 @@
+TIMESTAMP = 1633445553
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/ansi_term-0.11.0.crate) = ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b
+SIZE (rust/crates/ansi_term-0.11.0.crate) = 17087
+SHA256 (rust/crates/approx-0.5.0.crate) = 072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e
+SIZE (rust/crates/approx-0.5.0.crate) = 14359
+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/bindgen-0.53.3.crate) = c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5
+SIZE (rust/crates/bindgen-0.53.3.crate) = 191629
+SHA256 (rust/crates/bitfield-0.13.2.crate) = 46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719
+SIZE (rust/crates/bitfield-0.13.2.crate) = 16479
+SHA256 (rust/crates/bitflags-1.2.1.crate) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693
+SIZE (rust/crates/bitflags-1.2.1.crate) = 16745
+SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53
+SIZE (rust/crates/cassowary-0.3.0.crate) = 22876
+SHA256 (rust/crates/cc-1.0.69.crate) = e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2
+SIZE (rust/crates/cc-1.0.69.crate) = 56044
+SHA256 (rust/crates/cexpr-0.4.0.crate) = f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27
+SIZE (rust/crates/cexpr-0.4.0.crate) = 18023
+SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
+SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clang-sys-0.29.3.crate) = fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a
+SIZE (rust/crates/clang-sys-0.29.3.crate) = 36660
+SHA256 (rust/crates/clap-2.33.3.crate) = 37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002
+SIZE (rust/crates/clap-2.33.3.crate) = 201925
+SHA256 (rust/crates/confy-0.4.0.crate) = 2913470204e9e8498a0f31f17f90a0de801ae92c8c5ac18c49af4819e6786697
+SIZE (rust/crates/confy-0.4.0.crate) = 9136
+SHA256 (rust/crates/directories-2.0.2.crate) = 551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c
+SIZE (rust/crates/directories-2.0.2.crate) = 15214
+SHA256 (rust/crates/dirs-sys-0.3.6.crate) = 03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780
+SIZE (rust/crates/dirs-sys-0.3.6.crate) = 10626
+SHA256 (rust/crates/env_logger-0.7.1.crate) = 44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36
+SIZE (rust/crates/env_logger-0.7.1.crate) = 32281
+SHA256 (rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753
+SIZE (rust/crates/getrandom-0.2.3.crate) = 26261
+SHA256 (rust/crates/glob-0.3.0.crate) = 9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574
+SIZE (rust/crates/glob-0.3.0.crate) = 18724
+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/humanize-rs-0.1.5.crate) = 016b02deb8b0c415d8d56a6f0ab265e50c22df61194e37f9be75ed3a722de8a6
+SIZE (rust/crates/humanize-rs-0.1.5.crate) = 10538
+SHA256 (rust/crates/humantime-1.3.0.crate) = df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f
+SIZE (rust/crates/humantime-1.3.0.crate) = 17020
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55
+SIZE (rust/crates/lazycell-1.3.0.crate) = 12502
+SHA256 (rust/crates/libc-0.2.98.crate) = 320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790
+SIZE (rust/crates/libc-0.2.98.crate) = 522087
+SHA256 (rust/crates/libloading-0.5.2.crate) = f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753
+SIZE (rust/crates/libloading-0.5.2.crate) = 16420
+SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
+SIZE (rust/crates/log-0.4.14.crate) = 34582
+SHA256 (rust/crates/memchr-2.4.0.crate) = b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc
+SIZE (rust/crates/memchr-2.4.0.crate) = 63392
+SHA256 (rust/crates/memoffset-0.6.4.crate) = 59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9
+SIZE (rust/crates/memoffset-0.6.4.crate) = 7664
+SHA256 (rust/crates/nix-0.22.0.crate) = cf1e25ee6b412c2a1e3fcb6a4499a5c1bfe7f43e014bdce9a6b6666e5aa2d187
+SIZE (rust/crates/nix-0.22.0.crate) = 227091
+SHA256 (rust/crates/nom-5.1.2.crate) = ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af
+SIZE (rust/crates/nom-5.1.2.crate) = 136174
+SHA256 (rust/crates/nonzero_ext-0.2.0.crate) = 44a1290799eababa63ea60af0cbc3f03363e328e58f32fb0294798ed3e85f444
+SIZE (rust/crates/nonzero_ext-0.2.0.crate) = 14025
+SHA256 (rust/crates/num-traits-0.2.14.crate) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290
+SIZE (rust/crates/num-traits-0.2.14.crate) = 45476
+SHA256 (rust/crates/numtoa-0.1.0.crate) = b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef
+SIZE (rust/crates/numtoa-0.1.0.crate) = 8999
+SHA256 (rust/crates/peeking_take_while-0.1.2.crate) = 19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099
+SIZE (rust/crates/peeking_take_while-0.1.2.crate) = 6697
+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-macro2-1.0.27.crate) = f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038
+SIZE (rust/crates/proc-macro2-1.0.27.crate) = 38625
+SHA256 (rust/crates/quick-error-1.2.3.crate) = a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0
+SIZE (rust/crates/quick-error-1.2.3.crate) = 15066
+SHA256 (rust/crates/quote-1.0.9.crate) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7
+SIZE (rust/crates/quote-1.0.9.crate) = 25042
+SHA256 (rust/crates/redox_syscall-0.2.9.crate) = 5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee
+SIZE (rust/crates/redox_syscall-0.2.9.crate) = 23533
+SHA256 (rust/crates/redox_termios-0.1.2.crate) = 8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f
+SIZE (rust/crates/redox_termios-0.1.2.crate) = 3268
+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.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/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/serde-1.0.126.crate) = ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03
+SIZE (rust/crates/serde-1.0.126.crate) = 75138
+SHA256 (rust/crates/serde_derive-1.0.126.crate) = 963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43
+SIZE (rust/crates/serde_derive-1.0.126.crate) = 54189
+SHA256 (rust/crates/shlex-0.1.1.crate) = 7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2
+SIZE (rust/crates/shlex-0.1.1.crate) = 5687
+SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
+SIZE (rust/crates/strsim-0.8.0.crate) = 9309
+SHA256 (rust/crates/structopt-0.3.22.crate) = 69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71
+SIZE (rust/crates/structopt-0.3.22.crate) = 51665
+SHA256 (rust/crates/structopt-derive-0.4.15.crate) = 7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10
+SIZE (rust/crates/structopt-derive-0.4.15.crate) = 20861
+SHA256 (rust/crates/syn-1.0.73.crate) = f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7
+SIZE (rust/crates/syn-1.0.73.crate) = 232706
+SHA256 (rust/crates/term_size-0.3.2.crate) = 1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9
+SIZE (rust/crates/term_size-0.3.2.crate) = 10917
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/termion-1.5.6.crate) = 077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e
+SIZE (rust/crates/termion-1.5.6.crate) = 22677
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
+SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/tui-0.15.0.crate) = 861d8f3ad314ede6219bcb2ab844054b1de279ee37a9bc38e3d606f9d3fb2a71
+SIZE (rust/crates/tui-0.15.0.crate) = 139975
+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.8.crate) = 9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3
+SIZE (rust/crates/unicode-width-0.1.8.crate) = 16732
+SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
+SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
+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.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe
+SIZE (rust/crates/version_check-0.9.3.crate) = 12547
+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/which-3.1.1.crate) = d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724
+SIZE (rust/crates/which-3.1.1.crate) = 8071
+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 (asomers-gstat-rs-gstat-v0.1.2_GH0.tar.gz) = 48b836425d774242d71dcc659a25df952af547da53525a4daba82c8a3dea5d70
+SIZE (asomers-gstat-rs-gstat-v0.1.2_GH0.tar.gz) = 418045
diff --git a/sysutils/gstat-rs/files/pkg-message.in b/sysutils/gstat-rs/files/pkg-message.in
new file mode 100644
index 000000000000..46e9c0a83c25
--- /dev/null
+++ b/sysutils/gstat-rs/files/pkg-message.in
@@ -0,0 +1,16 @@
+[
+{
+type: install
+message: <<EOM
+To use gstat-rs by default, do the following:
+For sh:
+# echo alias gstat='/usr/local/sbin/gstat-rs' >> /etc/profile
+For bash:
+# echo alias gstat='/usr/local/sbin/gstat-rs' >> %%PREFIX%%/etc/profile
+For fish:
+# echo alias gstat='/usr/local/sbin/gstat-rs' >> %%PREFIX%%/etc/fish/config.fish
+For zsh:
+# echo alias gstat='/usr/local/sbin/gstat-rs' >> %%PREFIX%%/etc/zshrc
+EOM
+}
+]
diff --git a/sysutils/gstat-rs/pkg-descr b/sysutils/gstat-rs/pkg-descr
new file mode 100644
index 000000000000..69322a8433ee
--- /dev/null
+++ b/sysutils/gstat-rs/pkg-descr
@@ -0,0 +1,21 @@
+Replacement for gstat(8)
+
+This is a gstat replacement, written in Rust.  It is more featureful than the
+original, and works much better on systems with large numbers of disks.  The
+key differences are:
+
+* gstat-rs supports sorting the disks using the '+', '-', and 'r' keys, and the
+  "--sort" and "-r" command line options.
+* gstat-rs can enable/disable columns at any time using the insert and
+  delete keys.  gstat can only do that at startup, and only for certain
+  infrequently used columns.
+* If the screen has enough space, gstat-rs will display multiple disks side by
+  side.
+* gstat-rs can pause the display without exiting the program.
+* gstat-rs's settings are automatically persisted to a config file.
+* gstat-rs does not support batch mode (`-bBC`) output.  If you want that kind
+  of information, use iostat(8) instead.
+* gstat-rs does not display GEOM consumers (`-c`), but it can easily be
+  added if there's any demand for that feature.
+
+WWW: https://github.com/asomers/gstat-rs