git: e0d5bd8f1dc8 - main - x11/swww: Add new port

From: Nicola Vitale <nivit_at_FreeBSD.org>
Date: Wed, 25 Sep 2024 07:39:11 UTC
The branch main has been updated by nivit:

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

commit e0d5bd8f1dc865015b0d68b2f06285e2d3453632
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2024-09-25 07:37:10 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2024-09-25 07:37:10 +0000

    x11/swww: Add new port
    
    Efficient animated wallpaper daemon for wayland, controlled at runtime.
    
    Features
    
        - Display animated gifs on your desktop
        - Display any image in the formats:
            - jpeg
            - png
            - gif
            - pnm
            - tga
            - tiff
            - webp
            - bmp
            - farbfeld
        - Clear the screen with an arbitrary rrggbb color
        - Smooth transition effect when you switch images
        - Do all of that without having to shutdown and reinitialize the daemon
    
    https://github.com/LGFae/swww
---
 x11/Makefile                    |   1 +
 x11/swww/Makefile               |  39 ++++
 x11/swww/Makefile.crates        | 214 ++++++++++++++++++++
 x11/swww/distinfo               | 431 ++++++++++++++++++++++++++++++++++++++++
 x11/swww/files/patch-doc_gen.sh |  11 +
 x11/swww/pkg-descr              |  18 ++
 x11/swww/pkg-plist              |  15 ++
 7 files changed, 729 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index e49fd38776ef..917d63f8d8c1 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -427,6 +427,7 @@
     SUBDIR += swayr
     SUBDIR += swayrbar
     SUBDIR += swaysettings
+    SUBDIR += swww
     SUBDIR += sxhkd
     SUBDIR += sxmo-wayout
     SUBDIR += sxpc
diff --git a/x11/swww/Makefile b/x11/swww/Makefile
new file mode 100644
index 000000000000..27ffb143012d
--- /dev/null
+++ b/x11/swww/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	swww
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.9.5
+CATEGORIES=	x11
+
+MAINTAINER=	nivit@FreeBSD.org
+COMMENT=	Solution to your Wayland Wallpaper Woes
+WWW=		https://github.com/LGFae/swww
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	scdoc:textproc/scdoc
+LIB_DEPENDS+=	liblz4.so:archivers/liblz4
+
+USES=		cargo shebangfix
+USE_GITHUB=	yes
+GH_ACCOUNT=	LGFae
+
+SHEBANG_FILES=	example_scripts/*.sh
+
+OPTIONS_DEFINE=	EXAMPLES
+
+EXAMPLES_RUN_DEPENDS=	bash:shells/bash
+
+post-build:
+	${WRKSRC}/doc/gen.sh
+
+post-install:
+	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/${CARGO_BUILD_TARGET}/release/swww-daemon \
+		${STAGEDIR}${PREFIX}/bin/
+	(cd ${WRKSRC}/doc/generated && \
+		${INSTALL_MAN} *.1 ${STAGEDIR}${PREFIX}/share/man/man1/)
+
+post-install-EXAMPLES-on:
+	(cd ${WRKSRC}/example_scripts && \
+		${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
+
+.include <bsd.port.mk>
diff --git a/x11/swww/Makefile.crates b/x11/swww/Makefile.crates
new file mode 100644
index 000000000000..8c75d1f24510
--- /dev/null
+++ b/x11/swww/Makefile.crates
@@ -0,0 +1,214 @@
+CARGO_CRATES=	adler-1.0.2 \
+		aho-corasick-1.1.3 \
+		aligned-vec-0.5.0 \
+		anes-0.1.6 \
+		anstream-0.6.14 \
+		anstyle-1.0.7 \
+		anstyle-parse-0.2.4 \
+		anstyle-query-1.0.3 \
+		anstyle-wincon-3.0.3 \
+		anyhow-1.0.82 \
+		arbitrary-1.3.2 \
+		arg_enum_proc_macro-0.3.4 \
+		arrayvec-0.7.4 \
+		assert_cmd-2.0.14 \
+		autocfg-1.2.0 \
+		av1-grain-0.2.3 \
+		avif-serialize-0.8.1 \
+		bit_field-0.10.2 \
+		bitflags-1.3.2 \
+		bitflags-2.5.0 \
+		bitstream-io-2.2.0 \
+		bstr-1.9.1 \
+		built-0.7.2 \
+		bumpalo-3.16.0 \
+		bytemuck-1.15.0 \
+		byteorder-1.5.0 \
+		byteorder-lite-0.1.0 \
+		cast-0.3.0 \
+		cc-1.0.96 \
+		cfg-expr-0.15.8 \
+		cfg-if-1.0.0 \
+		ciborium-0.2.2 \
+		ciborium-io-0.2.2 \
+		ciborium-ll-0.2.2 \
+		clap-4.5.4 \
+		clap_builder-4.5.2 \
+		clap_complete-4.5.2 \
+		clap_derive-4.5.4 \
+		clap_lex-0.7.0 \
+		color_quant-1.1.0 \
+		colorchoice-1.0.1 \
+		crc32fast-1.4.0 \
+		criterion-0.5.1 \
+		criterion-plot-0.5.0 \
+		crossbeam-deque-0.8.5 \
+		crossbeam-epoch-0.9.18 \
+		crossbeam-utils-0.8.19 \
+		crunchy-0.2.2 \
+		deranged-0.3.11 \
+		difflib-0.4.0 \
+		dlib-0.5.2 \
+		doc-comment-0.3.3 \
+		downcast-rs-1.2.1 \
+		either-1.11.0 \
+		equivalent-1.0.1 \
+		errno-0.3.8 \
+		exr-1.72.0 \
+		fast_image_resize-3.0.4 \
+		fdeflate-0.3.4 \
+		flate2-1.0.30 \
+		flume-0.11.0 \
+		getrandom-0.2.14 \
+		gif-0.13.1 \
+		half-2.4.1 \
+		hashbrown-0.14.5 \
+		heck-0.5.0 \
+		hermit-abi-0.3.9 \
+		image-0.25.1 \
+		image-webp-0.1.2 \
+		imgref-1.10.1 \
+		indexmap-2.2.6 \
+		interpolate_name-0.2.4 \
+		is-terminal-0.4.12 \
+		is_terminal_polyfill-1.70.0 \
+		itertools-0.10.5 \
+		itertools-0.12.1 \
+		itoa-1.0.11 \
+		jobserver-0.1.31 \
+		jpeg-decoder-0.3.1 \
+		js-sys-0.3.69 \
+		keyframe-1.1.1 \
+		lebe-0.5.2 \
+		libc-0.2.154 \
+		libfuzzer-sys-0.4.7 \
+		libloading-0.8.3 \
+		libm-0.2.8 \
+		linux-raw-sys-0.4.13 \
+		lock_api-0.4.12 \
+		log-0.4.21 \
+		loop9-0.1.5 \
+		maybe-rayon-0.1.1 \
+		memchr-2.7.2 \
+		minimal-lexical-0.2.1 \
+		miniz_oxide-0.7.2 \
+		mint-0.5.9 \
+		new_debug_unreachable-1.0.6 \
+		nom-7.1.3 \
+		noop_proc_macro-0.3.0 \
+		num-bigint-0.4.4 \
+		num-conv-0.1.0 \
+		num-derive-0.4.2 \
+		num-integer-0.1.46 \
+		num-rational-0.4.1 \
+		num-traits-0.2.18 \
+		num_threads-0.1.7 \
+		once_cell-1.19.0 \
+		oorandom-11.1.3 \
+		paste-1.0.14 \
+		pkg-config-0.3.30 \
+		plotters-0.3.5 \
+		plotters-backend-0.3.5 \
+		plotters-svg-0.3.5 \
+		png-0.17.13 \
+		powerfmt-0.2.0 \
+		ppv-lite86-0.2.17 \
+		predicates-3.1.0 \
+		predicates-core-1.0.6 \
+		predicates-tree-1.0.9 \
+		proc-macro2-1.0.81 \
+		profiling-1.0.15 \
+		profiling-procmacros-1.0.15 \
+		qoi-0.4.1 \
+		quick-error-2.0.1 \
+		quick-xml-0.31.0 \
+		quote-1.0.36 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.4 \
+		rav1e-0.7.1 \
+		ravif-0.11.5 \
+		rayon-1.10.0 \
+		rayon-core-1.12.1 \
+		regex-1.10.4 \
+		regex-automata-0.4.6 \
+		regex-syntax-0.8.3 \
+		rgb-0.8.37 \
+		rustix-0.38.34 \
+		ryu-1.0.17 \
+		same-file-1.0.6 \
+		scoped-tls-1.0.1 \
+		scopeguard-1.2.0 \
+		sd-notify-0.4.1 \
+		serde-1.0.200 \
+		serde_derive-1.0.200 \
+		serde_json-1.0.116 \
+		serde_spanned-0.6.5 \
+		simd-adler32-0.3.7 \
+		simd_helpers-0.1.0 \
+		simplelog-0.12.2 \
+		smallvec-1.13.2 \
+		spin-0.9.8 \
+		spin_sleep-1.2.0 \
+		strsim-0.11.1 \
+		syn-2.0.60 \
+		system-deps-6.2.2 \
+		target-lexicon-0.12.14 \
+		termcolor-1.4.1 \
+		terminal_size-0.3.0 \
+		termtree-0.4.1 \
+		thiserror-1.0.59 \
+		thiserror-impl-1.0.59 \
+		tiff-0.9.1 \
+		time-0.3.36 \
+		time-core-0.1.2 \
+		time-macros-0.2.18 \
+		tinytemplate-1.2.1 \
+		toml-0.8.12 \
+		toml_datetime-0.6.5 \
+		toml_edit-0.22.12 \
+		unicode-ident-1.0.12 \
+		utf8parse-0.2.1 \
+		v_frame-0.3.8 \
+		version-compare-0.2.0 \
+		wait-timeout-0.2.0 \
+		walkdir-2.5.0 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.92 \
+		wasm-bindgen-backend-0.2.92 \
+		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.31.2 \
+		wayland-protocols-0.31.2 \
+		wayland-protocols-wlr-0.2.0 \
+		wayland-scanner-0.31.1 \
+		wayland-sys-0.31.1 \
+		web-sys-0.3.69 \
+		weezl-0.1.8 \
+		winapi-util-0.1.8 \
+		windows-sys-0.48.0 \
+		windows-sys-0.52.0 \
+		windows-targets-0.48.5 \
+		windows-targets-0.52.5 \
+		windows_aarch64_gnullvm-0.48.5 \
+		windows_aarch64_gnullvm-0.52.5 \
+		windows_aarch64_msvc-0.48.5 \
+		windows_aarch64_msvc-0.52.5 \
+		windows_i686_gnu-0.48.5 \
+		windows_i686_gnu-0.52.5 \
+		windows_i686_gnullvm-0.52.5 \
+		windows_i686_msvc-0.48.5 \
+		windows_i686_msvc-0.52.5 \
+		windows_x86_64_gnu-0.48.5 \
+		windows_x86_64_gnu-0.52.5 \
+		windows_x86_64_gnullvm-0.48.5 \
+		windows_x86_64_gnullvm-0.52.5 \
+		windows_x86_64_msvc-0.48.5 \
+		windows_x86_64_msvc-0.52.5 \
+		winnow-0.6.7 \
+		zune-core-0.4.12 \
+		zune-inflate-0.2.54 \
+		zune-jpeg-0.4.11 \
+		bitcode,bitcode_derive@git+https://github.com/SoftbearStudios/bitcode.git?rev=5f25a59\#5f25a59be3e66deef721e7eb2369deb1aa32d263
diff --git a/x11/swww/distinfo b/x11/swww/distinfo
new file mode 100644
index 000000000000..378625aff4b5
--- /dev/null
+++ b/x11/swww/distinfo
@@ -0,0 +1,431 @@
+TIMESTAMP = 1726661483
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+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/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299
+SIZE (rust/crates/anes-0.1.6.crate) = 23857
+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/anyhow-1.0.82.crate) = f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519
+SIZE (rust/crates/anyhow-1.0.82.crate) = 45361
+SHA256 (rust/crates/arbitrary-1.3.2.crate) = 7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110
+SIZE (rust/crates/arbitrary-1.3.2.crate) = 32037
+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/arrayvec-0.7.4.crate) = 96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711
+SIZE (rust/crates/arrayvec-0.7.4.crate) = 29856
+SHA256 (rust/crates/assert_cmd-2.0.14.crate) = ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8
+SIZE (rust/crates/assert_cmd-2.0.14.crate) = 24591
+SHA256 (rust/crates/autocfg-1.2.0.crate) = f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80
+SIZE (rust/crates/autocfg-1.2.0.crate) = 14808
+SHA256 (rust/crates/av1-grain-0.2.3.crate) = 6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf
+SIZE (rust/crates/av1-grain-0.2.3.crate) = 34703
+SHA256 (rust/crates/avif-serialize-0.8.1.crate) = 876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2
+SIZE (rust/crates/avif-serialize-0.8.1.crate) = 11150
+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/bitstream-io-2.2.0.crate) = 06c9989a51171e2e81038ab168b6ae22886fe9ded214430dbb4f41c28cf176da
+SIZE (rust/crates/bitstream-io-2.2.0.crate) = 34113
+SHA256 (rust/crates/bstr-1.9.1.crate) = 05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706
+SIZE (rust/crates/bstr-1.9.1.crate) = 380305
+SHA256 (rust/crates/built-0.7.2.crate) = 41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16
+SIZE (rust/crates/built-0.7.2.crate) = 21148
+SHA256 (rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c
+SIZE (rust/crates/bumpalo-3.16.0.crate) = 85677
+SHA256 (rust/crates/bytemuck-1.15.0.crate) = 5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15
+SIZE (rust/crates/bytemuck-1.15.0.crate) = 47672
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495
+SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909
+SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5
+SIZE (rust/crates/cast-0.3.0.crate) = 11452
+SHA256 (rust/crates/cc-1.0.96.crate) = 065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd
+SIZE (rust/crates/cc-1.0.96.crate) = 76576
+SHA256 (rust/crates/cfg-expr-0.15.8.crate) = d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02
+SIZE (rust/crates/cfg-expr-0.15.8.crate) = 42108
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/ciborium-0.2.2.crate) = 42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e
+SIZE (rust/crates/ciborium-0.2.2.crate) = 35611
+SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757
+SIZE (rust/crates/ciborium-io-0.2.2.crate) = 6697
+SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9
+SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695
+SHA256 (rust/crates/clap-4.5.4.crate) = 90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0
+SIZE (rust/crates/clap-4.5.4.crate) = 55401
+SHA256 (rust/crates/clap_builder-4.5.2.crate) = ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4
+SIZE (rust/crates/clap_builder-4.5.2.crate) = 163566
+SHA256 (rust/crates/clap_complete-4.5.2.crate) = dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e
+SIZE (rust/crates/clap_complete-4.5.2.crate) = 37850
+SHA256 (rust/crates/clap_derive-4.5.4.crate) = 528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64
+SIZE (rust/crates/clap_derive-4.5.4.crate) = 29159
+SHA256 (rust/crates/clap_lex-0.7.0.crate) = 98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce
+SIZE (rust/crates/clap_lex-0.7.0.crate) = 11915
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/colorchoice-1.0.1.crate) = 0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422
+SIZE (rust/crates/colorchoice-1.0.1.crate) = 7895
+SHA256 (rust/crates/crc32fast-1.4.0.crate) = b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa
+SIZE (rust/crates/crc32fast-1.4.0.crate) = 38665
+SHA256 (rust/crates/criterion-0.5.1.crate) = f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f
+SIZE (rust/crates/criterion-0.5.1.crate) = 110088
+SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1
+SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706
+SHA256 (rust/crates/crossbeam-deque-0.8.5.crate) = 613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d
+SIZE (rust/crates/crossbeam-deque-0.8.5.crate) = 21726
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-utils-0.8.19.crate) = 248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345
+SIZE (rust/crates/crossbeam-utils-0.8.19.crate) = 42328
+SHA256 (rust/crates/crunchy-0.2.2.crate) = 7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7
+SIZE (rust/crates/crunchy-0.2.2.crate) = 2995
+SHA256 (rust/crates/deranged-0.3.11.crate) = b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4
+SIZE (rust/crates/deranged-0.3.11.crate) = 18043
+SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
+SIZE (rust/crates/difflib-0.4.0.crate) = 7638
+SHA256 (rust/crates/dlib-0.5.2.crate) = 330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412
+SIZE (rust/crates/dlib-0.5.2.crate) = 5806
+SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
+SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
+SHA256 (rust/crates/downcast-rs-1.2.1.crate) = 75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2
+SIZE (rust/crates/downcast-rs-1.2.1.crate) = 11821
+SHA256 (rust/crates/either-1.11.0.crate) = a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2
+SIZE (rust/crates/either-1.11.0.crate) = 18973
+SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
+SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
+SHA256 (rust/crates/errno-0.3.8.crate) = a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245
+SIZE (rust/crates/errno-0.3.8.crate) = 10645
+SHA256 (rust/crates/exr-1.72.0.crate) = 887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4
+SIZE (rust/crates/exr-1.72.0.crate) = 243996
+SHA256 (rust/crates/fast_image_resize-3.0.4.crate) = c9d450fac8a334ad72825596173f0f7767ff04dd6e3d59c49c894c4bc2957e8b
+SIZE (rust/crates/fast_image_resize-3.0.4.crate) = 108018
+SHA256 (rust/crates/fdeflate-0.3.4.crate) = 4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645
+SIZE (rust/crates/fdeflate-0.3.4.crate) = 25001
+SHA256 (rust/crates/flate2-1.0.30.crate) = 5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae
+SIZE (rust/crates/flate2-1.0.30.crate) = 75511
+SHA256 (rust/crates/flume-0.11.0.crate) = 55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181
+SIZE (rust/crates/flume-0.11.0.crate) = 67502
+SHA256 (rust/crates/getrandom-0.2.14.crate) = 94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c
+SIZE (rust/crates/getrandom-0.2.14.crate) = 37307
+SHA256 (rust/crates/gif-0.13.1.crate) = 3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2
+SIZE (rust/crates/gif-0.13.1.crate) = 36408
+SHA256 (rust/crates/half-2.4.1.crate) = 6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888
+SIZE (rust/crates/half-2.4.1.crate) = 50892
+SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1
+SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024
+SIZE (rust/crates/hermit-abi-0.3.9.crate) = 16165
+SHA256 (rust/crates/image-0.25.1.crate) = fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11
+SIZE (rust/crates/image-0.25.1.crate) = 9176733
+SHA256 (rust/crates/image-webp-0.1.2.crate) = d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d
+SIZE (rust/crates/image-webp-0.1.2.crate) = 49653
+SHA256 (rust/crates/imgref-1.10.1.crate) = 44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126
+SIZE (rust/crates/imgref-1.10.1.crate) = 61797
+SHA256 (rust/crates/indexmap-2.2.6.crate) = 168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26
+SIZE (rust/crates/indexmap-2.2.6.crate) = 82420
+SHA256 (rust/crates/interpolate_name-0.2.4.crate) = c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60
+SIZE (rust/crates/interpolate_name-0.2.4.crate) = 4027
+SHA256 (rust/crates/is-terminal-0.4.12.crate) = f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b
+SIZE (rust/crates/is-terminal-0.4.12.crate) = 7470
+SHA256 (rust/crates/is_terminal_polyfill-1.70.0.crate) = f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800
+SIZE (rust/crates/is_terminal_polyfill-1.70.0.crate) = 7451
+SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473
+SIZE (rust/crates/itertools-0.10.5.crate) = 115354
+SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
+SIZE (rust/crates/itertools-0.12.1.crate) = 137761
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
+SHA256 (rust/crates/jobserver-0.1.31.crate) = d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e
+SIZE (rust/crates/jobserver-0.1.31.crate) = 27306
+SHA256 (rust/crates/jpeg-decoder-0.3.1.crate) = f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0
+SIZE (rust/crates/jpeg-decoder-0.3.1.crate) = 744364
+SHA256 (rust/crates/js-sys-0.3.69.crate) = 29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d
+SIZE (rust/crates/js-sys-0.3.69.crate) = 81083
+SHA256 (rust/crates/keyframe-1.1.1.crate) = 60708bf7981518d09095d6f5673ce5cf6a64f1e0d9708b554f670e6d9d2bd9a9
+SIZE (rust/crates/keyframe-1.1.1.crate) = 33573
+SHA256 (rust/crates/lebe-0.5.2.crate) = 03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8
+SIZE (rust/crates/lebe-0.5.2.crate) = 8422
+SHA256 (rust/crates/libc-0.2.154.crate) = ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346
+SIZE (rust/crates/libc-0.2.154.crate) = 743304
+SHA256 (rust/crates/libfuzzer-sys-0.4.7.crate) = a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7
+SIZE (rust/crates/libfuzzer-sys-0.4.7.crate) = 128332
+SHA256 (rust/crates/libloading-0.8.3.crate) = 0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19
+SIZE (rust/crates/libloading-0.8.3.crate) = 28480
+SHA256 (rust/crates/libm-0.2.8.crate) = 4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058
+SIZE (rust/crates/libm-0.2.8.crate) = 113450
+SHA256 (rust/crates/linux-raw-sys-0.4.13.crate) = 01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c
+SIZE (rust/crates/linux-raw-sys-0.4.13.crate) = 1493855
+SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
+SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
+SHA256 (rust/crates/log-0.4.21.crate) = 90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c
+SIZE (rust/crates/log-0.4.21.crate) = 43442
+SHA256 (rust/crates/loop9-0.1.5.crate) = 0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062
+SIZE (rust/crates/loop9-0.1.5.crate) = 3406
+SHA256 (rust/crates/maybe-rayon-0.1.1.crate) = 8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519
+SIZE (rust/crates/maybe-rayon-0.1.1.crate) = 2901
+SHA256 (rust/crates/memchr-2.7.2.crate) = 6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d
+SIZE (rust/crates/memchr-2.7.2.crate) = 96220
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/miniz_oxide-0.7.2.crate) = 9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7
+SIZE (rust/crates/miniz_oxide-0.7.2.crate) = 55731
+SHA256 (rust/crates/mint-0.5.9.crate) = e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff
+SIZE (rust/crates/mint-0.5.9.crate) = 8399
+SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
+SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/noop_proc_macro-0.3.0.crate) = 0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8
+SIZE (rust/crates/noop_proc_macro-0.3.0.crate) = 2157
+SHA256 (rust/crates/num-bigint-0.4.4.crate) = 608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0
+SIZE (rust/crates/num-bigint-0.4.4.crate) = 99369
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
+SHA256 (rust/crates/num-derive-0.4.2.crate) = ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202
+SIZE (rust/crates/num-derive-0.4.2.crate) = 14709
+SHA256 (rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f
+SIZE (rust/crates/num-integer-0.1.46.crate) = 22331
+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.18.crate) = da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a
+SIZE (rust/crates/num-traits-0.2.18.crate) = 51930
+SHA256 (rust/crates/num_threads-0.1.7.crate) = 5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9
+SIZE (rust/crates/num_threads-0.1.7.crate) = 7455
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/oorandom-11.1.3.crate) = 0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575
+SIZE (rust/crates/oorandom-11.1.3.crate) = 10068
+SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c
+SIZE (rust/crates/paste-1.0.14.crate) = 18157
+SHA256 (rust/crates/pkg-config-0.3.30.crate) = d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec
+SIZE (rust/crates/pkg-config-0.3.30.crate) = 20613
+SHA256 (rust/crates/plotters-0.3.5.crate) = d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45
+SIZE (rust/crates/plotters-0.3.5.crate) = 143975
+SHA256 (rust/crates/plotters-backend-0.3.5.crate) = 9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609
+SIZE (rust/crates/plotters-backend-0.3.5.crate) = 13440
+SHA256 (rust/crates/plotters-svg-0.3.5.crate) = 38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab
+SIZE (rust/crates/plotters-svg-0.3.5.crate) = 6948
+SHA256 (rust/crates/png-0.17.13.crate) = 06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1
+SIZE (rust/crates/png-0.17.13.crate) = 103176
+SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
+SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
+SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
+SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
+SHA256 (rust/crates/predicates-3.1.0.crate) = 68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8
+SIZE (rust/crates/predicates-3.1.0.crate) = 23090
+SHA256 (rust/crates/predicates-core-1.0.6.crate) = b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174
+SIZE (rust/crates/predicates-core-1.0.6.crate) = 8084
+SHA256 (rust/crates/predicates-tree-1.0.9.crate) = 368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf
+SIZE (rust/crates/predicates-tree-1.0.9.crate) = 7960
+SHA256 (rust/crates/proc-macro2-1.0.81.crate) = 3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba
+SIZE (rust/crates/proc-macro2-1.0.81.crate) = 48233
+SHA256 (rust/crates/profiling-1.0.15.crate) = 43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58
+SIZE (rust/crates/profiling-1.0.15.crate) = 14255
+SHA256 (rust/crates/profiling-procmacros-1.0.15.crate) = 8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd
+SIZE (rust/crates/profiling-procmacros-1.0.15.crate) = 5956
+SHA256 (rust/crates/qoi-0.4.1.crate) = 7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001
+SIZE (rust/crates/qoi-0.4.1.crate) = 71135
+SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3
+SIZE (rust/crates/quick-error-2.0.1.crate) = 14265
+SHA256 (rust/crates/quick-xml-0.31.0.crate) = 1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33
+SIZE (rust/crates/quick-xml-0.31.0.crate) = 172236
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rav1e-0.7.1.crate) = cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9
+SIZE (rust/crates/rav1e-0.7.1.crate) = 1472522
+SHA256 (rust/crates/ravif-0.11.5.crate) = bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234
+SIZE (rust/crates/ravif-0.11.5.crate) = 11091
+SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
+SIZE (rust/crates/rayon-1.10.0.crate) = 180155
+SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
+SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
+SHA256 (rust/crates/regex-1.10.4.crate) = c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c
+SIZE (rust/crates/regex-1.10.4.crate) = 253191
+SHA256 (rust/crates/regex-automata-0.4.6.crate) = 86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea
+SIZE (rust/crates/regex-automata-0.4.6.crate) = 617565
+SHA256 (rust/crates/regex-syntax-0.8.3.crate) = adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56
+SIZE (rust/crates/regex-syntax-0.8.3.crate) = 347497
+SHA256 (rust/crates/rgb-0.8.37.crate) = 05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8
+SIZE (rust/crates/rgb-0.8.37.crate) = 16644
+SHA256 (rust/crates/rustix-0.38.34.crate) = 70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f
+SIZE (rust/crates/rustix-0.38.34.crate) = 365160
+SHA256 (rust/crates/ryu-1.0.17.crate) = e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1
+SIZE (rust/crates/ryu-1.0.17.crate) = 47537
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
+SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/sd-notify-0.4.1.crate) = 621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32
+SIZE (rust/crates/sd-notify-0.4.1.crate) = 10085
+SHA256 (rust/crates/serde-1.0.200.crate) = ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f
+SIZE (rust/crates/serde-1.0.200.crate) = 77611
+SHA256 (rust/crates/serde_derive-1.0.200.crate) = 856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb
+SIZE (rust/crates/serde_derive-1.0.200.crate) = 55785
+SHA256 (rust/crates/serde_json-1.0.116.crate) = 3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813
+SIZE (rust/crates/serde_json-1.0.116.crate) = 146790
+SHA256 (rust/crates/serde_spanned-0.6.5.crate) = eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1
+SIZE (rust/crates/serde_spanned-0.6.5.crate) = 8349
+SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
+SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
+SHA256 (rust/crates/simd_helpers-0.1.0.crate) = 95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6
+SIZE (rust/crates/simd_helpers-0.1.0.crate) = 1527
+SHA256 (rust/crates/simplelog-0.12.2.crate) = 16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0
+SIZE (rust/crates/simplelog-0.12.2.crate) = 21548
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/spin-0.9.8.crate) = 6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67
+SIZE (rust/crates/spin-0.9.8.crate) = 38958
+SHA256 (rust/crates/spin_sleep-1.2.0.crate) = 368a978649eaf70006b082e79c832bd72556ac1393eaf564d686e919dca2347f
+SIZE (rust/crates/spin_sleep-1.2.0.crate) = 12027
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.60.crate) = 909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3
+SIZE (rust/crates/syn-2.0.60.crate) = 255808
+SHA256 (rust/crates/system-deps-6.2.2.crate) = a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349
+SIZE (rust/crates/system-deps-6.2.2.crate) = 25546
+SHA256 (rust/crates/target-lexicon-0.12.14.crate) = e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f
+SIZE (rust/crates/target-lexicon-0.12.14.crate) = 25508
+SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
+SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
+SHA256 (rust/crates/terminal_size-0.3.0.crate) = 21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7
+SIZE (rust/crates/terminal_size-0.3.0.crate) = 10096
+SHA256 (rust/crates/termtree-0.4.1.crate) = 3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76
+SIZE (rust/crates/termtree-0.4.1.crate) = 4557
+SHA256 (rust/crates/thiserror-1.0.59.crate) = f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa
+SIZE (rust/crates/thiserror-1.0.59.crate) = 21040
+SHA256 (rust/crates/thiserror-impl-1.0.59.crate) = d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66
+SIZE (rust/crates/thiserror-impl-1.0.59.crate) = 15726
+SHA256 (rust/crates/tiff-0.9.1.crate) = ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e
+SIZE (rust/crates/tiff-0.9.1.crate) = 1423953
+SHA256 (rust/crates/time-0.3.36.crate) = 5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885
+SIZE (rust/crates/time-0.3.36.crate) = 119805
+SHA256 (rust/crates/time-core-0.1.2.crate) = ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3
+SIZE (rust/crates/time-core-0.1.2.crate) = 7191
+SHA256 (rust/crates/time-macros-0.2.18.crate) = 3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf
+SIZE (rust/crates/time-macros-0.2.18.crate) = 24361
+SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc
+SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490
+SHA256 (rust/crates/toml-0.8.12.crate) = e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3
+SIZE (rust/crates/toml-0.8.12.crate) = 51145
+SHA256 (rust/crates/toml_datetime-0.6.5.crate) = 3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1
+SIZE (rust/crates/toml_datetime-0.6.5.crate) = 10910
+SHA256 (rust/crates/toml_edit-0.22.12.crate) = d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef
+SIZE (rust/crates/toml_edit-0.22.12.crate) = 104416
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a
+SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435
+SHA256 (rust/crates/v_frame-0.3.8.crate) = d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b
+SIZE (rust/crates/v_frame-0.3.8.crate) = 14967
+SHA256 (rust/crates/version-compare-0.2.0.crate) = 852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b
+SIZE (rust/crates/version-compare-0.2.0.crate) = 13942
+SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
+SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+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.92.crate) = 4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8
+SIZE (rust/crates/wasm-bindgen-0.2.92.crate) = 184119
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da
+SIZE (rust/crates/wasm-bindgen-backend-0.2.92.crate) = 28348
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.92.crate) = a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726
+SIZE (rust/crates/wasm-bindgen-macro-0.2.92.crate) = 13835
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.92.crate) = 20092
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.92.crate) = af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96
+SIZE (rust/crates/wasm-bindgen-shared-0.2.92.crate) = 7263
+SHA256 (rust/crates/wayland-backend-0.3.3.crate) = 9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40
+SIZE (rust/crates/wayland-backend-0.3.3.crate) = 70455
+SHA256 (rust/crates/wayland-client-0.31.2.crate) = 82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f
+SIZE (rust/crates/wayland-client-0.31.2.crate) = 62976
+SHA256 (rust/crates/wayland-protocols-0.31.2.crate) = 8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4
+SIZE (rust/crates/wayland-protocols-0.31.2.crate) = 147062
+SHA256 (rust/crates/wayland-protocols-wlr-0.2.0.crate) = ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6
+SIZE (rust/crates/wayland-protocols-wlr-0.2.0.crate) = 25804
+SHA256 (rust/crates/wayland-scanner-0.31.1.crate) = 63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283
+SIZE (rust/crates/wayland-scanner-0.31.1.crate) = 35419
+SHA256 (rust/crates/wayland-sys-0.31.1.crate) = 15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af
+SIZE (rust/crates/wayland-sys-0.31.1.crate) = 8577
+SHA256 (rust/crates/web-sys-0.3.69.crate) = 77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef
+SIZE (rust/crates/web-sys-0.3.69.crate) = 728877
+SHA256 (rust/crates/weezl-0.1.8.crate) = 53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082
+SIZE (rust/crates/weezl-0.1.8.crate) = 42175
+SHA256 (rust/crates/winapi-util-0.1.8.crate) = 4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b
+SIZE (rust/crates/winapi-util-0.1.8.crate) = 12416
+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.5.crate) = 6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb
+SIZE (rust/crates/windows-targets-0.52.5.crate) = 6376
+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.5.crate) = 7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.5.crate) = 433266
+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.5.crate) = 9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6
+SIZE (rust/crates/windows_aarch64_msvc-0.52.5.crate) = 827944
+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.5.crate) = 88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670
+SIZE (rust/crates/windows_i686_gnu-0.52.5.crate) = 875699
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9
+SIZE (rust/crates/windows_i686_gnullvm-0.52.5.crate) = 473064
+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.5.crate) = db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf
+SIZE (rust/crates/windows_i686_msvc-0.52.5.crate) = 895404
+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.5.crate) = 4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9
+SIZE (rust/crates/windows_x86_64_gnu-0.52.5.crate) = 831539
+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.5.crate) = 852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.5.crate) = 433246
+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.5.crate) = bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0
+SIZE (rust/crates/windows_x86_64_msvc-0.52.5.crate) = 827905
+SHA256 (rust/crates/winnow-0.6.7.crate) = 14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578
+SIZE (rust/crates/winnow-0.6.7.crate) = 159491
+SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a
+SIZE (rust/crates/zune-core-0.4.12.crate) = 17355
+SHA256 (rust/crates/zune-inflate-0.2.54.crate) = 73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02
+SIZE (rust/crates/zune-inflate-0.2.54.crate) = 37973
+SHA256 (rust/crates/zune-jpeg-0.4.11.crate) = ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448
+SIZE (rust/crates/zune-jpeg-0.4.11.crate) = 61815
+SHA256 (SoftbearStudios-bitcode-5f25a59be3e66deef721e7eb2369deb1aa32d263_GH0.tar.gz) = 7192126153f38af858ceecfe752b8bf3fad1791c8119a790cc025b58daf9107d
+SIZE (SoftbearStudios-bitcode-5f25a59be3e66deef721e7eb2369deb1aa32d263_GH0.tar.gz) = 69796
+SHA256 (LGFae-swww-v0.9.5_GH0.tar.gz) = 567e2ac76203ad47df5aaafab7d9d0e4e283a74e34690930a4730ecf0a667428
+SIZE (LGFae-swww-v0.9.5_GH0.tar.gz) = 92007
diff --git a/x11/swww/files/patch-doc_gen.sh b/x11/swww/files/patch-doc_gen.sh
new file mode 100644
index 000000000000..a32fa443bf6f
--- /dev/null
+++ b/x11/swww/files/patch-doc_gen.sh
@@ -0,0 +1,11 @@
+--- doc/gen.sh.orig	2024-05-02 23:49:23 UTC
++++ doc/gen.sh
+@@ -18,7 +18,7 @@ for FILE in "$DIR"/*scd; do
+ fi
+ 
+ for FILE in "$DIR"/*scd; do
+-	GEN="$GEN_DIR"/"$(basename --suffix .scd "$FILE")"
++	GEN="$GEN_DIR"/"$(basename "$FILE" .scd)"
+ 	printf "generating %s..." "$GEN"
+ 	scdoc < "$FILE" > "$GEN"
+ 	printf " ...done!\n"
diff --git a/x11/swww/pkg-descr b/x11/swww/pkg-descr
new file mode 100644
index 000000000000..501a2b8dbc0b
--- /dev/null
+++ b/x11/swww/pkg-descr
@@ -0,0 +1,18 @@
+Efficient animated wallpaper daemon for wayland, controlled at runtime.
+
+Features
+
+    - Display animated gifs on your desktop
+    - Display any image in the formats:
+        - jpeg
+        - png
+        - gif
+        - pnm
+        - tga
+        - tiff
+        - webp
+        - bmp
+        - farbfeld
+    - Clear the screen with an arbitrary rrggbb color
+    - Smooth transition effect when you switch images
+    - Do all of that without having to shutdown and reinitialize the daemon
diff --git a/x11/swww/pkg-plist b/x11/swww/pkg-plist
new file mode 100644
index 000000000000..9e5ff8301bc6
--- /dev/null
+++ b/x11/swww/pkg-plist
@@ -0,0 +1,15 @@
+bin/swww
+bin/swww-daemon
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/README.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/swww_init_according_to_time_of_day.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/swww_randomize.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/swww_scheduler.sh
+share/man/man1/swww-clear-cache.1.gz
+share/man/man1/swww-clear.1.gz
+share/man/man1/swww-daemon.1.gz
+share/man/man1/swww-img.1.gz
+share/man/man1/swww-init.1.gz
+share/man/man1/swww-kill.1.gz
+share/man/man1/swww-query.1.gz
+share/man/man1/swww-restore.1.gz
+share/man/man1/swww.1.gz