On Wed, May 21, 2025, at 5:43 PM, Andrey Feofilaktov wrote: > 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):
if I do apt source rust-gobject-sys/testing apt source rust-glib/testing and build both (injecting librust-gobject-sys-dev into the rust-glib build) for testing, the built librust-gobject-sys-dev package differs from the one in the archive. I guess src/lib.rs is rebuilt as part of the build of the package, but not as part of just building a reverse-dep, since that rebuilding is not part of build.rs, but in d/rules.. and sure enough, there have been uploads of glib2.0 (where the gir binaries responsible for generating are from) since the last upload of librust-gobject-sys-dev, including an update from .83 to .84 that would match the diff below (which is identical to the one I see). I suspect uploads of glib2.0 should include pro-active test-rebuilds of those language specific bindings? or maybe a custom autopkgtest triggered accordingly? or build.rs patched to regenerate at rust-build time? FWIW, rust-glib still builds for me, with a small diff compared to the archive as well though: --- librust-glib-dev_0.20.9-1_amd64.deb +++ stock/librust-glib-dev_0.20.9-1_amd64.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2025-02-16 21:36:29.000000 debian-binary │ --rw-r--r-- 0 0 0 4932 2025-02-16 21:36:29.000000 control.tar.xz │ --rw-r--r-- 0 0 0 210092 2025-02-16 21:36:29.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 4936 2025-02-16 21:36:29.000000 control.tar.xz │ +-rw-r--r-- 0 0 0 210060 2025-02-16 21:36:29.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── file list │ │ │ @@ -23,15 +23,15 @@ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/ │ │ │ -rw-r--r-- 0 root (0) root (0) 285 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/alias.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 1364 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/checksum.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 6503 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/constants.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 16265 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/date_time.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 91249 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/enums.rs │ │ │ --rw-r--r-- 0 root (0) root (0) 22859 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/flags.rs │ │ │ +-rw-r--r-- 0 root (0) root (0) 22654 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/flags.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 25453 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/functions.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 12304 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/key_file.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 5676 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/main_context.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 1506 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/main_loop.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 3279 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/markup_parse_context.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 4575 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/mod.rs │ │ │ -rw-r--r-- 0 root (0) root (0) 2974 2025-02-16 21:36:29.000000 ./usr/share/cargo/registry/glib-0.20.9/src/auto/regex.rs │ │ ├── ./usr/share/cargo/registry/glib-0.20.9/src/auto/flags.rs │ │ │ @@ -335,18 +335,14 @@ │ │ │ const NO_ARG = ffi::G_OPTION_FLAG_NO_ARG as _; │ │ │ #[doc(alias = "G_OPTION_FLAG_FILENAME")] │ │ │ const FILENAME = ffi::G_OPTION_FLAG_FILENAME as _; │ │ │ #[doc(alias = "G_OPTION_FLAG_OPTIONAL_ARG")] │ │ │ const OPTIONAL_ARG = ffi::G_OPTION_FLAG_OPTIONAL_ARG as _; │ │ │ #[doc(alias = "G_OPTION_FLAG_NOALIAS")] │ │ │ const NOALIAS = ffi::G_OPTION_FLAG_NOALIAS as _; │ │ │ - #[cfg(feature = "v2_84")] │ │ │ - #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))] │ │ │ - #[doc(alias = "G_OPTION_FLAG_DEPRECATED")] │ │ │ - const DEPRECATED = ffi::G_OPTION_FLAG_DEPRECATED as _; │ │ │ } │ │ │ } │ │ │ │ │ │ #[doc(hidden)] │ │ │ impl IntoGlib for OptionFlags { │ │ │ type GlibType = ffi::GOptionFlags; with or without nocheck ;) did you maybe rebuild other packages as well that sit inbetween, and only that combination would then expose the problem? > $ 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 > _______________________________________________ > Pkg-rust-maintainers mailing list > pkg-rust-maintain...@alioth-lists.debian.net > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-rust-maintainers