Bug#946369: gcr: Please make autopkgtests cross-test-friendly

Steve Langasek steve.langasek at canonical.com
Sat Dec 7 23:39:08 GMT 2019


Package: gcr
Version: 3.34.0-1
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 gcr tests currently fail in this environment, because they 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.

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 gcr-3.34.0/debian/tests/libgck-1-dev gcr-3.34.0/debian/tests/libgck-1-dev
--- gcr-3.34.0/debian/tests/libgck-1-dev	2019-10-22 03:20:09.000000000 -0700
+++ gcr-3.34.0/debian/tests/libgck-1-dev	2019-12-07 15:30:29.000000000 -0800
@@ -11,6 +11,13 @@
 export XDG_RUNTIME_DIR="$WORKDIR"
 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 > test.c
 #include <gck/gck.h>
 
@@ -26,7 +33,7 @@
 
 # Deliberately word-splitting cflags and pkg-config's output:
 # shellcheck disable=SC2046 disable=SC2086
-gcc ${cflags} -o gck-test test.c $(pkg-config --cflags --libs gck-1)
+${CROSS_COMPILE}gcc ${cflags} -o gck-test test.c $(${CROSS_COMPILE}pkg-config --cflags --libs gck-1)
 echo "build: OK"
 [ -x gck-test ]
 ./gck-test
diff -Nru gcr-3.34.0/debian/tests/libgcr-3-dev gcr-3.34.0/debian/tests/libgcr-3-dev
--- gcr-3.34.0/debian/tests/libgcr-3-dev	2019-10-22 03:20:09.000000000 -0700
+++ gcr-3.34.0/debian/tests/libgcr-3-dev	2019-12-07 15:30:29.000000000 -0800
@@ -11,6 +11,13 @@
 export XDG_RUNTIME_DIR="$WORKDIR"
 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 > base.c
 #include <gcr/gcr.h>
 
@@ -37,21 +44,21 @@
 
 # Deliberately word-splitting cflags and pkg-config's output:
 # shellcheck disable=SC2046 disable=SC2086
-gcc ${cflags} -o gcr-test ui.c $(pkg-config --cflags --libs gcr-3)
+${CROSS_COMPILE}gcc ${cflags} -o gcr-test ui.c $(${CROSS_COMPILE}pkg-config --cflags --libs gcr-3)
 echo "build: OK"
 [ -x gcr-test ]
 xvfb-run -a dbus-run-session -- ./gcr-test
 echo "run: OK"
 
 # shellcheck disable=SC2046 disable=SC2086
-gcc ${cflags} -o base-test base.c $(pkg-config --cflags --libs gcr-ui-3)
+${CROSS_COMPILE}gcc ${cflags} -o base-test base.c $(${CROSS_COMPILE}pkg-config --cflags --libs gcr-ui-3)
 echo "build: OK"
 [ -x base-test ]
 ./base-test
 echo "run: OK"
 
 # shellcheck disable=SC2046 disable=SC2086
-gcc ${cflags} -o ui-test ui.c $(pkg-config --cflags --libs gcr-ui-3)
+${CROSS_COMPILE}gcc ${cflags} -o ui-test ui.c $(${CROSS_COMPILE}pkg-config --cflags --libs gcr-ui-3)
 echo "build: OK"
 [ -x ui-test ]
 xvfb-run -a dbus-run-session -- ./ui-test


More information about the pkg-gnome-maintainers mailing list