From 53b6a71a47e8d09e45a11214fa9752b2d023826b Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Mon, 1 Jun 2015 19:03:00 +0200 Subject: reproducible: add check_buildinfo() to (soon) automatically rebuild packages where the build environment changed between two builds --- TODO | 8 -------- bin/reproducible_build.sh | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index e968b664..a8745a2d 100644 --- a/TODO +++ b/TODO @@ -178,14 +178,6 @@ properties: ---- egrep -R -l '(debbindiff had trouble comparing|maybe there is still )' /var/lib/jenkins/userContent/rbuild/ ---- -* packages build with different dependencies, should be rescheduled: -** not sure if these should be caught by reproducible_maintenance.sh or reproducible_breakages.py... ----- -grep '(=.*).,.$' rygel_0.24.2-1.debbindiff.html | uniq -c | sort | grep -c '^\s*1 ' ----- -** if the value is larger than 0, there are differing dependencies... -** the grepping should probably only done on files younger then $check_frequency -*** wouldnt it be easier to just compare .buildinfo files? (directly after build even) * misc ** more graphs: graph average build duration by day diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh index 6a166aec..014a8af2 100755 --- a/bin/reproducible_build.sh +++ b/bin/reproducible_build.sh @@ -260,6 +260,20 @@ dbd_timeout() { handle_ftbr "$msg" } +check_buildinfo() { + local TMPFILE1=$(mktemp) + local TMPFILE2=$(mktemp) + grep-dctrl -s Build-Environment -n ${SRCPACKAGE} ./b1/$BUILDINFO > $TMPFILE1 + grep-dctrl -s Build-Environment -n ${SRCPACKAGE} ./b2/$BUILDINFO > $TMPFILE2 + set +e + RESULT=$(diff $TMPFILE1 $TMPFILE2) + rm $TMPFILE1 $TMPFILE2 + set -e + if [ $RESULT -eq 1 ] ; then + irc_message "$BUILDINFO varies, probably due to mirror update. Please investigate ${BUILD_URL} and make reproducible_build.sh deal properly with this." + fi +} + call_debbindiff() { init_debbindiff # check and set up locks for chroot local TMPLOG=(mktemp --tmpdir=$TMPDIR) @@ -483,6 +497,7 @@ check_suitability check_for_race_conditions build_rebuild # defines FTBFS redefines RBUILDLOG if [ $FTBFS -eq 0 ] ; then + check_buildinfo call_debbindiff # defines DBDVERSION, update_db_and_html defines STATUS fi -- cgit v1.2.3-54-g00ecf