Package: mbedtls Version: 2.16.4-1 Severity: minor Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu focal ubuntu-patch
Hi James, 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 mbedtls tests currently fail in this environment, because they are build tests that do not invoke the toolchain in a cross-aware manner and also do not use cross-capable test dependencies. 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/ slanga...@ubuntu.com vor...@debian.org
diff -Nru mbedtls-2.16.4/debian/tests/build mbedtls-2.16.4/debian/tests/build --- mbedtls-2.16.4/debian/tests/build 2020-01-28 15:38:13.000000000 -0800 +++ mbedtls-2.16.4/debian/tests/build 2020-03-04 22:04:36.000000000 -0800 @@ -11,6 +11,13 @@ fi cd "$AUTOPKGTEST_TMP" + +if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then + CROSS_COMPILE="$DEB_HOST_GNU_TYPE-" +else + CROSS_COMPILE= +fi + cat <<EOF > mbedtls_sha1.c #include <mbedtls/md.h> #include <stdio.h> @@ -37,9 +44,9 @@ EOF # Build program shared + statically -gcc -Wall -Werror -o mbedtls_sha1 mbedtls_sha1.c -lmbedcrypto +${CROSS_COMPILE}gcc -Wall -Werror -o mbedtls_sha1 mbedtls_sha1.c -lmbedcrypto echo "build1: OK" -gcc -Wall -Werror -static -o mbedtls_sha1_static mbedtls_sha1.c -lmbedcrypto +${CROSS_COMPILE}gcc -Wall -Werror -static -o mbedtls_sha1_static mbedtls_sha1.c -lmbedcrypto echo "build2: OK" # Run it on a few strings diff -Nru mbedtls-2.16.4/debian/tests/control mbedtls-2.16.4/debian/tests/control --- mbedtls-2.16.4/debian/tests/control 2020-01-28 15:38:13.000000000 -0800 +++ mbedtls-2.16.4/debian/tests/control 2020-03-04 22:04:29.000000000 -0800 @@ -1,2 +1,2 @@ Tests: build selftest -Depends: gcc, libc-dev, libmbedtls-dev +Depends: build-essential, libmbedtls-dev diff -Nru mbedtls-2.16.4/debian/tests/selftest mbedtls-2.16.4/debian/tests/selftest --- mbedtls-2.16.4/debian/tests/selftest 2020-01-28 15:38:13.000000000 -0800 +++ mbedtls-2.16.4/debian/tests/selftest 2020-03-04 22:04:36.000000000 -0800 @@ -10,10 +10,16 @@ exit 1 fi +if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then + CROSS_COMPILE="$DEB_HOST_GNU_TYPE-" +else + CROSS_COMPILE= +fi + # Build mbedtls_selftest shared / statically -cc -Wall -Werror programs/test/selftest.c -o "$AUTOPKGTEST_TMP/mbedtls_selftest" -lmbedtls -lmbedx509 -lmbedcrypto +${CROSS_COMPILE}gcc -Wall -Werror programs/test/selftest.c -o "$AUTOPKGTEST_TMP/mbedtls_selftest" -lmbedtls -lmbedx509 -lmbedcrypto echo "build1: OK" -cc -Wall -Werror -static programs/test/selftest.c -o "$AUTOPKGTEST_TMP/mbedtls_selftest_static" -lmbedtls -lmbedx509 -lmbedcrypto -pthread +${CROSS_COMPILE}gcc -Wall -Werror -static programs/test/selftest.c -o "$AUTOPKGTEST_TMP/mbedtls_selftest_static" -lmbedtls -lmbedx509 -lmbedcrypto -pthread echo "build2: OK" # Run the testsuite twice