Hey Matthias,

I tried to reproduce it, and it is true that on a raw trixie it is not
reproducible as is.

However, it would be if librust-gobject-sys-dev would have been built from
source that is uploaded. That does not seem to be the case.
If I build it from source manually, the resulting package would contain a
different src/lib.rs file (with the expected feature guards present):

$ diff /tmp/gobject/usr/share/cargo/registry/gobject-sys-0.20.9/src/lib.rs
/usr/share/cargo/registry/gobject-sys-0.20.9/src/lib.rs
111,112d110
< #[cfg(feature = "v2_68")]
< #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
1504,1506d1501
<     #[cfg(feature = "v2_84")]
<     #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
<     pub fn g_type_class_get(type_: GType) -> gpointer;
1942,1944d1936
<     #[cfg(feature = "v2_84")]
<     #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
<     pub fn g_type_default_interface_get(g_type: GType) -> gpointer;

So to reproduce the failure I am talking about you'd have to get a machine
on trixie, build rust-gobject-sys, and then build rust-glib forcing it to
use the just built librust-gobject-sys-dev.

On Sat, May 10, 2025 at 3:19 PM Matthias Geiger <werdah...@riseup.net>
wrote:

> Control: tags -1 moreinfo
>
> On Fri, 9 May 2025 14:10:36 +0200 Andrey Feofilaktov <andarpo...@gmail.com>
> wrote:
> > Package: rust-glib
> > Version: 0.20.9-1
> >
> > rust-glib seems to have outdated/malformed gobject bindings and fails to
> > build:
> >
> > error[E0425]: cannot find value `G_SIGNAL_ACCUMULATOR_FIRST_RUN` in crate
> > `crate::gobject_ffi`
> >    --> src/gobject/auto/flags.rs:119:59
> >     |
> > 119 |         const ACCUMULATOR_FIRST_RUN =
> > crate::gobject_ffi::G_SIGNAL_ACCUMULATOR_FIRST_RUN as _;
> >     |
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `crate::gobject_ffi`
> >     |
> > note: found an item that was configured out
> >    --> /usr/share/cargo/registry/gobject-sys-0.20.9/src/lib.rs:113:11
> >     |
> > 113 | pub const G_SIGNAL_ACCUMULATOR_FIRST_RUN: GSignalFlags = 131072;
> >     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > note: the item is gated behind the `v2_68` feature
> >    --> /usr/share/cargo/registry/gobject-sys-0.20.9/src/lib.rs:111:7
> >     |
> > 111 | #[cfg(feature = "v2_68")]
> >     |       ^^^^^^^^^^^^^^^^^
> >
> > I can fix this by updating debian/rules to also run gir for
> > Gir_GObject.toml (the same way it does for the sys bindings in
> > rust-gobject-sys):
> >
> > Index: rust-glib-0.20.9-1/debian/rules
> > ===================================================================
> > --- rust-glib-0.20.9-1.orig/debian/rules
> > +++ rust-glib-0.20.9-1/debian/rules
> > @@ -6,6 +6,7 @@
> >  # regenerating the source code
> >  # the xmlstarlet fixes are taken from upstream here:
> > https://github.com/gtk-rs/gir-files/blob/master/fix.sh
> >  execute_before_dh_auto_build:
> > + cp /usr/share/gir-1.0/GObject-2.0.gir $(CURDIR)
> >   cp /usr/share/gir-1.0/GLib-2.0.gir $(CURDIR)
> >   xmlstarlet ed -L \
> >   -u
> >
> '//*[@glib:error-domain="g-option-context-error-quark"]/@glib:error-domain'
> > -v g-option-error-quark \
> > @@ -15,9 +16,20 @@ execute_before_dh_auto_build:
> >   -u
> >
> '//_:record[@name="KeyFile"]/_:method[@name="set_locale_string_list"]//_:parameter[@name="list"]/_:array/@c:type'
> > -v "const gchar* const*" \
> >   -u
> >
> '//_:record[@name="KeyFile"]/_:method[@name="set_string_list"]//_:parameter[@name="list"]/_:array/@c:type'
> > -v "const gchar* const*" \
> >   GLib-2.0.gir
> > - sed -i
> >
> 's/girs_directories\s=\s\[\"\.\.\/gir-files\"\]/girs_directories=\[\".\"\]/'
> > $(CURDIR)/Gir.toml
> > + xmlstarlet ed -L \
> > + -u
> >
> '//_:class[@name="Object"]/_:method[@name="getv"]//_:parameter[@name="names"]/_:array/@c:type'
> > -v "const gchar**" \
> >
> Hi Andrey,
>
> thanks for the bug report and the patch. For me simply building
> rust-glib works (with both !nocheck and without) (though I skipped
> autopkgtest). Can you mabe share a full buildlog so we can compare notes
> ?
>
> best,
>
> werdahias
>


-- 
Regards,
Andrey

Reply via email to