Your message dated Fri, 15 Mar 2024 16:00:43 +0000
with message-id <e1rl9z9-00hagt...@fasolo.debian.org>
and subject line Bug#1066900: fixed in gobject-introspection 1.78.1-17
has caused the Debian Bug report #1066900,
regarding g-ir-compiler: generates incorrect typelib when cross-compiling with 
different type sizes
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1066900: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066900
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: gobject-introspection
Version: 1.78.1-16
Severity: serious
Justification: results in misbuilt packages
X-Debbugs-Cc: debian-cr...@lists.debian.org

When it converts GIR XML to binary typelib files, g-ir-compiler replaces
abstract types such as int and gsize (size_t) with concrete types such as
gint32 (int32_t) and guint64 (uint32_t). The way in which it does this
depends on the type sizes discovered at configure time when compiling
g-ir-compiler.

This means that cross-compiling for an arm64 or riscv64 host on an amd64
build machine should be OK, but cross-compiling for armhf or i386 on amd64
will produce invalid typelibs. I am sorry that I didn't notice this sooner.

A crude solution to this would be to revert gobject-introspection and
gobject-introspection-bin to be Multi-Arch: no, so that building typelibs
is no longer possible in cross-builds. [1]

A more refined version of that would be to change the relationship between
gobject-introspection and gobject-introspection-bin so that instead of the
current arrangement where the dependency is on a virtual package
gobject-introspection-linux-little-endian, it would be on a virtual package
that also reflects the word size in use:
gobject-introspection-linux-lp64-little-endian or similar. This would
preserve the ability to cross-compile in only those situations where it
would be correct. [2]

A workaround to enable cross-compiling between word sizes would be to use
the host architecture g-ir-compiler, and run it via qemu-user.
Unfortunately this will greatly increase the amount of host-architecture
code that needs to be run via emulation.

In the short term, I'm going to do [1] or [2] as a matter of urgency,
to ensure that Ubuntu 24.04 doesn't ship with faulty cross-tools that
claim to work but actually do not. Any further improvement can be in-scope
for #1030223 "gobject-introspection: make cross-compilation possible".

If we do [2] then we will have to be extra-careful to distinguish between
dissimilar ILP32 ABIs, because gobject-introspection currently hard-codes
that it thinks time_t is long and off_t is size_t, both of which happen
to be correct on LP64 and on i386, but neither of which is correct on
an ILP32 architecture that has transitioned to large file support and
64-bit time_t (such as armel and armhf in 2024) or an ILP32 architecture
that always had 64-bit off_t and time_t (such as x32).

I apologise for having been insufficiently careful when enabling this
feature.

    smcv

--- End Message ---
--- Begin Message ---
Source: gobject-introspection
Source-Version: 1.78.1-17
Done: Simon McVittie <s...@debian.org>

We believe that the bug you reported is fixed in the latest version of
gobject-introspection, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1066...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Simon McVittie <s...@debian.org> (supplier of updated gobject-introspection 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Fri, 15 Mar 2024 13:14:58 +0000
Source: gobject-introspection
Architecture: source
Version: 1.78.1-17
Distribution: unstable
Urgency: medium
Maintainer: Debian GNOME Maintainers 
<pkg-gnome-maintain...@lists.alioth.debian.org>
Changed-By: Simon McVittie <s...@debian.org>
Closes: 1066900
Changes:
 gobject-introspection (1.78.1-17) unstable; urgency=medium
 .
   [ Simon McVittie, Jeremy BĂ­cha ]
   * Add a nogir build profile
 .
   [ Simon McVittie ]
   * d/control: Correct a misleading comment.
     It's g-ir-scanner, not g-ir-compiler, that runs the dumper executable.
   * Use host-architecture g-ir-compiler, etc. when cross-compiling.
     When setting up the cross wrappers for g-ir-compiler, etc. I had
     assumed that g-ir-compiler was a simple transformation from
     GIR XML into binary, which varied only by its endianness. Unfortunately,
     it is not: it also transforms abstract types such as size_t into
     equivalent fixed-size types such as guint64, which requires knowledge
     of the size of each type.
     Instead of running the build architecture g-ir-compiler and
     telling it to use the host architecture search path, install upstream's
     g-ir-compiler etc. into ${pkglibdir}, and set up cross wrappers
     that will automatically detect whether we can run them directly or
     whether we must use qemu-user. We already had logic for this for the
     dumper executable that is run by g-ir-scanner, which is always a
     host-architecture binary.
     This involves running qemu more often, but does have the side benefit
     that we no longer require the build and host endianness to be the same,
     because everything that interacts the typelib is now a host binary
     (possibly running under emulation). (Closes: #1066900)
Checksums-Sha1:
 b077afebfd71e0449d9632ed444d36933b8a41ca 4279 
gobject-introspection_1.78.1-17.dsc
 8add0fa144fb4cd7dc34e0c30a26992743a6532a 61936 
gobject-introspection_1.78.1-17.debian.tar.xz
 6cafbf6b299d735068ec90dc7581a478c533d72f 8915 
gobject-introspection_1.78.1-17_source.buildinfo
Checksums-Sha256:
 1ff2907e2095b5c4b75c3f264c3c6af0b41efa4caea1004f9424b179be9ddfd9 4279 
gobject-introspection_1.78.1-17.dsc
 bb17cba79ec65c3413363a834d6ff737ba3d287b22e43eb4a89658d89ba28b4a 61936 
gobject-introspection_1.78.1-17.debian.tar.xz
 2609dd175bdb8814b52f8f15c030d4eb0067cfa88bbded0c6da8d09144ead72a 8915 
gobject-introspection_1.78.1-17_source.buildinfo
Files:
 2b03e000afb17dee74138a929874941d 4279 devel optional 
gobject-introspection_1.78.1-17.dsc
 9344666d298951a13738a8aa54c2760a 61936 devel optional 
gobject-introspection_1.78.1-17.debian.tar.xz
 2abb2408e126fe86b58ccae4ced653ad 8915 devel optional 
gobject-introspection_1.78.1-17_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEENuxaZEik9e95vv6Y4FrhR4+BTE8FAmX0ZEoACgkQ4FrhR4+B
TE/HwA//XzgB9AnFt5zYLusHGhGwLdsvdlTBqPPH8wH9mRB5Q7UVPg89aLQce43N
gt4IJbMGB0NFneDQXpbBAiaKq97J7XRIY1IwdDE3IS5926zx4qLmCN0bmFHabhYm
FyY3aLBP3RNdJ4/M4y+xgBxr40rEEWkpLK01BwZ0DBxmybzZZIWWJHYes/mJX+Ia
NlJ9aPkJOJHHCA/o0vt52zsvZB+/qzw0fMo2dvVQAKZlQXQfHzofYYsyqbnVtFhO
9RGAmpERtJadH5NnlBYD5DxcVr6RTG+MaP9xD3k1/xdH0wQ1cvyOHG1lFmQjVOqy
RNrJVDsiaW/q0zSKcBpVtBLEh77IQTMfOxHT08nek2xfl8ah3b/QL6MXZDL3Dc3F
/ZBzgEXiXCho/YjHGzmMUDezlQlptsC7g9iNWTGPC0tQ7LpIxRrYDx8/JEAweI5Z
T8VYRo9vODOKcUYZimmb/2kg4N34bS5VpJnpSyFQZSJpOLuZ4SIHbcv+cZvfhvwR
1mo82SYmTKSPavsJO2v8PgITcT+dSKosN+B3rhSNFe6vfaBeOM7KcS9YVSIDXkPL
Qv3wVLPiIRJh19qhkL5sZdzE2yYyH68otzAITcVDwgN/5rlKFRlsnAFZKaSz+r9F
+EErLtQhHMB+4AJLQoJwDIgk1nlbV3fgGDzXfAIVYXJXCZFj7DE=
=318I
-----END PGP SIGNATURE-----

Attachment: pgp5APdIair2p.pgp
Description: PGP signature


--- End Message ---

Reply via email to