From 7e5ea35ef55fd1a939a6671c91125af4b41c0a29 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Wed, 16 Nov 2016 15:58:09 +0100 Subject: reproducible Debian: add two new i386 build nodes, pb12+16, thanks Profitbricks for the ressources Signed-off-by: Holger Levsen --- .../etc/pbuilder/rebuild-hooks/A01_modfiy_src_dir | 18 ++++++++ .../etc/pbuilder/rebuild-hooks/B01_cleanup | 17 ++++++++ .../etc/pbuilder/rebuild-hooks/C01_cleanup | 21 +++++++++ .../pbuilder/rebuild-hooks/D01_modify_environment | 50 ++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100755 hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/A01_modfiy_src_dir create mode 100755 hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/B01_cleanup create mode 100755 hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/C01_cleanup create mode 100755 hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/D01_modify_environment (limited to 'hosts/profitbricks-build16-i386/etc/pbuilder') diff --git a/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/A01_modfiy_src_dir b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/A01_modfiy_src_dir new file mode 100755 index 00000000..9225116b --- /dev/null +++ b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/A01_modfiy_src_dir @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +# exit if we are in the same UTS namespace as init ( != 2nd build ) +[ "$(readlink /proc/1/ns/uts)" = "$(readlink /proc/self/ns/uts)" ] && exit 0 + +cd $BUILDDIR + +if [ "$PWD" == "/build" ]; then + # build path variation disabled, so do nothing + exit 0 +fi + +# There should be only one file, the source directory. +src_dir=$(ls | head -n 1) + +mv $src_dir 2nd diff --git a/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/B01_cleanup b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/B01_cleanup new file mode 100755 index 00000000..334e03a2 --- /dev/null +++ b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/B01_cleanup @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +BUILDDIR="${BUILDDIR:-/tmp/buildd}" + +# exit if we are in the same UTS namespace as init ( != 2nd build ) +[ "$(readlink /proc/1/ns/uts)" = "$(readlink /proc/self/ns/uts)" ] && exit 0 + +# cease using disorderfs +if [ -d /tmp/disorderfs ] ; then + echo -n "Unmounting /tmp/disorderfs…" + fusermount -z -u "$BUILDDIR" + rmdir "$BUILDDIR" + mv /tmp/disorderfs "$BUILDDIR" + echo " done." +fi diff --git a/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/C01_cleanup b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/C01_cleanup new file mode 100755 index 00000000..47719ae7 --- /dev/null +++ b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/C01_cleanup @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +BUILDDIR="${BUILDDIR:-/tmp/buildd}" + +echo "debug output: disk usage on $(hostname) at $(date -u)" +df -h +echo + +# exit if we are in the same UTS namespace as init ( != 2nd build ) +[ "$(readlink /proc/1/ns/uts)" = "$(readlink /proc/self/ns/uts)" ] && exit 0 + +# cease using disorderfs +if [ -d /tmp/disorderfs ] ; then + echo -n "Unmounting /tmp/disorderfs…" + fusermount -z -u "$BUILDDIR" + rmdir "$BUILDDIR" + mv /tmp/disorderfs "$BUILDDIR" + echo " done." +fi diff --git a/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/D01_modify_environment b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/D01_modify_environment new file mode 100755 index 00000000..ba9ed4fa --- /dev/null +++ b/hosts/profitbricks-build16-i386/etc/pbuilder/rebuild-hooks/D01_modify_environment @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +BUILDDIR="${BUILDDIR:-/tmp/buildd}" + +# exit if we are in the same UTS namespace as init ( != 2nd build ) +[ "$(readlink /proc/1/ns/uts)" = "$(readlink /proc/self/ns/uts)" ] && exit 0 + +# +# doing variations for the 2nd builds: +# + +echo "I: Changing host+domainname to test build reproducibility" >&2 +sed -e '/^127.0.0.1/s/$/ i-capture-the-hostname i-capture-the-hostname.i-capture-the-domain/' -i /etc/hosts +hostname i-capture-the-hostname +domainname i-capture-the-domain +echo "I: Adding a custom variable just for the fun of it..." >&2 +export CAPTURE_ENVIRONMENT="I capture the environment" + +echo "I: Changing /bin/sh to bash" >&2 +echo "dash dash/sh boolean false" | debconf-set-selections +DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash +if [ -n "$BUILDUSERNAME" ] ; then + echo "I: Setting $BUILDUSERNAME's login shell to /bin/bash" >&2 + usermod -s /bin/bash $BUILDUSERNAME + if [ -n "$BUILDUSERGECOS" ] ; then + echo "I: Setting $BUILDUSERNAME's GECOS to $BUILDUSERGECOS" >&2 + usermod -c "$BUILDUSERGECOS" $BUILDUSERNAME + fi +fi + +# disable disorderfs due to #844498 +exit 0 +# use disorderfs on i386 only for now +if [ "$(dpkg --print-architecture)" != "i386" ] ; then + exit 0 +fi + +# use disorderfs +if [ -x /usr/bin/disorderfs ] ; then + echo -n "Moving $BUILDDIR to /tmp/disorderfs and mounting this as $BUILDDIR via the fuse disorderfs…" + mknod -m 666 /dev/fuse c 10 229 + mv "$BUILDDIR" /tmp/disorderfs + mkdir "$BUILDDIR" + disorderfs --multi-user=yes /tmp/disorderfs "$BUILDDIR" + echo " done." +else + echo "Warning: disorderfs not available." +fi -- cgit v1.2.3-70-g09d2