git: 20412e523a85 - main - sysutils/flipperbit: New port: Corrupted files generator, random bits flipper

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 02 Nov 2023 01:40:24 UTC
The branch main has been updated by yuri:

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

commit 20412e523a85b8816e777b7a17db7e2691373455
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-11-02 01:39:50 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-11-02 01:40:19 +0000

    sysutils/flipperbit: New port: Corrupted files generator, random bits flipper
---
 sysutils/Makefile             |  1 +
 sysutils/flipperbit/Makefile  | 68 ++++++++++++++++++++++++++++++++
 sysutils/flipperbit/distinfo  | 91 +++++++++++++++++++++++++++++++++++++++++++
 sysutils/flipperbit/pkg-descr |  8 ++++
 4 files changed, 168 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 5cbd3b9270d0..bc0ca6f4acdd 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -410,6 +410,7 @@
     SUBDIR += flasher
     SUBDIR += flashrom
     SUBDIR += flexbackup
+    SUBDIR += flipperbit
     SUBDIR += flock
     SUBDIR += flog
     SUBDIR += flowgger
diff --git a/sysutils/flipperbit/Makefile b/sysutils/flipperbit/Makefile
new file mode 100644
index 000000000000..fd0cb6e0e709
--- /dev/null
+++ b/sysutils/flipperbit/Makefile
@@ -0,0 +1,68 @@
+PORTNAME=	flipperbit
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.2
+CATEGORIES=	sysutils
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Corrupted files generator, random bits flipper
+WWW=		https://github.com/0xor0ne/flipperbit
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	0xor0ne
+
+CARGO_CRATES=	atty-0.2.14 \
+		autocfg-1.1.0 \
+		bitflags-1.3.2 \
+		cfg-if-1.0.0 \
+		clap-3.1.18 \
+		clap_derive-3.1.18 \
+		clap_lex-0.2.0 \
+		const-random-0.1.13 \
+		const-random-macro-0.1.13 \
+		crunchy-0.2.2 \
+		debugoff-0.2.1 \
+		getrandom-0.2.6 \
+		goldberg-0.1.0 \
+		hashbrown-0.11.2 \
+		heck-0.4.0 \
+		hermit-abi-0.1.19 \
+		indexmap-1.8.1 \
+		lazy_static-1.4.0 \
+		libc-0.2.125 \
+		moisture-0.1.0 \
+		os_str_bytes-6.0.0 \
+		ppv-lite86-0.2.16 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro-hack-0.5.19 \
+		proc-macro2-1.0.38 \
+		quote-1.0.18 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.3 \
+		simple-error-0.2.3 \
+		strsim-0.10.0 \
+		syn-1.0.93 \
+		termcolor-1.1.3 \
+		textwrap-0.15.0 \
+		tiny-keccak-2.0.2 \
+		unicode-xid-0.2.3 \
+		unroll-0.1.5 \
+		version_check-0.9.4 \
+		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
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/sysutils/flipperbit/distinfo b/sysutils/flipperbit/distinfo
new file mode 100644
index 000000000000..a758ea2fb5e1
--- /dev/null
+++ b/sysutils/flipperbit/distinfo
@@ -0,0 +1,91 @@
+TIMESTAMP = 1698888589
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-3.1.18.crate) = d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b
+SIZE (rust/crates/clap-3.1.18.crate) = 209664
+SHA256 (rust/crates/clap_derive-3.1.18.crate) = 25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c
+SIZE (rust/crates/clap_derive-3.1.18.crate) = 25521
+SHA256 (rust/crates/clap_lex-0.2.0.crate) = a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213
+SIZE (rust/crates/clap_lex-0.2.0.crate) = 9581
+SHA256 (rust/crates/const-random-0.1.13.crate) = f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4
+SIZE (rust/crates/const-random-0.1.13.crate) = 6646
+SHA256 (rust/crates/const-random-macro-0.1.13.crate) = 615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40
+SIZE (rust/crates/const-random-macro-0.1.13.crate) = 6359
+SHA256 (rust/crates/crunchy-0.2.2.crate) = 7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7
+SIZE (rust/crates/crunchy-0.2.2.crate) = 2995
+SHA256 (rust/crates/debugoff-0.2.1.crate) = 829721489ead262d9fbb1f0585d6781d5e5afebf41e6c604f00836e772324b66
+SIZE (rust/crates/debugoff-0.2.1.crate) = 847646
+SHA256 (rust/crates/getrandom-0.2.6.crate) = 9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad
+SIZE (rust/crates/getrandom-0.2.6.crate) = 28043
+SHA256 (rust/crates/goldberg-0.1.0.crate) = d2d9cbd1fdba1a34e35404e93aab99efbf14076ab4c3380b4d408f7cd3cd9710
+SIZE (rust/crates/goldberg-0.1.0.crate) = 25475
+SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e
+SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713
+SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
+SIZE (rust/crates/heck-0.4.0.crate) = 11161
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/indexmap-1.8.1.crate) = 0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee
+SIZE (rust/crates/indexmap-1.8.1.crate) = 53220
+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.125.crate) = 5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b
+SIZE (rust/crates/libc-0.2.125.crate) = 589236
+SHA256 (rust/crates/moisture-0.1.0.crate) = da1c12ec95f955162f01e673f383afd3f1306a5d7254f0aa38c4d219066ad7b0
+SIZE (rust/crates/moisture-0.1.0.crate) = 24109
+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/ppv-lite86-0.2.16.crate) = eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872
+SIZE (rust/crates/ppv-lite86-0.2.16.crate) = 22245
+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-macro2-1.0.38.crate) = 9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa
+SIZE (rust/crates/proc-macro2-1.0.38.crate) = 41687
+SHA256 (rust/crates/quote-1.0.18.crate) = a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1
+SIZE (rust/crates/quote-1.0.18.crate) = 28911
+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.3.crate) = d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7
+SIZE (rust/crates/rand_core-0.6.3.crate) = 21938
+SHA256 (rust/crates/simple-error-0.2.3.crate) = cc47a29ce97772ca5c927f75bac34866b16d64e07f330c3248e2d7226623901b
+SIZE (rust/crates/simple-error-0.2.3.crate) = 9561
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.93.crate) = 04066589568b72ec65f42d65a1a52436e954b168773148893c020269563decf2
+SIZE (rust/crates/syn-1.0.93.crate) = 236682
+SHA256 (rust/crates/termcolor-1.1.3.crate) = bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755
+SIZE (rust/crates/termcolor-1.1.3.crate) = 17242
+SHA256 (rust/crates/textwrap-0.15.0.crate) = b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb
+SIZE (rust/crates/textwrap-0.15.0.crate) = 52998
+SHA256 (rust/crates/tiny-keccak-2.0.2.crate) = 2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237
+SIZE (rust/crates/tiny-keccak-2.0.2.crate) = 20129
+SHA256 (rust/crates/unicode-xid-0.2.3.crate) = 957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04
+SIZE (rust/crates/unicode-xid-0.2.3.crate) = 15174
+SHA256 (rust/crates/unroll-0.1.5.crate) = 5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618
+SIZE (rust/crates/unroll-0.1.5.crate) = 20352
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+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 (0xor0ne-flipperbit-v0.1.2_GH0.tar.gz) = b6aace6e86ccb472cf5b1c542af50353e9fe41289748f2d8abc3870e8615e614
+SIZE (0xor0ne-flipperbit-v0.1.2_GH0.tar.gz) = 21299
diff --git a/sysutils/flipperbit/pkg-descr b/sysutils/flipperbit/pkg-descr
new file mode 100644
index 000000000000..322ef272cd18
--- /dev/null
+++ b/sysutils/flipperbit/pkg-descr
@@ -0,0 +1,8 @@
+Flipperbit generates multiple corrupted variants of an input file by
+randomly flipping bits in selected byte ranges.
+
+Flipperbit allows to specify multiple byte ranges and the bit flipping
+probabilty.
+
+The output of flipperbit can be used as input to software (E.g., bulk file
+processing applications, file parsing utilities) as a form of dumb fuzzing.