Your message dated Fri, 15 Mar 2024 17:42:47 +0000
with message-id <e1rlbzv-000eoe...@fasolo.debian.org>
and subject line Bug#1066904: fixed in glib2.0 2.80.0-2
has caused the Debian Bug report #1066904,
regarding gi-compile-repository: 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.)


-- 
1066904: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066904
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: glib2.0
Source-Version: 2.80.0-2
Done: Simon McVittie <s...@debian.org>

We believe that the bug you reported is fixed in the latest version of
glib2.0, 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 glib2.0 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 15:11:52 +0000
Source: glib2.0
Architecture: source
Version: 2.80.0-2
Distribution: experimental
Urgency: medium
Maintainer: Debian GNOME Maintainers 
<pkg-gnome-maintain...@lists.alioth.debian.org>
Changed-By: Simon McVittie <s...@debian.org>
Closes: 1066904
Changes:
 glib2.0 (2.80.0-2) experimental; urgency=medium
 .
   * Use host-architecture gi-compile-repository, etc. when cross-compiling.
     When setting up the cross wrappers for gi-compile-repository, etc. I had
     assumed that gi-compile-repository 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 gi-compile-repository and
     telling it to use the host architecture search path, install upstream's
     gi-compile-repository 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. This is not "pure" cross-compilation,
     but it's the best we can do.
     This means that the build and host OS must match, but it 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 qemu). (Closes: #1066904)
   * Temporarily skip all tests on 32-bit non-x86 architectures, to avoid
     circular dependencies during the t64 transition
Checksums-Sha1:
 4cd0a15c59ec434b4ac3ff9c12ac4356eeda365f 4843 glib2.0_2.80.0-2.dsc
 211c5be058704786aadf49072050a7d448d82737 130484 glib2.0_2.80.0-2.debian.tar.xz
 abbc04ff5c3d17e226b77f703e06bbe300d67c43 7324 glib2.0_2.80.0-2_source.buildinfo
Checksums-Sha256:
 b32f5ea35d64beab0869bf80ca62dd6d6b55fdf61bf0f24b3537954a491ddef9 4843 
glib2.0_2.80.0-2.dsc
 69915cf9317f5886aafbaeb4a5e326833f5d56df38597946ef7cdfb2a3be9b81 130484 
glib2.0_2.80.0-2.debian.tar.xz
 03cac51b22a6bebc4f3b295a16841dbce2b6c9305e4d9640e6fb11ec843fadd8 7324 
glib2.0_2.80.0-2_source.buildinfo
Files:
 5e390816c4d14c0509d3974c5d8e1513 4843 libs optional glib2.0_2.80.0-2.dsc
 0ddd43774f39f4a84c117d1bc61b88ba 130484 libs optional 
glib2.0_2.80.0-2.debian.tar.xz
 d148c348007fb90a906fee60f2c14cbc 7324 libs optional 
glib2.0_2.80.0-2_source.buildinfo

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

iQIzBAEBCAAdFiEENuxaZEik9e95vv6Y4FrhR4+BTE8FAmX0gh4ACgkQ4FrhR4+B
TE817Q/9FHLMLpeK9fJyWLwyMh5Hs9Wem84puGQtNuZ+gm5y3M/P/LRvV/avAe++
cCicEznIlW4+z2/dl7ASpICu8NtdoKnXraaQGIfMnqQECuw62Ca6ArHf63cBRy7Y
jI8lo97sfknS+MiHXtIkFgaZvX/xzpMLOFe3kqQ+WWhRl7PHdai7jmUE121c8+AR
QHXYfBbyuzNbKHHOfMmxUxC253HUU09KWXKxr2Q3KZTJumbaxrJgaHxBwcjGEFid
JaaR9y1K90jaAV6BVBik/2hXbMQoHJUfkBML1f6x8OK3fWac56oIwTkTLt3GNM33
qVzkqA9cgZEoo30H74SUqx2T7ONUy/YD83iMYhRWJfVioaZYEaQ5mpk/iTvI3FjU
eiv5z/zBLJlW3U4YHZLACd8TyzW0fRhSM0fCiQcBcnxp83jOtmqJT2yuQ2oLi4o1
up6Vg2gCw+8cPoaC5mhdvoGD9RJIx4KrFmA6wkgCvqa2Cj1wPmyQEUN9fkckCoRt
cpPLKJiXbFW1/2lDYD9L+CJBkU+urtMraEm9y5XvpRrJjJZDcwFQXzEuNyCiJvLI
j7T9ypnRhDls+iaB/BK0qOiMbv6XHPYXuDpbZPRoP6yNQKE3uJSDlpOpPcq0GYvM
J7ncKIs40kJZSuUfMiIiLs4kkuzcpIsJSUYs4ITShMTkslViFEE=
=KRK1
-----END PGP SIGNATURE-----

Attachment: pgp80l0fYCqTu.pgp
Description: PGP signature


--- End Message ---

Reply via email to