From 8d9fde46620354e5b57bc6db50166f9ad0a03b04 Mon Sep 17 00:00:00 2001 From: Maximiliano Sandoval Date: Sun, 12 Jan 2025 09:40:56 +0100 Subject: [PATCH] cargo: Update to aperture 0.9 In order for debug builds to be performant, we build rqrr with opt-level = 3. --- Cargo.lock | 315 ++++-------------- Cargo.toml | 5 +- .../com.belmoussaoui.Authenticator.Devel.json | 22 -- meson.build | 1 - src/widgets/camera.rs | 10 +- 5 files changed, 76 insertions(+), 277 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea6ba20..ebfe94f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,19 +63,10 @@ dependencies = [ ] [[package]] -name = "android-tzdata" -version = "0.1.1" +name = "allocator-api2" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "anyhow" @@ -85,18 +76,18 @@ checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" [[package]] name = "aperture" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3771ab803f9ce7c7b3e624ccc0abc6a920bc23340d045cd2b8909ded9fb4bd" +checksum = "e24b73e1afbdcb01ffaf0ebedf3cfbb48f401943c0e1d0e694e7252e94d94f1e" dependencies = [ "futures-channel", - "gst-plugin-gtk4", "gstreamer", + "gstreamer-base", "gstreamer-pbutils", "gstreamer-video", "gtk4", "log", - "once_cell", + "rqrr", ] [[package]] @@ -529,18 +520,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "windows-targets", -] - [[package]] name = "cipher" version = "0.4.4" @@ -957,6 +936,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1064,6 +1049,34 @@ dependencies = [ "slab", ] +[[package]] +name = "g2gen" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc3e32f911a41e073b8492473c3595a043e1369ab319a2dbf8c89b1fea06457c" +dependencies = [ + "g2poly", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "g2p" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a9afa6efed9af3a5a68ba066429c1497c299d4eafbd948fe630df47a8f2d29f" +dependencies = [ + "g2gen", + "g2poly", +] + +[[package]] +name = "g2poly" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fd8b261ccf00df8c5cc60c082bb7d7aa64c33a433cfcc091ca244326c924b2c" + [[package]] name = "gdk-pixbuf" version = "0.20.4" @@ -1145,31 +1158,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "gdk4-win32" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "275e0a5470f8da4ec00cf1856d4ebae4cd022b9abbb5eb2dbd57f511ca35fd22" -dependencies = [ - "gdk4", - "gdk4-win32-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk4-win32-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e8c93bb66b07216f516a94c997b13c41b26fc0fda1866542e3894e508c120a" -dependencies = [ - "gdk4-sys", - "glib-sys", - "libc", - "system-deps", -] - [[package]] name = "gdk4-x11" version = "0.9.2" @@ -1391,40 +1379,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "gst-plugin-gtk4" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b3fe6a92ebf2e62366d9f2d8633cc634187bb7c40fe4db05edfb809e928197" -dependencies = [ - "async-channel", - "gdk4-wayland", - "gdk4-win32", - "gdk4-x11", - "gst-plugin-version-helper", - "gstreamer", - "gstreamer-allocators", - "gstreamer-base", - "gstreamer-gl", - "gstreamer-gl-egl", - "gstreamer-gl-wayland", - "gstreamer-gl-x11", - "gstreamer-video", - "gtk4", - "once_cell", - "windows-sys 0.52.0", -] - -[[package]] -name = "gst-plugin-version-helper" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5e874f1660252fd2ec81c602066df3633b3a6fcbe2b196f7f93c27cf069b2a" -dependencies = [ - "chrono", - "toml_edit", -] - [[package]] name = "gstreamer" version = "0.23.2" @@ -1450,32 +1404,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "gstreamer-allocators" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb98199904472782fc426827e3ada0bd5b92b7625f97c51649ec83b2f060019" -dependencies = [ - "glib", - "gstreamer", - "gstreamer-allocators-sys", - "libc", - "once_cell", -] - -[[package]] -name = "gstreamer-allocators-sys" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286b83db9cf0aa2322993302e2439e8f9cbe42f34b81573ecf758b024b9e0f7f" -dependencies = [ - "glib-sys", - "gobject-sys", - "gstreamer-sys", - "libc", - "system-deps", -] - [[package]] name = "gstreamer-audio" version = "0.23.2" @@ -1533,111 +1461,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "gstreamer-gl" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee43a7573ace4dc3dd2256a4285d814452c29f6824ea286be8e5c8934ecd124f" -dependencies = [ - "glib", - "gstreamer", - "gstreamer-base", - "gstreamer-gl-sys", - "gstreamer-video", - "libc", - "once_cell", -] - -[[package]] -name = "gstreamer-gl-egl" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52c181df435ee0dcbeea7756070bd0c422fda7f42b77a1a4542b255128cd12" -dependencies = [ - "glib", - "gstreamer", - "gstreamer-gl", - "gstreamer-gl-egl-sys", - "libc", -] - -[[package]] -name = "gstreamer-gl-egl-sys" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58d6e6f284f5bbb3b9920450fdea1ac03b63c6dae29580aeb0ad9368998b0bf5" -dependencies = [ - "glib-sys", - "gstreamer-gl-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gstreamer-gl-sys" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e17ab40526ed24a769342b3ebbd5a2c17d34944399b59e8b1a254e40356e11" -dependencies = [ - "glib-sys", - "gobject-sys", - "gstreamer-base-sys", - "gstreamer-sys", - "gstreamer-video-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gstreamer-gl-wayland" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaeed2f0d804ae3dcbe00373e6de409322cccc2bc88cad54dfbc7f72d5c78486" -dependencies = [ - "glib", - "gstreamer", - "gstreamer-gl", - "gstreamer-gl-wayland-sys", - "libc", -] - -[[package]] -name = "gstreamer-gl-wayland-sys" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0caffd81a4c82079ba30757f82c4cf665e5547d56b36cfa420f85069c7910310" -dependencies = [ - "glib-sys", - "gstreamer-gl-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gstreamer-gl-x11" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aabc9164e4e5ae04a2a9e83a2aa9a83f5bce4c51e96efe570bee9bb23ed5ab2" -dependencies = [ - "glib", - "gstreamer", - "gstreamer-gl", - "gstreamer-gl-x11-sys", - "libc", -] - -[[package]] -name = "gstreamer-gl-x11-sys" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137438be38e0518baca8ff382f36ec8812c4417f4b7b1895c3816ff49a6f8b5b" -dependencies = [ - "glib-sys", - "gstreamer-gl-sys", - "libc", - "system-deps", -] - [[package]] name = "gstreamer-pbutils" version = "0.23.2" @@ -1787,6 +1610,11 @@ name = "hashbrown" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "heck" @@ -1945,29 +1773,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "iana-time-zone" -version = "0.1.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2170,6 +1975,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown", +] + [[package]] name = "lzma-rs" version = "0.3.0" @@ -2909,6 +2723,16 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" +[[package]] +name = "rqrr" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f126a9b02152815d84315316e7a759ee18a216d057095d56d19cec68a428b385" +dependencies = [ + "g2p", + "lru", +] + [[package]] name = "rust-argon2" version = "2.1.0" @@ -3768,15 +3592,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-registry" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index e817f29..c452492 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ opt-level = 3 adw = {package = "libadwaita", version = "0.7", features = ["v1_6"]} aes-gcm = "0.10" anyhow = "1.0" -aperture = "0.7" +aperture = "0.9" ashpd = {version = "0.9", default-features = false, features = ["gtk4", "tokio", "tracing"]} data-encoding = "2.3" diesel = {version = "2.0", features = ["sqlite", "r2d2"]} @@ -48,3 +48,6 @@ uuid = {version = "1.0", features = ["v4"]} zbar-rust = "0.0" zeroize = {version = "1", features = ["zeroize_derive"]} zip = { version = "2.1", features = ["aes-crypto"] } + +[profile.dev.package.rqrr] +opt-level = 3 diff --git a/build-aux/com.belmoussaoui.Authenticator.Devel.json b/build-aux/com.belmoussaoui.Authenticator.Devel.json index ea248b2..0f78e92 100644 --- a/build-aux/com.belmoussaoui.Authenticator.Devel.json +++ b/build-aux/com.belmoussaoui.Authenticator.Devel.json @@ -75,28 +75,6 @@ } ] }, - { - "name": "gst-bad-plugins", - "buildsystem": "meson", - "subdir": "subprojects/gst-plugins-bad", - "config-opts": [ - "-Dzbar=enabled", - "-Drsvg=disabled", - "-Dvulkan=disabled", - "-Dexamples=disabled", - "-Dtests=disabled", - "-Dintrospection=disabled" - ], - "sources": [ - { - "type": "git", - "disable-submodules": true, - "url": "https://gitlab.freedesktop.org/gstreamer/gstreamer.git", - "tag": "1.24" - - } - ] - }, { "name": "authenticator", "buildsystem": "meson", diff --git a/meson.build b/meson.build index cb6c2b6..c0c7ca6 100644 --- a/meson.build +++ b/meson.build @@ -12,7 +12,6 @@ dependency('zbar', version: '>= 0.20') dependency('gstreamer-1.0', version: '>= 1.18') dependency('gstreamer-base-1.0', version: '>= 1.18') dependency('gstreamer-plugins-base-1.0', version: '>= 1.18') -dependency('gstreamer-plugins-bad-1.0', version: '>= 1.18') cargo = find_program('cargo') glib_compile_schemas = find_program('glib-compile-schemas') diff --git a/src/widgets/camera.rs b/src/widgets/camera.rs index 5badbc4..11f143e 100644 --- a/src/widgets/camera.rs +++ b/src/widgets/camera.rs @@ -133,9 +133,13 @@ mod imp { self.viewfinder.connect_code_detected(glib::clone!( #[weak] obj, - move |_, code_type, code| { - if matches!(code_type, aperture::CodeType::Qr) { - obj.emit_by_name::<()>("code-detected", &[&code]); + move |_, code| { + match std::str::from_utf8(&code) { + Ok(code) => obj.emit_by_name::<()>("code-detected", &[&code]), + Err(err) => { + let code = String::from_utf8_lossy(&code); + tracing::error!("Could not decode QR code {code}: {err}"); + } } } ));