Bug#946355: glib2.0: Please make autopkgtests cross-test-friendly
Steve Langasek
steve.langasek at canonical.com
Sat Dec 7 19:38:01 GMT 2019
Package: glib2.0
Version: 2.63.1-2
Severity: minor
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu focal ubuntu-patch
Dear maintainers,
In Ubuntu, we are in the process of moving the i386 architecture to a
compatibility-only layer on amd64, and therefore we are also moving our
autopkgtest infrastructure to test i386 binaries in a cross-environment.
This requires changes to some tests so that they are cross-aware and can do
the right thing.
The glib2.0 tests currently fail in this environment, because there are
build tests that do not invoke the toolchain in a cross-aware manner. I've
verified that the attached patch lets the tests successfully build (and run)
i386 tests on an amd64 host.
Note that upstream autopkgtest doesn't currently set DEB_HOST_ARCH so this
is a complete no-op in Debian for the moment. Support for cross-testing in
autopkgtest is currently awaiting review at
https://salsa.debian.org/ci-team/autopkgtest/merge_requests/69 and once
landed, will still have no effect unless autopkgtest is invoked with a '-a'
option. So this change should be safe to land in your package despite this
not being upstream in autopkgtest.
Unfortunately in the case of glib2.0, this is an incomplete solution for
cross-testing compatibility, because in addition to the build tests, glib2.0
has two other tests that depend on libglib2.0-tests and this package is not
cross-installable because dh-python causes it to have a dependency on
python3:any but on python3.7, and it's impossible to install the
foreign-arch (i386) version of python3.7. There is discussion on the
autopkgtest MP about how to filter out some tests when cross-testing, which
may wind up being a solution, but I think this is also a bug in dh-python
that it generates a dependency on same-arch python3.7, so I think this patch
is worth inclusion in glib2.0 as-is.
Thanks for considering,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
diff -Nru glib2.0-2.63.1/debian/tests/build glib2.0-2.63.1/debian/tests/build
--- glib2.0-2.63.1/debian/tests/build 2019-11-18 05:59:35.000000000 -0800
+++ glib2.0-2.63.1/debian/tests/build 2019-12-06 21:31:37.000000000 -0800
@@ -34,6 +34,13 @@
WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
+
+if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
+ CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
+else
+ CROSS_COMPILE=
+fi
+
cat <<EOF > glib.c
#include <glib.h>
@@ -119,7 +126,7 @@
;;
esac
- gcc $cflags -o ${lib}-$mode ${lib}.c `pkg-config $pcflags --cflags --libs ${packages}`
+ ${CROSS_COMPILE}gcc $cflags -o ${lib}-$mode ${lib}.c `${CROSS_COMPILE}pkg-config $pcflags --cflags --libs ${packages}`
echo "build ($lib, $mode): OK"
[ -x ${lib}-$mode ]
foo=bar ./${lib}-$mode
More information about the pkg-gnome-maintainers
mailing list