diff mbox series

[meta-gnome,01/31] loupe: add recipe

Message ID 20260915074347.6003-1-f_l_k@t-online.de
State New
Headers show
Series [meta-gnome,01/31] loupe: add recipe | expand

Commit Message

Markus Volk Sept. 15, 2026, 7:43 a.m. UTC
Loupe is the GNOME image viewer that succeeds eog. It loads images via
glycin, which is already packaged here, so the recipe only needs to add
glycin-loaders as a runtime dependency.

The build is meson driving cargo. Upstream invokes cargo without
--target and copies the binary from the native artifact layout, so a
patch teaches src/meson.build to read a rust_target property from the
cross file, the same mechanism glycin uses.

Built and packaged for corei7-64.

AI-Generated: Uses Claude Code (Claude Opus 5)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 .../recipes-gnome/loupe/loupe-crates.inc      | 556 ++++++++++++++++++
 ...oss-compilation-via-a-rust_target-cr.patch |  50 ++
 meta-gnome/recipes-gnome/loupe/loupe_51.0.bb  |  75 +++
 3 files changed, 681 insertions(+)
 create mode 100644 meta-gnome/recipes-gnome/loupe/loupe-crates.inc
 create mode 100644 meta-gnome/recipes-gnome/loupe/loupe/0001-meson-Support-cross-compilation-via-a-rust_target-cr.patch
 create mode 100644 meta-gnome/recipes-gnome/loupe/loupe_51.0.bb

Comments

Markus Volk Sept. 15, 2026, 7:49 a.m. UTC | #1
All of these should be buildable with the current oe-core master except 
for mutter, which requires the ‘gsettings-desktop-schemas’ update 
from oe-core master-next
and have also been runtime-tested. Still missing are 
gnome-control-center-51 and nautilus-51 because they would require a 
glib-2.0 and libadwaita bump in oe-core.
diff mbox series

Patch

diff --git a/meta-gnome/recipes-gnome/loupe/loupe-crates.inc b/meta-gnome/recipes-gnome/loupe/loupe-crates.inc
new file mode 100644
index 0000000000..72a863efc2
--- /dev/null
+++ b/meta-gnome/recipes-gnome/loupe/loupe-crates.inc
@@ -0,0 +1,556 @@ 
+# Autogenerated with 'bitbake -c update_crates loupe'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/adler2/2.0.1 \
+    crate://crates.io/aho-corasick/1.1.5 \
+    crate://crates.io/aliasable/0.1.3 \
+    crate://crates.io/anyhow/1.0.104 \
+    crate://crates.io/arc-swap/1.9.2 \
+    crate://crates.io/ashpd/0.13.13 \
+    crate://crates.io/async-broadcast/0.7.2 \
+    crate://crates.io/async-channel/2.5.0 \
+    crate://crates.io/async-executor/1.14.0 \
+    crate://crates.io/async-fs/2.2.0 \
+    crate://crates.io/async-global-executor/3.1.0 \
+    crate://crates.io/async-io/2.6.0 \
+    crate://crates.io/async-lock/3.4.2 \
+    crate://crates.io/async-process/2.5.0 \
+    crate://crates.io/async-recursion/1.1.1 \
+    crate://crates.io/async-signal/0.2.14 \
+    crate://crates.io/async-task/4.7.1 \
+    crate://crates.io/async-trait/0.1.92 \
+    crate://crates.io/atomic-waker/1.1.2 \
+    crate://crates.io/autocfg/1.5.1 \
+    crate://crates.io/bit_field/0.10.3 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/bitflags/2.13.1 \
+    crate://crates.io/block/0.1.6 \
+    crate://crates.io/blocking/1.7.0 \
+    crate://crates.io/bumpalo/3.20.3 \
+    crate://crates.io/bytemuck/1.25.2 \
+    crate://crates.io/byteorder-lite/0.1.0 \
+    crate://crates.io/cairo-rs/0.22.0 \
+    crate://crates.io/cairo-sys-rs/0.22.0 \
+    crate://crates.io/cc/1.4.4 \
+    crate://crates.io/cfg-expr/0.20.9 \
+    crate://crates.io/cfg-if/1.0.4 \
+    crate://crates.io/cfg_aliases/0.2.2 \
+    crate://crates.io/chrono/0.4.45 \
+    crate://crates.io/color_quant/1.1.0 \
+    crate://crates.io/concurrent-queue/2.5.0 \
+    crate://crates.io/crc32fast/1.5.1 \
+    crate://crates.io/crossbeam-deque/0.8.7 \
+    crate://crates.io/crossbeam-epoch/0.9.20 \
+    crate://crates.io/crossbeam-utils/0.8.22 \
+    crate://crates.io/crunchy/0.2.4 \
+    crate://crates.io/defmt/1.1.1 \
+    crate://crates.io/defmt-macros/1.1.1 \
+    crate://crates.io/defmt-parser/1.0.0 \
+    crate://crates.io/dlib/0.5.3 \
+    crate://crates.io/either/1.18.0 \
+    crate://crates.io/encoding_rs/0.8.35 \
+    crate://crates.io/endi/1.1.1 \
+    crate://crates.io/enumflags2/0.7.12 \
+    crate://crates.io/enumflags2_derive/0.7.12 \
+    crate://crates.io/env_filter/2.0.0 \
+    crate://crates.io/env_logger/0.11.11 \
+    crate://crates.io/equivalent/1.0.2 \
+    crate://crates.io/errno/0.3.14 \
+    crate://crates.io/event-listener/5.4.2 \
+    crate://crates.io/event-listener-strategy/0.5.4 \
+    crate://crates.io/exr/1.74.2 \
+    crate://crates.io/fastrand/2.5.0 \
+    crate://crates.io/fax/0.2.7 \
+    crate://crates.io/fdeflate/0.3.7 \
+    crate://crates.io/fearless_simd/0.4.1 \
+    crate://crates.io/field-offset/0.3.6 \
+    crate://crates.io/find-msvc-tools/0.1.11 \
+    crate://crates.io/flate2/1.1.9 \
+    crate://crates.io/futures-channel/0.3.34 \
+    crate://crates.io/futures-core/0.3.34 \
+    crate://crates.io/futures-executor/0.3.34 \
+    crate://crates.io/futures-io/0.3.34 \
+    crate://crates.io/futures-lite/2.6.1 \
+    crate://crates.io/futures-macro/0.3.34 \
+    crate://crates.io/futures-sink/0.3.34 \
+    crate://crates.io/futures-task/0.3.34 \
+    crate://crates.io/futures-timer/3.0.4 \
+    crate://crates.io/futures-util/0.3.34 \
+    crate://crates.io/gdk-pixbuf/0.22.0 \
+    crate://crates.io/gdk-pixbuf-sys/0.22.0 \
+    crate://crates.io/gdk4/0.11.4 \
+    crate://crates.io/gdk4-sys/0.11.4 \
+    crate://crates.io/gdk4-wayland/0.11.4 \
+    crate://crates.io/gdk4-wayland-sys/0.11.0 \
+    crate://crates.io/gdk4-x11/0.11.4 \
+    crate://crates.io/gdk4-x11-sys/0.11.0 \
+    crate://crates.io/getrandom/0.4.3 \
+    crate://crates.io/gettext-rs/0.8.0 \
+    crate://crates.io/gettext-sys/0.27.0 \
+    crate://crates.io/gif/0.14.2 \
+    crate://crates.io/gio/0.22.8 \
+    crate://crates.io/gio-sys/0.22.8 \
+    crate://crates.io/gio-unix/0.22.8 \
+    crate://crates.io/gio-unix-sys/0.22.0 \
+    crate://crates.io/glib/0.22.8 \
+    crate://crates.io/glib-macros/0.22.6 \
+    crate://crates.io/glib-sys/0.22.8 \
+    crate://crates.io/glycin/4.0.0 \
+    crate://crates.io/glycin-builtin/4.0.0 \
+    crate://crates.io/glycin-common/2.0.0 \
+    crate://crates.io/glycin-core/4.0.0 \
+    crate://crates.io/glycin-external/4.0.0 \
+    crate://crates.io/glycin-image-rs/2.2.0 \
+    crate://crates.io/glycin-utils/5.0.0 \
+    crate://crates.io/gobject-sys/0.22.6 \
+    crate://crates.io/graphene-rs/0.22.8 \
+    crate://crates.io/graphene-sys/0.22.8 \
+    crate://crates.io/gsk4/0.11.4 \
+    crate://crates.io/gsk4-sys/0.11.4 \
+    crate://crates.io/gtk4/0.11.4 \
+    crate://crates.io/gtk4-macros/0.11.4 \
+    crate://crates.io/gtk4-sys/0.11.4 \
+    crate://crates.io/gufo/0.5.0 \
+    crate://crates.io/gufo-common/2.0.0 \
+    crate://crates.io/gufo-exif/0.5.0 \
+    crate://crates.io/gufo-jpeg/0.5.1 \
+    crate://crates.io/gufo-png/0.5.0 \
+    crate://crates.io/gufo-tiff/0.5.0 \
+    crate://crates.io/gufo-webp/0.5.0 \
+    crate://crates.io/gufo-xmp/0.5.0 \
+    crate://crates.io/gvdb/0.10.0 \
+    crate://crates.io/gvdb-macros/0.1.16 \
+    crate://crates.io/gweather-sys/4.8.0 \
+    crate://crates.io/half/2.7.1 \
+    crate://crates.io/hashbrown/0.17.1 \
+    crate://crates.io/hayro-jpeg2000/0.3.5 \
+    crate://crates.io/heck/0.4.1 \
+    crate://crates.io/heck/0.5.0 \
+    crate://crates.io/hermit-abi/0.5.2 \
+    crate://crates.io/hex/0.4.3 \
+    crate://crates.io/image/0.25.10 \
+    crate://crates.io/image-extras/0.1.1 \
+    crate://crates.io/image-webp/0.2.4 \
+    crate://crates.io/indexmap/2.14.0 \
+    crate://crates.io/itoa/1.0.18 \
+    crate://crates.io/jiff/0.2.35 \
+    crate://crates.io/jiff-core/0.1.0 \
+    crate://crates.io/jiff-static/0.2.35 \
+    crate://crates.io/jpeg-encoder/0.7.1 \
+    crate://crates.io/js-sys/0.3.104 \
+    crate://crates.io/lazy_static/1.5.0 \
+    crate://crates.io/lebe/0.5.3 \
+    crate://crates.io/libadwaita/0.9.2 \
+    crate://crates.io/libadwaita-sys/0.9.2 \
+    crate://crates.io/libc/0.2.189 \
+    crate://crates.io/libgweather/4.8.0 \
+    crate://crates.io/libloading/0.8.9 \
+    crate://crates.io/libm/0.2.16 \
+    crate://crates.io/libseccomp/0.4.0 \
+    crate://crates.io/libseccomp-sys/0.3.0 \
+    crate://crates.io/linux-raw-sys/0.12.1 \
+    crate://crates.io/litrs/1.0.0 \
+    crate://crates.io/locale_config/0.3.0 \
+    crate://crates.io/log/0.4.34 \
+    crate://crates.io/malloc_buf/0.0.6 \
+    crate://crates.io/matchers/0.2.0 \
+    crate://crates.io/memchr/2.8.3 \
+    crate://crates.io/memmap2/0.9.11 \
+    crate://crates.io/memoffset/0.9.1 \
+    crate://crates.io/miniz_oxide/0.8.9 \
+    crate://crates.io/miniz_oxide/0.9.1 \
+    crate://crates.io/moxcms/0.8.1 \
+    crate://crates.io/nix/0.31.3 \
+    crate://crates.io/nu-ansi-term/0.50.3 \
+    crate://crates.io/num-complex/0.4.6 \
+    crate://crates.io/num-traits/0.2.19 \
+    crate://crates.io/objc/0.2.7 \
+    crate://crates.io/objc-foundation/0.1.1 \
+    crate://crates.io/objc_id/0.1.1 \
+    crate://crates.io/once_cell/1.21.4 \
+    crate://crates.io/ordered-stream/0.2.0 \
+    crate://crates.io/ouroboros/0.18.5 \
+    crate://crates.io/ouroboros_macro/0.18.5 \
+    crate://crates.io/pango/0.22.8 \
+    crate://crates.io/pango-sys/0.22.0 \
+    crate://crates.io/parking/2.2.1 \
+    crate://crates.io/paste/1.0.15 \
+    crate://crates.io/pin-project-lite/0.2.17 \
+    crate://crates.io/piper/0.2.5 \
+    crate://crates.io/pkg-config/0.3.34 \
+    crate://crates.io/png/0.18.1 \
+    crate://crates.io/polling/3.11.0 \
+    crate://crates.io/portable-atomic/1.15.0 \
+    crate://crates.io/portable-atomic-util/0.2.7 \
+    crate://crates.io/proc-macro-crate/3.5.0 \
+    crate://crates.io/proc-macro2/1.0.107 \
+    crate://crates.io/proc-macro2-diagnostics/0.10.1 \
+    crate://crates.io/pulp/0.22.3 \
+    crate://crates.io/pulp-wasm-simd-flag/0.1.1 \
+    crate://crates.io/pxfm/0.1.30 \
+    crate://crates.io/qoi/0.4.1 \
+    crate://crates.io/quick-error/2.0.1 \
+    crate://crates.io/quick-xml/0.39.4 \
+    crate://crates.io/quote/1.0.47 \
+    crate://crates.io/r-efi/6.0.0 \
+    crate://crates.io/raw-cpuid/11.6.0 \
+    crate://crates.io/rayon/1.12.0 \
+    crate://crates.io/rayon-core/1.13.0 \
+    crate://crates.io/reborrow/0.5.5 \
+    crate://crates.io/regex/1.13.1 \
+    crate://crates.io/regex-automata/0.4.18 \
+    crate://crates.io/regex-syntax/0.8.11 \
+    crate://crates.io/rmp/0.8.15 \
+    crate://crates.io/rmp-serde/1.3.1 \
+    crate://crates.io/rustc_version/0.4.1 \
+    crate://crates.io/rustix/1.1.4 \
+    crate://crates.io/rustversion/1.0.23 \
+    crate://crates.io/same-file/1.0.6 \
+    crate://crates.io/semver/1.0.28 \
+    crate://crates.io/serde/1.0.229 \
+    crate://crates.io/serde_core/1.0.229 \
+    crate://crates.io/serde_derive/1.0.229 \
+    crate://crates.io/serde_json/1.0.151 \
+    crate://crates.io/serde_repr/0.1.21 \
+    crate://crates.io/serde_spanned/1.1.1 \
+    crate://crates.io/sharded-slab/0.1.7 \
+    crate://crates.io/shlex/2.0.1 \
+    crate://crates.io/signal-hook-registry/1.4.8 \
+    crate://crates.io/simd-adler32/0.3.10 \
+    crate://crates.io/slab/0.4.12 \
+    crate://crates.io/smallvec/1.15.2 \
+    crate://crates.io/static_assertions/1.1.0 \
+    crate://crates.io/strum/0.28.0 \
+    crate://crates.io/strum_macros/0.28.0 \
+    crate://crates.io/syn/2.0.119 \
+    crate://crates.io/syn/3.0.4 \
+    crate://crates.io/system-deps/7.0.8 \
+    crate://crates.io/target-lexicon/0.13.5 \
+    crate://crates.io/temp-dir/0.1.16 \
+    crate://crates.io/tempfile/3.27.0 \
+    crate://crates.io/thiserror/2.0.20 \
+    crate://crates.io/thiserror-impl/2.0.20 \
+    crate://crates.io/thread_local/1.1.10 \
+    crate://crates.io/tiff/0.11.3 \
+    crate://crates.io/toml/1.1.4+spec-1.1.0 \
+    crate://crates.io/toml_datetime/1.1.1+spec-1.1.0 \
+    crate://crates.io/toml_edit/0.25.13+spec-1.1.0 \
+    crate://crates.io/toml_parser/1.1.3+spec-1.1.0 \
+    crate://crates.io/toml_writer/1.1.2+spec-1.1.0 \
+    crate://crates.io/tracing/0.1.44 \
+    crate://crates.io/tracing-attributes/0.1.31 \
+    crate://crates.io/tracing-core/0.1.36 \
+    crate://crates.io/tracing-subscriber/0.3.23 \
+    crate://crates.io/uds_windows/1.2.1 \
+    crate://crates.io/unicode-ident/1.0.24 \
+    crate://crates.io/uuid/1.25.0 \
+    crate://crates.io/version-compare/0.2.1 \
+    crate://crates.io/version_check/0.9.5 \
+    crate://crates.io/walkdir/2.5.0 \
+    crate://crates.io/wasm-bindgen/0.2.127 \
+    crate://crates.io/wasm-bindgen-macro/0.2.127 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.127 \
+    crate://crates.io/wasm-bindgen-shared/0.2.127 \
+    crate://crates.io/weezl/0.1.12 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.11 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/windows-link/0.2.1 \
+    crate://crates.io/windows-sys/0.61.2 \
+    crate://crates.io/winnow/1.0.4 \
+    crate://crates.io/x11-dl/2.21.0 \
+    crate://crates.io/xml/1.4.0 \
+    crate://crates.io/yansi/1.0.1 \
+    crate://crates.io/yeslogic-fontconfig-sys/6.0.1 \
+    crate://crates.io/zbus/5.19.0 \
+    crate://crates.io/zbus_macros/5.19.0 \
+    crate://crates.io/zbus_names/4.3.4 \
+    crate://crates.io/zcheapstr/1.1.0 \
+    crate://crates.io/zerocopy/0.8.56 \
+    crate://crates.io/zerocopy-derive/0.8.56 \
+    crate://crates.io/zmij/1.0.23 \
+    crate://crates.io/zune-core/0.5.3 \
+    crate://crates.io/zune-inflate/0.2.54 \
+    crate://crates.io/zune-jpeg/0.5.15 \
+    crate://crates.io/zvariant/5.15.0 \
+    crate://crates.io/zvariant_derive/5.15.0 \
+    crate://crates.io/zvariant_utils/4.2.0 \
+"
+
+SRC_URI[adler2-2.0.1.sha256sum] = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
+SRC_URI[aho-corasick-1.1.5.sha256sum] = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
+SRC_URI[aliasable-0.1.3.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+SRC_URI[anyhow-1.0.104.sha256sum] = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
+SRC_URI[arc-swap-1.9.2.sha256sum] = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b"
+SRC_URI[ashpd-0.13.13.sha256sum] = "fb8421aaa9644a5faf26735f258b669b15f063313ef8f8e2bdb28912a1a6f111"
+SRC_URI[async-broadcast-0.7.2.sha256sum] = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
+SRC_URI[async-channel-2.5.0.sha256sum] = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
+SRC_URI[async-executor-1.14.0.sha256sum] = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
+SRC_URI[async-fs-2.2.0.sha256sum] = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5"
+SRC_URI[async-global-executor-3.1.0.sha256sum] = "13f937e26114b93193065fd44f507aa2e9169ad0cdabbb996920b1fe1ddea7ba"
+SRC_URI[async-io-2.6.0.sha256sum] = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
+SRC_URI[async-lock-3.4.2.sha256sum] = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
+SRC_URI[async-process-2.5.0.sha256sum] = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
+SRC_URI[async-recursion-1.1.1.sha256sum] = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+SRC_URI[async-signal-0.2.14.sha256sum] = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485"
+SRC_URI[async-task-4.7.1.sha256sum] = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+SRC_URI[async-trait-0.1.92.sha256sum] = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
+SRC_URI[atomic-waker-1.1.2.sha256sum] = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+SRC_URI[autocfg-1.5.1.sha256sum] = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
+SRC_URI[bit_field-0.10.3.sha256sum] = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.13.1.sha256sum] = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
+SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+SRC_URI[blocking-1.7.0.sha256sum] = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa"
+SRC_URI[bumpalo-3.20.3.sha256sum] = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
+SRC_URI[bytemuck-1.25.2.sha256sum] = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"
+SRC_URI[byteorder-lite-0.1.0.sha256sum] = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
+SRC_URI[cairo-rs-0.22.0.sha256sum] = "5cc8d9aa793480744cd9a0524fef1a2e197d9eaa0f739cde19d16aba530dcb95"
+SRC_URI[cairo-sys-rs-0.22.0.sha256sum] = "f8b4985713047f5faee02b8db6a6ef32bbb50269ff53c1aee716d1d195b76d54"
+SRC_URI[cc-1.4.4.sha256sum] = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
+SRC_URI[cfg-expr-0.20.9.sha256sum] = "fe4ece8474b5f766c63426647e7b4b316b67431ade1036a8313cee24a03ae917"
+SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+SRC_URI[cfg_aliases-0.2.2.sha256sum] = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
+SRC_URI[chrono-0.4.45.sha256sum] = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
+SRC_URI[color_quant-1.1.0.sha256sum] = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+SRC_URI[concurrent-queue-2.5.0.sha256sum] = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+SRC_URI[crc32fast-1.5.1.sha256sum] = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550"
+SRC_URI[crossbeam-deque-0.8.7.sha256sum] = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
+SRC_URI[crossbeam-epoch-0.9.20.sha256sum] = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
+SRC_URI[crossbeam-utils-0.8.22.sha256sum] = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
+SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
+SRC_URI[defmt-1.1.1.sha256sum] = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1"
+SRC_URI[defmt-macros-1.1.1.sha256sum] = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8"
+SRC_URI[defmt-parser-1.0.0.sha256sum] = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e"
+SRC_URI[dlib-0.5.3.sha256sum] = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a"
+SRC_URI[either-1.18.0.sha256sum] = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
+SRC_URI[encoding_rs-0.8.35.sha256sum] = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
+SRC_URI[endi-1.1.1.sha256sum] = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099"
+SRC_URI[enumflags2-0.7.12.sha256sum] = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
+SRC_URI[enumflags2_derive-0.7.12.sha256sum] = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
+SRC_URI[env_filter-2.0.0.sha256sum] = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217"
+SRC_URI[env_logger-0.11.11.sha256sum] = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6"
+SRC_URI[equivalent-1.0.2.sha256sum] = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+SRC_URI[errno-0.3.14.sha256sum] = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+SRC_URI[event-listener-5.4.2.sha256sum] = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2"
+SRC_URI[event-listener-strategy-0.5.4.sha256sum] = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
+SRC_URI[exr-1.74.2.sha256sum] = "711fe42c9964295e01ee3fba3f9fe0e1d24b98886950d68efe81b1c76e21adf3"
+SRC_URI[fastrand-2.5.0.sha256sum] = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
+SRC_URI[fax-0.2.7.sha256sum] = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a"
+SRC_URI[fdeflate-0.3.7.sha256sum] = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
+SRC_URI[fearless_simd-0.4.1.sha256sum] = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693"
+SRC_URI[field-offset-0.3.6.sha256sum] = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+SRC_URI[find-msvc-tools-0.1.11.sha256sum] = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
+SRC_URI[flate2-1.1.9.sha256sum] = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
+SRC_URI[futures-channel-0.3.34.sha256sum] = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"
+SRC_URI[futures-core-0.3.34.sha256sum] = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
+SRC_URI[futures-executor-0.3.34.sha256sum] = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432"
+SRC_URI[futures-io-0.3.34.sha256sum] = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed"
+SRC_URI[futures-lite-2.6.1.sha256sum] = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
+SRC_URI[futures-macro-0.3.34.sha256sum] = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
+SRC_URI[futures-sink-0.3.34.sha256sum] = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
+SRC_URI[futures-task-0.3.34.sha256sum] = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
+SRC_URI[futures-timer-3.0.4.sha256sum] = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968"
+SRC_URI[futures-util-0.3.34.sha256sum] = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
+SRC_URI[gdk-pixbuf-0.22.0.sha256sum] = "25f420376dbee041b2db374ce4573892a36222bb3f6c0c43e24f0d67eae9b646"
+SRC_URI[gdk-pixbuf-sys-0.22.0.sha256sum] = "48f31b37b1fc4b48b54f6b91b7ef04c18e00b4585d98359dd7b998774bbd91fb"
+SRC_URI[gdk4-0.11.4.sha256sum] = "d81e2a6c6ecba2aab60633a98df1868b03fa0bfdce8105edc27c1bccf71f0e39"
+SRC_URI[gdk4-sys-0.11.4.sha256sum] = "3d8f608d8d7d229975c4d0d026f5d3071598c4ddab3c5262b0a31840fec78d13"
+SRC_URI[gdk4-wayland-0.11.4.sha256sum] = "32d95828dadc0357dee236cc6a5712808bd894d3217159982592ce24f2b8aaf7"
+SRC_URI[gdk4-wayland-sys-0.11.0.sha256sum] = "653cafb8715f2ac1c56edaf8060d9360ae3acbe3c6fb61b676a2917d42b668cf"
+SRC_URI[gdk4-x11-0.11.4.sha256sum] = "9d892b4cf5a07e90e1390e93cd792975746c68b59f790a2de9e96ce77211ea9a"
+SRC_URI[gdk4-x11-sys-0.11.0.sha256sum] = "24d41f2e28f62378b081288914325d73bddbb6ccbbadb41aa6392afc71d27002"
+SRC_URI[getrandom-0.4.3.sha256sum] = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
+SRC_URI[gettext-rs-0.8.0.sha256sum] = "9df5e3fa8c077b15fdfa8ce130e2bc73d663b8aaa6d51b71421b8659980b1d80"
+SRC_URI[gettext-sys-0.27.0.sha256sum] = "4caa7e4460b196107cc1bb2629488e8b6dbb7f34f6683ea6753c4ac22f590785"
+SRC_URI[gif-0.14.2.sha256sum] = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159"
+SRC_URI[gio-0.22.8.sha256sum] = "8b3e1f669909c326b9413bde5a742097b8c90a7d78f45326db13668984769ded"
+SRC_URI[gio-sys-0.22.8.sha256sum] = "353fdc7da7cd16da916104b1e0e4e7de380ec9c8aaa20d4d742d66310ab4b0d5"
+SRC_URI[gio-unix-0.22.8.sha256sum] = "ce8d768735e229742c135afa3d3326604088d2df0679901cdb05e791fe2fbe0a"
+SRC_URI[gio-unix-sys-0.22.0.sha256sum] = "44bab97ce39112040216e268f074645f50b31caeb53af708ab5d7e4e67f0dbfd"
+SRC_URI[glib-0.22.8.sha256sum] = "ddbcf514bd1881fc1b960e4e52b4e82873f4da3bceddbd58d42827b508888100"
+SRC_URI[glib-macros-0.22.6.sha256sum] = "506d23499707c7142898429757e8d9a3871d965239a2cb66dfa05052be6d6f19"
+SRC_URI[glib-sys-0.22.8.sha256sum] = "030967459f9f676851872c6304adea7825c6d462ec9b72554c733cf0c5952233"
+SRC_URI[glycin-4.0.0.sha256sum] = "dc9bb9cfa3d4db9eab0e2394f0e60fe4071fd31affd1704f2ecccc6bdd24c7b9"
+SRC_URI[glycin-builtin-4.0.0.sha256sum] = "b801b326426a0ccb61899174b0a08c2316defd323cfe78be9aa6232a2efdfeac"
+SRC_URI[glycin-common-2.0.0.sha256sum] = "f34692fa7314e5108eafaba7621460d958caba839a6d5040f1caba98d7b4a692"
+SRC_URI[glycin-core-4.0.0.sha256sum] = "9466e4f18a53312faee414ea85813d6674d4cb5badad059365c4882984b40201"
+SRC_URI[glycin-external-4.0.0.sha256sum] = "a7d335778b14437e1339d703afd1ce69e61df8ab5420882b4b7821b9a2ca9d4a"
+SRC_URI[glycin-image-rs-2.2.0.sha256sum] = "3df0cbc11fe5d5523575b04f724c82d8d50e2c03830622b655e7d4015eba6472"
+SRC_URI[glycin-utils-5.0.0.sha256sum] = "68b112ddb84bd9c1453b119292e38788aa18015d5c12158c1d6fab1b9e353ee7"
+SRC_URI[gobject-sys-0.22.6.sha256sum] = "22a861859b887a79cf461359c192c97a57d8fb0229dd291232e57aa11f6fa72c"
+SRC_URI[graphene-rs-0.22.8.sha256sum] = "eb856b9c558971c3f13ab692358926da710b046932a4e087aedcc35b040d7dff"
+SRC_URI[graphene-sys-0.22.8.sha256sum] = "5c7ffdfde88f3570d3705e0d8a2433e036d387a1f2930bbf47eafcb5f569fd04"
+SRC_URI[gsk4-0.11.4.sha256sum] = "b867be1c5f14dcb8f552c0eff6e9a9b1da5f8b43943e8efc3a63c889d84952ff"
+SRC_URI[gsk4-sys-0.11.4.sha256sum] = "5b7c7eb2e681ee896646cfb8872b431f24d09f53ba9283289d9b10caa6707088"
+SRC_URI[gtk4-0.11.4.sha256sum] = "98a0a0466484f64b07b5b8184d43fa46be78eb0b8e04ae4e179af31d770b76d9"
+SRC_URI[gtk4-macros-0.11.4.sha256sum] = "5ac7179400a36a04de039c24206bb841c5596992b907b43b23ee8d5bdc40d00e"
+SRC_URI[gtk4-sys-0.11.4.sha256sum] = "82b8f954786af0b1984425c4446b77f5ff6594346181316be3f850caab1c6f01"
+SRC_URI[gufo-0.5.0.sha256sum] = "6a16d7faeeb03e2925ac6b0f40630b15b1992d08c50add402f35fde495e44f64"
+SRC_URI[gufo-common-2.0.0.sha256sum] = "d583cdde9eb6985dbb6e596d27677e5d353d5eee44763cbf7c7ead3147d337bf"
+SRC_URI[gufo-exif-0.5.0.sha256sum] = "e99100988e312c22c6f209663b289e727db3918d06fbcbbc2315149457b42b75"
+SRC_URI[gufo-jpeg-0.5.1.sha256sum] = "383907a5c532bff484b2914d649e368e98ce6426829458353fe40070225b07a5"
+SRC_URI[gufo-png-0.5.0.sha256sum] = "e5c3065acab6cf458afbe53f73462a0dbf17348a2af3c889183f8714b3bff6fc"
+SRC_URI[gufo-tiff-0.5.0.sha256sum] = "e9c77c38e7815b76e08b1943dc67517e02543504c14a29e071a4ddf9bee111ec"
+SRC_URI[gufo-webp-0.5.0.sha256sum] = "04d6d3dc0ccd22a30619df68ce347c844d8adb49b822f42660d9a92e6ae14540"
+SRC_URI[gufo-xmp-0.5.0.sha256sum] = "903aaa13213b860bbad3565e62f3fbd1087ca9404692ebe53728654653470561"
+SRC_URI[gvdb-0.10.0.sha256sum] = "bc3adcee31520d9e6948d21ed883171c4af26c6bc96ac171769b5aba2fa6d486"
+SRC_URI[gvdb-macros-0.1.16.sha256sum] = "da74c814e031bedf9606a4403e70a1904443ae91c32618852d5126c34690ffbf"
+SRC_URI[gweather-sys-4.8.0.sha256sum] = "5bd48d8a64d00703dc2a77efb2284c07192a1345d0162e0bc15488b55d577f0e"
+SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
+SRC_URI[hashbrown-0.17.1.sha256sum] = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
+SRC_URI[hayro-jpeg2000-0.3.5.sha256sum] = "c75ab947623ef4ccaa7acf0579edf7cbb5a73838e3839a7be73335e522f433a1"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+SRC_URI[hermit-abi-0.5.2.sha256sum] = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[image-0.25.10.sha256sum] = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
+SRC_URI[image-extras-0.1.1.sha256sum] = "60d02eb2c9ccbbab470538fce34c7bc3be7b4e59268e65a3171367b296cdb842"
+SRC_URI[image-webp-0.2.4.sha256sum] = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
+SRC_URI[indexmap-2.14.0.sha256sum] = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
+SRC_URI[itoa-1.0.18.sha256sum] = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
+SRC_URI[jiff-0.2.35.sha256sum] = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc"
+SRC_URI[jiff-core-0.1.0.sha256sum] = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09"
+SRC_URI[jiff-static-0.2.35.sha256sum] = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204"
+SRC_URI[jpeg-encoder-0.7.1.sha256sum] = "a0370574b86f7eca156b9f298392b5e69a23f8c86f3f865add60bbc2e79467a6"
+SRC_URI[js-sys-0.3.104.sha256sum] = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a"
+SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+SRC_URI[lebe-0.5.3.sha256sum] = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
+SRC_URI[libadwaita-0.9.2.sha256sum] = "85b9900e67182a4b5b1f157b448d94f0715c8b9770cce21cf000801917f53bfa"
+SRC_URI[libadwaita-sys-0.9.2.sha256sum] = "28d3c27642b389852aa99341bd4a4c19ec6f8a2b63ebdd7f5ba1952198079ccd"
+SRC_URI[libc-0.2.189.sha256sum] = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
+SRC_URI[libgweather-4.8.0.sha256sum] = "18dd39da07edc7e068f1b02da95d5813030343cfd94ae1f132d25695ba8e6c9f"
+SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
+SRC_URI[libm-0.2.16.sha256sum] = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
+SRC_URI[libseccomp-0.4.0.sha256sum] = "0e5310a2c5b6ffbc094b5f70a2ca7b79ed36ad90e6f90994b166489a1bce3fcc"
+SRC_URI[libseccomp-sys-0.3.0.sha256sum] = "60276e2d41bbb68b323e566047a1bfbf952050b157d8b5cdc74c07c1bf4ca3b6"
+SRC_URI[linux-raw-sys-0.12.1.sha256sum] = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
+SRC_URI[litrs-1.0.0.sha256sum] = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
+SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+SRC_URI[log-0.4.34.sha256sum] = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
+SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+SRC_URI[matchers-0.2.0.sha256sum] = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
+SRC_URI[memchr-2.8.3.sha256sum] = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
+SRC_URI[memmap2-0.9.11.sha256sum] = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0"
+SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
+SRC_URI[miniz_oxide-0.9.1.sha256sum] = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
+SRC_URI[moxcms-0.8.1.sha256sum] = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
+SRC_URI[nix-0.31.3.sha256sum] = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
+SRC_URI[nu-ansi-term-0.50.3.sha256sum] = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
+SRC_URI[num-complex-0.4.6.sha256sum] = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+SRC_URI[objc-foundation-0.1.1.sha256sum] = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+SRC_URI[once_cell-1.21.4.sha256sum] = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
+SRC_URI[ordered-stream-0.2.0.sha256sum] = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+SRC_URI[ouroboros-0.18.5.sha256sum] = "1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59"
+SRC_URI[ouroboros_macro-0.18.5.sha256sum] = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0"
+SRC_URI[pango-0.22.8.sha256sum] = "5d800d8d0de2ad5d0fb046f5344dbaba14a003cf3dd27cc21d85893d35ea316c"
+SRC_URI[pango-sys-0.22.0.sha256sum] = "bbd111a20ca90fedf03e09c59783c679c00900f1d8491cca5399f5e33609d5d6"
+SRC_URI[parking-2.2.1.sha256sum] = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
+SRC_URI[paste-1.0.15.sha256sum] = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+SRC_URI[pin-project-lite-0.2.17.sha256sum] = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
+SRC_URI[piper-0.2.5.sha256sum] = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1"
+SRC_URI[pkg-config-0.3.34.sha256sum] = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548"
+SRC_URI[png-0.18.1.sha256sum] = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
+SRC_URI[polling-3.11.0.sha256sum] = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
+SRC_URI[portable-atomic-1.15.0.sha256sum] = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
+SRC_URI[portable-atomic-util-0.2.7.sha256sum] = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
+SRC_URI[proc-macro-crate-3.5.0.sha256sum] = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
+SRC_URI[proc-macro2-1.0.107.sha256sum] = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
+SRC_URI[proc-macro2-diagnostics-0.10.1.sha256sum] = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+SRC_URI[pulp-0.22.3.sha256sum] = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a"
+SRC_URI[pulp-wasm-simd-flag-0.1.1.sha256sum] = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740"
+SRC_URI[pxfm-0.1.30.sha256sum] = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
+SRC_URI[qoi-0.4.1.sha256sum] = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
+SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+SRC_URI[quick-xml-0.39.4.sha256sum] = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e"
+SRC_URI[quote-1.0.47.sha256sum] = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
+SRC_URI[r-efi-6.0.0.sha256sum] = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
+SRC_URI[raw-cpuid-11.6.0.sha256sum] = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186"
+SRC_URI[rayon-1.12.0.sha256sum] = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
+SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
+SRC_URI[reborrow-0.5.5.sha256sum] = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430"
+SRC_URI[regex-1.13.1.sha256sum] = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
+SRC_URI[regex-automata-0.4.18.sha256sum] = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
+SRC_URI[regex-syntax-0.8.11.sha256sum] = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
+SRC_URI[rmp-0.8.15.sha256sum] = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c"
+SRC_URI[rmp-serde-1.3.1.sha256sum] = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155"
+SRC_URI[rustc_version-0.4.1.sha256sum] = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+SRC_URI[rustix-1.1.4.sha256sum] = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
+SRC_URI[rustversion-1.0.23.sha256sum] = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[semver-1.0.28.sha256sum] = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
+SRC_URI[serde-1.0.229.sha256sum] = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
+SRC_URI[serde_core-1.0.229.sha256sum] = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
+SRC_URI[serde_derive-1.0.229.sha256sum] = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
+SRC_URI[serde_json-1.0.151.sha256sum] = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
+SRC_URI[serde_repr-0.1.21.sha256sum] = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906"
+SRC_URI[serde_spanned-1.1.1.sha256sum] = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
+SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+SRC_URI[shlex-2.0.1.sha256sum] = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
+SRC_URI[signal-hook-registry-1.4.8.sha256sum] = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
+SRC_URI[simd-adler32-0.3.10.sha256sum] = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
+SRC_URI[slab-0.4.12.sha256sum] = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
+SRC_URI[smallvec-1.15.2.sha256sum] = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strum-0.28.0.sha256sum] = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"
+SRC_URI[strum_macros-0.28.0.sha256sum] = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"
+SRC_URI[syn-2.0.119.sha256sum] = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
+SRC_URI[syn-3.0.4.sha256sum] = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
+SRC_URI[system-deps-7.0.8.sha256sum] = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7"
+SRC_URI[target-lexicon-0.13.5.sha256sum] = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
+SRC_URI[temp-dir-0.1.16.sha256sum] = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964"
+SRC_URI[tempfile-3.27.0.sha256sum] = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
+SRC_URI[thiserror-2.0.20.sha256sum] = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
+SRC_URI[thiserror-impl-2.0.20.sha256sum] = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
+SRC_URI[thread_local-1.1.10.sha256sum] = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
+SRC_URI[tiff-0.11.3.sha256sum] = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52"
+SRC_URI[toml-1.1.4+spec-1.1.0.sha256sum] = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5"
+SRC_URI[toml_datetime-1.1.1+spec-1.1.0.sha256sum] = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
+SRC_URI[toml_edit-0.25.13+spec-1.1.0.sha256sum] = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b"
+SRC_URI[toml_parser-1.1.3+spec-1.1.0.sha256sum] = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
+SRC_URI[toml_writer-1.1.2+spec-1.1.0.sha256sum] = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2"
+SRC_URI[tracing-0.1.44.sha256sum] = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
+SRC_URI[tracing-attributes-0.1.31.sha256sum] = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
+SRC_URI[tracing-core-0.1.36.sha256sum] = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
+SRC_URI[tracing-subscriber-0.3.23.sha256sum] = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319"
+SRC_URI[uds_windows-1.2.1.sha256sum] = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
+SRC_URI[unicode-ident-1.0.24.sha256sum] = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+SRC_URI[uuid-1.25.0.sha256sum] = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc"
+SRC_URI[version-compare-0.2.1.sha256sum] = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
+SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+SRC_URI[wasm-bindgen-0.2.127.sha256sum] = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70"
+SRC_URI[wasm-bindgen-macro-0.2.127.sha256sum] = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1"
+SRC_URI[wasm-bindgen-macro-support-0.2.127.sha256sum] = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284"
+SRC_URI[wasm-bindgen-shared-0.2.127.sha256sum] = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf"
+SRC_URI[weezl-0.1.12.sha256sum] = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.11.sha256sum] = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-link-0.2.1.sha256sum] = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+SRC_URI[windows-sys-0.61.2.sha256sum] = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+SRC_URI[winnow-1.0.4.sha256sum] = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
+SRC_URI[x11-dl-2.21.0.sha256sum] = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+SRC_URI[xml-1.4.0.sha256sum] = "2f45bb2c13fec6a6cb4c0f76a7e94839e110a14ec803ec2940777a94c347bc52"
+SRC_URI[yansi-1.0.1.sha256sum] = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
+SRC_URI[yeslogic-fontconfig-sys-6.0.1.sha256sum] = "1d8b8abf912b9a29ff112e1671c97c33636903d13a69712037190e6805af4f76"
+SRC_URI[zbus-5.19.0.sha256sum] = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907"
+SRC_URI[zbus_macros-5.19.0.sha256sum] = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40"
+SRC_URI[zbus_names-4.3.4.sha256sum] = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e"
+SRC_URI[zcheapstr-1.1.0.sha256sum] = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473"
+SRC_URI[zerocopy-0.8.56.sha256sum] = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
+SRC_URI[zerocopy-derive-0.8.56.sha256sum] = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
+SRC_URI[zmij-1.0.23.sha256sum] = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
+SRC_URI[zune-core-0.5.3.sha256sum] = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b"
+SRC_URI[zune-inflate-0.2.54.sha256sum] = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
+SRC_URI[zune-jpeg-0.5.15.sha256sum] = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
+SRC_URI[zvariant-5.15.0.sha256sum] = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147"
+SRC_URI[zvariant_derive-5.15.0.sha256sum] = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497"
+SRC_URI[zvariant_utils-4.2.0.sha256sum] = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3"
diff --git a/meta-gnome/recipes-gnome/loupe/loupe/0001-meson-Support-cross-compilation-via-a-rust_target-cr.patch b/meta-gnome/recipes-gnome/loupe/loupe/0001-meson-Support-cross-compilation-via-a-rust_target-cr.patch
new file mode 100644
index 0000000000..3266b946ae
--- /dev/null
+++ b/meta-gnome/recipes-gnome/loupe/loupe/0001-meson-Support-cross-compilation-via-a-rust_target-cr.patch
@@ -0,0 +1,50 @@ 
+From 4d4d6bc1a5540b182b9e66ff7e16587b6a0167f6 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 15 Sep 2026 07:26:34 +0200
+Subject: [PATCH] meson: Support cross-compilation via a rust_target cross
+ property
+
+cargo is always invoked without --target and the binary is copied from
+the native artifact layout (src/<profile>/), so loupe cannot be
+cross-compiled. Read the rust target triple from the cross file's
+[properties] (rust_target); when set, pass it as --target and read the
+binary from the per-target subdirectory cargo writes to. When it is
+unset the build is unchanged.
+
+AI-Generated: Uses Claude Code (Claude Opus 5)
+Upstream-Status: Pending
+---
+ src/meson.build | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index b5a4130..d33489f 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -9,6 +9,14 @@ if gtk4_x11.found()
+   cargo_options += ['--features', 'x11']
+ endif
+ 
++cargo_build_target = meson.get_external_property('rust_target', '')
++if cargo_build_target != ''
++  cargo_options += ['--target', cargo_build_target]
++  cargo_artifact_dir = 'src' / cargo_build_target
++else
++  cargo_artifact_dir = 'src'
++endif
++
+ if profile == 'dev'
+   rust_target = 'debug'
+ elif profile == 'release'
+@@ -48,7 +56,7 @@ custom_target(
+   output: meson.project_name(),
+   command: [
+     'cp',
+-    'src' / rust_target / meson.project_name(),
++    cargo_artifact_dir / rust_target / meson.project_name(),
+     '@OUTPUT@',
+   ],
+ )
+-- 
+2.55.0
+
diff --git a/meta-gnome/recipes-gnome/loupe/loupe_51.0.bb b/meta-gnome/recipes-gnome/loupe/loupe_51.0.bb
new file mode 100644
index 0000000000..cc3d855b56
--- /dev/null
+++ b/meta-gnome/recipes-gnome/loupe/loupe_51.0.bb
@@ -0,0 +1,75 @@ 
+SUMMARY = "Image viewer for GNOME"
+DESCRIPTION = "Loupe shows images with support for zooming, rotating and printing. \
+Images are loaded via glycin, which decodes them in sandboxed subprocesses."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/loupe"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/loupe/-/issues"
+SECTION = "graphics"
+
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.md;md5=97a733ff40c50b4bfc74471e1f6ca88b"
+
+inherit cargo_common cargo-update-recipe-crates meson pkgconfig gettext itstool gnome-help gsettings gtk-icon-cache mime-xdg features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+GTKIC_VERSION = "4"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/loupe.git;protocol=https;branch=main;tag=${PV} \
+           file://0001-meson-Support-cross-compilation-via-a-rust_target-cr.patch \
+           "
+SRCREV = "0ae0d797d11e18a045b2d383e47a097181b4062b"
+
+UPSTREAM_CHECK_URI = "https://gitlab.gnome.org/GNOME/loupe/-/tags"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+require ${BPN}-crates.inc
+
+DEPENDS = " \
+    cairo \
+    desktop-file-utils \
+    fontconfig \
+    gdk-pixbuf \
+    glib-2.0 \
+    glib-2.0-native \
+    graphene \
+    gtk4 \
+    hicolor-icon-theme \
+    libadwaita \
+    libgweather4 \
+    libseccomp \
+    pango \
+"
+
+do_write_config:append:class-target() {
+	cat > ${WORKDIR}/meson-rust.cross <<-EOF
+	[properties]
+	rust_target = '${RUST_HOST_SYS}'
+	EOF
+}
+
+EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/meson-rust.cross"
+
+do_configure:prepend() {
+	cargo_common_do_configure
+}
+
+do_compile:prepend() {
+	mkdir -p ${B}/cargo-home
+	install -m 0644 ${CARGO_HOME}/config.toml ${B}/cargo-home/config.toml
+}
+
+EXTRA_OEMESON += "-Dprofile=release"
+
+export CARGO_NET_OFFLINE = "1"
+export CARGO_BUILD_JOBS = "${@oe.utils.cpu_count()}"
+export RUSTFLAGS
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,"
+
+FILES:${PN} += " \
+    ${datadir}/dbus-1 \
+    ${datadir}/metainfo \
+"
+
+RDEPENDS:${PN} += "glycin-loaders"