From e6637cf623c24aa5d573fa5e90ddf5fc8d1198e1 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Wed, 24 Sep 2014 10:40:31 +0200 Subject: reproducible: first build finally succeeded... --- TODO | 2 +- bin/reproducible_build.sh | 9 ++++++--- etc/apt/sources.list | 10 ++++++---- etc/sudoers.d/jenkins | 3 ++- job-cfg/reproducible.yaml | 16 ++++++++-------- 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' -- cgit v1.2.3-70-g09d2