summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2014-10-15 09:32:00 +0200
committerHolger Levsen <holger@layer-acht.org>2014-10-15 09:32:00 +0200
commit985685a82b52e62cede3292705db5e97f2a40bf4 (patch)
treea46e1e935b9921e6c4f64f91c47472cf05b15169
parentf369c862bac22fbd115a8944aa8cddc453abf978 (diff)
downloadjenkins.debian.net-985685a82b52e62cede3292705db5e97f2a40bf4.tar.xz
reproducible: add new helper script to blacklist packages + document it
-rw-r--r--README9
-rwxr-xr-xbin/reproducible_blacklist.sh57
2 files changed, 65 insertions, 1 deletions
diff --git a/README b/README
index d61f1501..ea5af8e5 100644
--- a/README
+++ b/README
@@ -111,9 +111,16 @@ Installation tests inside chroot environments.
* manual rescheduling is easy, if you have console access. (Hint: you don't but someone on #debian-reproducible will have.) This is how to:
----
-jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_schedule_on_demand.sh package1 package2 abcde</code>
+jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_schedule_on_demand.sh package1 package2 abcde
----
+* blacklisting packages can be done similarily, optionally list reaons in 'notes.git/packages.yml'
+
+----
+jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_blacklist.sh package1
+----
+
+
=== dvswitch jobs
* FIXME: describe dvswitch jobs
diff --git a/bin/reproducible_blacklist.sh b/bin/reproducible_blacklist.sh
new file mode 100755
index 00000000..dbb040e9
--- /dev/null
+++ b/bin/reproducible_blacklist.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# Copyright 2014 Holger Levsen <holger@layer-acht.org>
+# released under the GPLv=2
+
+. /srv/jenkins/bin/common-functions.sh
+common_init "$@"
+
+# common code defining db access
+. /srv/jenkins/bin/reproducible_common.sh
+
+blacklist_packages() {
+ DATE=$(date +'%Y-%m-%d %H:%M')
+ TMPFILE=$(mktemp)
+ for PKG in $PACKAGES ; do
+ VERSION=$(sqlite3 -init $INIT ${PACKAGES_DB} "SELECT version from sources WHERE name = '$PKG';")
+ sqlite3 -init $INIT ${PACKAGES_DB} "REPLACE INTO source_packages VALUES ('$PKG','$VERSION','blacklisted','$DATE');"
+ done
+ echo "============================================================================="
+ echo "The following $TOTAL source packages have been (re-)scheduled: $PACKAGES"
+ echo "============================================================================="
+ echo
+}
+
+check_candidates() {
+ PACKAGES=""
+ TOTAL=0
+ for PKG in $CANDIDATES ; do
+ RESULT=$(sqlite3 -init $INIT ${PACKAGES_DB} "SELECT name from sources WHERE name = '$PKG';")
+ if [ ! -z "$RESULT" ] ; then
+ PACKAGES="$PACKAGES $RESULT"
+ let "TOTAL+=1"
+ fi
+ done
+}
+
+
+
+#
+# main
+#
+set +x
+CANDIDATES="$@"
+check_candidates
+PACKAGES=$(echo $PACKAGES)
+MESSAGE="$TOTAL package(s) blacklisted: ${PACKAGES}"
+if [ $TOTAL -lt 1 ] ; then
+ exit 1
+fi
+
+# finally
+blacklist_packages
+echo
+echo "$MESSAGE"
+kgb-client --conf /srv/jenkins/kgb/debian-reproducible.conf --relay-msg "$MESSAGE"
+echo
+echo "Probably edit notes.git/packages.yml now and enter reasons for blacklisting there"