#!/bin/bash TOPDIR=$(dirname $0) if [ "$TOPDIR" = "." ] ; then TOPDIR=`pwd` fi export TOPDIR . $TOPDIR/settings.sh export PUBDIRJIG=$PUBDIR/weekly-builds export PUBDIROSTRACE=/mnt/nfs-cdimage/.live/trace-os export PUBDIRLIVETRACE=/mnt/nfs-cdimage/.live/trace-live export DATE_BUILD="$DATE-$BUILDNUM" BUILDLOCK=$HOME/.debian-cd.lock CD_I_F="/mnt/nfs-cdimage/unofficial/non-free/cd-including-firmware" . $TOPDIR/common.sh # Make sure the machine isn't rebooted while we're busy reboot_lock # Uncomment the following to use daily d-i builds for these images # rather than what's in the archive USE_DAILY_DI=Y if [ "$RELEASE_BUILD"x = ""x ] ; then export RSYNC_TARGET=/mnt/nfs-cdimage/weekly-builds export RSYNC_TARGET_FIRMWARE=${CD_I_F}/weekly-builds else export RSYNC_TARGET=/mnt/nfs-cdimage/.${RELEASE_BUILD}/debian-cd export RSYNC_TARGET_FIRMWARE=${CD_I_F}/.${RELEASE_BUILD}/debian-cd export CONF=~/build.jessie/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 EXTENSION=".large" USE_DAILY_DI=N fi . images4testing_d-i if [ "$USE_DAILY_DI"x = "Y"x ] ; then export DI=sid export DI_WWW_HOME=default export DI_DIR="$ARCH_DI_DIR" else unset DI_WWW_HOME fi export DI_DIST export DI_CODENAME BUILDS_RUNNING="" export NOOPENSTACK export NOLIVE rm -f $PUBDIRLIVETRACE $PUBDIROSTRACE ~/build.jessie/cronjob.weekly-live & if lockfile -r0 $BUILDLOCK ; then # echo "NOT checking for git updates" echo "git update debian-cd" cd debian-cd && git pull ; cd .. # Work out the default desktop, and do *not* build a CD1 for that # desktop - it'll be done in the full set anyway TASKSEL_DEB=$(./debian-cd/tools/which_deb ${MIRROR} testing task-desktop binary) DEFAULT_DESKTOP=$(dpkg --info ${MIRROR}/${TASKSEL_DEB} | awk '/Recommends: task-.*-desktop/ {split($2,a,"-"); print toupper(a[2])}') echo default desktop is $DEFAULT_DESKTOP, drop CD1 for that desktop export NO${DEFAULT_DESKTOP}CD=1 # echo "NOT checking for popcon updates" if [ "$NOPOPCON"x = ""x ] ; then cd debian-cd && ./tools/update_popcon tasks/jessie/popularity-contest ; cd .. fi cd $TOPDIR mkdir -p $PUBDIRJIG/trace mkdir -p $RSYNC_TARGET $RSYNC_TARGET_FIRMWARE for arch in $ARCHES; do # Reset envvars for next iteration arch_error="" arch_start=`now` if [ "$arch" != multi-arch ] ; then rm -rf $PUBDIRJIG/$arch $PUBDIRJIG-firmware/$arch mkdir -p $PUBDIRJIG/$arch if $(arch_has_firmware $arch) ; then mkdir -p $PUBDIRJIG-firmware/$arch fi # export DI_DIR="$ARCH_DI_DIR" export VARIANTS="" # Full CD set if [ "$NOCD"x = ""x ] && [ "$NOFULLCD"x = ""x ] ; then unset FORCE_CD_SIZE1 export MAX_PKG_SIZE=500000000 case $arch in 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 build_started CD ./testingcds "$arch" & fi # Full DVD set if [ "$NODVD"x = ""x ] ; then unset FORCE_CD_SIZE1 export MAX_PKG_SIZE=999999999999 case $arch in i386|amd64) export MAXISOS=3 export MAXJIGDOS=ALL export VARIANTS=xen # Special case: make DVD1 fit on a 4GB USB # stick (#612074) export FORCE_CD_SIZE1=STICK4GB ;; source) export MAXISOS=ALL; export MAXJIGDOS=ALL ;; powerpc|arm64) # Special cases: make DVD1 fit on a 4GB USB # stick export FORCE_CD_SIZE1=STICK4GB export MAXISOS=1; export MAXJIGDOS=ALL ;; *) export MAXISOS=1; export MAXJIGDOS=ALL ;; esac export DESKTOP=all build_started DVD INSTALLER_CD=3 TASK=Debian-all \ KERNEL_PARAMS='desktop=all' \ ./testingcds "$arch" & fi # Full BD set if [ "$NOBD"x = ""x ] ; then unset DESKTOP unset FORCE_CD_SIZE1 export MAX_PKG_SIZE=999999999999 case $arch in i386|amd64|source) export MAXISOS=0 export MAXJIGDOS=ALL export DESKTOP=all export VARIANTS=xen build_started BD INSTALLER_CD=9 TASK=Debian-all \ KERNEL_PARAMS='desktop=all' \ ./testingcds "$arch" & ;; *) echo " Not running BD build for $arch" ;; esac fi # Full DLBD set if [ "$NOBD"x = ""x ] && [ "$NODLBD"x = ""x ] ; then unset DESKTOP unset FORCE_CD_SIZE1 export MAX_PKG_SIZE=999999999999 case $arch in i386|amd64|source) export MAXISOS=0 export MAXJIGDOS=ALL export DESKTOP=all export VARIANTS=xen build_started DLBD INSTALLER_CD=D TASK=Debian-all \ KERNEL_PARAMS='desktop=all' \ ./testingcds "$arch" & ;; *) echo " Not running DLBD build for $arch" ;; esac fi # individual desktop cds: gnome, kde, xfce. lxde if [ "$arch"x != "source"x ] && [ "$NOCD"x = ""x ] ; then if [ "$NOGNOMECD"x = ""x ] ; then export MAX_PKG_SIZE=300000000 export DESKTOP=gnome export MAXISOS=1; export MAXJIGDOS=1 unset FORCE_CD_SIZE1 export VARIANTS="" build_started GNOMECD INSTALLER_CD=E TASK=Debian-gnome \ KERNEL_PARAMS='desktop=gnome' \ MAXCDS=1 MAXISOS=ALL MAXJIGDOS=ALL \ ./testingcds "$arch" & fi if [ "$NOKDECD"x = ""x ] ; then export MAX_PKG_SIZE=300000000 export DESKTOP=kde export MAXISOS=1; export MAXJIGDOS=1 unset FORCE_CD_SIZE1 export VARIANTS="" build_started KDECD INSTALLER_CD=4 TASK=Debian-kde \ KERNEL_PARAMS='desktop=kde' \ MAXCDS=1 MAXISOS=ALL MAXJIGDOS=ALL \ ./testingcds "$arch" & fi if [ "$NOXFCECD"x = ""x ] ; then export MAX_PKG_SIZE=300000000 export DESKTOP=xfce export MAXISOS=1; export MAXJIGDOS=1 unset FORCE_CD_SIZE1 export VARIANTS="" 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 fi # netinst CD if [ "$arch"x != "source"x ] && [ "$NOCD"x = ""x ] && [ "$NONI"x = ""x ] ; then export MAX_PKG_SIZE=300000000 export DESKTOP=all export MAXISOS=1; export MAXJIGDOS=1 unset FORCE_CD_SIZE1 export VARIANTS="" export OUT_FREE_SID=$PUBDIRJIG export OUT_FREE_TST=$PUBDIRJIG export OUT_FW_SID=${PUBDIRJIG}-firmware export OUT_FW_TST=${PUBDIRJIG}-firmware build_started NI OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ KERNEL_PARAMS="desktop=all" \ DESKTOP=all VARIANTS=xen \ TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ DI=${DI} DI_DIST=${DI} \ ./testingcds "$arch" & if $(arch_has_firmware $arch) ; then build_started NIFIRMWARE OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ FORCE_FIRMWARE=1 CDNAME=firmware \ KERNEL_PARAMS="desktop=all" \ DESKTOP=all VARIANTS=xen \ TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ DI=${DI} DI_DIST=${DI} \ ./testingcds "$arch" & fi if [ "$arch" = "i386" ] ; then build_started MACNI OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=F \ BOOT_METHODS=BIOS CDNAME="debian-mac" \ KERNEL_PARAMS="desktop=all" \ DESKTOP=all VARIANTS=xen \ TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \ DI=${DI} DI_DIST=${DI} \ ./testingcds "$arch" & fi fi catch_parallel_builds for dir in $PUBDIRJIG/$arch/jigdo-*; do generate_checksums_for_arch $arch $dir done if [ -d $PUBDIRJIG-firmware/$arch ] ; then for dir in ${PUBDIRJIG}-firmware/$arch/jigdo-*; do generate_checksums_for_arch $arch $dir done fi if [ "$NOSYNC"x = ""x ] ; then if [ "$arch_error"x = "none"x ] ; then if [ "$RELEASE_BUILD"x = ""x ] ; then echo "Signing checksums files using the automatic key" ~/build.jessie/sign-images $PUBDIRJIG $arch fi echo " Running ~/build.jessie/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch &" ~/build.jessie/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ $arch & if [ -d $PUBDIRJIG-firmware/$arch ] ; then if [ "$RELEASE_BUILD"x = ""x ] ; then echo "Signing checksums files using the automatic key" ~/build.jessie/sign-images $PUBDIRJIG-firmware $ARCH fi echo " Running ~/build.jessie/iso_run ${PUBDIRJIG}-firmware/ $RSYNC_TARGET_FIRMWARE/ $arch &" ~/build.jessie/iso_run ${PUBDIRJIG}-firmware/ $RSYNC_TARGET_FIRMWARE/ $arch & fi else ~/build.jessie/report_build_error $RSYNC_TARGET $arch "$arch_error" fi fi else # multi-arch rm -rf $PUBDIRJIG/multi-arch $PUBDIRJIG-firmware/multi-arch for i in iso-dvd jigdo-dvd iso-cd jigdo-cd; do mkdir -p $PUBDIRJIG/multi-arch/$i if $(arch_has_firmware multi-arch) ; then mkdir -p $PUBDIRJIG-firmware/multi-arch/$i fi done if [ "$NODVD"x = ""x ] ; then export MAX_PKG_SIZE=999999999999 export DESKTOP=all # Special case: make DVD1 fit on a 4GB USB # stick (#612074) build_started DVD export FORCE_CD_SIZE1=STICK4GB INSTALLER_CD=6 TASK=Debian-all \ KERNEL_PARAMS='desktop=all' \ MAXCDS=1 MAXISOS=ALL MAXJIGDOS=ALL \ VARIANTS=xen \ ./testingcds "i386 amd64 source" & fi if [ "$NOCD"x = ""x ] && [ "$NONI"x = ""x ] ; then export DESKTOP=all export OUT_FREE_SID=$PUBDIRJIG export OUT_FREE_TST=$PUBDIRJIG build_started NI OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \ KERNEL_PARAMS="desktop=all" \ DESKTOP=all VARIANTS=xen \ TASK=debian-installer+kernel \ MAXISOS=ALL MAXJIGDOS=ALL \ DI=${DI} DI_DIST=${DI} \ ./testingcds "amd64 i386" & if $(arch_has_firmware $arch) ; then build_started NIFIRMWARE OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \ NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \ FORCE_FIRMWARE=1 CDNAME=firmware \ KERNEL_PARAMS="desktop=all" \ DESKTOP=all VARIANTS=xen \ TASK=debian-installer+kernel \ MAXISOS=ALL MAXJIGDOS=ALL \ DI=${DI} DI_DIST=${DI} \ ./testingcds "amd64 i386" & fi fi catch_parallel_builds for dir in $PUBDIRJIG/multi-arch/jigdo-*; do generate_checksums_for_arch multi-arch $dir done if [ -d $PUBDIRJIG-firmware/multi-arch ] ; then for dir in ${PUBDIRJIG}-firmware/multi-arch/jigdo-*; do generate_checksums_for_arch multi-arch $dir done fi if [ "$NOSYNC"x = ""x ] ; then if [ "$arch_error"x = "none"x ] || [ "$arch_error"x = ""x ] ; then if [ "$RELEASE_BUILD"x = ""x ] ; then echo "Signing checksums files using the automatic key" ~/build.jessie/sign-images $PUBDIRJIG multi-arch fi echo " Running ~/build.jessie/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch &" ~/build.jessie/iso_run $PUBDIRJIG/ $RSYNC_TARGET/ multi-arch & if [ -d $PUBDIRJIG-firmware/multi-arch ] ; then if [ "$RELEASE_BUILD"x = ""x ] ; then echo "Signing checksums files using the automatic key" ~/build.jessie/sign-images $PUBDIRJIG-firmware multi-arch fi echo " Running ~/build.jessie/iso_run ${PUBDIRJIG}-firmware/ $RSYNC_TARGET_FIRMWARE/ multi-arch &" ~/build.jessie/iso_run ${PUBDIRJIG}-firmware/ $RSYNC_TARGET_FIRMWARE/ multi-arch & fi else ~/build.jessie/report_build_error $RSYNC_TARGET multi-arch "$arch_error" fi fi fi # end of multi-arch done # Generate HEADER.html files ~/build.jessie/generate_headers $RSYNC_TARGET ~/build.jessie/generate_headers $RSYNC_TARGET_FIRMWARE if [ "$NOFW"x = ""x ] ; then ~/build.jessie/generate_firmware_images jessie ~/build.jessie/generate_firmware_images sid fi if [ "$NOSNAP"x = ""x ] ; then ~/bin/weekly-snapshots fi catch_live_builds date -u > $PUBDIRJIG/trace/cdimage.debian.org rm -f $BUILDLOCK fi