Hi,

Holger Levsen wrote:
> khmer is being tried to build (on armhf), because it has "all" in the 
> Architecture field

I think bin/reproducible_build.sh makes a too broad assumption, that
packages producing arch:all parts can build on "any" arch.

dpkg-buildpackage proceeds, I think, because there are arch-indep parts
that 'might' be able to build.  But since this package has no separate
binary-indep target, debian/rules tries to build the arch-dep parts
and fails there.

It seems there was an attempt to fix this before:
https://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/commit/bin/reproducible_build.sh?id=c1157ef4d
but reverted:
https://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/commit/bin/reproducible_build.sh?id=cdbb4ce
https://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/commit/bin/reproducible_build.sh?id=89b4833f

I checked the archive of this mailing list but can't find the reason it
was reverted?

The code has been much refactored since then.  Does my patch below seem
a neat way to try to fix this again?  (Though I totally have not tested
it).

Where I set ARCHITECTURES="any", that will not be a regression over
current behaviour, but can be substituted for ARCHITECTURES="amd64" if
too many arch:all packages FTBFS on armhf.

From a759d049b1fd6deeb24985e57a3b6f4fa2e1f72b Mon Sep 17 00:00:00 2001
From: Steven Chamberlain <ste...@pyro.eu.org>
Date: Tue, 9 Feb 2016 13:02:13 +0000
Subject: [PATCH] reproducible: don't always build arch:all on "any" arch

If a package builds arch-dep parts on a restricted set of arches,
don't assume the arch-indep parts can build on "any" arch.

If a package *only* lists Architecture: all, keep the current behaviour:
(linux-)amd64 will most likely work;  armhf is less likely but is nice
to try anyway.
---
 bin/reproducible_build.sh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh
index 4d5dd4b..7b11cef 100755
--- a/bin/reproducible_build.sh
+++ b/bin/reproducible_build.sh
@@ -525,8 +525,14 @@ check_suitability() {
        # check whether the package is not for us...
        local SUITABLE=false
        local ARCHITECTURES=$(grep "^Architecture: " ${SRCPACKAGE}_*.dsc| cut 
-d " " -f2- | sed -s "s# #\n#g" | sort -u)
+
+       # packages that are *only* arch:all can be tried on any arch
+       if [ "$ARCHITECTURES" = "all" ]; then
+               ARCHITECTURES="any"
+       fi
+
        for arch in ${ARCHITECTURES} ; do
-               if [ "$arch" = "any" ] || [ "$arch" = "$ARCH" ] || [ "$arch" = 
"linux-any" ] || [ "$arch" = "linux-$ARCH" ] || [ "$arch" = "any-$ARCH" ] || [ 
"$arch" = "all" ] ; then
+               if [ "$arch" = "any" ] || [ "$arch" = "$ARCH" ] || [ "$arch" = 
"linux-any" ] || [ "$arch" = "linux-$ARCH" ] || [ "$arch" = "any-$ARCH" ] ; then
                        SUITABLE=true
                        break
                fi

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to