git: c3da1d821991 - main - graphics/ocrs: New port: Rust CLI tool for OCR

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 16 May 2024 16:49:09 UTC
The branch main has been updated by yuri:

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

commit c3da1d8219914d2886873bb85a669e3d999e4986
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-05-16 16:48:47 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-05-16 16:49:07 +0000

    graphics/ocrs: New port: Rust CLI tool for OCR
---
 graphics/Makefile                    |   1 +
 graphics/ocrs/Makefile               | 123 ++++++++++++++++++++++
 graphics/ocrs/distinfo               | 191 +++++++++++++++++++++++++++++++++++
 graphics/ocrs/files/patch-Cargo.toml |   8 ++
 graphics/ocrs/pkg-descr              |  16 +++
 5 files changed, 339 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 2160a78b5cea..b94e0d260f71 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -619,6 +619,7 @@
     SUBDIR += ocaml-images
     SUBDIR += ocaml-lablgl
     SUBDIR += ocrad
+    SUBDIR += ocrs
     SUBDIR += ogre3d
     SUBDIR += ogre3d19
     SUBDIR += oidn
diff --git a/graphics/ocrs/Makefile b/graphics/ocrs/Makefile
new file mode 100644
index 000000000000..76b3a4d26a16
--- /dev/null
+++ b/graphics/ocrs/Makefile
@@ -0,0 +1,123 @@
+PORTNAME=	ocrs
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.0
+CATEGORIES=	graphics
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Rust CLI tool for OCR
+WWW=		https://github.com/robertknight/ocrs
+
+LICENSE=	APACHE20 MIT
+LICENSE_COMB=	dual
+LICENSE_FILE_APACHE20=	${WRKSRC}/LICENSE-APACHE.txt
+LICENSE_FILE_MIT=	${WRKSRC}/LICENSE-MIT.txt
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	robertknight
+
+CARGO_CRATES=	adler-1.0.2 \
+		autocfg-1.1.0 \
+		base64-0.21.5 \
+		bitflags-1.3.2 \
+		bumpalo-3.14.0 \
+		bytemuck-1.14.0 \
+		byteorder-1.5.0 \
+		cc-1.0.83 \
+		cfg-if-1.0.0 \
+		color_quant-1.1.0 \
+		crc32fast-1.3.2 \
+		crossbeam-deque-0.8.4 \
+		crossbeam-epoch-0.9.17 \
+		crossbeam-utils-0.8.18 \
+		either-1.9.0 \
+		fastrand-1.9.0 \
+		fdeflate-0.3.3 \
+		flatbuffers-22.12.6 \
+		flate2-1.0.28 \
+		form_urlencoded-1.2.1 \
+		getrandom-0.2.11 \
+		home-0.5.9 \
+		idna-0.5.0 \
+		image-0.24.7 \
+		instant-0.1.12 \
+		itoa-1.0.10 \
+		jpeg-decoder-0.3.0 \
+		lexopt-0.3.0 \
+		libc-0.2.151 \
+		libm-0.2.8 \
+		log-0.4.20 \
+		miniz_oxide-0.7.1 \
+		num-integer-0.1.45 \
+		num-rational-0.4.1 \
+		num-traits-0.2.17 \
+		once_cell-1.19.0 \
+		percent-encoding-2.3.1 \
+		png-0.17.10 \
+		proc-macro2-1.0.74 \
+		quote-1.0.35 \
+		rayon-1.8.0 \
+		rayon-core-1.12.0 \
+		ring-0.17.7 \
+		rten-0.3.1 \
+		rten-imageio-0.3.0 \
+		rten-imageproc-0.3.0 \
+		rten-tensor-0.3.0 \
+		rten-vecmath-0.3.0 \
+		rustc_version-0.4.0 \
+		rustls-0.21.10 \
+		rustls-webpki-0.101.7 \
+		ryu-1.0.16 \
+		sct-0.7.1 \
+		semver-1.0.20 \
+		serde-1.0.194 \
+		serde_derive-1.0.194 \
+		serde_json-1.0.110 \
+		simd-adler32-0.3.7 \
+		smallvec-1.11.2 \
+		spin-0.9.8 \
+		syn-2.0.46 \
+		tinyvec-1.6.0 \
+		tinyvec_macros-0.1.1 \
+		unicode-bidi-0.3.14 \
+		unicode-ident-1.0.12 \
+		unicode-normalization-0.1.22 \
+		untrusted-0.9.0 \
+		ureq-2.9.1 \
+		url-2.5.0 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.89 \
+		wasm-bindgen-backend-0.2.89 \
+		wasm-bindgen-macro-0.2.89 \
+		wasm-bindgen-macro-support-0.2.89 \
+		wasm-bindgen-shared-0.2.89 \
+		webpki-roots-0.25.3 \
+		windows-sys-0.48.0 \
+		windows-sys-0.52.0 \
+		windows-targets-0.48.5 \
+		windows-targets-0.52.0 \
+		windows_aarch64_gnullvm-0.48.5 \
+		windows_aarch64_gnullvm-0.52.0 \
+		windows_aarch64_msvc-0.48.5 \
+		windows_aarch64_msvc-0.52.0 \
+		windows_i686_gnu-0.48.5 \
+		windows_i686_gnu-0.52.0 \
+		windows_i686_msvc-0.48.5 \
+		windows_i686_msvc-0.52.0 \
+		windows_x86_64_gnu-0.48.5 \
+		windows_x86_64_gnu-0.52.0 \
+		windows_x86_64_gnullvm-0.48.5 \
+		windows_x86_64_gnullvm-0.52.0 \
+		windows_x86_64_msvc-0.48.5 \
+		windows_x86_64_msvc-0.52.0
+
+PLIST_FILES=	bin/${PORTNAME}
+
+do-install:
+	# binaries (workaround for error: found a virtual manifest at `xx` instead of a package manifest)
+	${INSTALL_PROGRAM} \
+		${WRKDIR}/target/*/release/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.mk>
diff --git a/graphics/ocrs/distinfo b/graphics/ocrs/distinfo
new file mode 100644
index 000000000000..e349155a23cf
--- /dev/null
+++ b/graphics/ocrs/distinfo
@@ -0,0 +1,191 @@
+TIMESTAMP = 1715830001
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/base64-0.21.5.crate) = 35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9
+SIZE (rust/crates/base64-0.21.5.crate) = 77134
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bumpalo-3.14.0.crate) = 7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec
+SIZE (rust/crates/bumpalo-3.14.0.crate) = 82400
+SHA256 (rust/crates/bytemuck-1.14.0.crate) = 374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6
+SIZE (rust/crates/bytemuck-1.14.0.crate) = 44933
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0
+SIZE (rust/crates/cc-1.0.83.crate) = 68343
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
+SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/crossbeam-deque-0.8.4.crate) = fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751
+SIZE (rust/crates/crossbeam-deque-0.8.4.crate) = 21752
+SHA256 (rust/crates/crossbeam-epoch-0.9.17.crate) = 0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d
+SIZE (rust/crates/crossbeam-epoch-0.9.17.crate) = 46953
+SHA256 (rust/crates/crossbeam-utils-0.8.18.crate) = c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c
+SIZE (rust/crates/crossbeam-utils-0.8.18.crate) = 42383
+SHA256 (rust/crates/either-1.9.0.crate) = a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07
+SIZE (rust/crates/either-1.9.0.crate) = 16660
+SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
+SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
+SHA256 (rust/crates/fdeflate-0.3.3.crate) = 209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd
+SIZE (rust/crates/fdeflate-0.3.3.crate) = 25011
+SHA256 (rust/crates/flatbuffers-22.12.6.crate) = 5ae1bfc84d904f75e7ef6f8796b020c606a9e8e271e2004c0a74f7edeedba45f
+SIZE (rust/crates/flatbuffers-22.12.6.crate) = 23942
+SHA256 (rust/crates/flate2-1.0.28.crate) = 46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e
+SIZE (rust/crates/flate2-1.0.28.crate) = 73690
+SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
+SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
+SHA256 (rust/crates/getrandom-0.2.11.crate) = fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f
+SIZE (rust/crates/getrandom-0.2.11.crate) = 35391
+SHA256 (rust/crates/home-0.5.9.crate) = e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5
+SIZE (rust/crates/home-0.5.9.crate) = 8760
+SHA256 (rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
+SIZE (rust/crates/idna-0.5.0.crate) = 271940
+SHA256 (rust/crates/image-0.24.7.crate) = 6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711
+SIZE (rust/crates/image-0.24.7.crate) = 290618
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
+SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c
+SIZE (rust/crates/itoa-1.0.10.crate) = 10534
+SHA256 (rust/crates/jpeg-decoder-0.3.0.crate) = bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e
+SIZE (rust/crates/jpeg-decoder-0.3.0.crate) = 742671
+SHA256 (rust/crates/lexopt-0.3.0.crate) = baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401
+SIZE (rust/crates/lexopt-0.3.0.crate) = 24767
+SHA256 (rust/crates/libc-0.2.151.crate) = 302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4
+SIZE (rust/crates/libc-0.2.151.crate) = 736640
+SHA256 (rust/crates/libm-0.2.8.crate) = 4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058
+SIZE (rust/crates/libm-0.2.8.crate) = 113450
+SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
+SIZE (rust/crates/log-0.4.20.crate) = 38307
+SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7
+SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
+SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
+SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
+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.17.crate) = 39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c
+SIZE (rust/crates/num-traits-0.2.17.crate) = 50190
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e
+SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
+SHA256 (rust/crates/png-0.17.10.crate) = dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64
+SIZE (rust/crates/png-0.17.10.crate) = 89384
+SHA256 (rust/crates/proc-macro2-1.0.74.crate) = 2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db
+SIZE (rust/crates/proc-macro2-1.0.74.crate) = 45383
+SHA256 (rust/crates/quote-1.0.35.crate) = 291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef
+SIZE (rust/crates/quote-1.0.35.crate) = 28136
+SHA256 (rust/crates/rayon-1.8.0.crate) = 9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1
+SIZE (rust/crates/rayon-1.8.0.crate) = 170172
+SHA256 (rust/crates/rayon-core-1.12.0.crate) = 5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed
+SIZE (rust/crates/rayon-core-1.12.0.crate) = 70081
+SHA256 (rust/crates/ring-0.17.7.crate) = 688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74
+SIZE (rust/crates/ring-0.17.7.crate) = 4146482
+SHA256 (rust/crates/rten-0.3.1.crate) = 67842141586c527d25547bbd81ccfd60601940281a792bce14a3f72dc15a3fec
+SIZE (rust/crates/rten-0.3.1.crate) = 752016
+SHA256 (rust/crates/rten-imageio-0.3.0.crate) = 807c033f3941fb4401f524a1ad2fc9395c441399d210707c427384413cf1f360
+SIZE (rust/crates/rten-imageio-0.3.0.crate) = 1965
+SHA256 (rust/crates/rten-imageproc-0.3.0.crate) = d9ceab28b8dcb8925ebc6e51f0038fd16e1cd68229e596eadef826ec7794747f
+SIZE (rust/crates/rten-imageproc-0.3.0.crate) = 26687
+SHA256 (rust/crates/rten-tensor-0.3.0.crate) = b00a55ca04d3219957737f87a9fc3f6eee6770e1f1643c2094c032c90c43f0d2
+SIZE (rust/crates/rten-tensor-0.3.0.crate) = 42517
+SHA256 (rust/crates/rten-vecmath-0.3.0.crate) = 1ae896b8b5bea024dab45f9c8ee71051dfbf2a20a83b0e4e48cea5c4e7096e84
+SIZE (rust/crates/rten-vecmath-0.3.0.crate) = 15936
+SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366
+SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
+SHA256 (rust/crates/rustls-0.21.10.crate) = f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba
+SIZE (rust/crates/rustls-0.21.10.crate) = 284920
+SHA256 (rust/crates/rustls-webpki-0.101.7.crate) = 8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765
+SIZE (rust/crates/rustls-webpki-0.101.7.crate) = 168808
+SHA256 (rust/crates/ryu-1.0.16.crate) = f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c
+SIZE (rust/crates/ryu-1.0.16.crate) = 47351
+SHA256 (rust/crates/sct-0.7.1.crate) = da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414
+SIZE (rust/crates/sct-0.7.1.crate) = 27501
+SHA256 (rust/crates/semver-1.0.20.crate) = 836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090
+SIZE (rust/crates/semver-1.0.20.crate) = 30451
+SHA256 (rust/crates/serde-1.0.194.crate) = 0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773
+SIZE (rust/crates/serde-1.0.194.crate) = 76863
+SHA256 (rust/crates/serde_derive-1.0.194.crate) = a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0
+SIZE (rust/crates/serde_derive-1.0.194.crate) = 55685
+SHA256 (rust/crates/serde_json-1.0.110.crate) = 6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257
+SIZE (rust/crates/serde_json-1.0.110.crate) = 146448
+SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
+SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
+SHA256 (rust/crates/smallvec-1.11.2.crate) = 4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970
+SIZE (rust/crates/smallvec-1.11.2.crate) = 34801
+SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
+SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/syn-2.0.46.crate) = 89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e
+SIZE (rust/crates/syn-2.0.46.crate) = 250537
+SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
+SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/unicode-bidi-0.3.14.crate) = 6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416
+SIZE (rust/crates/unicode-bidi-0.3.14.crate) = 56429
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/unicode-normalization-0.1.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921
+SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604
+SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
+SIZE (rust/crates/untrusted-0.9.0.crate) = 14447
+SHA256 (rust/crates/ureq-2.9.1.crate) = f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97
+SIZE (rust/crates/ureq-2.9.1.crate) = 114348
+SHA256 (rust/crates/url-2.5.0.crate) = 31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
+SIZE (rust/crates/url-2.5.0.crate) = 78605
+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/wasm-bindgen-0.2.89.crate) = 0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e
+SIZE (rust/crates/wasm-bindgen-0.2.89.crate) = 181935
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826
+SIZE (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 28205
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2
+SIZE (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 13906
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = 20008
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f
+SIZE (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7265
+SHA256 (rust/crates/webpki-roots-0.25.3.crate) = 1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10
+SIZE (rust/crates/webpki-roots-0.25.3.crate) = 251565
+SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
+SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
+SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
+SHA256 (rust/crates/windows-targets-0.52.0.crate) = 8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd
+SIZE (rust/crates/windows-targets-0.52.0.crate) = 6229
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.0.crate) = cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.0.crate) = 430182
+SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
+SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.0.crate) = bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef
+SIZE (rust/crates/windows_aarch64_msvc-0.52.0.crate) = 821663
+SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
+SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
+SHA256 (rust/crates/windows_i686_gnu-0.52.0.crate) = a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313
+SIZE (rust/crates/windows_i686_gnu-0.52.0.crate) = 870285
+SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
+SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
+SHA256 (rust/crates/windows_i686_msvc-0.52.0.crate) = ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a
+SIZE (rust/crates/windows_i686_msvc-0.52.0.crate) = 888693
+SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
+SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.0.crate) = 3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd
+SIZE (rust/crates/windows_x86_64_gnu-0.52.0.crate) = 826213
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
+SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.0.crate) = 430165
+SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
+SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.0.crate) = dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04
+SIZE (rust/crates/windows_x86_64_msvc-0.52.0.crate) = 821600
+SHA256 (robertknight-ocrs-v0.4.0_GH0.tar.gz) = 7e7bed2fbd7c1812642db74922913de7d5f0aa3e57a8712da4ed37c730a17a6c
+SIZE (robertknight-ocrs-v0.4.0_GH0.tar.gz) = 460073
diff --git a/graphics/ocrs/files/patch-Cargo.toml b/graphics/ocrs/files/patch-Cargo.toml
new file mode 100644
index 000000000000..7cbca248c5a9
--- /dev/null
+++ b/graphics/ocrs/files/patch-Cargo.toml
@@ -0,0 +1,8 @@
+--- Cargo.toml.orig	2024-05-16 16:36:36 UTC
++++ Cargo.toml
+@@ -5,5 +5,3 @@ members = [
+   "ocrs-cli",
+ ]
+ 
+-[lints.clippy]
+-too_many_arguments = "allow"
diff --git a/graphics/ocrs/pkg-descr b/graphics/ocrs/pkg-descr
new file mode 100644
index 000000000000..86f1b358879d
--- /dev/null
+++ b/graphics/ocrs/pkg-descr
@@ -0,0 +1,16 @@
+ocrs is a Rust library and CLI tool for extracting text from images, also
+known as OCR (Optical Character Recognition).
+
+The goal is to create a modern OCR engine that:
+- Works well on a wide variety of images (scanned documents, photos containing
+  text, screenshots etc.) with zero or much less preprocessing effort compared
+  to earlier engines like [Tesseract][tesseract]. This is achieved by using
+  machine learning more extensively in the pipeline.
+- Is easy to compile and run across a variety of platforms, including
+  WebAssembly
+- Is trained on open and liberally licensed datasets
+- Has a codebase that is easy to understand and modify
+
+Under the hood, the library uses neural network models trained in
+PyTorch, which are then exported to ONNX and executed using
+the RTen engine.