[Bug 950967] Re: glib2.0:armel uninstallable if the code on systems that don't support executing armel code
Wookey
wookey at wookware.org
Fri Mar 9 18:56:58 UTC 2012
+++ Steve Langasek [2012-03-09 17:32 -0000]:
> It can be installed on lots of things that aren't the native
> architecture, the only requirement is that you're able to run the code -
> which is straightforward to accomplish using qemu-user-static, isn't it?
This is true, but qemu support for the HOST arch of build-deps means
we can't cross build anything build-depending on this package for any
arch which doesn't have qemu support. The most pertinent current
example is aarch64 (arm64), for which everything currently needs to be
cross-built because there is no real hardware as well as no qemu
support :-)
It's important that simple M-A:same library packages should install
without qemu support unless it is absolutely unavoidable.
Wookey
--
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glib2.0 in Ubuntu.
https://bugs.launchpad.net/bugs/950967
Title:
glib2.0:armel uninstallable on systems that don't support executing
armel code
Status in “glib2.0” package in Ubuntu:
Triaged
Status in “glib2.0” package in Debian:
Unknown
Bug description:
glib-2.0 declares itself Multi-Arch: same, i.e co-installable. But in
fact this does not work because it cannot be installed on anything
other than the native architecture.
Amongst other things this means that no package build-depending on
glib2.0 can be built (becuase the build-deps don't install).
$apt-get install libglib2.0-0:armel
Setting up libglib2.0-0:armel (2.31.20-0ubuntu2) ...
/var/lib/dpkg/info/libglib2.0-0:armel.postinst: 36: /var/lib/dpkg/info/libglib2.0-0:armel.postinst: /usr/lib/arm-linux-gnueabi/glib-2.0/glib-compile-schemas: not found
/var/lib/dpkg/info/libglib2.0-0:armel.postinst: 39: /var/lib/dpkg/info/libglib2.0-0:armel.postinst: /usr/lib/arm-linux-gnueabi/glib-2.0/gio-querymodules: not found
dpkg: error processing libglib2.0-0:armel (--configure):
subprocess installed post-installation script returned error exit status 127
The problem is that the postinst contains:
case $trigger in
/usr/share/glib-2.0/schemas)
# This is triggered everytime an application installs a
# GSettings schema
/usr/lib/arm-linux-gnueabi/glib-2.0/glib-compile-schemas /usr/share/glib-2.0/schemas || true
;;
/usr/lib/arm-linux-gnueabi/gio/modules|/usr/lib/gio/modules)
# This is triggered everytime an application installs a GIO
# module into /usr/lib/arm-linux-gnueabi/gio/modules or the
# backwards-compatible /usr/lib/gio/modules directory
/usr/lib/arm-linux-gnueabi/glib-2.0/gio-querymodules /usr/lib/arm-linux-gnueabi/gio/modules /usr/lib/gio/modules
/usr/lib/arm-linux-gnueabi/glib-2.0/glib-compile-schemas and
/usr/lib/arm-linux-gnueabi/glib-2.0/gio-querymodules
are both ELF executables and thus not executable on the machine you are cross-installing onto.
If the output of these commands is arch-independent then a good fix would be to change these lines to be:
/usr/lib/${DEB_BUILD_MULTIARCH}/glib-2.0/glib-compile-schemas
/usr/lib/${DEB_BUILD_MULTIARCH}/glib-2.0/gio-querymodules
so that the version for the arch being installed-onto always gets run.
However if it is not arch-independent then the postinsts should
arrange to only run these commands when the package is being natively-
installed. If the output for all the versions installed needs to be
present then we need to arrange some way of making this work.
It may be that moving these binaries out into the libglib2.0-bin
package is the right thing to do?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/950967/+subscriptions
More information about the foundations-bugs
mailing list