Hi Jonathan, the current patch set is based on the master branch. Running the Guix command gives me 26 dependent packages - not a massive number. ``` ./pre-inst-env guix refresh --list-dependent libhandy Building the following 26 packages would ensure 54 dependent packages are rebuilt: cozy@1.2.0 markets@0.5.3 gtranslator@40.0 apostrophe@2.5 eiciel@0.9.13.1 denemo@2.6.0 gpaste@3.42.2 arc-theme@20210412 gnome-shell-extension-gsconnect@48 numix-gtk-theme@2.6.7 eolie@0.9.101 deja-dup@42.8 lollypop@1.4.24 gnome-tweaks@40.0 passwordsafe@5.1 geary@40.0 komikku@0.37.0 phosh@0.14.0 seahorse@41.0 gnome@41.0 tootle@1.0 chatty@0.4.0 sideload@6.0.2 giara@0.3 gfeeds@0.16.2 blanket@0.5.0 ``` I've given up on meson build system and just build it as a regular Rust package with cargo build system. Btw squeekboard is a requirement for Phosh to work as stated by Guido [1]. See the patches attached. The current issue I face is probably due to the fact I fix the requirements as squeekboard depends on older versions of packages that are no longer in Guix. Should I bring the packages back or attempt to patch the Phosh upstream to use newer versions of Rust crates? > Regarding that schema issue: does it occur as well when you install the > phosh package? I'm stuck with squeekboard with these errors: ``` Compiling rs v0.1.0 (/tmp/guix-build-squeekboard-1.17.0.drv-0/source) error[E0599]: no function or associated item named `from_glib_none` found for struct `gtk::Widget` in the current scope --> src/drawing.rs:262:40 | 262 | let widget = unsafe { gtk::Widget::from_glib_none(keyboard.0) }; | ^^^^^^^^^^^^^^ function or associated item not found in `gtk::Widget` | = help: items from traits can only be used if the trait is in scope help: the following trait is implemented but not in scope; perhaps add a `use` for it: | 3 | use glib::translate::FromGlibPtrNone; | error[E0599]: no method named `unwrap` found for struct `glib::variant::Variant` in the current scope --> src/popover.rs:136:52 | 136 | let inputs = settings.get_value("sources").unwrap(); | ^^^^^^ method not found in `glib::variant::Variant` error[E0308]: mismatched types --> src/popover.rs:145:13 | 145 | &variants::ArrayPairString(inputs).to_variant(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant::Variant`, found struct `glib::Variant` | = note: expected reference `&glib::variant::Variant` found reference `&glib::Variant` = note: perhaps two different versions of crate `glib` are being used? error[E0599]: no function or associated item named `from_glib_none` found for struct `gtk::Widget` in the current scope --> src/popover.rs:253:40 | 253 | let window = unsafe { gtk::Widget::from_glib_none(window.0) }; | ^^^^^^^^^^^^^^ function or associated item not found in `gtk::Widget` | = help: items from traits can only be used if the trait is in scope help: the following trait is implemented but not in scope; perhaps add a `use` for it: | 3 | use glib::translate::FromGlibPtrNone; | error[E0599]: no method named `unwrap` found for struct `glib::variant::Variant` in the current scope --> src/popover.rs:264:56 | 264 | let inputs = settings.get_value("sources").unwrap(); | ^^^^^^ method not found in `glib::variant::Variant` error[E0308]: mismatched types --> src/popover.rs:340:18 | 340 | Some(current_layout_name.to_variant().type_()), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant_type::VariantTy`, found struct `VariantTy` | = note: expected reference `&glib::variant_type::VariantTy` found reference `&VariantTy` = note: perhaps two different versions of crate `glib` are being used? error[E0308]: mismatched types --> src/popover.rs:341:13 | 341 | ¤t_layout_name.to_variant() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant::Variant`, found struct `glib::Variant` | = note: expected reference `&glib::variant::Variant` found reference `&glib::Variant` = note: perhaps two different versions of crate `glib` are being used? error[E0308]: mismatched types --> src/popover.rs:387:9 | 387 | Continue(false) | ^^^^^^^^^^^^^^^ expected struct `glib::Continue`, found struct `gdk::prelude::Continue` | = note: perhaps two different versions of crate `glib` are being used? error[E0599]: no method named `to_glib_full` found for struct `CssProvider` in the current scope --> src/style.rs:64:18 | 64 | provider.to_glib_full() | ^^^^^^^^^^^^ method not found in `CssProvider` | ::: /tmp/guix-build-squeekboard-1.17.0.drv-0/source/guix-vendor/rust-glib-0.9.3.tar.gz/src/translate.rs:279:8 | 279 | fn to_glib_full(&self) -> P { | ------------ the method is available for `CssProvider` here | = help: items from traits can only be used if the trait is in scope help: the following trait is implemented but not in scope; perhaps add a `use` for it: | 29 | use glib::translate::ToGlibPtr; | error[E0599]: the method `get_property` exists for reference `>k::Settings`, but its trait bounds were not satisfied --> src/style.rs:104:44 | 104 | let prop = |s: >k::Settings, name| s.get_property(name); | ^^^^^^^^^^^^ method cannot be called on `>k::Settings` due to unsatisfied trait bounds | ::: /tmp/guix-build-squeekboard-1.17.0.drv-0/source/guix-vendor/rust-gtk-0.8.1.tar.gz/src/auto/settings.rs:23:1 | 23 | / glib_wrapper! { 24 | | pub struct Settings(Object) @implements StyleProvider; 25 | | 26 | | match fn { 27 | | get_type => || gtk_sys::gtk_settings_get_type(), 28 | | } 29 | | } | | - | | | | |_doesn't satisfy `gtk::Settings: glib::ObjectExt` | doesn't satisfy `gtk::Settings: glib::ObjectType` | = note: the following trait bounds were not satisfied: `gtk::Settings: glib::ObjectType` which is required by `gtk::Settings: glib::ObjectExt` `>k::Settings: glib::ObjectType` which is required by `>k::Settings: glib::ObjectExt` = help: items from traits can only be used if the trait is in scope help: the following trait is implemented but not in scope; perhaps add a `use` for it: | 21 | use gdk::prelude::ObjectExt; | Some errors have detailed explanations: E0308, E0599. For more information about an error, try `rustc --explain E0308`. error: could not compile `rs` due to 10 previous errors error: in phase 'build': uncaught exception: %exception #<&invoke-error program: "cargo" arguments: ("build" "--release") exit-status: 101 term-signal: #f stop-signal: #f> ``` [1] https://gitlab.gnome.org/World/Phosh/phosh/-/issues/692 ---- Petr