summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_setup_pbuilder.sh
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2014-10-19 00:27:04 +0200
committerHolger Levsen <holger@layer-acht.org>2014-10-19 00:27:04 +0200
commit4b9ca5a62ef1e5ecc7d0cd74ac56311ec73a0f5c (patch)
treecf54579b5623e671d90d64004c4c7f2225f1f876 /bin/reproducible_setup_pbuilder.sh
parentb7217b2fee47252c8ee083864ade33c339b5b6f3 (diff)
downloadjenkins.debian.net-4b9ca5a62ef1e5ecc7d0cd74ac56311ec73a0f5c.tar.xz
reproducible: add locking for reproducible schroot creation (which happens daily)
Diffstat (limited to 'bin/reproducible_setup_pbuilder.sh')
-rwxr-xr-xbin/reproducible_setup_pbuilder.sh85
1 files changed, 85 insertions, 0 deletions
diff --git a/bin/reproducible_setup_pbuilder.sh b/bin/reproducible_setup_pbuilder.sh
new file mode 100755
index 00000000..6075789f
--- /dev/null
+++ b/bin/reproducible_setup_pbuilder.sh
@@ -0,0 +1,85 @@
+#!/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
+
+set +x
+# blacklist some packages
+for PKG in linux cups zurl openclipart eigen3 xmds2 ; do
+ RESULT=$(sqlite3 -init $INIT $PACKAGES_DB " SELECT name FROM source_packages WHERE status = 'blacklisted' AND name = '$PKG'")
+ if [ "$RESULT" = "" ] ; then
+ set -x
+ sqlite3 -init $INIT $PACKAGES_DB "REPLACE into source_packages VALUES ('$PKG','0','blacklisted',date('now'))"
+ set +x
+ fi
+done
+
+#
+# create script to configure a pbuilder chroot
+#
+create_setup_tmpfile() {
+ cat > ${TMPFILE} <<- EOF
+#
+# this script is run within the pbuilder environment to further customize it
+#
+echo "-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+mQINBFQsy/gBEADKGF55qQpXxpTn7E0Vvqho82/HFB/yT9N2wD8TkrejhJ1I6hfJ
+zFXD9fSi8WnNpLc6IjcaepuvvO4cpIQ8620lIuONQZU84sof8nAO0LDoMp/QdN3j
+VViXRXQtoUmTAzlOBNpyb8UctAoSzPVgO3jU1Ngr1LWi36hQPvQWSYPNmbsDkGVE
+unB0p8DCN88Yq4z2lDdlHgFIy0IDNixuRp/vBouuvKnpe9zyOkijV83Een0XSUsZ
+jmoksFzLzjChlS5fAL3FjtLO5XJGng46dibySWwYx2ragsrNUUSkqTTmU7bOVu9a
+zlnQNGR09kJRM77UoET5iSXXroK7xQ26UJkhorW2lXE5nQ97QqX7igWp2u0G74RB
+e6y3JqH9W8nV+BHuaCVmW0/j+V/l7T3XGAcbjZw1A4w5kj8YGzv3BpztXxqyHQsy
+piewXLTBn8dvgDqd1DLXI5gGxC3KGGZbC7v0rQlu2N6OWg2QRbcVKqlE5HeZxmGV
+vwGQs/vcChc3BuxJegw/bnP+y0Ys5tsVLw+kkxM5wbpqhWw+hgOlGHKpJLNpmBxn
+T+o84iUWTzpvHgHiw6ShJK50AxSbNzDWdbo7p6e0EPHG4Gj41bwO4zVzmQrFz//D
+txVBvoATTZYMLF5owdCO+rO6s/xuC3s04pk7GpmDmi/G51oiz7hIhxJyhQARAQAB
+tC5EZWJpYW4gUmVwcm9kdWNpYmxlIEJ1aWxkcyBBcmNoaXZlIFNpZ25pbmcgS2V5
+iQI9BBMBCAAnBQJULMv4AhsDBQkFo5qABQsJCAcDBRUKCQgLBRYDAgEAAh4BAheA
+AAoJEF23ymfqWaMfFsMP/3jthq65H9avuM469jHcugcd0C5b7/DS+cGQ5E4NQIGL
+6tGsqv5k6Nb0MoMMEAQSmWeXRkbYYxmEkrREMNg8tPlh4NiJimH3neNfI+8fGiHY
+89FH7QDrrzGfMF9oJQ9zjWZTOs3bjJ4AfS4fkQiQ6UfO7TeMyz5Cw7kz+rS1m1tu
++RgHxD+6A+XxkIZnw5we1MH0SAFoq4j3boR8QkFUNMZsy97xWYON4QLpYwKCbiwL
+Q4y06YTw4A7lp+B2JKLc70yRcjbixeAFlZfbhmGITTNAl3j8+48hRLLkJ+s8eT1r
+DS1UkYi2xBSNa6TVtNxbDUwVTzzxDe+b8tW2BfC7TBOX2oq6e6ebRa+ghZFVLNY1
+3y+FilXGNMB7IvZ378idHYTNaiJuYXNkrd8UGunwK4NCWdZk05L9GdKeQ6DN380Y
+L4QkKpINXSKjneWV7IITMFhvRZCgOVAmoHaq6kaGsl/FwHBA9I8hHXuSyvke8UMP
+dmvR8ggv5wiY9NDjW55h7M+UIqEaoXws1algIKB/TWm4/RnQcrxoXBX16wyidzcv
+Mb0BawlXZui0MNUSnZtxHMxrjejdvZdqtskHl9srB1QThH0jasmUqbQPxCnxMbf1
+4LhIp6XlXJFF1btgfCexNmcPuqeOMMDQ+du6Hqj2Yl5GYo2McWvjpSgkt5VmQfIz
+=X8YA
+-----END PGP PUBLIC KEY BLOCK-----" | apt-key add -
+echo 'deb http://reproducible.alioth.debian.org/debian/ ./' > /etc/apt/sources.list.d/reproducible.list
+apt-get update
+apt-get install -y dpkg dpkg-dev debhelper dh-python discount
+echo
+dpkg -l
+echo
+for i in \$(dpkg -l |grep ^ii |awk -F' ' '{print \$2}'); do apt-cache madison "\$i" | head -1 | grep reproducible.alioth.debian.org || true ; done
+echo
+EOF
+}
+
+#
+# setup pbuilder for reproducible builds
+#
+setup_pbuilder() {
+ echo "$(date) - creating /var/cache/pbuilder/${1}.tgz now..."
+ TMPFILE=$(mktemp)
+ create_setup_tmpfile
+ sudo pbuilder --create --basetgz /var/cache/pbuilder/${1}-new.tgz --distribution sid
+ sudo pbuilder --execute --save-after-exec --basetgz /var/cache/pbuilder/${1}-new.tgz -- ${TMPFILE}
+ sudo mv /var/cache/pbuilder/${1}-new.tgz /var/cache/pbuilder/${1}.tgz
+ rm ${TMPFILE}
+ echo
+}
+
+setup_pbuilder base-reproducible