427 lines
16 KiB
Bash
Executable File
427 lines
16 KiB
Bash
Executable File
#!/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
|