summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/reproducible_freebsd.sh17
-rw-r--r--hosts/freebsd-jenkins/usr/local/etc/sudoers8
2 files changed, 16 insertions, 9 deletions
diff --git a/bin/reproducible_freebsd.sh b/bin/reproducible_freebsd.sh
index 8e428662..5f08ce59 100755
--- a/bin/reproducible_freebsd.sh
+++ b/bin/reproducible_freebsd.sh
@@ -26,7 +26,9 @@ create_results_dirs() {
save_freebsd_results(){
local RUN=$1
mkdir -p $TMPDIR/$RUN/
- cp -pr /usr/obj/releasedir/ $TMPDIR/$RUN/
+ # copy results over
+ $RSCP:$TMPDIR $TMPDIR/$RUN
+ $RSSH "rm -r $TMPDIR ; mkdir $TMPDIR"
find $TMPDIR/$RUN/ -name MD5 -o -name SHA512 -exec rm {} \;
}
@@ -66,14 +68,16 @@ export TZ="/usr/share/zoneinfo/Etc/GMT+12"
NUM_CPU=3
$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NUM_CPU buildworld"
$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NUM_CPU buildkernel"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ DESTDIR=$TMPDIR sudo make -j $NUM_CPU installworld"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ DESTDIR=$TMPDIR sudo make -j $NUM_CPU installkernel"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NUM_CPU distribution"
# save results in b1
save_freebsd_results b1
echo "============================================================================="
echo "$(date -u) - Building freebsd ${FREEBSD_VERSION} - cleaning up between builds."
echo "============================================================================="
-sudo rm -r /usr/obj/releasedir /usr/obj/destdir.*
-# we keep the toolchain(s)
+$RSSH "sudo rm -r /usr/obj/ ; sudo mkdir /usr/obj"
echo "============================================================================="
echo "$(date -u) - Building freebsd - second build run."
@@ -90,6 +94,9 @@ NEW_NUM_CPU=4
# actually build everything
$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NEW_NUM_CPU buildworld"
$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NEW_NUM_CPU buildkernel"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ DESTDIR=$TMPDIR sudo make -j $NEW_NUM_CPU installworld"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ DESTDIR=$TMPDIR sudo make -j $NEW_NUM_CPU installkernel"
+$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make -j $NEW_NUM_CPU distribution"
# save results in b2
save_freebsd_results b2
# cleanup...
@@ -104,10 +111,6 @@ umask 0022
# cleanup on the node
$RSSH 'sudo rm -r /usr/src /usr/obj'
-# copy results over
-$RSCP:$TMPDIR $TMPDIR
-$RSSH "rm -r $TMPDIR"
-
# run debbindiff on the results
TIMEOUT="30m"
DBDSUITE="unstable"
diff --git a/hosts/freebsd-jenkins/usr/local/etc/sudoers b/hosts/freebsd-jenkins/usr/local/etc/sudoers
index 3c749c08..a658e049 100644
--- a/hosts/freebsd-jenkins/usr/local/etc/sudoers
+++ b/hosts/freebsd-jenkins/usr/local/etc/sudoers
@@ -46,7 +46,7 @@ Defaults env_keep += "PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKA
## Locale settings
Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
# for reproducible builds:
-Defaults env_keep += "TZ"
+Defaults env_keep += "TZ DESTDIR"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
@@ -94,8 +94,12 @@ root ALL=(ALL) ALL
# for reproducible builds:
jenkins ALL= NOPASSWD: /usr/bin/make -j ? buildworld, \
/usr/bin/make -j ? buildkernel, \
+ /usr/bin/make -j ? installworld, \
+ /usr/bin/make -j ? installkernel, \
+ /usr/bin/make -j ? distribution, \
/bin/rm -r /usr/src /usr/obj, \
- /bin/rm -r /usr/obj/releasedir /usr/obj/destdir.*, \
+ /bin/rm -r /usr/obj/, \
+ /bin/mkdir /usr/obj, \
/bin/mkdir /usr/src /usr/obj, \
/usr/sbin/chown jenkins /usr/src /usr/obj