Bug#1143623: libfwupd-dev fails to coinstall

Chris Hofstaedtler <[email protected]>
Newsgroups gmane.linux.debian.devel.bugs.rc
Message-ID <[email protected]>
Hi Simon,

clearly I have no idea about gobject-introspection, and I'm not into 
this bug per se, but I was wondering...

On Mon, Aug 10, 2026 at 01:21:58PM +0100, Simon McVittie wrote:
> 3. (Longer term) Fix whatever upstream issue is causing the header files
>    to be mis-parsed by GObject-Introspection, so that Fwupd-2.0.gir is
>    the same on every architecture. Looking at the diff between amd64 and
>    i386, it seems like the various enums are not being introspected
>    correctly, with constants showing up as having value -1 on amd64
>    but 0 on i386, where their real value is G_MAXUINT64:
> 
>    --- gir1.2-fwupd-2.0_2.1.7-3_amd64/usr/share/gir-1.0/Fwupd-2.0.gir	2026-08-09 23:35:51.000000000 +0100
>    +++ gir1.2-fwupd-2.0_2.1.7-3_i386/usr/share/gir-1.0/Fwupd-2.0.gir	2026-08-09 23:35:51.000000000 +0100
>    @@ -14168,7 +14168,7 @@
>                  line="270">The device doesn't require verification of the newly installed version.</doc>
>           </member>
>           <member name="unknown"
>    -              value="-1"
>    +              value="0"
>                   c:identifier="FWUPD_DEVICE_FLAG_UNKNOWN">
>             <doc xml:space="preserve"
>                  filename="libfwupd/fwupd-device-struct.h"
> 
>    It looks like libfwupd is doing things that are not compatible with
>    the assumption made by GLib's GType system: it's setting the UNKNOWN
>    value for various enums to G_MAXUINT64, but the GFlagsValue data
>    structure represents members of a set of flags as guint (an alias for
>    unsigned int, 32 bits on all Debian platforms), so this is simply not
>    representable in the GType system. If you want these sets of flags to
>    be representable by the GType system and usable by GObject-Introspection
>    languages, then they will need to be limited to 32 bits wide (which would
>    be an ABI break).

... should gobject-introspection fail on such things? It seems to me 
that such a type violation would be a hard fail in other language 
ecosystems.

Silently producing different results on different archs for 
something that is not representable in the first place, sounds, 
excuse me, bad?

So - maybe this is all correct and I just lack context/understanding 
of why. If this is the case, please feel free to disregard my email.

Best,
Chris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.