git: 4f08d229bce6 - main - sysutils/fusefs-ufs: FUSE driver for FreeBSD's UFSv2

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Mon, 16 Sep 2024 20:20:18 UTC
The branch main has been updated by fuz:

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

commit 4f08d229bce63110d54055c2d7b0921c7a9614bf
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2024-09-10 23:00:10 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-09-16 20:14:19 +0000

    sysutils/fusefs-ufs: FUSE driver for FreeBSD's UFSv2
    
    A FUSE file system driver for FreeBSD's UFSv2.
    
    Features:
    
     - Read support for FreeBSD UFSv2
     - Extended Attributes (no ACLs)
     - Bi-Endian support (eg. mounting big endian FS on little endian system)
    
    WWW: https://github.com/realchonk/fuse-ufs
    
    Event:          GSoC 2024
---
 sysutils/Makefile                   |   1 +
 sysutils/fusefs-ufs/Makefile        |  25 +++++
 sysutils/fusefs-ufs/Makefile.crates |  91 ++++++++++++++++++
 sysutils/fusefs-ufs/distinfo        | 185 ++++++++++++++++++++++++++++++++++++
 sysutils/fusefs-ufs/pkg-descr       |   7 ++
 sysutils/fusefs-ufs/pkg-plist       |   3 +
 6 files changed, 312 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index a845cb8200b5..a90d99f04fc8 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -480,6 +480,7 @@
     SUBDIR += fusefs-sqlfs
     SUBDIR += fusefs-squashfuse
     SUBDIR += fusefs-sshfs
+    SUBDIR += fusefs-ufs
     SUBDIR += fusefs-unionfs
     SUBDIR += fusefs-unreliablefs
     SUBDIR += fusefs-webdavfs
diff --git a/sysutils/fusefs-ufs/Makefile b/sysutils/fusefs-ufs/Makefile
new file mode 100644
index 000000000000..d944d3457f3b
--- /dev/null
+++ b/sysutils/fusefs-ufs/Makefile
@@ -0,0 +1,25 @@
+
+PORTNAME=	ufs
+DISTVERSION=	0.3.0
+CATEGORIES=	sysutils
+PKGNAMEPREFIX=	fusefs-
+
+MAINTAINER=	fuz@FreeBSD.org
+COMMENT=	FUSE driver for FreeBSD's UFSv2
+WWW=		https://github.com/realchonk/fuse-ufs
+
+# dependencies are all MIT licensed
+LICENSE=	BSD2CLAUSE MIT
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+USES=		cargo fuse:3
+USE_GITHUB=	yes
+GH_ACCOUNT=	realchonk
+GH_PROJECT=	fuse-ufs
+
+post-install:
+	${INSTALL_MAN} ${WRKSRC}/docs/fuse-ufs.8 ${STAGEDIR}${PREFIX}/share/man/man8/
+	${LN} ${STAGEDIR}${PREFIX}/bin/fuse-ufs ${STAGEDIR}${PREFIX}/bin/mount.ufs
+
+.include <bsd.port.mk>
diff --git a/sysutils/fusefs-ufs/Makefile.crates b/sysutils/fusefs-ufs/Makefile.crates
new file mode 100644
index 000000000000..512109978183
--- /dev/null
+++ b/sysutils/fusefs-ufs/Makefile.crates
@@ -0,0 +1,91 @@
+CARGO_CRATES=	aho-corasick-1.1.3 \
+		anstream-0.6.15 \
+		anstyle-1.0.8 \
+		anstyle-parse-0.2.5 \
+		anstyle-query-1.1.1 \
+		anstyle-wincon-3.0.4 \
+		anyhow-1.0.86 \
+		assert_cmd-2.0.16 \
+		bincode-2.0.0-rc.3 \
+		bincode_derive-2.0.0-rc.3 \
+		bitflags-2.6.0 \
+		bstr-1.10.0 \
+		byteorder-1.5.0 \
+		cfg-if-1.0.0 \
+		cfg_aliases-0.1.1 \
+		clap-4.5.15 \
+		clap-verbosity-flag-2.2.1 \
+		clap_builder-4.5.15 \
+		clap_derive-4.5.13 \
+		clap_lex-0.7.2 \
+		colorchoice-1.0.2 \
+		cstr-0.2.12 \
+		difflib-0.4.0 \
+		doc-comment-0.3.3 \
+		env_filter-0.1.2 \
+		env_logger-0.11.5 \
+		errno-0.3.9 \
+		fastrand-2.1.0 \
+		fuser-0.14.0 \
+		getrandom-0.2.15 \
+		glob-0.3.1 \
+		heck-0.5.0 \
+		humantime-2.1.0 \
+		is_terminal_polyfill-1.70.1 \
+		lazy_static-1.5.0 \
+		libc-0.2.155 \
+		linux-raw-sys-0.4.14 \
+		log-0.4.22 \
+		memchr-2.7.4 \
+		nix-0.28.0 \
+		once_cell-1.19.0 \
+		page_size-0.6.0 \
+		pkg-config-0.3.30 \
+		ppv-lite86-0.2.20 \
+		predicates-3.1.2 \
+		predicates-core-1.0.8 \
+		predicates-tree-1.0.11 \
+		proc-macro2-1.0.86 \
+		quote-1.0.36 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.4 \
+		regex-1.10.6 \
+		regex-automata-0.4.7 \
+		regex-syntax-0.8.4 \
+		relative-path-1.9.3 \
+		rstest-0.19.0 \
+		rstest_macros-0.19.0 \
+		rstest_reuse-0.7.0 \
+		rustc_version-0.4.0 \
+		rustix-0.38.34 \
+		semver-1.0.23 \
+		serde-1.0.207 \
+		serde_derive-1.0.207 \
+		smallvec-1.13.2 \
+		strsim-0.11.1 \
+		syn-2.0.74 \
+		tempfile-3.12.0 \
+		termtree-0.4.1 \
+		unicode-ident-1.0.12 \
+		utf8parse-0.2.2 \
+		virtue-0.0.13 \
+		wait-timeout-0.2.0 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-sys-0.52.0 \
+		windows-sys-0.59.0 \
+		windows-targets-0.52.6 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnullvm-0.52.6 \
+		windows_i686_msvc-0.52.6 \
+		windows_x86_64_gnu-0.52.6 \
+		windows_x86_64_gnullvm-0.52.6 \
+		windows_x86_64_msvc-0.52.6 \
+		xattr-1.3.1 \
+		zerocopy-0.7.35 \
+		zerocopy-derive-0.7.35
diff --git a/sysutils/fusefs-ufs/distinfo b/sysutils/fusefs-ufs/distinfo
new file mode 100644
index 000000000000..1247f2dd8bca
--- /dev/null
+++ b/sysutils/fusefs-ufs/distinfo
@@ -0,0 +1,185 @@
+TIMESTAMP = 1726007859
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/anstream-0.6.15.crate) = 64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526
+SIZE (rust/crates/anstream-0.6.15.crate) = 29231
+SHA256 (rust/crates/anstyle-1.0.8.crate) = 1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1
+SIZE (rust/crates/anstyle-1.0.8.crate) = 15771
+SHA256 (rust/crates/anstyle-parse-0.2.5.crate) = eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb
+SIZE (rust/crates/anstyle-parse-0.2.5.crate) = 22680
+SHA256 (rust/crates/anstyle-query-1.1.1.crate) = 6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a
+SIZE (rust/crates/anstyle-query-1.1.1.crate) = 9891
+SHA256 (rust/crates/anstyle-wincon-3.0.4.crate) = 5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8
+SIZE (rust/crates/anstyle-wincon-3.0.4.crate) = 12234
+SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da
+SIZE (rust/crates/anyhow-1.0.86.crate) = 46741
+SHA256 (rust/crates/assert_cmd-2.0.16.crate) = dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d
+SIZE (rust/crates/assert_cmd-2.0.16.crate) = 26554
+SHA256 (rust/crates/bincode-2.0.0-rc.3.crate) = f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95
+SIZE (rust/crates/bincode-2.0.0-rc.3.crate) = 57746
+SHA256 (rust/crates/bincode_derive-2.0.0-rc.3.crate) = 7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c
+SIZE (rust/crates/bincode_derive-2.0.0-rc.3.crate) = 6335
+SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
+SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
+SHA256 (rust/crates/bstr-1.10.0.crate) = 40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c
+SIZE (rust/crates/bstr-1.10.0.crate) = 380426
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
+SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
+SHA256 (rust/crates/clap-4.5.15.crate) = 11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc
+SIZE (rust/crates/clap-4.5.15.crate) = 56612
+SHA256 (rust/crates/clap-verbosity-flag-2.2.1.crate) = 63d19864d6b68464c59f7162c9914a0b569ddc2926b4a2d71afe62a9738eff53
+SIZE (rust/crates/clap-verbosity-flag-2.2.1.crate) = 12620
+SHA256 (rust/crates/clap_builder-4.5.15.crate) = 216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6
+SIZE (rust/crates/clap_builder-4.5.15.crate) = 163717
+SHA256 (rust/crates/clap_derive-4.5.13.crate) = 501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0
+SIZE (rust/crates/clap_derive-4.5.13.crate) = 30132
+SHA256 (rust/crates/clap_lex-0.7.2.crate) = 1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97
+SIZE (rust/crates/clap_lex-0.7.2.crate) = 12805
+SHA256 (rust/crates/colorchoice-1.0.2.crate) = d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0
+SIZE (rust/crates/colorchoice-1.0.2.crate) = 7924
+SHA256 (rust/crates/cstr-0.2.12.crate) = 68523903c8ae5aacfa32a0d9ae60cadeb764e1da14ee0d26b1f3089f13a54636
+SIZE (rust/crates/cstr-0.2.12.crate) = 6078
+SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
+SIZE (rust/crates/difflib-0.4.0.crate) = 7638
+SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
+SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
+SHA256 (rust/crates/env_filter-0.1.2.crate) = 4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab
+SIZE (rust/crates/env_filter-0.1.2.crate) = 13327
+SHA256 (rust/crates/env_logger-0.11.5.crate) = e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d
+SIZE (rust/crates/env_logger-0.11.5.crate) = 30683
+SHA256 (rust/crates/errno-0.3.9.crate) = 534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba
+SIZE (rust/crates/errno-0.3.9.crate) = 10690
+SHA256 (rust/crates/fastrand-2.1.0.crate) = 9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a
+SIZE (rust/crates/fastrand-2.1.0.crate) = 14907
+SHA256 (rust/crates/fuser-0.14.0.crate) = 2e697f6f62c20b6fad1ba0f84ae909f25971cf16e735273524e3977c94604cf8
+SIZE (rust/crates/fuser-0.14.0.crate) = 95109
+SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
+SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
+SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b
+SIZE (rust/crates/glob-0.3.1.crate) = 18880
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
+SIZE (rust/crates/humantime-2.1.0.crate) = 16749
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
+SHA256 (rust/crates/linux-raw-sys-0.4.14.crate) = 78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89
+SIZE (rust/crates/linux-raw-sys-0.4.14.crate) = 1826665
+SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
+SIZE (rust/crates/log-0.4.22.crate) = 44027
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/nix-0.28.0.crate) = ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4
+SIZE (rust/crates/nix-0.28.0.crate) = 311086
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/page_size-0.6.0.crate) = 30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da
+SIZE (rust/crates/page_size-0.6.0.crate) = 8479
+SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
+SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613
+SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
+SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
+SHA256 (rust/crates/predicates-3.1.2.crate) = 7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97
+SIZE (rust/crates/predicates-3.1.2.crate) = 23986
+SHA256 (rust/crates/predicates-core-1.0.8.crate) = ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931
+SIZE (rust/crates/predicates-core-1.0.8.crate) = 8552
+SHA256 (rust/crates/predicates-tree-1.0.11.crate) = 41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13
+SIZE (rust/crates/predicates-tree-1.0.11.crate) = 8393
+SHA256 (rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77
+SIZE (rust/crates/proc-macro2-1.0.86.crate) = 48958
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+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.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/regex-1.10.6.crate) = 4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619
+SIZE (rust/crates/regex-1.10.6.crate) = 253894
+SHA256 (rust/crates/regex-automata-0.4.7.crate) = 38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df
+SIZE (rust/crates/regex-automata-0.4.7.crate) = 617582
+SHA256 (rust/crates/regex-syntax-0.8.4.crate) = 7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b
+SIZE (rust/crates/regex-syntax-0.8.4.crate) = 347577
+SHA256 (rust/crates/relative-path-1.9.3.crate) = ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2
+SIZE (rust/crates/relative-path-1.9.3.crate) = 22400
+SHA256 (rust/crates/rstest-0.19.0.crate) = 9d5316d2a1479eeef1ea21e7f9ddc67c191d497abc8fc3ba2467857abbb68330
+SIZE (rust/crates/rstest-0.19.0.crate) = 32932
+SHA256 (rust/crates/rstest_macros-0.19.0.crate) = 04a9df72cc1f67020b0d63ad9bfe4a323e459ea7eb68e03bd9824db49f9a4c25
+SIZE (rust/crates/rstest_macros-0.19.0.crate) = 61243
+SHA256 (rust/crates/rstest_reuse-0.7.0.crate) = b3a8fb4672e840a587a66fc577a5491375df51ddb88f2a2c2a792598c326fe14
+SIZE (rust/crates/rstest_reuse-0.7.0.crate) = 12828
+SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366
+SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
+SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
+SIZE (rust/crates/rustix-0.38.34.crate) = 365160
+SHA256 (rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b
+SIZE (rust/crates/semver-1.0.23.crate) = 30622
+SHA256 (rust/crates/serde-1.0.207.crate) = 5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2
+SIZE (rust/crates/serde-1.0.207.crate) = 78247
+SHA256 (rust/crates/serde_derive-1.0.207.crate) = 6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e
+SIZE (rust/crates/serde_derive-1.0.207.crate) = 56016
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.74.crate) = 1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7
+SIZE (rust/crates/syn-2.0.74.crate) = 267998
+SHA256 (rust/crates/tempfile-3.12.0.crate) = 04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64
+SIZE (rust/crates/tempfile-3.12.0.crate) = 34423
+SHA256 (rust/crates/termtree-0.4.1.crate) = 3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76
+SIZE (rust/crates/termtree-0.4.1.crate) = 4557
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/virtue-0.0.13.crate) = 9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314
+SIZE (rust/crates/virtue-0.0.13.crate) = 26483
+SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
+SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+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-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/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/xattr-1.3.1.crate) = 8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f
+SIZE (rust/crates/xattr-1.3.1.crate) = 12580
+SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
+SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
+SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
+SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
+SHA256 (realchonk-fuse-ufs-0.3.0_GH0.tar.gz) = 3646983348c848e8270acadcf606e239265829e2904984a4ecfe84d4db90a71e
+SIZE (realchonk-fuse-ufs-0.3.0_GH0.tar.gz) = 1359950
diff --git a/sysutils/fusefs-ufs/pkg-descr b/sysutils/fusefs-ufs/pkg-descr
new file mode 100644
index 000000000000..a4268e90af05
--- /dev/null
+++ b/sysutils/fusefs-ufs/pkg-descr
@@ -0,0 +1,7 @@
+A FUSE file system driver for FreeBSD's UFSv2.
+
+Features:
+
+ - Read support for FreeBSD UFSv2
+ - Extended Attributes (no ACLs)
+ - Bi-Endian support (eg. mounting big endian FS on little endian system)
diff --git a/sysutils/fusefs-ufs/pkg-plist b/sysutils/fusefs-ufs/pkg-plist
new file mode 100644
index 000000000000..4cc756be2006
--- /dev/null
+++ b/sysutils/fusefs-ufs/pkg-plist
@@ -0,0 +1,3 @@
+bin/fuse-ufs
+bin/mount.ufs
+share/man/man8/fuse-ufs.8.gz