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?
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<gtk_sys::GtkSettings, gtk_sys::GtkSettingsClass, SettingsClass>) @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>
```
----
Petr