git: fad1543e2849 - main - textproc/biodiff: New port: Hex diff viewer using alignment algorithms from biology

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 03 Jan 2023 00:37:22 UTC
The branch main has been updated by yuri:

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

commit fad1543e28490619581688752e915def76aee5c7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-02 23:02:16 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-03 00:37:13 +0000

    textproc/biodiff: New port: Hex diff viewer using alignment algorithms from biology
---
 textproc/Makefile          |   1 +
 textproc/biodiff/Makefile  | 169 ++++++++++++++++++++++++++
 textproc/biodiff/distinfo  | 287 +++++++++++++++++++++++++++++++++++++++++++++
 textproc/biodiff/pkg-descr |  10 ++
 4 files changed, 467 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 24dc57dc25bc..6077cd553287 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -79,6 +79,7 @@
     SUBDIR += bibtex2html
     SUBDIR += bibtool
     SUBDIR += bibutils
+    SUBDIR += biodiff
     SUBDIR += bn-aspell
     SUBDIR += br-aspell
     SUBDIR += bsddiff
diff --git a/textproc/biodiff/Makefile b/textproc/biodiff/Makefile
new file mode 100644
index 000000000000..284f1dac479e
--- /dev/null
+++ b/textproc/biodiff/Makefile
@@ -0,0 +1,169 @@
+PORTNAME=	biodiff
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.0.3
+CATEGORIES=	textproc
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Hex diff viewer using alignment algorithms from biology
+WWW=		https://github.com/8051Enthusiast/biodiff
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	8051Enthusiast
+
+CARGO_CRATES=	ahash-0.7.6 \
+		aho-corasick-0.7.18 \
+		anyhow-1.0.58 \
+		approx-0.5.1 \
+		autocfg-1.1.0 \
+		bio-0.41.0 \
+		bio-types-0.12.1 \
+		bit-set-0.5.2 \
+		bit-vec-0.6.3 \
+		bitflags-1.3.2 \
+		bstr-0.2.17 \
+		bv-0.11.1 \
+		bytecount-0.6.3 \
+		byteorder-1.4.3 \
+		cfg-if-1.0.0 \
+		crossbeam-channel-0.5.5 \
+		crossbeam-utils-0.8.10 \
+		crossterm-0.24.0 \
+		crossterm_winapi-0.9.0 \
+		csv-1.1.6 \
+		csv-core-0.1.10 \
+		cursive-0.19.0 \
+		cursive_buffered_backend-0.6.0 \
+		cursive_core-0.3.4 \
+		custom_derive-0.1.7 \
+		darling-0.13.4 \
+		darling_core-0.13.4 \
+		darling_macro-0.13.4 \
+		derive-new-0.5.9 \
+		dirs-4.0.0 \
+		dirs-sys-0.3.7 \
+		either-1.7.0 \
+		enum-map-1.1.1 \
+		enum-map-2.4.0 \
+		enum-map-derive-0.6.0 \
+		enum-map-derive-0.9.0 \
+		enumset-1.0.11 \
+		enumset_derive-0.6.0 \
+		feature-probe-0.1.1 \
+		fixedbitset-0.4.2 \
+		fnv-1.0.7 \
+		fxhash-0.2.1 \
+		getrandom-0.2.7 \
+		getset-0.1.2 \
+		hashbrown-0.12.3 \
+		heck-0.3.3 \
+		hermit-abi-0.1.19 \
+		hex-0.4.3 \
+		ident_case-1.0.1 \
+		indexmap-1.9.1 \
+		itertools-0.10.3 \
+		itertools-num-0.1.3 \
+		itoa-0.4.8 \
+		itoa-1.0.2 \
+		lazy_static-1.4.0 \
+		libc-0.2.126 \
+		libm-0.2.2 \
+		lock_api-0.4.7 \
+		log-0.4.17 \
+		matrixmultiply-0.3.2 \
+		memchr-2.5.0 \
+		memmap2-0.5.5 \
+		mio-0.8.4 \
+		multimap-0.8.3 \
+		nalgebra-0.27.1 \
+		nalgebra-macros-0.1.0 \
+		ndarray-0.15.4 \
+		newtype_derive-0.1.6 \
+		num-0.4.0 \
+		num-complex-0.4.2 \
+		num-integer-0.1.45 \
+		num-iter-0.1.43 \
+		num-rational-0.4.1 \
+		num-traits-0.2.15 \
+		num_cpus-1.13.1 \
+		num_threads-0.1.6 \
+		once_cell-1.13.0 \
+		ordered-float-1.1.1 \
+		owning_ref-0.4.1 \
+		parking_lot-0.12.1 \
+		parking_lot_core-0.9.3 \
+		paste-1.0.7 \
+		petgraph-0.6.2 \
+		ppv-lite86-0.2.16 \
+		primal-check-0.3.1 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.40 \
+		quote-1.0.20 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.3 \
+		rand_distr-0.4.3 \
+		rawpointer-0.2.1 \
+		realfft-3.0.0 \
+		redox_syscall-0.2.13 \
+		redox_users-0.4.3 \
+		regex-1.6.0 \
+		regex-automata-0.1.10 \
+		regex-syntax-0.6.27 \
+		rustc_version-0.1.7 \
+		rustfft-6.0.1 \
+		rustversion-1.0.8 \
+		ryu-1.0.10 \
+		scopeguard-1.1.0 \
+		semver-0.1.20 \
+		serde-1.0.140 \
+		serde_derive-1.0.140 \
+		serde_json-1.0.82 \
+		signal-hook-0.3.14 \
+		signal-hook-mio-0.2.3 \
+		signal-hook-registry-1.4.0 \
+		simba-0.5.1 \
+		smallvec-1.9.0 \
+		stable_deref_trait-1.2.0 \
+		statrs-0.15.0 \
+		strength_reduce-0.2.3 \
+		strum-0.23.0 \
+		strum_macros-0.23.1 \
+		syn-1.0.98 \
+		thiserror-1.0.31 \
+		thiserror-impl-1.0.31 \
+		time-0.3.11 \
+		transpose-0.2.1 \
+		triple_accel-0.4.0 \
+		typenum-1.15.0 \
+		unicode-ident-1.0.2 \
+		unicode-segmentation-1.9.0 \
+		unicode-width-0.1.9 \
+		vec_map-0.8.2 \
+		version_check-0.9.4 \
+		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.36.1 \
+		windows_aarch64_msvc-0.36.1 \
+		windows_i686_gnu-0.36.1 \
+		windows_i686_msvc-0.36.1 \
+		windows_x86_64_gnu-0.36.1 \
+		windows_x86_64_msvc-0.36.1 \
+		xi-unicode-0.3.0
+
+PLIST_FILES=	bin/${PORTNAME} \
+		bin/git-biodiff
+
+post-install:
+	@${STRIP_CMD} \
+		${STAGEDIR}${PREFIX}/bin/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin/git-biodiff
+
+.include <bsd.port.mk>
diff --git a/textproc/biodiff/distinfo b/textproc/biodiff/distinfo
new file mode 100644
index 000000000000..70aca2faad96
--- /dev/null
+++ b/textproc/biodiff/distinfo
@@ -0,0 +1,287 @@
+TIMESTAMP = 1672699613
+SHA256 (rust/crates/ahash-0.7.6.crate) = fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47
+SIZE (rust/crates/ahash-0.7.6.crate) = 38030
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/anyhow-1.0.58.crate) = bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704
+SIZE (rust/crates/anyhow-1.0.58.crate) = 43137
+SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6
+SIZE (rust/crates/approx-0.5.1.crate) = 15100
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bio-0.41.0.crate) = 4a69423e30444738eccc5e54eccee75779dd3f15ecc0469b95d8529d4b6b7586
+SIZE (rust/crates/bio-0.41.0.crate) = 190764
+SHA256 (rust/crates/bio-types-0.12.1.crate) = 13bc4296477f37f54e4fd21efaf48a7fa40fbb289bfbf338af5fbbe42797acb6
+SIZE (rust/crates/bio-types-0.12.1.crate) = 22058
+SHA256 (rust/crates/bit-set-0.5.2.crate) = 6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de
+SIZE (rust/crates/bit-set-0.5.2.crate) = 14093
+SHA256 (rust/crates/bit-vec-0.6.3.crate) = 349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb
+SIZE (rust/crates/bit-vec-0.6.3.crate) = 19927
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bstr-0.2.17.crate) = ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223
+SIZE (rust/crates/bstr-0.2.17.crate) = 330350
+SHA256 (rust/crates/bv-0.11.1.crate) = 8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340
+SIZE (rust/crates/bv-0.11.1.crate) = 42061
+SHA256 (rust/crates/bytecount-0.6.3.crate) = 2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c
+SIZE (rust/crates/bytecount-0.6.3.crate) = 12416
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/crossbeam-channel-0.5.5.crate) = 4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c
+SIZE (rust/crates/crossbeam-channel-0.5.5.crate) = 90326
+SHA256 (rust/crates/crossbeam-utils-0.8.10.crate) = 7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83
+SIZE (rust/crates/crossbeam-utils-0.8.10.crate) = 40672
+SHA256 (rust/crates/crossterm-0.24.0.crate) = ab9f7409c70a38a56216480fba371ee460207dd8926ccf5b4160591759559170
+SIZE (rust/crates/crossterm-0.24.0.crate) = 110615
+SHA256 (rust/crates/crossterm_winapi-0.9.0.crate) = 2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c
+SIZE (rust/crates/crossterm_winapi-0.9.0.crate) = 15561
+SHA256 (rust/crates/csv-1.1.6.crate) = 22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1
+SIZE (rust/crates/csv-1.1.6.crate) = 886999
+SHA256 (rust/crates/csv-core-0.1.10.crate) = 2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90
+SIZE (rust/crates/csv-core-0.1.10.crate) = 25668
+SHA256 (rust/crates/cursive-0.19.0.crate) = f3dc950f7cbc2aeb48ba253623fcd21357b15170a0e7c5f6433081d95808b7fd
+SIZE (rust/crates/cursive-0.19.0.crate) = 67387
+SHA256 (rust/crates/cursive_buffered_backend-0.6.0.crate) = 68c7725a87b0a5240427917d645d279669fa8bb523cd920d2c442da7ef8b769d
+SIZE (rust/crates/cursive_buffered_backend-0.6.0.crate) = 6386
+SHA256 (rust/crates/cursive_core-0.3.4.crate) = 4f8332f2d1dc815a1c72aa95cba6a557198b8e875371a8f1951037f510d7e257
+SIZE (rust/crates/cursive_core-0.3.4.crate) = 152221
+SHA256 (rust/crates/custom_derive-0.1.7.crate) = ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9
+SIZE (rust/crates/custom_derive-0.1.7.crate) = 10700
+SHA256 (rust/crates/darling-0.13.4.crate) = a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c
+SIZE (rust/crates/darling-0.13.4.crate) = 20895
+SHA256 (rust/crates/darling_core-0.13.4.crate) = 859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610
+SIZE (rust/crates/darling_core-0.13.4.crate) = 52937
+SHA256 (rust/crates/darling_macro-0.13.4.crate) = 9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835
+SIZE (rust/crates/darling_macro-0.13.4.crate) = 1910
+SHA256 (rust/crates/derive-new-0.5.9.crate) = 3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535
+SIZE (rust/crates/derive-new-0.5.9.crate) = 7733
+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.7.crate) = 1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6
+SIZE (rust/crates/dirs-sys-0.3.7.crate) = 10597
+SHA256 (rust/crates/either-1.7.0.crate) = 3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be
+SIZE (rust/crates/either-1.7.0.crate) = 15492
+SHA256 (rust/crates/enum-map-1.1.1.crate) = e893a7ba6116821058dec84a6fb14fb2a97cd8ce5fd0f85d5a4e760ecd7329d9
+SIZE (rust/crates/enum-map-1.1.1.crate) = 10082
+SHA256 (rust/crates/enum-map-2.4.0.crate) = 6ddfe61e8040145222887d0d32a939c70c8cae681490d72fb868305e9b40ced8
+SIZE (rust/crates/enum-map-2.4.0.crate) = 12220
+SHA256 (rust/crates/enum-map-derive-0.6.0.crate) = 84278eae0af6e34ff6c1db44c11634a694aafac559ff3080e4db4e4ac35907aa
+SIZE (rust/crates/enum-map-derive-0.6.0.crate) = 2012
+SHA256 (rust/crates/enum-map-derive-0.9.0.crate) = 00d1c54e25a57236a790ecf051c2befbb57740c9b86c4273eac378ba84d620d6
+SIZE (rust/crates/enum-map-derive-0.9.0.crate) = 3809
+SHA256 (rust/crates/enumset-1.0.11.crate) = 4799cdb24d48f1f8a7a98d06b7fde65a85a2d1e42b25a889f5406aa1fbefe074
+SIZE (rust/crates/enumset-1.0.11.crate) = 20347
+SHA256 (rust/crates/enumset_derive-0.6.0.crate) = ea83a3fbdc1d999ccfbcbee717eab36f8edf2d71693a23ce0d7cca19e085304c
+SIZE (rust/crates/enumset_derive-0.6.0.crate) = 10706
+SHA256 (rust/crates/feature-probe-0.1.1.crate) = 835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da
+SIZE (rust/crates/feature-probe-0.1.1.crate) = 7622
+SHA256 (rust/crates/fixedbitset-0.4.2.crate) = 0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80
+SIZE (rust/crates/fixedbitset-0.4.2.crate) = 15954
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
+SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
+SHA256 (rust/crates/getrandom-0.2.7.crate) = 4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6
+SIZE (rust/crates/getrandom-0.2.7.crate) = 28854
+SHA256 (rust/crates/getset-0.1.2.crate) = e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9
+SIZE (rust/crates/getset-0.1.2.crate) = 8831
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+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/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
+SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
+SHA256 (rust/crates/indexmap-1.9.1.crate) = 10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e
+SIZE (rust/crates/indexmap-1.9.1.crate) = 54114
+SHA256 (rust/crates/itertools-0.10.3.crate) = a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3
+SIZE (rust/crates/itertools-0.10.3.crate) = 118661
+SHA256 (rust/crates/itertools-num-0.1.3.crate) = a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7
+SIZE (rust/crates/itertools-num-0.1.3.crate) = 7790
+SHA256 (rust/crates/itoa-0.4.8.crate) = b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4
+SIZE (rust/crates/itoa-0.4.8.crate) = 11926
+SHA256 (rust/crates/itoa-1.0.2.crate) = 112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d
+SIZE (rust/crates/itoa-1.0.2.crate) = 11112
+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.126.crate) = 349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836
+SIZE (rust/crates/libc-0.2.126.crate) = 590481
+SHA256 (rust/crates/libm-0.2.2.crate) = 33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db
+SIZE (rust/crates/libm-0.2.2.crate) = 113226
+SHA256 (rust/crates/lock_api-0.4.7.crate) = 327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53
+SIZE (rust/crates/lock_api-0.4.7.crate) = 25371
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/matrixmultiply-0.3.2.crate) = add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84
+SIZE (rust/crates/matrixmultiply-0.3.2.crate) = 49247
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/memmap2-0.5.5.crate) = 3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7
+SIZE (rust/crates/memmap2-0.5.5.crate) = 25900
+SHA256 (rust/crates/mio-0.8.4.crate) = 57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf
+SIZE (rust/crates/mio-0.8.4.crate) = 93013
+SHA256 (rust/crates/multimap-0.8.3.crate) = e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a
+SIZE (rust/crates/multimap-0.8.3.crate) = 13518
+SHA256 (rust/crates/nalgebra-0.27.1.crate) = 462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120
+SIZE (rust/crates/nalgebra-0.27.1.crate) = 330962
+SHA256 (rust/crates/nalgebra-macros-0.1.0.crate) = 01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218
+SIZE (rust/crates/nalgebra-macros-0.1.0.crate) = 5758
+SHA256 (rust/crates/ndarray-0.15.4.crate) = dec23e6762830658d2b3d385a75aa212af2f67a4586d4442907144f3bb6a1ca8
+SIZE (rust/crates/ndarray-0.15.4.crate) = 271373
+SHA256 (rust/crates/newtype_derive-0.1.6.crate) = ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec
+SIZE (rust/crates/newtype_derive-0.1.6.crate) = 7357
+SHA256 (rust/crates/num-0.4.0.crate) = 43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606
+SIZE (rust/crates/num-0.4.0.crate) = 9490
+SHA256 (rust/crates/num-complex-0.4.2.crate) = 7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19
+SIZE (rust/crates/num-complex-0.4.2.crate) = 29341
+SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
+SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
+SHA256 (rust/crates/num-iter-0.1.43.crate) = 7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252
+SIZE (rust/crates/num-iter-0.1.43.crate) = 10655
+SHA256 (rust/crates/num-rational-0.4.1.crate) = 0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0
+SIZE (rust/crates/num-rational-0.4.1.crate) = 27889
+SHA256 (rust/crates/num-traits-0.2.15.crate) = 578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd
+SIZE (rust/crates/num-traits-0.2.15.crate) = 49262
+SHA256 (rust/crates/num_cpus-1.13.1.crate) = 19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1
+SIZE (rust/crates/num_cpus-1.13.1.crate) = 14752
+SHA256 (rust/crates/num_threads-0.1.6.crate) = 2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44
+SIZE (rust/crates/num_threads-0.1.6.crate) = 7334
+SHA256 (rust/crates/once_cell-1.13.0.crate) = 18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1
+SIZE (rust/crates/once_cell-1.13.0.crate) = 31726
+SHA256 (rust/crates/ordered-float-1.1.1.crate) = 3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7
+SIZE (rust/crates/ordered-float-1.1.1.crate) = 9983
+SHA256 (rust/crates/owning_ref-0.4.1.crate) = 6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce
+SIZE (rust/crates/owning_ref-0.4.1.crate) = 12658
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
+SHA256 (rust/crates/parking_lot_core-0.9.3.crate) = 09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929
+SIZE (rust/crates/parking_lot_core-0.9.3.crate) = 32256
+SHA256 (rust/crates/paste-1.0.7.crate) = 0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc
+SIZE (rust/crates/paste-1.0.7.crate) = 18285
+SHA256 (rust/crates/petgraph-0.6.2.crate) = e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143
+SIZE (rust/crates/petgraph-0.6.2.crate) = 182513
+SHA256 (rust/crates/ppv-lite86-0.2.16.crate) = eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872
+SIZE (rust/crates/ppv-lite86-0.2.16.crate) = 22245
+SHA256 (rust/crates/primal-check-0.3.1.crate) = 01419cee72c1a1ca944554e23d83e483e1bccf378753344e881de28b5487511d
+SIZE (rust/crates/primal-check-0.3.1.crate) = 4602
+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.40.crate) = dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7
+SIZE (rust/crates/proc-macro2-1.0.40.crate) = 40559
+SHA256 (rust/crates/quote-1.0.20.crate) = 3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804
+SIZE (rust/crates/quote-1.0.20.crate) = 28160
+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/rand_distr-0.4.3.crate) = 32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31
+SIZE (rust/crates/rand_distr-0.4.3.crate) = 58255
+SHA256 (rust/crates/rawpointer-0.2.1.crate) = 60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3
+SIZE (rust/crates/rawpointer-0.2.1.crate) = 7490
+SHA256 (rust/crates/realfft-3.0.0.crate) = a83b876fe55da7e1bf5deeacb93d6411edf81eba0e1a497e79c067734729053a
+SIZE (rust/crates/realfft-3.0.0.crate) = 15640
+SHA256 (rust/crates/redox_syscall-0.2.13.crate) = 62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42
+SIZE (rust/crates/redox_syscall-0.2.13.crate) = 23759
+SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
+SIZE (rust/crates/redox_users-0.4.3.crate) = 15353
+SHA256 (rust/crates/regex-1.6.0.crate) = 4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b
+SIZE (rust/crates/regex-1.6.0.crate) = 239329
+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.27.crate) = a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244
+SIZE (rust/crates/regex-syntax-0.6.27.crate) = 297300
+SHA256 (rust/crates/rustc_version-0.1.7.crate) = c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084
+SIZE (rust/crates/rustc_version-0.1.7.crate) = 8816
+SHA256 (rust/crates/rustfft-6.0.1.crate) = b1d089e5c57521629a59f5f39bca7434849ff89bd6873b521afe389c1c602543
+SIZE (rust/crates/rustfft-6.0.1.crate) = 220147
+SHA256 (rust/crates/rustversion-1.0.8.crate) = 24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8
+SIZE (rust/crates/rustversion-1.0.8.crate) = 17351
+SHA256 (rust/crates/ryu-1.0.10.crate) = f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695
+SIZE (rust/crates/ryu-1.0.10.crate) = 48485
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/semver-0.1.20.crate) = d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac
+SIZE (rust/crates/semver-0.1.20.crate) = 15876
+SHA256 (rust/crates/serde-1.0.140.crate) = fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03
+SIZE (rust/crates/serde-1.0.140.crate) = 76408
+SHA256 (rust/crates/serde_derive-1.0.140.crate) = 6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da
+SIZE (rust/crates/serde_derive-1.0.140.crate) = 54851
+SHA256 (rust/crates/serde_json-1.0.82.crate) = 82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7
+SIZE (rust/crates/serde_json-1.0.82.crate) = 144514
+SHA256 (rust/crates/signal-hook-0.3.14.crate) = a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d
+SIZE (rust/crates/signal-hook-0.3.14.crate) = 49446
+SHA256 (rust/crates/signal-hook-mio-0.2.3.crate) = 29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af
+SIZE (rust/crates/signal-hook-mio-0.2.3.crate) = 9064
+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/simba-0.5.1.crate) = 8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c
+SIZE (rust/crates/simba-0.5.1.crate) = 48512
+SHA256 (rust/crates/smallvec-1.9.0.crate) = 2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1
+SIZE (rust/crates/smallvec-1.9.0.crate) = 28396
+SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
+SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
+SHA256 (rust/crates/statrs-0.15.0.crate) = 05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05
+SIZE (rust/crates/statrs-0.15.0.crate) = 131157
+SHA256 (rust/crates/strength_reduce-0.2.3.crate) = a3ff2f71c82567c565ba4b3009a9350a96a7269eaa4001ebedae926230bc2254
+SIZE (rust/crates/strength_reduce-0.2.3.crate) = 13283
+SHA256 (rust/crates/strum-0.23.0.crate) = cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb
+SIZE (rust/crates/strum-0.23.0.crate) = 5429
+SHA256 (rust/crates/strum_macros-0.23.1.crate) = 5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38
+SIZE (rust/crates/strum_macros-0.23.1.crate) = 18203
+SHA256 (rust/crates/syn-1.0.98.crate) = c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd
+SIZE (rust/crates/syn-1.0.98.crate) = 235451
+SHA256 (rust/crates/thiserror-1.0.31.crate) = bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a
+SIZE (rust/crates/thiserror-1.0.31.crate) = 18013
+SHA256 (rust/crates/thiserror-impl-1.0.31.crate) = 0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a
+SIZE (rust/crates/thiserror-impl-1.0.31.crate) = 15283
+SHA256 (rust/crates/time-0.3.11.crate) = 72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217
+SIZE (rust/crates/time-0.3.11.crate) = 91807
+SHA256 (rust/crates/transpose-0.2.1.crate) = 95f9c900aa98b6ea43aee227fd680550cdec726526aab8ac801549eadb25e39f
+SIZE (rust/crates/transpose-0.2.1.crate) = 6499
+SHA256 (rust/crates/triple_accel-0.4.0.crate) = 22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63
+SIZE (rust/crates/triple_accel-0.4.0.crate) = 37943
+SHA256 (rust/crates/typenum-1.15.0.crate) = dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987
+SIZE (rust/crates/typenum-1.15.0.crate) = 40741
+SHA256 (rust/crates/unicode-ident-1.0.2.crate) = 15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7
+SIZE (rust/crates/unicode-ident-1.0.2.crate) = 34951
+SHA256 (rust/crates/unicode-segmentation-1.9.0.crate) = 7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99
+SIZE (rust/crates/unicode-segmentation-1.9.0.crate) = 93241
+SHA256 (rust/crates/unicode-width-0.1.9.crate) = 3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973
+SIZE (rust/crates/unicode-width-0.1.9.crate) = 16745
+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.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+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.36.1.crate) = ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2
+SIZE (rust/crates/windows-sys-0.36.1.crate) = 3347053
+SHA256 (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47
+SIZE (rust/crates/windows_aarch64_msvc-0.36.1.crate) = 661960
+SHA256 (rust/crates/windows_i686_gnu-0.36.1.crate) = 180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6
+SIZE (rust/crates/windows_i686_gnu-0.36.1.crate) = 818115
+SHA256 (rust/crates/windows_i686_msvc-0.36.1.crate) = e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024
+SIZE (rust/crates/windows_i686_msvc-0.36.1.crate) = 724575
+SHA256 (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1
+SIZE (rust/crates/windows_x86_64_gnu-0.36.1.crate) = 790934
+SHA256 (rust/crates/windows_x86_64_msvc-0.36.1.crate) = c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680
+SIZE (rust/crates/windows_x86_64_msvc-0.36.1.crate) = 661999
+SHA256 (rust/crates/xi-unicode-0.3.0.crate) = a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a
+SIZE (rust/crates/xi-unicode-0.3.0.crate) = 87001
+SHA256 (8051Enthusiast-biodiff-v1.0.3_GH0.tar.gz) = 1e1aeccce2f6d3dfc1aaf15dde406e18f94b18b526e4e07b6b84a310c27d10fb
+SIZE (8051Enthusiast-biodiff-v1.0.3_GH0.tar.gz) = 67949
diff --git a/textproc/biodiff/pkg-descr b/textproc/biodiff/pkg-descr
new file mode 100644
index 000000000000..178ae8a42154
--- /dev/null
+++ b/textproc/biodiff/pkg-descr
@@ -0,0 +1,10 @@
+biodiff is a tool for binary diffing.
+
+The tool is able to show two binary files side by side so that similar places
+will be at the same position on both sides and bytes missing from one side are
+padded.
+
+It uses bio-informatics algorithms from the rust-bio library, typically used
+for DNA sequence alignment, for that.
+The dialog boxes for configuration are done using the github.com/gyscos/cursive
+library.