summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_build.sh
blob: c5e76e68ea0cd7de413215e1bd1276509b2e9291 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash

# Copyright 2014 Holger Levsen <holger@layer-acht.org>
# released under the GPLv=2

. /srv/jenkins/bin/common-functions.sh
common_init "$@"

if [ -d misc.git ] ; then
	cd misc.git
	git pull
	cd ..
else
	git clone git://git.debian.org/git/reproducible/misc.git misc.git
fi

COUNT_TOTAL=0
COUNT_GOOD=0
COUNT_BAD=0
GOOD=""
BAD=""
for SRCPACKAGE in "$@" ; do
	let "COUNT_TOTAL=COUNT_TOTAL+1"
	rm b1 b2 -rf
	apt-get source --download-only ${SRCPACKAGE} || true
	RESULT=0
	sudo pbuilder --build --basetgz /var/cache/pbuilder/base-reproducible.tgz ${SRCPACKAGE}_*.dsc || RESULT=$? || true
	if [ $RESULT = 0 ] ; then
		mkdir b1 b2
		dcmd cp /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes b1
		sudo dcmd rm /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes
		sudo pbuilder --build --basetgz /var/cache/pbuilder/base-reproducible.tgz ${SRCPACKAGE}_*.dsc
		dcmd cp /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes b2
		sudo dcmd rm /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes
		cat b1/${SRCPACKAGE}_*.changes
		TMPFILE=$(mktemp)
		./misc.git/diffp b1/*.changes b2/*.changes | tee ${TMPFILE}
		if $(grep -qv '^\*\*\*\*\*' ${TMPFILE}) ; then
			figlet ${SRCPACKAGE}
			echo
			echo "${SRCPACKAGE} build successfull."
			let "COUNT_GOOD=COUNT_GOOD+1"
			GOOD="${SRCPACKAGE} ${GOOD}"
		else
			echo "Warning: ${SRCPACKAGE} failed to build reproducible."
			let "COUNT_BAD=COUNT_BAD+1"
			GOOD="${SRCPACKAGE} ${BAD}"
		fi
		rm b1 b2 ${TMPFILE} -rf
	fi

	set +x
	echo "=============================================================="
	echo "$COUNT_TOTAL of ${#@} done."
	echo "=============================================================="
	set -x
done

set +x
echo
echo
echo "$COUNT_TOTAL packages attempted to build in total."
echo "$COUNT_GOOD packages successfully built reproducible: ${GOOD}"
echo "$COUNT_BAD packages failed to built reproducible: ${BAD}"