git: f854a6e9c003 - main - graphics/oculante: New port: Minimalistic cross-platform image viewer

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Mon, 20 May 2024 19:23:12 UTC
The branch main has been updated by yuri:

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

commit f854a6e9c0034de48f790f11152984701a080dad
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-05-20 15:22:04 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-05-20 19:23:10 +0000

    graphics/oculante: New port: Minimalistic cross-platform image viewer
---
 graphics/Makefile                                  |    1 +
 graphics/oculante/Makefile                         |  799 ++++++++++
 graphics/oculante/distinfo                         | 1543 ++++++++++++++++++++
 ...h-cargo-crates_mouse__position-0.1.3_Cargo.toml |   11 +
 ...crates_mouse__position-0.1.3_src_impl__linux.rs |   13 +
 graphics/oculante/pkg-descr                        |    2 +
 6 files changed, 2369 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 493e7685792a..602631072980 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -620,6 +620,7 @@
     SUBDIR += ocaml-lablgl
     SUBDIR += ocrad
     SUBDIR += ocrs
+    SUBDIR += oculante
     SUBDIR += ogre3d
     SUBDIR += ogre3d19
     SUBDIR += oidn
diff --git a/graphics/oculante/Makefile b/graphics/oculante/Makefile
new file mode 100644
index 000000000000..e6368ae6ad8b
--- /dev/null
+++ b/graphics/oculante/Makefile
@@ -0,0 +1,799 @@
+PORTNAME=	oculante
+DISTVERSION=	0.8.22
+CATEGORIES=	graphics
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Minimalistic cross-platform image viewer
+WWW=		https://github.com/woelper/oculante
+
+LICENSE=	MIT
+
+BUILD_DEPENDS=	convert:graphics/ImageMagick7
+
+USES=		cargo python:build
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	woelper
+
+CARGO_FEATURES=	--no-default-features notan/shaderc # workaround for the broken glsl-to-spirv-1.7.0 crate, see https://github.com/woelper/oculante/issues/249
+CARGO_CRATES=	ab_glyph-0.2.26 \
+		ab_glyph_rasterizer-0.1.8 \
+		addr2line-0.21.0 \
+		adler-1.0.2 \
+		adler32-1.2.0 \
+		ahash-0.7.8 \
+		ahash-0.8.11 \
+		aho-corasick-1.1.3 \
+		aligned-vec-0.5.0 \
+		allocator-api2-0.2.18 \
+		android-activity-0.4.3 \
+		android-properties-0.2.2 \
+		android-tzdata-0.1.1 \
+		android_system_properties-0.1.5 \
+		anstream-0.6.14 \
+		anstyle-1.0.7 \
+		anstyle-parse-0.2.4 \
+		anstyle-query-1.0.3 \
+		anstyle-wincon-3.0.3 \
+		any_ascii-0.1.7 \
+		anyhow-1.0.86 \
+		aom-decode-0.2.9 \
+		approx-0.5.1 \
+		arbitrary-0.4.7 \
+		arbitrary-1.3.2 \
+		arboard-3.4.0 \
+		arg_enum_proc_macro-0.3.4 \
+		arrayref-0.3.7 \
+		arrayvec-0.7.4 \
+		ash-0.37.3+1.3.251 \
+		ashpd-0.8.1 \
+		async-broadcast-0.7.0 \
+		async-channel-2.3.1 \
+		async-executor-1.11.0 \
+		async-fs-2.1.2 \
+		async-io-2.3.2 \
+		async-lock-3.3.0 \
+		async-net-2.0.0 \
+		async-process-2.2.2 \
+		async-recursion-1.1.1 \
+		async-signal-0.2.6 \
+		async-task-4.7.1 \
+		async-trait-0.1.80 \
+		atomic-waker-1.1.2 \
+		atty-0.2.14 \
+		autocfg-1.3.0 \
+		av1-grain-0.2.3 \
+		avif-decode-1.0.0 \
+		avif-parse-1.0.0 \
+		avif-serialize-0.8.1 \
+		az-1.2.1 \
+		backtrace-0.3.71 \
+		base64-0.21.7 \
+		base64-0.22.1 \
+		basis-universal-0.3.1 \
+		basis-universal-sys-0.3.1 \
+		bincode-0.8.0 \
+		bit-set-0.5.3 \
+		bit-vec-0.6.3 \
+		bit_field-0.10.2 \
+		bitflags-1.3.2 \
+		bitflags-2.5.0 \
+		bitreader-0.3.8 \
+		bitstream-io-1.10.0 \
+		bitstream-io-2.3.0 \
+		block-0.1.6 \
+		block-buffer-0.3.3 \
+		block-buffer-0.10.4 \
+		block-sys-0.1.0-beta.1 \
+		block2-0.2.0-alpha.6 \
+		block2-0.5.0 \
+		blocking-1.6.0 \
+		bstr-1.9.1 \
+		built-0.5.2 \
+		built-0.7.2 \
+		bumpalo-3.16.0 \
+		by_address-1.2.1 \
+		byte-tools-0.2.0 \
+		bytemuck-1.16.0 \
+		bytemuck_derive-1.6.0 \
+		byteorder-1.5.0 \
+		byteorder-lite-0.1.0 \
+		bytes-1.6.0 \
+		calloop-0.10.6 \
+		cargo-lock-8.0.3 \
+		cc-1.0.98 \
+		cesu8-1.1.0 \
+		cfg-expr-0.15.8 \
+		cfg-if-0.1.10 \
+		cfg-if-1.0.0 \
+		cfg_aliases-0.1.1 \
+		cgl-0.3.2 \
+		chrono-0.4.38 \
+		clap-3.2.25 \
+		clap-4.5.4 \
+		clap_builder-4.5.2 \
+		clap_complete-4.5.2 \
+		clap_derive-4.5.4 \
+		clap_lex-0.2.4 \
+		clap_lex-0.7.0 \
+		clipboard-win-5.3.1 \
+		cmake-0.1.50 \
+		cmd_lib-1.9.4 \
+		cmd_lib_macros-1.9.4 \
+		codespan-reporting-0.11.1 \
+		color_quant-1.1.0 \
+		colorchoice-1.0.1 \
+		com-0.6.0 \
+		com_macros-0.6.0 \
+		com_macros_support-0.6.0 \
+		combine-4.6.7 \
+		concat-string-1.0.1 \
+		concurrent-queue-2.5.0 \
+		console-0.15.8 \
+		console_error_panic_hook-0.1.7 \
+		core-foundation-0.9.4 \
+		core-foundation-sys-0.8.6 \
+		core-graphics-0.22.3 \
+		core-graphics-0.23.2 \
+		core-graphics-types-0.1.3 \
+		cpufeatures-0.2.12 \
+		crc32fast-1.4.0 \
+		crevice_notan-0.13.0 \
+		crevice_notan-derive-0.13.0 \
+		crossbeam-channel-0.5.12 \
+		crossbeam-deque-0.8.5 \
+		crossbeam-epoch-0.9.18 \
+		crossbeam-utils-0.8.19 \
+		crunchy-0.2.2 \
+		crypto-common-0.1.6 \
+		d3d12-0.19.0 \
+		dark-light-1.1.1 \
+		data-url-0.2.0 \
+		dconf_rs-0.3.0 \
+		dds-rs-0.7.0 \
+		deflate-0.8.6 \
+		derive-new-0.6.0 \
+		derive_more-0.99.17 \
+		detect-desktop-environment-0.2.0 \
+		digest-0.7.6 \
+		digest-0.10.7 \
+		dirs-2.0.2 \
+		dirs-4.0.0 \
+		dirs-5.0.1 \
+		dirs-sys-0.3.7 \
+		dirs-sys-0.4.1 \
+		dispatch-0.2.0 \
+		divrem-1.0.0 \
+		dlib-0.5.2 \
+		dlv-list-0.3.0 \
+		doc-comment-0.3.3 \
+		downcast-rs-1.2.1 \
+		ecolor-0.26.2 \
+		egui-0.26.2 \
+		egui-notify-0.13.0 \
+		egui-phosphor-0.4.0 \
+		egui_plot-0.26.2 \
+		either-1.12.0 \
+		elapsed-0.1.2 \
+		emath-0.26.2 \
+		encode_unicode-0.3.6 \
+		endi-1.1.0 \
+		enumflags2-0.7.9 \
+		enumflags2_derive-0.7.9 \
+		enumn-0.1.13 \
+		env_filter-0.1.0 \
+		env_logger-0.10.2 \
+		env_logger-0.11.3 \
+		epaint-0.26.2 \
+		equivalent-1.0.1 \
+		errno-0.3.9 \
+		error-code-3.2.0 \
+		euclid-0.22.9 \
+		evalexpr-11.3.0 \
+		event-listener-4.0.3 \
+		event-listener-5.3.0 \
+		event-listener-strategy-0.4.0 \
+		event-listener-strategy-0.5.2 \
+		exr-1.72.0 \
+		faccess-0.2.4 \
+		fake-simd-0.1.2 \
+		fallible_collections-0.4.9 \
+		fast-srgb8-1.0.0 \
+		fast_image_resize-2.7.3 \
+		fastrand-1.9.0 \
+		fastrand-2.1.0 \
+		fdeflate-0.3.4 \
+		find-winsdk-0.2.0 \
+		fixed-1.27.0 \
+		fixedbitset-0.4.2 \
+		flate2-1.0.30 \
+		float-cmp-0.9.0 \
+		float_next_after-1.0.0 \
+		fluent-uri-0.1.4 \
+		flume-0.11.0 \
+		fn-util-0.1.0 \
+		fnv-1.0.7 \
+		fontconfig-parser-0.5.6 \
+		fontdb-0.14.1 \
+		foreign-types-0.3.2 \
+		foreign-types-0.5.0 \
+		foreign-types-macros-0.2.3 \
+		foreign-types-shared-0.1.1 \
+		foreign-types-shared-0.3.1 \
+		form_urlencoded-1.2.1 \
+		four-cc-0.3.0 \
+		fruitbasket-0.10.0 \
+		futures-0.3.30 \
+		futures-channel-0.3.30 \
+		futures-core-0.3.30 \
+		futures-executor-0.3.30 \
+		futures-io-0.3.30 \
+		futures-lite-2.3.0 \
+		futures-macro-0.3.30 \
+		futures-sink-0.3.30 \
+		futures-task-0.3.30 \
+		futures-util-0.3.30 \
+		generator-0.7.5 \
+		generic-array-0.9.1 \
+		generic-array-0.14.7 \
+		gethostname-0.4.3 \
+		getrandom-0.2.15 \
+		gif-0.12.0 \
+		gif-0.13.1 \
+		gif-dispose-4.0.1 \
+		gimli-0.28.1 \
+		gl_generator-0.14.0 \
+		glam-0.24.2 \
+		globset-0.4.14 \
+		globwalk-0.8.1 \
+		glow-0.12.3 \
+		glow-0.13.1 \
+		glsl-to-spirv-0.1.7 \
+		glutin-0.30.10 \
+		glutin-winit-0.3.0 \
+		glutin_egl_sys-0.5.1 \
+		glutin_glx_sys-0.4.0 \
+		glutin_wgl_sys-0.4.0 \
+		glutin_wgl_sys-0.5.0 \
+		glyph_brush-0.7.8 \
+		glyph_brush_draw_cache-0.1.5 \
+		glyph_brush_layout-0.2.3 \
+		gpu-alloc-0.6.0 \
+		gpu-alloc-types-0.3.0 \
+		gpu-allocator-0.25.0 \
+		gpu-descriptor-0.2.4 \
+		gpu-descriptor-types-0.1.2 \
+		half-2.4.1 \
+		hashbrown-0.12.3 \
+		hashbrown-0.13.2 \
+		hashbrown-0.14.5 \
+		hassle-rs-0.11.0 \
+		heck-0.4.1 \
+		heck-0.5.0 \
+		hermit-abi-0.1.19 \
+		hermit-abi-0.3.9 \
+		hex-0.4.3 \
+		hexf-parse-0.2.1 \
+		home-0.5.9 \
+		http-1.1.0 \
+		http-body-1.0.0 \
+		http-body-util-0.1.1 \
+		httparse-1.8.0 \
+		humantime-2.1.0 \
+		hyper-1.3.1 \
+		hyper-rustls-0.26.0 \
+		hyper-util-0.1.3 \
+		iana-time-zone-0.1.60 \
+		iana-time-zone-haiku-0.1.2 \
+		icns-0.3.1 \
+		idna-0.5.0 \
+		ignore-0.4.22 \
+		image-0.24.9 \
+		image-0.25.1 \
+		image-webp-0.1.2 \
+		imageproc-0.25.0 \
+		imagesize-0.12.0 \
+		imara-diff-0.1.5 \
+		img-parts-0.3.0 \
+		imgref-1.10.1 \
+		indexmap-1.9.3 \
+		indexmap-2.2.6 \
+		indicatif-0.17.8 \
+		init_with-1.1.0 \
+		instant-0.1.13 \
+		interpolate_name-0.2.4 \
+		ipnet-2.9.0 \
+		is-terminal-0.4.12 \
+		is_terminal_polyfill-1.70.0 \
+		itertools-0.10.5 \
+		itertools-0.12.1 \
+		itoa-1.0.11 \
+		jni-0.21.1 \
+		jni-sys-0.3.0 \
+		jobserver-0.1.31 \
+		jpeg-decoder-0.3.1 \
+		js-sys-0.3.69 \
+		jxl-bitstream-0.4.0 \
+		jxl-coding-0.4.0 \
+		jxl-color-0.7.0 \
+		jxl-frame-0.9.0 \
+		jxl-grid-0.4.1 \
+		jxl-image-0.9.0 \
+		jxl-modular-0.7.0 \
+		jxl-oxide-0.8.0 \
+		jxl-render-0.8.0 \
+		jxl-threadpool-0.1.1 \
+		jxl-vardct-0.7.0 \
+		kamadak-exif-0.5.5 \
+		khronos-egl-6.0.0 \
+		khronos_api-3.1.0 \
+		kiddo-4.2.0 \
+		ktx2-0.3.0 \
+		kurbo-0.9.5 \
+		lazy_static-1.4.0 \
+		lebe-0.5.2 \
+		lexical-sort-0.3.1 \
+		libaom-sys-0.16.0+libaom.3.8.1 \
+		libavif-0.12.0 \
+		libavif-image-0.11.0 \
+		libavif-sys-0.15.0 \
+		libc-0.2.155 \
+		libdav1d-sys-0.6.0 \
+		libfuzzer-sys-0.3.5 \
+		libfuzzer-sys-0.4.7 \
+		libheif-rs-0.22.0 \
+		libheif-sys-2.1.1+1.17.4 \
+		libloading-0.7.4 \
+		libloading-0.8.3 \
+		libm-0.2.8 \
+		libredox-0.0.2 \
+		libredox-0.1.3 \
+		libwebp-sys2-0.1.9 \
+		linked-hash-map-0.5.6 \
+		linux-raw-sys-0.4.14 \
+		lock_api-0.4.12 \
+		lodepng-3.10.1 \
+		log-0.4.21 \
+		loop9-0.1.5 \
+		lutgen-0.10.1 \
+		lutgen-palettes-0.3.0 \
+		lyon-1.0.1 \
+		lyon_algorithms-1.0.4 \
+		lyon_geom-1.0.5 \
+		lyon_path-1.0.5 \
+		lyon_tessellation-1.0.14 \
+		malloc_buf-0.0.6 \
+		maplit-1.0.2 \
+		matrixmultiply-0.3.8 \
+		maybe-rayon-0.1.1 \
+		memchr-2.7.2 \
+		memmap2-0.5.10 \
+		memmap2-0.6.2 \
+		memoffset-0.6.5 \
+		memoffset-0.9.1 \
+		metal-0.27.0 \
+		mime-0.3.17 \
+		mime_guess-2.0.4 \
+		minimal-lexical-0.2.1 \
+		miniz_oxide-0.3.7 \
+		miniz_oxide-0.5.4 \
+		miniz_oxide-0.7.3 \
+		mint-0.5.9 \
+		mio-0.8.11 \
+		mouse_position-0.1.3 \
+		mutate_once-0.1.1 \
+		naga-0.19.2 \
+		nalgebra-0.32.5 \
+		nalgebra-macros-0.2.1 \
+		nasm-rs-0.2.5 \
+		ndk-0.7.0 \
+		ndk-context-0.1.1 \
+		ndk-sys-0.4.1+23.1.7779620 \
+		ndk-sys-0.5.0+25.2.9519653 \
+		new_debug_unreachable-1.0.6 \
+		nix-0.24.3 \
+		nix-0.25.1 \
+		nix-0.28.0 \
+		nohash-hasher-0.2.0 \
+		nom-7.1.3 \
+		noop_proc_macro-0.3.0 \
+		notan-0.12.0 \
+		notan_app-0.12.0 \
+		notan_backend-0.12.0 \
+		notan_core-0.12.0 \
+		notan_draw-0.12.0 \
+		notan_egui-0.12.0 \
+		notan_glow-0.12.0 \
+		notan_glyph-0.12.0 \
+		notan_graphics-0.12.0 \
+		notan_input-0.12.0 \
+		notan_macro-0.12.0 \
+		notan_math-0.12.0 \
+		notan_text-0.12.0 \
+		notan_utils-0.12.0 \
+		notan_web-0.12.0 \
+		notan_winit-0.12.0 \
+		nu-ansi-term-0.46.0 \
+		num-0.4.3 \
+		num-bigint-0.4.5 \
+		num-complex-0.4.6 \
+		num-derive-0.3.3 \
+		num-derive-0.4.2 \
+		num-integer-0.1.46 \
+		num-iter-0.1.45 \
+		num-rational-0.4.2 \
+		num-traits-0.1.43 \
+		num-traits-0.2.19 \
+		num_cpus-1.16.0 \
+		num_enum-0.5.11 \
+		num_enum-0.6.1 \
+		num_enum_derive-0.5.11 \
+		num_enum_derive-0.6.1 \
+		number_prefix-0.4.0 \
+		objc-0.2.7 \
+		objc-foundation-0.1.1 \
+		objc-sys-0.2.0-beta.2 \
+		objc-sys-0.3.3 \
+		objc2-0.3.0-beta.3.patch-leaks.3 \
+		objc2-0.5.1 \
+		objc2-app-kit-0.2.0 \
+		objc2-core-data-0.2.0 \
+		objc2-encode-2.0.0-pre.2 \
+		objc2-encode-4.0.1 \
+		objc2-foundation-0.2.0 \
+		objc_exception-0.1.2 \
+		objc_id-0.1.1 \
+		object-0.32.2 \
+		oklab-1.0.1 \
+		once_cell-1.19.0 \
+		option-ext-0.2.0 \
+		orbclient-0.3.47 \
+		ordered-float-4.2.0 \
+		ordered-multimap-0.4.3 \
+		ordered-stream-0.2.0 \
+		os_pipe-1.1.5 \
+		os_str_bytes-6.6.1 \
+		overload-0.1.1 \
+		owned_ttf_parser-0.21.0 \
+		owning_ref-0.4.1 \
+		palette-0.7.6 \
+		palette_derive-0.7.6 \
+		parking-2.2.0 \
+		parking_lot-0.12.2 \
+		parking_lot_core-0.9.10 \
+		paste-1.0.15 \
+		percent-encoding-2.3.1 \
+		pest-2.7.10 \
+		pest_derive-2.7.10 \
+		pest_generator-2.7.10 \
+		pest_meta-2.7.10 \
+		petgraph-0.6.5 \
+		phf-0.10.1 \
+		phf-0.11.2 \
+		phf_generator-0.10.0 \
+		phf_generator-0.11.2 \
+		phf_macros-0.10.0 \
+		phf_macros-0.11.2 \
+		phf_shared-0.10.0 \
+		phf_shared-0.11.2 \
+		pico-args-0.5.0 \
+		pin-project-1.1.5 \
+		pin-project-internal-1.1.5 \
+		pin-project-lite-0.2.14 \
+		pin-utils-0.1.0 \
+		piper-0.2.2 \
+		pkg-config-0.3.30 \
+		platter2-0.1.6 \
+		png-0.16.8 \
+		png-0.17.13 \
+		polling-3.7.0 \
+		pollster-0.3.0 \
+		portable-atomic-1.6.0 \
+		ppv-lite86-0.2.17 \
+		presser-0.3.1 \
+		proc-macro-crate-1.3.1 \
+		proc-macro-crate-3.1.0 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro-hack-0.5.20+deprecated \
+		proc-macro2-1.0.82 \
+		profiling-1.0.15 \
+		profiling-procmacros-1.0.15 \
+		psd-0.3.5 \
+		qoi-0.4.1 \
+		quick-error-2.0.1 \
+		quick-xml-0.23.1 \
+		quick-xml-0.31.0 \
+		quickexif-0.1.5 \
+		quickraw-0.1.6 \
+		quote-1.0.36 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.4 \
+		rand_distr-0.4.3 \
+		range-alloc-0.1.3 \
+		rav1e-0.6.6 \
+		rav1e-0.7.1 \
+		ravif-0.11.5 \
+		raw-window-handle-0.5.2 \
+		raw-window-handle-0.6.2 \
+		rawpointer-0.2.1 \
+		rayon-1.10.0 \
+		rayon-core-1.12.1 \
+		rctree-0.5.0 \
+		redox_syscall-0.3.5 \
+		redox_syscall-0.4.1 \
+		redox_syscall-0.5.1 \
+		redox_users-0.4.5 \
+		regex-1.10.4 \
+		regex-automata-0.4.6 \
+		regex-syntax-0.8.3 \
+		renderdoc-sys-1.1.0 \
+		reqwest-0.12.4 \
+		resvg-0.33.0 \
+		rfd-0.14.1 \
+		rgb-0.8.37 \
+		ring-0.17.8 \
+		rosvgtree-0.3.0 \
+		roxmltree-0.18.1 \
+		roxmltree-0.19.0 \
+		rust-ini-0.18.0 \
+		rust_hawktracer-0.7.0 \
+		rust_hawktracer_normal_macro-0.4.1 \
+		rust_hawktracer_proc_macro-0.4.1 \
+		rustc-demangle-0.1.24 \
+		rustc-hash-1.1.0 \
+		rustc_version-0.4.0 \
+		rustix-0.38.34 \
+		rustls-0.22.4 \
+		rustls-pemfile-2.1.2 \
+		rustls-pki-types-1.7.0 \
+		rustls-webpki-0.102.4 \
+		rustversion-1.0.17 \
+		rustybuzz-0.7.0 \
+		ruzstd-0.5.0 \
+		ryu-1.0.18 \
+		safe_arch-0.7.1 \
+		same-file-1.0.6 \
+		scan_fmt-0.2.6 \
+		scoped-tls-1.0.1 \
+		scopeguard-1.2.0 \
+		sctk-adwaita-0.5.4 \
+		self-replace-1.3.7 \
+		self_update-0.40.0 \
+		semver-1.0.23 \
+		serde-1.0.202 \
+		serde_derive-1.0.202 \
+		serde_json-1.0.117 \
+		serde_repr-0.1.19 \
+		serde_spanned-0.6.6 \
+		serde_urlencoded-0.7.1 \
+		sha1-0.10.6 \
+		sha2-0.7.1 \
+		sha2-0.10.8 \
+		sharded-slab-0.1.7 \
+		signal-hook-registry-1.4.2 \
+		simba-0.8.1 \
+		simd-adler32-0.3.7 \
+		simd_helpers-0.1.0 \
+		simplecss-0.2.1 \
+		siphasher-0.3.11 \
+		slab-0.4.9 \
+		slotmap-1.0.7 \
+		smallvec-1.13.2 \
+		smithay-client-toolkit-0.16.1 \
+		socket2-0.5.7 \
+		sorted-vec-0.8.3 \
+		spin-0.9.8 \
+		spinners-4.1.1 \
+		spirv-0.3.0+sdk-1.3.268.0 \
+		spirv_cross-0.23.1 \
+		stable_deref_trait-1.2.0 \
+		static_assertions-1.1.0 \
+		strict-num-0.1.1 \
+		strsim-0.10.0 \
+		strsim-0.11.1 \
+		strum-0.24.1 \
+		strum-0.26.2 \
+		strum_macros-0.24.3 \
+		strum_macros-0.26.2 \
+		subtle-2.5.0 \
+		svgfilters-0.4.0 \
+		svgtypes-0.11.0 \
+		syn-1.0.109 \
+		syn-2.0.64 \
+		sync_wrapper-0.1.2 \
+		system-deps-6.2.2 \
+		target-lexicon-0.12.14 \
+		tempfile-3.10.1 \
+		tera-1.19.1 \
+		termcolor-1.4.1 \
+		textwrap-0.16.1 \
+		thiserror-1.0.61 \
+		thiserror-impl-1.0.61 \
+		thread_local-1.1.8 \
+		tiff-0.9.1 \
+		time-0.1.45 \
+		tiny-skia-0.8.4 \
+		tiny-skia-0.9.1 \
+		tiny-skia-path-0.8.4 \
+		tiny-skia-path-0.9.0 \
+		tinyvec-1.6.0 \
+		tinyvec_macros-0.1.1 \
+		tokio-1.37.0 \
+		tokio-rustls-0.25.0 \
+		toml-0.5.11 \
+		toml-0.8.13 \
+		toml_datetime-0.6.6 \
+		toml_edit-0.19.15 \
+		toml_edit-0.21.1 \
+		toml_edit-0.22.13 \
+		tower-0.4.13 \
+		tower-layer-0.3.2 \
+		tower-service-0.3.2 \
+		tracing-0.1.40 \
+		tracing-attributes-0.1.27 \
+		tracing-core-0.1.32 \
+		tracing-log-0.2.0 \
+		tracing-subscriber-0.3.18 \
+		trash-3.3.1 \
+		tree_magic_mini-3.1.4 \
+		try-lock-0.2.5 \
+		ttf-parser-0.18.1 \
+		ttf-parser-0.19.2 \
+		ttf-parser-0.21.1 \
+		turbojpeg-0.5.4 \
+		turbojpeg-sys-0.2.3 \
+		twox-hash-1.6.3 \
+		typenum-1.17.0 \
+		ubyte-0.10.4 \
+		ucd-trie-0.1.6 \
+		uds_windows-1.1.0 \
+		unic-char-property-0.9.0 \
+		unic-char-range-0.9.0 \
+		unic-common-0.9.0 \
+		unic-segment-0.9.0 \
+		unic-ucd-segment-0.9.0 \
+		unic-ucd-version-0.9.0 \
+		unicase-2.7.0 \
+		unicode-bidi-0.3.15 \
+		unicode-bidi-mirroring-0.1.0 \
+		unicode-ccc-0.1.2 \
+		unicode-general-category-0.6.0 \
+		unicode-ident-1.0.12 \
+		unicode-normalization-0.1.23 \
+		unicode-script-0.5.6 \
+		unicode-vo-0.1.0 \
+		unicode-width-0.1.12 \
+		unicode-xid-0.2.4 \
+		untrusted-0.9.0 \
+		url-2.5.0 \
+		urlencoding-2.1.3 \
+		usvg-0.33.0 \
+		usvg-parser-0.33.0 \
+		usvg-text-layout-0.33.0 \
+		usvg-tree-0.33.0 \
+		utf8parse-0.2.1 \
+		v_frame-0.3.8 \
+		valuable-0.1.0 \
+		vcpkg-0.2.15 \
+		vec_map-0.8.2 \
+		version-compare-0.2.0 \
+		version_check-0.9.4 \
+		walkdir-2.5.0 \
+		want-0.3.1 \
+		wasi-0.10.0+wasi-snapshot-preview1 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.92 \
+		wasm-bindgen-backend-0.2.92 \
+		wasm-bindgen-futures-0.4.42 \
+		wasm-bindgen-macro-0.2.92 \
+		wasm-bindgen-macro-support-0.2.92 \
+		wasm-bindgen-shared-0.2.92 \
+		wayland-backend-0.3.3 \
+		wayland-client-0.29.5 \
+		wayland-client-0.31.2 \
+		wayland-commons-0.29.5 \
+		wayland-cursor-0.29.5 \
+		wayland-protocols-0.29.5 \
+		wayland-protocols-0.31.2 \
+		wayland-protocols-wlr-0.2.0 \
+		wayland-scanner-0.29.5 \
+		wayland-scanner-0.31.1 \
+		wayland-sys-0.29.5 \
+		wayland-sys-0.30.1 \
+		wayland-sys-0.31.1 \
+		web-sys-0.3.69 \
+		webbrowser-0.8.15 \
+		webp-animation-0.9.0 \
+		webpki-roots-0.26.1 \
+		weezl-0.1.8 \
+		wgpu-0.19.4 \
+		wgpu-core-0.19.4 \
+		wgpu-hal-0.19.4 \
+		wgpu-types-0.19.2 \
+		wide-0.7.19 \
+		widestring-1.1.0 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.8 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-0.44.0 \
+		windows-0.48.0 \
+		windows-0.52.0 \
+		windows-core-0.52.0 \
+		windows-sys-0.45.0 \
+		windows-sys-0.48.0 \
+		windows-sys-0.52.0 \
+		windows-targets-0.42.2 \
+		windows-targets-0.48.5 \
+		windows-targets-0.52.5 \
+		windows_aarch64_gnullvm-0.42.2 \
+		windows_aarch64_gnullvm-0.48.5 \
+		windows_aarch64_gnullvm-0.52.5 \
+		windows_aarch64_msvc-0.42.2 \
+		windows_aarch64_msvc-0.48.5 \
+		windows_aarch64_msvc-0.52.5 \
+		windows_i686_gnu-0.42.2 \
+		windows_i686_gnu-0.48.5 \
+		windows_i686_gnu-0.52.5 \
+		windows_i686_gnullvm-0.52.5 \
+		windows_i686_msvc-0.42.2 \
+		windows_i686_msvc-0.48.5 \
+		windows_i686_msvc-0.52.5 \
+		windows_x86_64_gnu-0.42.2 \
+		windows_x86_64_gnu-0.48.5 \
+		windows_x86_64_gnu-0.52.5 \
+		windows_x86_64_gnullvm-0.42.2 \
+		windows_x86_64_gnullvm-0.48.5 \
+		windows_x86_64_gnullvm-0.52.5 \
+		windows_x86_64_msvc-0.42.2 \
+		windows_x86_64_msvc-0.48.5 \
+		windows_x86_64_msvc-0.52.5 \
+		windres-0.2.2 \
+		winit-0.28.7 \
+		winnow-0.5.40 \
+		winnow-0.6.8 \
+		winreg-0.5.1 \
+		winreg-0.10.1 \
+		winreg-0.52.0 \
+		winres-0.1.12 \
+		wl-clipboard-rs-0.8.1 \
+		x11-dl-2.21.0 \
+		x11rb-0.13.1 \
+		x11rb-protocol-0.13.1 \
+		xcursor-0.3.5 \
+		xdg-home-1.1.0 \
+		xi-unicode-0.3.0 \
+		xml-rs-0.8.20 \
+		xmlparser-0.13.6 \
+		xmlwriter-0.1.0 \
+		yuv-0.1.6 \
+		zbus-4.2.1 \
+		zbus_macros-4.2.1 \
+		zbus_names-3.0.0 \
+		zerocopy-0.7.34 \
+		zerocopy-derive-0.7.34 \
+		zeroize-1.7.0 \
+		zune-core-0.4.12 \
+		zune-core-0.5.0-rc1 \
+		zune-inflate-0.2.54 \
+		zune-jpeg-0.4.11 \
+		zune-png-0.5.0-rc1 \
+		zvariant-4.1.0 \
+		zvariant_derive-4.1.0 \
+		zvariant_utils-1.1.1
+# workaround for https://github.com/woelper/oculante/issues/334:
+CARGO_CRATES+=	shaderc-0.8.3 \
+		shaderc-sys-0.8.3 \
+		roxmltree-0.14.1
+
+BINARY_ALIAS=	python3=${PYTHON_CMD} \
+		git=/usr/bin/false
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/graphics/oculante/distinfo b/graphics/oculante/distinfo
new file mode 100644
index 000000000000..11841b957b7f
--- /dev/null
+++ b/graphics/oculante/distinfo
@@ -0,0 +1,1543 @@
+TIMESTAMP = 1716139829
+SHA256 (rust/crates/ab_glyph-0.2.26.crate) = 2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd
+SIZE (rust/crates/ab_glyph-0.2.26.crate) = 19078
+SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046
+SIZE (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = 11010
+SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
+SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234
+SIZE (rust/crates/adler32-1.2.0.crate) = 6411
+SHA256 (rust/crates/ahash-0.7.8.crate) = 891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9
+SIZE (rust/crates/ahash-0.7.8.crate) = 38550
+SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
+SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/aligned-vec-0.5.0.crate) = 4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1
+SIZE (rust/crates/aligned-vec-0.5.0.crate) = 8921
+SHA256 (rust/crates/allocator-api2-0.2.18.crate) = 5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f
+SIZE (rust/crates/allocator-api2-0.2.18.crate) = 62504
+SHA256 (rust/crates/android-activity-0.4.3.crate) = 64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0
+SIZE (rust/crates/android-activity-0.4.3.crate) = 238185
+SHA256 (rust/crates/android-properties-0.2.2.crate) = fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04
+SIZE (rust/crates/android-properties-0.2.2.crate) = 4563
+SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
+SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/anstream-0.6.14.crate) = 418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b
+SIZE (rust/crates/anstream-0.6.14.crate) = 29160
+SHA256 (rust/crates/anstyle-1.0.7.crate) = 038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b
+SIZE (rust/crates/anstyle-1.0.7.crate) = 15709
+SHA256 (rust/crates/anstyle-parse-0.2.4.crate) = c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4
+SIZE (rust/crates/anstyle-parse-0.2.4.crate) = 23069
+SHA256 (rust/crates/anstyle-query-1.0.3.crate) = a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5
+SIZE (rust/crates/anstyle-query-1.0.3.crate) = 9742
+SHA256 (rust/crates/anstyle-wincon-3.0.3.crate) = 61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19
+SIZE (rust/crates/anstyle-wincon-3.0.3.crate) = 12179
+SHA256 (rust/crates/any_ascii-0.1.7.crate) = 70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e
+SIZE (rust/crates/any_ascii-0.1.7.crate) = 220683
+SHA256 (rust/crates/anyhow-1.0.86.crate) = b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da
+SIZE (rust/crates/anyhow-1.0.86.crate) = 46741
+SHA256 (rust/crates/aom-decode-0.2.9.crate) = cd3d870f1d3da4c0202c4ea32ffc868fba75bfce0e47efc253664e03d075ec15
+SIZE (rust/crates/aom-decode-0.2.9.crate) = 10497
+SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6
+SIZE (rust/crates/approx-0.5.1.crate) = 15100
+SHA256 (rust/crates/arbitrary-0.4.7.crate) = db55d72333851e17d572bec876e390cd3b11eb1ef53ae821dd9f3b653d2b4569
+SIZE (rust/crates/arbitrary-0.4.7.crate) = 26282
+SHA256 (rust/crates/arbitrary-1.3.2.crate) = 7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110
+SIZE (rust/crates/arbitrary-1.3.2.crate) = 32037
+SHA256 (rust/crates/arboard-3.4.0.crate) = 9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89
+SIZE (rust/crates/arboard-3.4.0.crate) = 46785
+SHA256 (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea
+SIZE (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 5102
+SHA256 (rust/crates/arrayref-0.3.7.crate) = 6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545
+SIZE (rust/crates/arrayref-0.3.7.crate) = 9620
+SHA256 (rust/crates/arrayvec-0.7.4.crate) = 96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711
+SIZE (rust/crates/arrayvec-0.7.4.crate) = 29856
+SHA256 (rust/crates/ash-0.37.3+1.3.251.crate) = 39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a
+SIZE (rust/crates/ash-0.37.3+1.3.251.crate) = 449524
+SHA256 (rust/crates/ashpd-0.8.1.crate) = dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093
+SIZE (rust/crates/ashpd-0.8.1.crate) = 74342
+SHA256 (rust/crates/async-broadcast-0.7.0.crate) = 258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb
+SIZE (rust/crates/async-broadcast-0.7.0.crate) = 20852
+SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a
+SIZE (rust/crates/async-channel-2.3.1.crate) = 14576
+SHA256 (rust/crates/async-executor-1.11.0.crate) = b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a
+SIZE (rust/crates/async-executor-1.11.0.crate) = 24767
+SHA256 (rust/crates/async-fs-2.1.2.crate) = ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a
+SIZE (rust/crates/async-fs-2.1.2.crate) = 17071
+SHA256 (rust/crates/async-io-2.3.2.crate) = dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884
+SIZE (rust/crates/async-io-2.3.2.crate) = 49298
+SHA256 (rust/crates/async-lock-3.3.0.crate) = d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b
+SIZE (rust/crates/async-lock-3.3.0.crate) = 33286
+SHA256 (rust/crates/async-net-2.0.0.crate) = b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7
+SIZE (rust/crates/async-net-2.0.0.crate) = 17787
+SHA256 (rust/crates/async-process-2.2.2.crate) = a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d
+SIZE (rust/crates/async-process-2.2.2.crate) = 27641
+SHA256 (rust/crates/async-recursion-1.1.1.crate) = 3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11
+SIZE (rust/crates/async-recursion-1.1.1.crate) = 14874
+SHA256 (rust/crates/async-signal-0.2.6.crate) = afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda
+SIZE (rust/crates/async-signal-0.2.6.crate) = 16696
+SHA256 (rust/crates/async-task-4.7.1.crate) = 8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de
+SIZE (rust/crates/async-task-4.7.1.crate) = 38077
+SHA256 (rust/crates/async-trait-0.1.80.crate) = c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca
+SIZE (rust/crates/async-trait-0.1.80.crate) = 28775
+SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0
+SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
+SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
+SHA256 (rust/crates/av1-grain-0.2.3.crate) = 6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf
+SIZE (rust/crates/av1-grain-0.2.3.crate) = 34703
+SHA256 (rust/crates/avif-decode-1.0.0.crate) = dfaac7851d172130c810c8fd2d572b1110bc1b664a792cbc6b0fdcf071fb1834
+SIZE (rust/crates/avif-decode-1.0.0.crate) = 8934
+SHA256 (rust/crates/avif-parse-1.0.0.crate) = 87fb3f9afbbb9f71ae53da13771284895f51c6acc77cfb3571ab966780250dee
+SIZE (rust/crates/avif-parse-1.0.0.crate) = 24672
+SHA256 (rust/crates/avif-serialize-0.8.1.crate) = 876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2
+SIZE (rust/crates/avif-serialize-0.8.1.crate) = 11150
+SHA256 (rust/crates/az-1.2.1.crate) = 7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973
+SIZE (rust/crates/az-1.2.1.crate) = 27842
+SHA256 (rust/crates/backtrace-0.3.71.crate) = 26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d
+SIZE (rust/crates/backtrace-0.3.71.crate) = 86553
+SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
+SIZE (rust/crates/base64-0.21.7.crate) = 82576
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/basis-universal-0.3.1.crate) = 555fb05709f4e12fa2f6b93a480facf167eb0ecb2558ba41f610f588e77cbd14
+SIZE (rust/crates/basis-universal-0.3.1.crate) = 63626
+SHA256 (rust/crates/basis-universal-sys-0.3.1.crate) = fd9bde5e9547958fb0e77d79fc7879edcf91d5e0c8e372ef8959916cf35e8506
+SIZE (rust/crates/basis-universal-sys-0.3.1.crate) = 2692979
+SHA256 (rust/crates/bincode-0.8.0.crate) = e103c8b299b28a9c6990458b7013dc4a8356a9b854c51b9883241f5866fac36e
+SIZE (rust/crates/bincode-0.8.0.crate) = 71632
+SHA256 (rust/crates/bit-set-0.5.3.crate) = 0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1
+SIZE (rust/crates/bit-set-0.5.3.crate) = 14470
+SHA256 (rust/crates/bit-vec-0.6.3.crate) = 349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb
+SIZE (rust/crates/bit-vec-0.6.3.crate) = 19927
+SHA256 (rust/crates/bit_field-0.10.2.crate) = dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61
+SIZE (rust/crates/bit_field-0.10.2.crate) = 10568
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitflags-2.5.0.crate) = cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1
+SIZE (rust/crates/bitflags-2.5.0.crate) = 43821
+SHA256 (rust/crates/bitreader-0.3.8.crate) = bdd859c9d97f7c468252795b35aeccc412bdbb1e90ee6969c4fa6328272eaeff
+SIZE (rust/crates/bitreader-0.3.8.crate) = 11754
+SHA256 (rust/crates/bitstream-io-1.10.0.crate) = e445576659fd04a57b44cbd00aa37aaa815ebefa0aa3cb677a6b5e63d883074f
+SIZE (rust/crates/bitstream-io-1.10.0.crate) = 33372
+SHA256 (rust/crates/bitstream-io-2.3.0.crate) = 7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e
+SIZE (rust/crates/bitstream-io-2.3.0.crate) = 34464
+SHA256 (rust/crates/block-0.1.6.crate) = 0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a
+SIZE (rust/crates/block-0.1.6.crate) = 4077
+SHA256 (rust/crates/block-buffer-0.3.3.crate) = a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab
+SIZE (rust/crates/block-buffer-0.3.3.crate) = 7070
+SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
+SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
+SHA256 (rust/crates/block-sys-0.1.0-beta.1.crate) = 0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146
+SIZE (rust/crates/block-sys-0.1.0-beta.1.crate) = 9039
+SHA256 (rust/crates/block2-0.2.0-alpha.6.crate) = 8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42
+SIZE (rust/crates/block2-0.2.0-alpha.6.crate) = 10639
+SHA256 (rust/crates/block2-0.5.0.crate) = 43ff7d91d3c1d568065b06c899777d1e48dcf76103a672a0adbc238a7f247f1e
+SIZE (rust/crates/block2-0.5.0.crate) = 24095
*** 1444 LINES SKIPPED ***