From 0dc48d660e15a40c0c134c4d760646d7e289bd1c Mon Sep 17 00:00:00 2001 From: Steve McIntyre <93sam@debian.org> Date: Sun, 20 Jan 2013 01:03:24 +0000 Subject: [PATCH] Commit latest build scripts into debian-cd contrib ready for a release --- contrib/CONF.sh | 2 +- contrib/common.sh | 4 + contrib/cronjob.daily | 305 ++++++++++++++++++++++------------------- contrib/cronjob.weekly | 82 +++++++---- contrib/ftp.cron | 2 +- contrib/iso_run | 75 +++++++--- contrib/settings.sh | 4 +- contrib/testingcds | 51 +++---- 8 files changed, 297 insertions(+), 228 deletions(-) diff --git a/contrib/CONF.sh b/contrib/CONF.sh index e42ecdaa..05e2d028 100644 --- a/contrib/CONF.sh +++ b/contrib/CONF.sh @@ -265,7 +265,7 @@ do JIGDO_OPTS="$JIGDO_OPTS -jigdo-exclude $EXCL" done -export IGNORE_MISSING_BOOT_SCRIPT=1 +export IGNORE_MISSING_BOOT_SCRIPT=0 # Where to find the boot disks #export BOOTDISKS=$TOPDIR/ftp/skolelinux/boot-floppies diff --git a/contrib/common.sh b/contrib/common.sh index 81ea8e81..26156dae 100644 --- a/contrib/common.sh +++ b/contrib/common.sh @@ -32,6 +32,10 @@ build_description () { DESC="KDE CD";; LIGHTCD) DESC="XFCE/lxde CD";; + XFCECD) + DESC="XFCE CD";; + LXDECD) + DESC="lxde CD";; *) DESC="UNKNOWN";; esac diff --git a/contrib/cronjob.daily b/contrib/cronjob.daily index c7272ee6..ce0487d0 100755 --- a/contrib/cronjob.daily +++ b/contrib/cronjob.daily @@ -4,12 +4,33 @@ TOPDIR=$(dirname $0) . $TOPDIR/settings.sh +BUILDLOCK=$HOME/.debian-cd.lock export PUBDIRJIG=$PUBDIR/daily-builds export DATE_BUILD="$DATE-$BUILDNUM" export TESTING_SUITE=wheezy BUILDS_RUNNING="" -export SID_WANTED=1 +if [ "$RELEASE_BUILD"x = ""x ] ; then + export SID_WANTED=1 + export OUT_FREE_TST=${PUBDIRJIG}/${TESTING_SUITE}_d-i/${DATE_BUILD} + export OUT_FW_TST=${PUBDIRJIG}-firmware/${TESTING_SUITE}_d-i/${DATE_BUILD} + export OUT_FREE_SID=${PUBDIRJIG}/sid_d-i/${DATE_BUILD} + export OUT_FW_SID=${PUBDIRJIG}-firmware/sid_d-i/${DATE_BUILD} + export RSYNC_TARGET_FREE=/mnt/nfs-cdimage/daily-builds + export RSYNC_TARGET_FIRMWARE=/mnt/nfs-cdimage/unofficial/non-free/cd-including-firmware/daily-builds +else + export SID_WANTED=0 + export OUT_FREE_TST=${PUBDIRJIG}-$RELEASE_BUILD + export OUT_FW_TST=${PUBDIRJIG}-$RELEASE_BUILD-firmware + export OUT_FREE_SID="" + export OUT_FW_SID="" + export RSYNC_TARGET_FREE=/mnt/nfs-cdimage/.${RELEASE_BUILD} + export RSYNC_TARGET_FIRMWARE=/mnt/nfs-cdimage/unofficial/non-free/cd-including-firmware/.${RELEASE_BUILD} + export CONF=~/build.wheezy/CONF.sh.${RELEASE_BUILD} + export RELEASE_BUILD=$RELEASE_BUILD +fi +export BC_WANTED=0 +export NI_WANTED=1 . $TOPDIR/common.sh @@ -25,45 +46,41 @@ fi finalise_arch_dir () { ARCH=$1 - INST_VER=$2 - TYPE=$3 - if [ "$TYPE" = "free" ] ; then - ARCH_DIR=$PUBDIRJIG/${INST_VER}_d-i/$DATE_BUILD/$ARCH/ - elif [ "$TYPE" = "firmware" ] ; then - ARCH_DIR=$PUBDIRJIG-firmware/${INST_VER}_d-i/$DATE_BUILD/$ARCH - else - echo "Uncaught finalise_arch_dir TYPE \"$TYPE\"" - exit 1 - fi - - # Only keep things / do any work here if there are any files in the ARCH_DIR - NUM_FILES=`find $ARCH_DIR -type f | wc -l` - if [ $NUM_FILES = 0 ] ; then - rm -rf $ARCH_DIR - else - ARCH_ISO_DIR=${ARCH_DIR}/iso-cd - ARCH_JIGDO_DIR=${ARCH_DIR}/jigdo-cd - - cd $ARCH_ISO_DIR - DATESTRING=`date -u` - if [ "$TYPE" = "free" ] ; then - sed "s/ARCH/$ARCH/g;s/DATE/$DATESTRING/g;s/BUILDNUM/$BUILDNUM/g;s/INST_VER/$INST_VER/g" $TOPDIR/daily.html > HEADER.html + for OUT_DIR in $OUT_FREE_TST $OUT_FW_TST $OUT_FREE_SID $OUT_FW_SID; do + ARCH_DIR=$OUT_DIR/$ARCH + # Only keep things / do any work here if there are any files in the ARCH_DIR + NUM_FILES=`find $ARCH_DIR -type f | wc -l` + if [ $NUM_FILES = 0 ] ; then + rm -rf $ARCH_DIR else - sed "s/ARCH/$ARCH/g;s/DATE/$DATESTRING/g;s/BUILDNUM/$BUILDNUM/g;s/INST_VER/$INST_VER/g" $TOPDIR/daily-firmware.html > HEADER.html - fi - $TOPDIR/debian-cd/tools/imagesums $ARCH_JIGDO_DIR $SUMS_EXTENSION - cp $ARCH_JIGDO_DIR/*SUMS* $ARCH_ISO_DIR - cd .. - ~/build/mktorrent iso-cd/*iso - ~/build/mklist iso-cd/*iso - cp iso-cd/*SUMS* bt-cd - cd $TOPDIR - fi -} + ARCH_ISO_DIR=${ARCH_DIR}/iso-cd + ARCH_JIGDO_DIR=${ARCH_DIR}/jigdo-cd -export RSYNC_TARGET_FREE=/mnt/nfs-cdimage/daily-builds -export RSYNC_TARGET_FIRMWARE=/mnt/nfs-cdimage/unofficial/non-free/cd-including-firmware/daily-builds + if [ "$RELEASE_BUILD"x = ""x ] ; then + DATESTRING=`date -u` + case $ARCH_ISO_DIR in + *firmware*) + INFILE=$TOPDIR/daily-firmware.html;; + *) + INFILE=$TOPDIR/daily.html;; + esac + sed "s/ARCH/$ARCH/g;s/DATE/$DATESTRING/g;s/BUILDNUM/$BUILDNUM/g;s/INST_VER/$INST_VER/g" \ + $INFILE > $ARCH_DIR/HEADER.html + fi + $TOPDIR/debian-cd/tools/imagesums $ARCH_JIGDO_DIR $SUMS_EXTENSION + cp $ARCH_JIGDO_DIR/*SUMS* $ARCH_ISO_DIR + cd $ARCH_DIR + # Only make torrent files for release builds + if [ "$RELEASE_BUILD"x != ""x ] ; then + ~/build.wheezy/mktorrent iso-cd/*iso + cp iso-cd/*SUMS* bt-cd + fi + ~/build.wheezy/mklist iso-cd/*iso + cd $TOPDIR + fi + done +} if [ "$ARCHES"x = ""x ] ; then ARCHES="amd64 armel armhf i386 ia64 mips mipsel powerpc sparc multi-arch kfreebsd-amd64 kfreebsd-i386" @@ -76,7 +93,7 @@ if [ "$ARCHES_FIRMWARE"x = ""x ] ; then fi cd $TOPDIR && -if lockfile -r0 .debian-cd.lock ; then +if lockfile -r0 $BUILDLOCK ; then echo "svn update debian-cd:" cd debian-cd && svn cleanup ; svn up ; cd .. @@ -94,76 +111,66 @@ if lockfile -r0 .debian-cd.lock ; then rm -rf $PUBDIRJIG/$arch arch_error="" arch_start=`now` - - echo "Building $arch:" - for ARCHDIR in \ - ${PUBDIRJIG}/${TESTING_SUITE}_d-i/${DATE_BUILD}/${arch} \ - ${PUBDIRJIG}-firmware/${TESTING_SUITE}_d-i/${DATE_BUILD}/${arch} \ - ; do - mkdir -p ${ARCHDIR}/iso-cd ${ARCHDIR}/jigdo-cd - done - if [ "$SID_WANTED" = "1" ] ; then - for ARCHDIR in \ - ${PUBDIRJIG}/sid_d-i/${DATE_BUILD}/${arch} \ - ${PUBDIRJIG}-firmware/sid_d-i/${DATE_BUILD}/${arch} \ - ; do - mkdir -p ${ARCHDIR}/iso-cd ${ARCHDIR}/jigdo-cd - done - fi + for OUT_DIR in $OUT_FREE_TST $OUT_FW_TST $OUT_FREE_SID $OUT_FW_SID; do + mkdir -p ${OUT_DIR}/${arch}/iso-cd ${OUT_DIR}/${arch}/jigdo-cd + done if [ "$arch" = "multi-arch" ] ; then for arch1 in $ARCHES_FIRMWARE; do if [ "$arch" = "$arch1" ] ; then if [ "$SID_WANTED" = "1" ] ; then - build_started SIDNIFIRMWARE + if [ "$NI_WANTED" = "1" ] ; then + build_started SIDNIFIRMWARE + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ + FORCE_FIRMWARE=1 CDNAME=firmware \ + TASK=debian-installer+kernel LOGAPPEND="-1" \ + MAXISOS=ALL MAXJIGDOS=ALL \ + DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \ + DI_WWW_HOME=default ./testingcds "amd64 i386" & + fi + fi + + if [ "$NI_WANTED" = "1" ] ; then + build_started TESTINGNIFIRMWARE OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ FORCE_FIRMWARE=1 CDNAME=firmware \ TASK=debian-installer+kernel LOGAPPEND="-1" \ MAXISOS=ALL MAXJIGDOS=ALL \ - DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \ - DI_WWW_HOME=default ./testingcds "amd64 i386" & + DI=${TESTING_SUITE} DI_DIST="$DI_DIST" VARIANTS=xen \ + ./testingcds "amd64 i386" & fi - - build_started TESTINGNIFIRMWARE - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ - FORCE_FIRMWARE=1 CDNAME=firmware \ - TASK=debian-installer+kernel LOGAPPEND="-1" \ - MAXISOS=ALL MAXJIGDOS=ALL \ - DI=${TESTING_SUITE} DI_DIST="$DI_DIST" VARIANTS=xen \ - ./testingcds "amd64 i386" & fi done if [ "$SID_WANTED" = "1" ] ; then - build_started SIDNI + if [ "$NI_WANTED" = "1" ] ; then + build_started SIDNI + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ + TASK=debian-installer+kernel LOGAPPEND="-1" \ + MAXISOS=ALL MAXJIGDOS=ALL \ + DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \ + DI_WWW_HOME=default ./testingcds "amd64 i386" & + fi + fi + + if [ "$NI_WANTED" = "1" ] ; then + build_started TESTINGNI OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ TASK=debian-installer+kernel LOGAPPEND="-1" \ MAXISOS=ALL MAXJIGDOS=ALL \ - DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \ - DI_WWW_HOME=default ./testingcds "amd64 i386" & + DI=${TESTING_SUITE} DI_DIST="$DI_DIST" VARIANTS=xen \ + ./testingcds "amd64 i386" & fi - build_started TESTINGNI - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ - TASK=debian-installer+kernel LOGAPPEND="-1" \ - MAXISOS=ALL MAXJIGDOS=ALL \ - DI=${TESTING_SUITE} DI_DIST="$DI_DIST" VARIANTS=xen \ - ./testingcds "amd64 i386" & - catch_parallel_builds rm -rf $PUBDIRJIG/$arch if [ "$arch_error"x = "none"x ] ; then - finalise_arch_dir $arch ${TESTING_SUITE} free - finalise_arch_dir $arch ${TESTING_SUITE} firmware - if [ "$SID_WANTED" = "1" ] ; then - finalise_arch_dir $arch sid free - finalise_arch_dir $arch sid firmware - fi + finalise_arch_dir $arch fi else # end of m-a @@ -171,64 +178,71 @@ if lockfile -r0 .debian-cd.lock ; then for arch1 in $ARCHES_FIRMWARE; do if [ "$arch" = "$arch1" ] ; then if [ "$SID_WANTED" = "1" ] ; then - build_started SIDNIFIRMWARE + if [ "$NI_WANTED" = "1" ] ; then + build_started SIDNIFIRMWARE + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + FORCE_FIRMWARE=1 CDNAME=firmware \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ + TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ + DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ + ./testingcds "$arch" & + fi + fi + + if [ "$NI_WANTED" = "1" ] ; then + build_started TESTINGNIFIRMWARE OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ FORCE_FIRMWARE=1 CDNAME=firmware \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ - DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ + DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ ./testingcds "$arch" & fi - - build_started TESTINGNIFIRMWARE - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - FORCE_FIRMWARE=1 CDNAME=firmware \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ - TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ - DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ - ./testingcds "$arch" & fi done if [ "$SID_WANTED" = "1" ] ; then - build_started SIDBC + if [ "$BC_WANTED" = "1" ] ; then + build_started SIDBC + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=1 \ + TASK=debian-installer MAXISOS=ALL MAXJIGDOS=ALL \ + DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ + ./testingcds "$arch" & + fi + + if [ "$NI_WANTED" = "1" ] ; then + build_started SIDNI + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ + TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ + DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ + ./testingcds "$arch" & + fi + fi + + if [ "$BC_WANTED" = "1" ] ; then + build_started TESTINGBC OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=1 \ TASK=debian-installer MAXISOS=ALL MAXJIGDOS=ALL \ - DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ - ./testingcds "$arch" & - - build_started SIDNI - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ - TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ - DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \ + DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ ./testingcds "$arch" & fi - build_started TESTINGBC - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=1 \ - TASK=debian-installer MAXISOS=ALL MAXJIGDOS=ALL \ - DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ - ./testingcds "$arch" & - - build_started TESTINGNI - OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ - NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ - TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ - DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ - ./testingcds "$arch" & + if [ "$NI_WANTED" = "1" ] ; then + build_started TESTINGNI + OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ + NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ + TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ + DI=${TESTING_SUITE} DI_DIST="$DI_DIST" \ + ./testingcds "$arch" & + fi catch_parallel_builds rm -rf $PUBDIRJIG/$arch if [ "$arch_error"x = "none"x ] ; then - finalise_arch_dir $arch ${TESTING_SUITE} free - finalise_arch_dir $arch ${TESTING_SUITE} firmware - if [ "$SID_WANTED" = "1" ] ; then - finalise_arch_dir $arch sid free - finalise_arch_dir $arch sid firmware - fi + finalise_arch_dir $arch fi fi # end of normal arch build @@ -236,30 +250,37 @@ if lockfile -r0 .debian-cd.lock ; then if [ "$NOSYNC"x = ""x ] ; then - echo "Clean up old builds on build machine:" - for DIR in $PUBDIRJIG/* $PUBDIRJIG-firmware/* ; do - cd $DIR - for THIS in 20* ; do - if [ $THIS != $DATE-$BUILDNUM ] ; then - echo " Deleting $DIR/$THIS" - rm -rf $DIR/$THIS - fi + if [ "$RELEASE_BUILD"x = ""x ] ; then + echo "Clean up old builds on build machine:" + for DIR in $PUBDIRJIG/* $PUBDIRJIG-firmware/* ; do + cd $DIR + for THIS in 20* ; do + if [ $THIS != $DATE-$BUILDNUM ] ; then + echo " Deleting $DIR/$THIS" + rm -rf $DIR/$THIS + fi + done done - done - echo "Sync normal builds across to output dir: $RSYNC_TARGET_FREE" - rsync -rHltv $PUBDIRJIG/ $RSYNC_TARGET_FREE/ - echo "Remove extra builds for normal dailies:" - ~/bin/remove_extra_dailies $RSYNC_TARGET_FREE "$ARCHES" - - echo "Sync firmware builds across to output dir: $RSYNC_TARGET_FIRMWARE" - rsync -rHltv $PUBDIRJIG-firmware/ $RSYNC_TARGET_FIRMWARE/ - echo "Remove extra builds for firmware dailies:" - ~/bin/remove_extra_dailies $RSYNC_TARGET_FIRMWARE "$ARCHES_FIRMWARE" - - echo "$DATE-$BUILDNUM" > $RSYNC_TARGET_FREE/daily-trace + echo "Sync normal builds across to output dir: $RSYNC_TARGET_FREE" + rsync -rHltv $PUBDIRJIG/ $RSYNC_TARGET_FREE/ + echo "Remove extra builds for normal dailies:" + ~/bin/remove_extra_dailies $RSYNC_TARGET_FREE "$ARCHES" + + echo "Sync firmware builds across to output dir: $RSYNC_TARGET_FIRMWARE" + rsync -rHltv $PUBDIRJIG-firmware/ $RSYNC_TARGET_FIRMWARE/ + echo "Remove extra builds for firmware dailies:" + ~/bin/remove_extra_dailies $RSYNC_TARGET_FIRMWARE "$ARCHES_FIRMWARE" + + echo "$DATE-$BUILDNUM" > $RSYNC_TARGET_FREE/daily-trace + else # Release build + echo "Sync normal builds for $RELEASE_BUILD across to output dir: $RSYNC_TARGET_FREE" + rsync -rHltv $OUT_FREE_TST/ $RSYNC_TARGET_FREE/ + echo "Sync firmware builds for $RELEASE_BUILD across to output dir: $RSYNC_TARGET_FIRMWARE" + rsync -rHltv $OUT_FW_TST/ $RSYNC_TARGET_FIRMWARE/ + fi fi cd $TOPDIR - rm -f .debian-cd.lock + rm -f $BUILDLOCK fi diff --git a/contrib/cronjob.weekly b/contrib/cronjob.weekly index f724beef..539afcb2 100755 --- a/contrib/cronjob.weekly +++ b/contrib/cronjob.weekly @@ -6,27 +6,32 @@ export TOPDIR=$(dirname $0) export PUBDIRJIG=$PUBDIR/weekly-builds export DATE_BUILD="$DATE-$BUILDNUM" +BUILDLOCK=$HOME/.debian-cd.lock . $TOPDIR/common.sh # Make sure the machine isn't rebooted while we're busy reboot_lock -export RSYNC_TARGET=/mnt/nfs-cdimage/weekly-builds +# Uncomment the following to use daily d-i builds for weekly images +# rather than what's in the archive +USE_DAILY_DI=Y -# If we're doing a normal set of daily/weekly builds, leave the -# checksum filenames alone. Otherwise, make life easier for people -# combining things later and append a suitable name as we build. -if [ "$DEBVERSION"x != "testing"x ] ; then +if [ "$RELEASE_BUILD"x = ""x ] ; then + export RSYNC_TARGET=/mnt/nfs-cdimage/weekly-builds +else + export RSYNC_TARGET=/mnt/nfs-cdimage/.${RELEASE_BUILD} + export CONF=~/build.wheezy/CONF.sh.${RELEASE_BUILD} + export RELEASE_BUILD=$RELEASE_BUILD + # If we're doing a normal set of daily/weekly builds, leave the + # checksum filenames alone. Otherwise, make life easier for people + # combining things later and append a suitable name as we build. export SUMS_EXTENSION=".large" + USE_DAILY_DI=N fi . images4testing_d-i -# Uncomment the following to use daily d-i builds for weekly images -# rather than what's in the archive -#USE_DAILY_DI=Y - if [ "$USE_DAILY_DI"x = "Y"x ] ; then export DI=sid export DI_WWW_HOME=default @@ -43,7 +48,7 @@ if [ "$ARCHES"x = ""x ] ; then ARCHES="i386 source amd64 multi powerpc armel armhf ia64 mips mipsel s390 s390x sparc kfreebsd-amd64 kfreebsd-i386" fi -if lockfile -r0 $TOPDIR/.debian-cd.lock ; then +if lockfile -r0 $BUILDLOCK ; then # echo "NOT checking for svn updates" echo "svn update debian-cd" cd debian-cd && svn cleanup; svn up ; cd .. @@ -71,10 +76,11 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then unset FORCE_CD_SIZE1 export MAX_PKG_SIZE=500000000 case $arch in - i386|amd64|source) - export MAXISOS=ALL; export MAXJIGDOS=ALL ;; - powerpc) + i386|amd64) export MAXISOS=8; export MAXJIGDOS=ALL ;; + source) + # don't make CD ISOs for source, DVD will do + export MAXISOS=0; export MAXJIGDOS=ALL ;; *) export MAXISOS=3; export MAXJIGDOS=ALL ;; esac @@ -88,7 +94,7 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then export MAX_PKG_SIZE=999999999999 case $arch in i386|amd64) - export MAXISOS=ALL + export MAXISOS=3 export MAXJIGDOS=ALL export VARIANTS=xen # Special case: make DVD1 fit on a 4GB USB @@ -97,6 +103,11 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then ;; source) export MAXISOS=ALL; export MAXJIGDOS=ALL ;; + powerpc) + # Special case: make DVD1 fit on a 4GB USB + # stick (#686471) + export FORCE_CD_SIZE1=STICK4GB + export MAXISOS=1; export MAXJIGDOS=ALL ;; *) export MAXISOS=1; export MAXJIGDOS=ALL ;; esac @@ -151,7 +162,7 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then esac fi - # kde and xfce/lxde cds + # kde, xfce and lxde cds if [ "$arch"x != "source"x ] && [ "$NOCD"x = ""x ] ; then if [ "$NOKDECD"x = ""x ] ; then export MAX_PKG_SIZE=300000000 @@ -166,15 +177,28 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then ./testingcds "$arch" & fi - if [ "$NOLIGHTCD"x = ""x ] ; then + if [ "$NOXFCECD"x = ""x ] ; then export MAX_PKG_SIZE=300000000 - export DESKTOP=light + export DESKTOP=xfce export MAXISOS=1; export MAXJIGDOS=1 unset FORCE_CD_SIZE1 export VARIANTS="" - build_started LIGHTCD - INSTALLER_CD=B TASK=Debian-light \ - KERNEL_PARAMS='desktop=light' \ + build_started XFCECD + INSTALLER_CD=5 TASK=Debian-xfce \ + KERNEL_PARAMS='desktop=xfce' \ + MAXCDS=1 MAXISOS=ALL MAXJIGDOS=ALL \ + ./testingcds "$arch" & + fi + + if [ "$NOLXDECD"x = ""x ] ; then + export MAX_PKG_SIZE=300000000 + export DESKTOP=lxde + export MAXISOS=1; export MAXJIGDOS=1 + unset FORCE_CD_SIZE1 + export VARIANTS="" + build_started LXDECD + INSTALLER_CD=A TASK=Debian-lxde \ + KERNEL_PARAMS='desktop=lxde' \ MAXCDS=1 MAXISOS=ALL MAXJIGDOS=ALL \ ./testingcds "$arch" & fi @@ -184,10 +208,10 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then if [ "$NOSYNC"x = ""x ] ; then if [ "$arch_error"x = "none"x ] ; then - echo " Running ~/build/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch &" - ~/build/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch & + echo " Running ~/build.wheezy/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch &" + ~/build.wheezy/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch & else - ~/build/report_build_error $RSYNC_TARGET $arch "$arch_error" + ~/build.wheezy/report_build_error $RSYNC_TARGET $arch "$arch_error" fi fi else # multi @@ -229,10 +253,10 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then if [ "$NOSYNC"x = ""x ] ; then if [ "$arch_error"x = "none"x ] || [ "$arch_error"x = ""x ] ; then - echo " Running ~/build/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch &" - ~/build/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch & + echo " Running ~/build.wheezy/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch &" + ~/build.wheezy/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch & else - ~/build/report_build_error $RSYNC_TARGET multi-arch "$arch_error" + ~/build.wheezy/report_build_error $RSYNC_TARGET multi-arch "$arch_error" fi fi fi # end of multi @@ -240,8 +264,8 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then done if [ "$NOFW"x = ""x ] ; then - ~/build/generate_firmware_images wheezy - ~/build/generate_firmware_images sid + ~/build.wheezy/generate_firmware_images wheezy + ~/build.wheezy/generate_firmware_images sid fi if [ "$NOSNAP"x = ""x ] ; then @@ -250,5 +274,5 @@ if lockfile -r0 $TOPDIR/.debian-cd.lock ; then date -u > $PUBDIRJIG/trace/cdimage.debian.org - rm -f $TOPDIR/.debian-cd.lock + rm -f $BUILDLOCK fi diff --git a/contrib/ftp.cron b/contrib/ftp.cron index 97e7d3e3..0fa96200 100755 --- a/contrib/ftp.cron +++ b/contrib/ftp.cron @@ -7,7 +7,7 @@ TOPDIR=`pwd` . $TOPDIR/.ftp.buildnum MYCOPY=$TOPDIR/.ftp.cron -BUILDLOCK=$TOPDIR/.debian-cd.lock +BUILDLOCK=$HOME/.debian-cd.lock MAILLIST=$TOPDIR/.debian-cd.mail # Change these to abort daily/weekly builds as appropriate diff --git a/contrib/iso_run b/contrib/iso_run index ac893848..44b1aa0e 100755 --- a/contrib/iso_run +++ b/contrib/iso_run @@ -6,7 +6,7 @@ PUBDIRJIG=$1 RSYNC_TARGET=$2 ARCH=$3 -LOG=~/build/log/$ARCH.iso_run +LOG=~/build.wheezy/log/$ARCH.iso_run HOSTNAME=`hostname -f` LOCK=~/iso_run.lock START=`date -u +%H:%M:%S` @@ -21,19 +21,21 @@ trap "rm -f $LOCK > /dev/null 2>&1" exit rm -f $LOG # Given an ISO image: -# 1. create the torrent file +# 1. create the torrent file if desired (only for release builds) # 2. copy all of them into place process_iso() { FILE=$1 OUTDIR=$2 - BTFILE=`echo $FILE.torrent | sed 's/iso-/bt-/'` - ~/build/mktorrent $FILE >> $LOG - echo $OUTDIR/$FILE >> $LOG cp -a $FILE $OUTDIR/$FILE - echo $OUTDIR/$BTFILE >> $LOG - cp -a $BTFILE $OUTDIR/$BTFILE + + if [ "$RELEASE_BUILD"x != ""x ] ; then + ~/build.wheezy/mktorrent $FILE >> $LOG + BTFILE=`echo $FILE.torrent | sed 's/iso-/bt-/'` + echo $OUTDIR/$BTFILE >> $LOG + cp -a $BTFILE $OUTDIR/$BTFILE + fi } # Poor man's rsync, but with some local optimisations @@ -42,12 +44,20 @@ copy_files() { TARGET=$2 ARCHES=$3 + DISKTYPES="cd dvd bd dlbd" + DIRTYPES="iso jigdo list" + + # Only make torrent files and dirs for release builds + if [ "$RELEASE_BUILD"x != ""x ] ; then + DIRTYPES="$DIRTYPES bt" + fi + CURRENT=`pwd` cd $SRC for ARCH in $ARCHES do - for DISKTYPE in dvd cd bd dlbd; do - for DIRTYPE in bt iso jigdo list; do + for DISKTYPE in $DISKTYPES; do + for DIRTYPE in $DIRTYPES; do mkdir -p -m775 $TARGET/$ARCH.tmp/$DIRTYPE-$DISKTYPE done done @@ -56,25 +66,46 @@ copy_files() { find . -name '*.jigdo' -o -name '*.template' \ -o -name '*.list.gz' -o -name '*SUMS*' | \ xargs tar cf - | (cd $TARGET/$ARCH.tmp/ && tar xvf -) >> $LOG - + + # Only make torrent files and dirs for release builds rm -rf bt-* - mkdir bt-cd bt-dvd bt-bd bt-dlbd - for FILE in iso-*/*.iso; do - if [ -e $FILE ] ; then - process_iso $FILE $TARGET/$ARCH.tmp - fi - done - for DISKTYPE in dvd cd bd dlbd; do - for FILE in $TARGET/$ARCH.tmp/iso-$DISKTYPE/*SUMS*; do + for DISKTYPE in $DISKTYPES; do + if [ "$RELEASE_BUILD"x != ""x ] ; then + mkdir bt-$DISKTYPE + fi + for FILE in iso-$DISKTYPE/*.iso; do if [ -e $FILE ] ; then - cp -al $FILE $TARGET/$ARCH.tmp/bt-$DISKTYPE/ + process_iso $FILE $TARGET/$ARCH.tmp fi done + if [ "$RELEASE_BUILD"x != ""x ] ; then + for FILE in $TARGET/$ARCH.tmp/iso-$DISKTYPE/*SUMS*; do + if [ -e $FILE ] ; then + cp -al $FILE $TARGET/$ARCH.tmp/bt-$DISKTYPE/ + fi + done + fi done - DATE=`date -u` - sed "s/ARCH/$ARCH/g;s/DATE/$DATE/g" ~/build/weekly.html \ - > $TARGET/$ARCH.tmp/HEADER.html + + if [ "$RELEASE_BUILD"x = ""x ] ; then + # Only populate the HEADER.html file for regular weekly + # builds; we don't want it for releases + DATE=`date -u` + sed "s/ARCH/$ARCH/g;s/DATE/$DATE/g" ~/build.wheezy/weekly.html \ + > $TARGET/$ARCH.tmp/HEADER.html + fi + + # Now clean up any directories without any real content + # (i.e. empty dir, or just containing checksum files) + for dir in $TARGET/$ARCH.tmp/*-* ; do + num=`ls -l $dir | grep -v -e SUMS -e total | wc -l` + if [ $num = 0 ] ; then + rm -rf $dir + fi + done + cd .. + done cd $CURRENT } diff --git a/contrib/settings.sh b/contrib/settings.sh index d89e31fc..efda7865 100644 --- a/contrib/settings.sh +++ b/contrib/settings.sh @@ -5,8 +5,8 @@ export HOSTNAME=`hostname -f` export PUBDIR=/org/cdbuilder.debian.org/dst/deb-cd export MIRROR=/org/cdbuilder.debian.org/src/ftp/debian -export BASEDIR=~/build/debian-cd -export MKISOFS=~/build/mkisofs/usr/bin/mkisofs +export BASEDIR=~/build.wheezy/debian-cd +export MKISOFS=~/build.wheezy/mkisofs/usr/bin/mkisofs if [ "$DATE"x = ""x ] ; then export DATE=`date -u +%Y%m%d` fi diff --git a/contrib/testingcds b/contrib/testingcds index 63db31a6..feec2314 100644 --- a/contrib/testingcds +++ b/contrib/testingcds @@ -13,11 +13,11 @@ #set -x if [ "$CONF"x = ""x ] ; then - CONF=~/build/CONF.sh + CONF=~/build.wheezy/CONF.sh fi export CF=$CONF if [ "$DCD_DIR"x = ""x ] ; then - DCD_DIR=~/build/debian-cd + DCD_DIR=~/build.wheezy/debian-cd fi export CF=$CONF @@ -145,15 +145,29 @@ START=`now` if ./build.sh "$ARCH" >>"$LOGFILE" 2>&1 ; then # if it went ok get things ready for publishing # we treat the daily netinst images in a different way - if [ "$INSTALLER_CD" = "1" -o "$INSTALLER_CD" = "2" ] ; then + if [ "$INSTALLER_CD" = "1" ] || \ + [ "$INSTALLER_CD" = "2" ] || \ + [ "$INSTALLER_CD" = "C" ] ; then ################################## # NETINST STUFF ################################## - ARCHDIR="$PUBDIRJIG"/${DI}_d-i/$DATE_BUILD/$OUTARCH - mkdir -p $ARCHDIR/list-cd + if [ "$INSTALLER_CD" = "C" ] ; then + if [ "${DI}" = "sid" ] ; then + ARCHDIR=$OUT_FW_SID/$OUTARCH + else + ARCHDIR=$OUT_FW_TST/$OUTARCH + fi + else # non-FW build + if [ "${DI}" = "sid" ] ; then + ARCHDIR=$OUT_FREE_SID/$OUTARCH + else + ARCHDIR=$OUT_FREE_TST/$OUTARCH + fi + fi + mkdir -p $ARCHDIR/list-cd # put the isos and jigdos in their place for i in "$OUT"/*-1.iso; do BASE=`basename $i .iso` @@ -173,31 +187,6 @@ if ./build.sh "$ARCH" >>"$LOGFILE" 2>&1 ; then mkdir -p "$PUBDIRJIG"/$OUTARCH echo -e "start=$START\nend=$END\nerror=0\nlogfile=$RUN\n" > "$PUBDIRJIG"/$OUTARCH/$TRACEFILE - elif [ "$INSTALLER_CD" = "C" ] ; then - - ################################## - # FIRMWARE NETINST STUFF - ################################## - - ARCHDIR="$PUBDIRJIG"-firmware/${DI}_d-i/$DATE_BUILD/$OUTARCH - - # put the isos and jigdos in their place - for i in "$OUT"/*-1.iso; do - BASE=`basename $i .iso` - NETINSTNAME=`echo $BASE | sed 's/-BC-1/-businesscard/g;s/-NETINST-1/-netinst/g'` - mv $OUT/$BASE.iso $ARCHDIR/iso-cd/$NETINSTNAME.iso - cat $OUT/$BASE.jigdo | \ - sed 's/-BC-1/-businesscard/g;s/-NETINST-1/-netinst/g' | \ - gzip --best --no-name > $ARCHDIR/jigdo-cd/$NETINSTNAME.jigdo - rm $OUT/$BASE.jigdo - mv $OUT/$BASE.template $ARCHDIR/jigdo-cd/$NETINSTNAME.template - # Make sure that the ISO is as new/newer than the jigdo file; #587774 - touch $ARCHDIR/iso-cd/$NETINSTNAME.iso - done - rm -f "$OUT"/* - END=`now` - mkdir -p "$PUBDIRJIG"/$OUTARCH - echo -e "start=$START\nend=$END\nerror=0\nlogfile=$RUN\n" > "$PUBDIRJIG"/$OUTARCH/$TRACEFILE else ####################################### @@ -256,7 +245,7 @@ if ./build.sh "$ARCH" >>"$LOGFILE" 2>&1 ; then for i in $MYEMAIL do - grep -e "extents written" -e "Written to medi." "$LOGFILE"|mail -s "testingcds $RUN went ok" "$i" + grep -e "extents written" -e "Written to medi." "$LOGFILE"|mail -s "$RELEASE_BUILD testingcds $RUN ($OUTARCH $DISKTYPE) went ok" "$i" done overview "$RUN" success