git: 12b0f2edf6a5 - main - security/authenticator: unbreak with libadwaita >= 2021-05-20 snapshot

Jan Beich jbeich at FreeBSD.org
Tue Aug 24 09:43:50 UTC 2021


Jan Beich <jbeich at FreeBSD.org> writes:

> The branch main has been updated by jbeich:
>
> URL: https://cgit.FreeBSD.org/ports/commit/?id=12b0f2edf6a5e4548fba1e55d7e64b78fbdb894e
>
> commit 12b0f2edf6a5e4548fba1e55d7e64b78fbdb894e
> Author:     Jan Beich <jbeich at FreeBSD.org>
> AuthorDate: 2021-08-24 08:51:36 +0000
> Commit:     Jan Beich <jbeich at FreeBSD.org>
> CommitDate: 2021-08-24 08:56:17 +0000
>
>     security/authenticator: unbreak with libadwaita >= 2021-05-20 snapshot
>     
>     $ authenticator
>     (<unknown>:1234): GLib-GObject-WARNING **: specified class size for type 'UrlRow' is smaller than the parent type's 'AdwActionRow' class size
>     (<unknown>:1234): GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>'
>     thread 'main' panicked at 'assertion failed: type_.is_valid()', src/widgets/url_row.rs:17:5
>     note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Upstream only supports Flatpak, so it took a while to find working
libadwaita (C library) revision.

https://gitlab.gnome.org/World/Authenticator/-/blob/4.0.3/build-aux/com.belmoussaoui.Authenticator.Devel.json
https://gitlab.gnome.org/World/Authenticator/-/blob/4.0.3/Cargo.lock
https://gitlab.gnome.org/World/Rust/libadwaita-rs/-/tree/6ae4d3670565/subprojects/libadwaita.wrap

Packaging this was already non-trivial due to CARGO_GIT_SUBDIR mess and
zbus backport complications. I can't test further due to lack of a camera:

$ authenticator
<click on "+" button>
(<unknown>:70623): Gdk-WARNING **: Compositor doesn't support moving popups, relying on remapping
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: BoolError { message: "Failed to start", filename: "../gstreamer-rs-762450b/gstreamer/src/auto/device_monitor.rs", function: "gstreamer::auto::device_monitor", line: 106 }', src/widgets/camera.rs:191:31
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

$ cat .../device_monitor.rs
    fn start(&self) -> Result<(), glib::error::BoolError> {
        unsafe {
            glib::result_from_gboolean!(
                ffi::gst_device_monitor_start(self.as_ref().to_glib_none().0),
                "Failed to start"
            )
        }
    }

$ cat .../camera.rs
    fn init_monitor(&self) {
        let self_ = imp::Camera::from_instance(self);
        let caps = gst::Caps::new_simple("video/x-raw", &[]);
        self_.monitor.add_filter(Some("Video/Source"), Some(&caps));

        self_.monitor.start().unwrap();


$ GST_DEBUG=2 gst-device-monitor-1.0 Video/Source:video/x-raw
Probing devices...

0:00:00.004344341 70618    0x8013c2f80 WARN                 default gstdevicemonitor.c:466:gboolean gst_device_monitor_start(GstDeviceMonitor *):<devicemonitor0> No providers match the current filters
Failed to start device monitor!
<exit code 255>


More information about the dev-commits-ports-main mailing list