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
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