From 609d68de146dca473180486aee94fff0430c9560 Mon Sep 17 00:00:00 2001 From: Mattia Rizzolo Date: Fri, 31 Jul 2015 15:05:21 +0000 Subject: reproducible: add a new status, "depwait", where package failing to install their build-deps ends to. This will clear FTBFS a few, and give a more easy filtering for some use cases --- bin/reproducible_build.sh | 17 +++++++++++++++++ bin/reproducible_common.py | 1 + bin/reproducible_html_indexes.py | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) (limited to 'bin') diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh index 3941bfea..c1d30a08 100755 --- a/bin/reproducible_build.sh +++ b/bin/reproducible_build.sh @@ -195,6 +195,16 @@ handle_404() { exit 0 # RBUILDLOG and SAVE_ARTIFACTS and NOTIFY are used in cleanup_all called at exit } +handle_depwait() { + echo "Downloading the build dependencies failed" | tee -a "$RBUILDLOG" + echo "Maybe there was a network problem, or the build dependencies are currently uninstallable; consider filing a bug in the last case." + echo "Network problems are automatically retried after some hours." + calculate_build_duration + update_db_and_html "depwait" + if [ $SAVE_ARTIFACTS -eq 1 ] ; then SAVE_ARTIFACTS=0 ; fi + if [ -n "$NOTIFY" ] ; then NOTIFY="depwait" ; fi +} + handle_not_for_us() { # a list of valid architecture for this package should be passed to this function echo "Package ${SRCPACKAGE} (${VERSION}) shall only be build on \"$(echo "$@" | xargs echo )\" and thus was skipped." | tee -a ${RBUILDLOG} @@ -207,7 +217,14 @@ handle_not_for_us() { } handle_ftbfs() { + local BUILD echo "${SRCPACKAGE} failed to build from source." + for BUILD in "1" "2"; do + if zgrep -F "E: pbuilder-satisfydepends failed." "$BASE/logs/$SUITE/$ARCH/${SRCPACKAGE}_${EVERSION}.build${BUILD}.log.gz" ; then + handle_depwait + return + fi + done calculate_build_duration update_db_and_html "FTBFS" if [ $SAVE_ARTIFACTS -eq 1 ] ; then SAVE_ARTIFACTS=0 ; fi diff --git a/bin/reproducible_common.py b/bin/reproducible_common.py index 99db4863..a36c89f8 100755 --- a/bin/reproducible_common.py +++ b/bin/reproducible_common.py @@ -397,6 +397,7 @@ def join_status_icon(status, package=None, version=None): 'FTBFS': 'weather-storm.png', 'FTBR' : 'weather-showers-scattered.png', '404': 'weather-severe-alert.png', + 'depwait': 'weather-snow.png', 'not for us': 'weather-few-clouds-night.png', 'not_for_us': 'weather-few-clouds-night.png', 'untested': 'weather-clear-night.png', diff --git a/bin/reproducible_html_indexes.py b/bin/reproducible_html_indexes.py index 070eb096..24092933 100755 --- a/bin/reproducible_html_indexes.py +++ b/bin/reproducible_html_indexes.py @@ -66,6 +66,8 @@ queries = { 'FTBFS_caused_by_us': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND r.status = "FTBFS" AND r.package_id IN (SELECT n.package_id FROM NOTES AS n WHERE ' + filter_query + ' ) ORDER BY s.name', '404_all': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "404" ORDER BY build_date DESC', '404_all_abc': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "404" ORDER BY name', + 'depwait_all': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "depwait" ORDER BY build_date DESC', + 'depwait_all_abc': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "depwait" ORDER BY name', 'not_for_us_all': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "not for us" ORDER BY build_date DESC', 'not_for_us_all_abc': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "not for us" ORDER BY name', 'blacklisted_all': 'SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id=s.id WHERE s.suite="{suite}" AND s.architecture="{arch}" AND status = "blacklisted" ORDER BY name', @@ -121,6 +123,16 @@ pages = { } ] }, + 'depwait': { + 'title': 'Packages in {suite}/{arch} where the build dependencies failed to be satisfied', + 'body': [ + { + 'icon_status': 'depwait', + 'query': 'depwait_all', + 'text': Template('$tot ($percent%) packages where the build dependencies failed to be satisfied. Note that temporary failures to due network problem are automatically rescheduled every 4 hours.') + } + ] + }, 'not_for_us': { 'title': 'Packages in {suite}/{arch} which should not be build on "amd64"', 'body': [ @@ -168,6 +180,12 @@ pages = { 'query': '404_all_abc', 'text': Template('$tot ($percent%) source packages could not be downloaded in $suite/$arch:') }, + { + 'icon_status': 'depwait', + 'icon_link': '/index_depwait.html', + 'query': 'depwait_all_abc', + 'text': Template('$tot ($percent%) source packages failed to satisfy their build-dependencies:') + }, { 'icon_status': 'blacklisted', 'icon_link': '/index_blacklisted.html', @@ -268,6 +286,13 @@ pages = { 'nosuite': True, 'text': Template('$tot FTBFS packages in $suite/$arch:') }, + { + 'icon_status': 'depwait', + 'db_status': 'depwait', + 'icon_link': '/index_depwait.html', + 'query': 'depwait_all_abc', + 'text': Template('$tot ($percent%) source packages failed to satisfy their build-dependencies:') + }, { 'icon_status': 'not_for_us', 'db_status': 'not for us', @@ -315,6 +340,13 @@ pages = { 'query': 'no_notes', 'text': Template('$tot FTBFS packages in $suite/$arch:') }, + { + 'icon_status': 'depwait', + 'db_status': 'depwait', + 'icon_link': '/index_depwait.html', + 'query': 'depwait_all_abc', + 'text': Template('$tot ($percent%) source packages failed to satisfy their build-dependencies:') + }, { 'icon_status': 'blacklisted', 'db_status': 'blacklisted', -- cgit v1.2.3-70-g09d2