summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2014-10-10 13:41:53 +0200
committerHolger Levsen <holger@layer-acht.org>2014-10-10 14:02:35 +0200
commit14671e88ffd2149fb75e93054e2eae1aaa3e2f86 (patch)
treeae87a7fc714df68e3947ff672679445ae16aeae3
parent4320f7cc8da9c9a970d4a7cb5e36c8b7138bd069 (diff)
downloadjenkins.debian.net-14671e88ffd2149fb75e93054e2eae1aaa3e2f86.tar.xz
reproducible: correctly check whether a source package should be build on amd64
-rw-r--r--TODO7
-rwxr-xr-xbin/reproducible_build.sh32
2 files changed, 26 insertions, 13 deletions
diff --git a/TODO b/TODO
index dcd2f82e..870a2b19 100644
--- a/TODO
+++ b/TODO
@@ -110,10 +110,10 @@ See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian
*** killer job is run before setup
*** scheduler and builder jobs are started after
-* bugs
-** fix check for Architecture, see FIXME in _builds.sh
-*** once done, schedule hurd-libfuse
+* bugs / todo
+** reschedule hurd-libfuse
** when notes are removed the navigation pages are not updated... (touch note_new on create, then on next run delete on all navi pages for which note_new exists)
+*** modify packages.yml locally to test...
* CSS/HTML
** use iframes
@@ -128,6 +128,7 @@ See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian
* watch: swig/subversion (FTBFS, report note at least...)
* watch: hurd-libfuse: should be not for us
* run pbuilder with timeout 12h
+* new view: issues (show all issues in one page and the packages which are affected.)
* generate .json for tracker.d.o
* reschedule all pkg tested before oct 06 00:00 UTC (we want to know if they generate .buildinfo files)
* reschedule all files with 0 length .rbuild.log files
diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh
index 361ea1d9..76b58696 100755
--- a/bin/reproducible_build.sh
+++ b/bin/reproducible_build.sh
@@ -136,15 +136,17 @@ for SRCPACKAGE in ${PACKAGES} ; do
continue
fi
RBUILDLOG=/var/lib/jenkins/userContent/rbuild/${SRCPACKAGE}_None.rbuild.log
+ echo "Starting to build ${SRCPACKAGE} on $DATE" | tee ${RBUILDLOG}
# host has only sid in deb-src in sources.list
- apt-get source --download-only --only-source ${SRCPACKAGE} > ${RBUILDLOG} 2>&1
+ apt-get source --download-only --only-source ${SRCPACKAGE} >> ${RBUILDLOG} 2>&1
RESULT=$?
if [ $RESULT != 0 ] ; then
- ls -l ${SRCPACKAGE}* >> ${RBUILDLOG}
+ echo "Warning: Download of ${SRCPACKAGE} sources failed." | tee -a ${RBUILDLOG}
+ ls -l ${SRCPACKAGE}* | tee -a ${RBUILDLOG}
SOURCELESS="${SOURCELESS} ${SRCPACKAGE}"
sqlite3 -init $INIT ${PACKAGES_DB} "REPLACE INTO source_packages VALUES (\"${SRCPACKAGE}\", \"None\", \"404\", \"$DATE\")"
set +x
- echo "Warning: ${SRCPACKAGE} is not a source package, or was removed or renamed. Please investigate."
+ echo "Warning: Maybe there was a network problem, or ${SRCPACKAGE} is not a source package, or was removed or renamed. Please investigate." | tee -a ${RBUILDLOG}
continue
else
VERSION=$(grep "^Version: " ${SRCPACKAGE}_*.dsc| grep -v "GnuPG v" | sort -r | head -1 | cut -d " " -f2-)
@@ -157,15 +159,25 @@ for SRCPACKAGE in ${PACKAGES} ; do
cleanup_userContent
RBUILDLOG=/var/lib/jenkins/userContent/rbuild/${SRCPACKAGE}_${EVERSION}.rbuild.log
mv ${TMPLOG} ${RBUILDLOG}
+ cat ${SRCPACKAGE}_${EVERSION}.dsc | tee -a ${RBUILDLOG}
# check whether the package is not for us...
- # FIXME: needs to check for all packages, not just the first one
- # FIXME: linux-any is valid too (but hurd-any not)
- ARCH=$(grep "^Architecture: " ${SRCPACKAGE}_*.dsc| sort -r | head -1 | cut -d " " -f2-)
- if [[ ! "$ARCH" =~ "amd64" ]] && [[ ! "$ARCH" =~ "all" ]] && [[ ! "$ARCH" =~ "any" ]] && [[ ! "$ARCH" =~ "linux-amd64" ]]; then
+ SUITABLE=false
+ ARCHITECTURES=$(grep "^Architecture: " ${SRCPACKAGE}_*.dsc| cut -d " " -f2- | sed -s "s# #\n#g" | sort -u)
+ set +x
+ for ARCH in ${ARCHITECTURES} ; do
+ if [ "$ARCH" = "any" ] || [ "$ARCH" = "all" ] || [ "$ARCH" = "amd64" ] || [ "$ARCH" = "linux-amd64" ] ; then
+ SUITABLE=true
+ break
+ fi
+ done
+ set -x
+ if ! $SUITABLE ; then
sqlite3 -init $INIT ${PACKAGES_DB} "REPLACE INTO source_packages VALUES (\"${SRCPACKAGE}\", \"${VERSION}\", \"not for us\", \"$DATE\")"
- echo "Package ${SRCPACKAGE} (${VERSION}) shall only be build on \"$ARCH\" and was thus skipped."
+ set +x
+ echo "Package ${SRCPACKAGE} (${VERSION}) shall only be build on \"${ARCHITECTURES}\" and thus was skipped." | tee -a ${RBUILDLOG}
let "COUNT_SKIPPED=COUNT_SKIPPED+1"
SKIPPED="${SRCPACKAGE} ${SKIPPED}"
+ dcmd rm ${SRCPACKAGE}_${EVERSION}.dsc
continue
fi
nice ionice -c 3 sudo DEB_BUILD_OPTIONS="parallel=$NUM_CPU" pbuilder --build --debbuildopts "-b" --basetgz /var/cache/pbuilder/base-reproducible.tgz --distribution sid ${SRCPACKAGE}_*.dsc 2>&1 | tee -a ${RBUILDLOG}
@@ -189,9 +201,9 @@ for SRCPACKAGE in ${PACKAGES} ; do
RESULT=$?
set -e
if [ $RESULT -eq 124 ] ; then
- echo "$(date) - debbindiff.py was killed after running into timeouot..." >> ${RBUILDLOG}
+ echo "$(date) - debbindiff.py was killed after running into timeouot..." | tee -a ${RBUILDLOG}
elif [ $RESULT -eq 1 ] ; then
- echo "$(date) - debbindiff.py crashed..." >> ${RBUILDLOG}
+ echo "$(date) - debbindiff.py crashed..." | tee -a ${RBUILDLOG}
fi
if [ ! -f ./${LOGFILE} ] && [ -f b1/${BUILDINFO} ] ; then
cp b1/${BUILDINFO} /var/lib/jenkins/userContent/buildinfo/