summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2014-09-24 10:40:31 +0200
committerHolger Levsen <holger@layer-acht.org>2014-09-24 10:40:31 +0200
commite6637cf623c24aa5d573fa5e90ddf5fc8d1198e1 (patch)
treec99c859809dfc66a2d4137d3b5e052bf9bfbfc34
parent789f218ce7715298e2b95cb0536079fa3b2bf3bc (diff)
downloadjenkins.debian.net-e6637cf623c24aa5d573fa5e90ddf5fc8d1198e1.tar.xz
reproducible: first build finally succeeded...
-rw-r--r--TODO2
-rwxr-xr-xbin/reproducible_build.sh9
-rw-r--r--etc/apt/sources.list10
-rw-r--r--etc/sudoers.d/jenkins3
-rw-r--r--job-cfg/reproducible.yaml16
5 files changed, 23 insertions, 17 deletions
diff --git a/TODO b/TODO
index 2a7936bd..b95740b9 100644
--- a/TODO
+++ b/TODO
@@ -108,7 +108,7 @@ general
** core and all other: triggered by exampled_good
* use git repo in job config?
* job to build minimal debootstrap packages
-* job to build all build-essential packages
+* email notifications to reproducible-commits@lists.alioth.debian.org
=== Test Debian live
diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh
index b93479c3..bb3580f3 100755
--- a/bin/reproducible_build.sh
+++ b/bin/reproducible_build.sh
@@ -21,6 +21,9 @@ echo "The following source packages will be build: $@"
echo "=============================================================="
echo
set -x
+# this needs sid entries in sources.list:
+grep deb-src /etc/apt/sources.list | grep sid
+sudo apt-get update
COUNT_TOTAL=0
COUNT_GOOD=0
@@ -38,13 +41,13 @@ for SRCPACKAGE in "$@" ; do
SOURCELESS="${SOURCELESS} ${SRCPACKAGE}"
echo "Warning: ${SRCPACKAGE} is not a source package, or was removed or renamed. Please investigate."
else
- sudo pbuilder --build --basetgz /var/cache/pbuilder/base-reproducible.tgz ${SRCPACKAGE}_*.dsc
+ sudo pbuilder --build --basetgz /var/cache/pbuilder/base-reproducible.tgz --distribution sid ${SRCPACKAGE}_*.dsc
RESULT=$?
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
+ sudo pbuilder --build --basetgz /var/cache/pbuilder/base-reproducible.tgz --distribution sid ${SRCPACKAGE}_*.dsc
dcmd cp /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes b2
sudo dcmd rm /var/cache/pbuilder/result/${SRCPACKAGE}_*.changes
set -e
@@ -60,7 +63,7 @@ for SRCPACKAGE in "$@" ; do
else
echo "Warning: ${SRCPACKAGE} failed to build reproducible."
let "COUNT_BAD=COUNT_BAD+1"
- GOOD="${SRCPACKAGE} ${BAD}"
+ BAD="${SRCPACKAGE} ${BAD}"
fi
rm b1 b2 ${TMPFILE} -rf
fi
diff --git a/etc/apt/sources.list b/etc/apt/sources.list
index 2876aa9e..74d7ad25 100644
--- a/etc/apt/sources.list
+++ b/etc/apt/sources.list
@@ -3,11 +3,13 @@
deb http://ftp.de.debian.org/debian/ wheezy main
-deb-src http://ftp.de.debian.org/debian/ wheezy main
-#deb-src http://ftp.de.debian.org/debian/ sid main
+#deb-src http://ftp.de.debian.org/debian/ wheezy main
+
+# needed for job/reproducible*
+deb-src http://ftp.de.debian.org/debian/ sid main
deb http://security.debian.org/ wheezy/updates main
-deb-src http://security.debian.org/ wheezy/updates main
+#deb-src http://security.debian.org/ wheezy/updates main
deb http://ftp.de.debian.org/debian/ wheezy-backports main
-deb-src http://ftp.de.debian.org/debian/ wheezy-backports main
+#deb-src http://ftp.de.debian.org/debian/ wheezy-backports main
diff --git a/etc/sudoers.d/jenkins b/etc/sudoers.d/jenkins
index a181730c..5acc194b 100644
--- a/etc/sudoers.d/jenkins
+++ b/etc/sudoers.d/jenkins
@@ -28,7 +28,8 @@ jenkins ALL= \
/bin/chown -R jenkins\:jenkins /var/lib/jenkins/jobs/*,\
SETENV: NOPASSWD: /usr/sbin/pbuilder *, \
/bin/rm /var/cache/pbuilder/base*.tgz, \
- /usr/bin/dcmd rm *.changes
+ /usr/bin/dcmd rm *.changes, \
+ /usr/bin/apt-get update
# keep these environment variables
Defaults env_keep += "http_proxy", env_reset
diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml
index b81ec2d1..2518f088 100644
--- a/job-cfg/reproducible.yaml
+++ b/job-cfg/reproducible.yaml
@@ -28,49 +28,49 @@
name: '{name}_setup'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_test_reproducibility'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_core'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_build-essential'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_desktop'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_libreoffice'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- job-template:
defaults: reproducible
name: '{name}_build_xorg'
publishers:
- email:
- recipients: 'jenkins+reproducible holger@layer-acht.org lunar@debian.org'
+ recipients: 'jenkins+debian+reproducible holger@layer-acht.org lunar@debian.org'
- project:
name: reproducible
@@ -80,7 +80,7 @@
my_shell: '/srv/jenkins/bin/reproducible_setup.sh'
- '{name}_build_test_reproducibility':
my_description: 'Reproducible build two packages, one we know will succeed and one which used to fail....'
- my_shell: '/srv/jenkins/bin/reproducible_build.sh debianutils hostname' # lsof
+ my_shell: '/srv/jenkins/bin/reproducible_build.sh lsb ucf lsof'
- '{name}_build_core':
my_description: 'Reproducible build all the core packages as defined by UDD as described in https://wiki.debian.org/ReproducibleBuilds'
my_shell: '/srv/jenkins/bin/reproducible_build.sh acl adduser base-files base-passwd bash binutils bsdmainutils bsdutils build-essential bzip2 coreutils cpp cpp-4.9 dash debconf debhelper debianutils dh-buildinfo diffutils dmsetup dpkg dpkg-dev e2fslibs e2fsprogs file findutils g++ g++-4.9 gcc gcc-4.9 gcc-4.9-base gettext gettext-base grep groff-base gzip hostname init initscripts insserv intltool-debian libacl1 libasan1 libasprintf0c2 libatomic1 libattr1 libaudit1 libaudit-common libblkid1 libbz2-1.0 libc6 libc6-dev libcap2 libcap2-bin libc-bin libc-dev-bin libcilkrts5 libcloog-isl4 libcomerr2 libcroco3 libcryptsetup4 libdb5.3 libdbus-1-3 libdebconfclient0 libdevmapper1.02.1 libdpkg-perl libffi6 libgcc1 libgcc-4.9-dev libgcrypt11 libgcrypt20 libgdbm3 libglib2.0-0 libgmp10 libgomp1 libgpg-error0 libintl-perl libisl10 libitm1 libkmod2 liblzma5 libmagic1 libmount1 libmpc3 libmpfr4 libncurses5 libncurses5-dev libncursesw5 libpam0g libpam-modules libpam-modules-bin libpam-runtime libpcre3 libpipeline1 libprocps3 libquadmath0 libselinux1 libsemanage1 libsemanage-common libsepol1 libss2 libstdc++-4.9-dev libstdc++6 libsystemd-journal0 libsystemd-login0 libtext-unidecode-perl libtimedate-perl libtinfo5 libtinfo-dev libubsan0 libudev1 libunistring0 libustr-1.0-1 libuuid1 libwrap0 libxml2 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl linux-libc-dev login lsb-base make man-db mawk mount ncurses-base ncurses-bin passwd patch perl perl-base perl-modules po-debconf procps sed sensible-utils startpar systemd systemd-sysv sysvinit-utils sysv-rc tar texinfo tzdata ucf udev util-linux xz-utils zlib'