[Qa-jenkins-scm] [Git][qa/jenkins.debian.net][master] drop obsolete g-i installation test jobs

Holger Levsen gitlab at salsa.debian.org
Wed Apr 14 22:38:32 BST 2021



Holger Levsen pushed to branch master at Debian QA / jenkins.debian.net


Commits:
ca6dcd2c by Holger Levsen at 2021-04-14T23:37:14+02:00
drop obsolete g-i installation test jobs

Signed-off-by: Holger Levsen <holger at layer-acht.org>

- - - - -


5 changed files:

- README
- bin/common-functions.sh
- − bin/g-i-installation.sh
- bin/maintenance.sh
- − job-cfg/g-i-installation.yaml


Changes:

=====================================
README
=====================================
@@ -38,12 +38,6 @@ All job result notifications should be sent to https://lists.alioth.debian.org/m
 
 There are over 1600 jobs being run currently. If you can think of ways to improve the usefulness of certain jobs, please do give feedback!
 
-=== g-i-installation jobs
-
-These jobs are deprecated, in future we will use https://openqa.debian.net instead.
-
-Installation tests with g-i, the graphical version of d-i, the debian-installer.
-
 === debian-installer jobs
 
 * 'd_i_build_$source_package'
@@ -88,8 +82,7 @@ Installation tests inside chroot environments.
 ** https://jenkins.debian.net/view/edu_devel/ about Debian Edu Buster
 ** https://jenkins.debian.net/view/edu_stable/ about Debian Edu Stretch
 
-* Then there are three types of jobs:
-** 'g-i-installation_$(distro)_$(profile)':
+* Then there are several types of jobs:
 *** tests installation of a profile with preseeding in the graphical installer,
 *** screenshots and logs are preserved and a movie created,
 *** testing clients against the main-server is planned too, for some time...


=====================================
bin/common-functions.sh
=====================================
@@ -222,7 +222,7 @@ jenkins_zombie_check() {
 	# and we dont know why and when that happens,
 	# so just report those zombies here.
 	#
-	ZOMBIES="$(ls -1d /var/lib/jenkins/jobs/* | egrep 'strip-nondeterminism|reprotest|reproducible_(builder_(amd64|i386|armhf|arm64)|setup_(pbuilder|schroot)_testing)|chroot-installation_wheezy|aptdpkg|reproducible_*(odc2a|odxu4c|opi2b)|stretch_install_education-thin-client-server|jessie_multiarch_versionskew|dpkg_stretch_find_trigger_cycles|sid_install_education-services|buster_install_education-services|lvc|chroot-installation_stretch_.*_upgrade_to_sid|piuparts_.*_jessie|udd_stretch|d-i_pu-build|debsums-tests_stretch|debian-archive-keyring-tests_stretch|chroot-installation_jessie|chroot-installation_.*education-lang-|kirkwoot|rebootstrap_.*_gcc[5-8]($|_)|brcm47xx|rebootstrap_kfreebsd|diffoscope_from_git_|disorderfs_from_git_master|diffoscope_pypi|diffoscope_freebsd|diffoscope_netbsd|diffoscope_macports|diffoscope_archlinux|openwrt-target-ath97|profitbricks|pool_buildinfos_suites' || true)"
+	ZOMBIES="$(ls -1d /var/lib/jenkins/jobs/* | egrep 'strip-nondeterminism|reprotest|reproducible_(builder_(amd64|i386|armhf|arm64)|setup_(pbuilder|schroot)_testing)|chroot-installation_wheezy|aptdpkg|reproducible_*(odc2a|odxu4c|opi2b)|stretch_install_education-thin-client-server|jessie_multiarch_versionskew|dpkg_stretch_find_trigger_cycles|sid_install_education-services|buster_install_education-services|lvc|chroot-installation_stretch_.*_upgrade_to_sid|piuparts_.*_jessie|udd_stretch|d-i_pu-build|debsums-tests_stretch|debian-archive-keyring-tests_stretch|chroot-installation_jessie|chroot-installation_.*education-lang-|kirkwoot|rebootstrap_.*_gcc[5-8]($|_)|brcm47xx|rebootstrap_kfreebsd|diffoscope_from_git_|disorderfs_from_git_master|diffoscope_pypi|diffoscope_freebsd|diffoscope_netbsd|diffoscope_macports|diffoscope_archlinux|openwrt-target-ath97|profitbricks|pool_buildinfos_suites|^g-i' || true)"
 	if [ ! -z "$ZOMBIES" ] ; then
 		DIRTY=true
 		figlet 'zombies!!!'


=====================================
bin/g-i-installation.sh deleted
=====================================
@@ -1,1401 +0,0 @@
-#!/bin/bash
-
-# Copyright 2012-2018 Holger Levsen <holger at layer-acht.org>
-# released under the GPLv2
-
-DEBUG=false
-. /srv/jenkins/bin/common-functions.sh
-common_init "$@"
-
-# $1 = disksize in GB
-# $2 = wget url/jigdo url
-# $3 = d-i lang setting (default is 'en')
-# $4 = d-i locale setting (default is 'en_us')
-
-if [ "$1" = "" ] || [ "$2" = "" ] ; then
-	echo "need two params"
-	echo '# $1 = disksize in GB'
-	echo '# $2 = wget url/jigdo url'
-	exit 1
-fi
-
-#
-# init
-#
-DISPLAY=localhost:$EXECUTOR_NUMBER
-NAME=$(echo $JOB_NAME | cut -d "_" -f2-)
-FILEPATH=jenkins-img-$NAME
-DISKSIZE_IN_GB=$1
-URL=$2
-# $3 and $4 are used below for language setting
-RAMSIZE=1024
-if [ "$(basename $URL)" = "netboot.tar.gz" ] ; then
-	# URL is for a PXE netboot installer, rather than a CD .iso
-	NETBOOT=$(pwd)/$(basename $URL)
-elif [ "$(basename $URL)" != "amd64" ] ; then
-	IMAGE="/var/lib/jenkins/jobs/g-i-installation_maintenance/workspace/$(echo $URL | cut -d '/' -f3-|tr '/' '_'|tr '~' '_')"
-	IMAGE_MNT="/media/cd-$NAME.iso"
-else
-	KERNEL=linux
-	INITRD=initrd.gz
-fi
-
-echo "Testing $NAME with $URL"
-echo
-
-#
-# define workspace + results
-#
-rm -rf results screenshot.png screenshot-thumb.png
-mkdir -p results
-if [ -z "$WORKSPACE" ] ; then
-	WORKSPACE=$(pwd)
-fi
-RESULTS=$WORKSPACE/results
-mkdir -p $RESULTS
-GOCR=$(mktemp)
-
-#
-# set main counter
-#
-NR=0
-
-#
-# language
-#
-if [ -z "$3" ] || [ -z "$4" ] ; then
-	DI_LANG="en"
-	DI_LOCALE="en_US"
-else
-	DI_LANG=$3
-	DI_LOCALE=$4
-fi
-
-#
-# video
-#
-VIDEOSIZE=1024x768
-VIDEOBGCOLOR=gray10
-FRAMERATE=24		# this is the input framerate
-CONVERTOPTS="-gravity center -background $VIDEOBGCOLOR -extent $VIDEOSIZE"
-
-#
-# Debian Edu -test images usually show a screen with known problems
-# if in EDUTESTMODE we'll acknowledge these
-#
-EDUTESTMODE=false
-if [[ "$NAME" =~ ^debian-edu_.*-test.*$ ]] ; then
-	EDUTESTMODE=true
-fi
-
-fetch_if_newer() {
-	url="$2"
-	file="$1"
-	echo "Downloading $url to $file"
-	curlopts="-L -s -S"
-	if [ -f "$file" ] ; then
-		ls -l $file
-		echo "File exists, will only re-download if a newer one is available..."
-		curlopts="$curlopts -z $file"
-	fi
-	curl $curlopts -o $file $url
-}
-
-cleanup_all() {
-	set +x
-	set +e
-	echo
-	#
-	# kill qemu
-	#
-	# use SIGINT for 10 seconds to encourage graceful shutdown
-	for i in $(seq 1 10); do
-		QEMU_PID=$(ps fax | grep [q]emu-system | grep "vnc=$DISPLAY " 2>/dev/null | awk '{print $1}')
-		[ -z "$QEMU_PID" ] && break
-		sudo kill -INT $QEMU_PID
-		sleep 1
-	done
-	# force exit with SIGKILL if still running now
-	QEMU_PID=$(ps fax | grep [q]emu-system | grep "vnc=$DISPLAY " 2>/dev/null | awk '{print $1}')
-	[ -z "$QEMU_PID" ] || sudo kill -KILL $QEMU_PID
-	sleep 0.3s
-	#
-	# save logs if there are any
-	#
-	case $NAME in
-		*_rescue*|*_presentation)	;;
-		*)		if [ $NR -gt 200 ] ; then
-					save_logs
-				else
-					echo "Not trying to get logs."
-				fi
-				;;
-	esac
-	#
-	# remove lvm volume
-	#
-	case $NAME in
-	#	*debian-edu_jessie*_main-server)	echo "Warning: not deleting file ${FILEPATH}"
-	#				;;
-		*) 	rm -f ${FILEPATH}
-		;;
-	esac
-	rm -f $QEMU_LAUNCHER
-	#
-	# cleanup image mount
-	#
-	( sudo umount -l $IMAGE_MNT && rmdir $IMAGE_MNT ) 2> /dev/null &
-	cd $RESULTS
-	echo -n "Last screenshot: "
-	(ls -t1 snapshot_??????.png || true ) | tail -1
-	#
-	# create video
-	#
-	echo "$(date -u) - Creating video now. This may take a while.'"
-	TMPFILE=$(mktemp)
-	avconv -r $FRAMERATE -i snapshot_%06d.png g-i-installation-$NAME.webm > $TMPFILE 2>&1 || cat $TMPFILE
-	rm snapshot_??????.png $TMPFILE
-	# rename .bak files back to .png
-	if find . -name "*.png.bak" > /dev/null ; then
-		for i in $(find * -name "*.png.bak") ; do
-			mv $i $(echo $i | sed -s 's#.png.bak#.png#')
-		done
-	fi
-	echo
-	# finally
-	if [ -f "$GOCR" ] ; then
-		echo "Results of running /usr/bin/gocr on last screenshot:"
-		echo
-		cat $GOCR
-		echo
-	fi
-}
-
-show_preseed() {
-	qemu_url="$1"
-	jenkins_url="$(echo $qemu_url|sed -s 's#10\.0\.2\.1#jenkins.debian.net#g')" # these used to be different...
-	outside_url="$(echo $qemu_url|sed -s 's#10\.0\.2\.1#jenkins.debian.net#g')"
-	echo "Preseeding from $outside_url:"
-	echo
-	curl -s -L "$jenkins_url" | grep -v ^# | grep -v "^$"
-}
-
-bootstrap_system() {
-	cd $WORKSPACE
-	echo "Creating raw disk image with ${DISKSIZE_IN_GB} GiB now."
-	qemu-img create -f raw ${FILEPATH} ${DISKSIZE_IN_GB}G
-	echo "Doing g-i installation test for $NAME now."
-	# qemu related variables (incl kernel+initrd) - display first, as we grep for this in the process list
-	QEMU_OPTS="-display vnc=$DISPLAY -enable-kvm -cpu host"
-	QEMU_WEBSERVER=http://10.0.2.1/
-	QEMU_NET_OPTS="-net nic,name=hub0 -net user,name=hub0,host=10.0.2.1,dhcpstart=10.0.2.2,dns=10.0.2.254"
-	# preseeding related variables
-	PRESEEDCFG="preseed.cfg"
-	PRESEED_PATH=d-i-preseed-cfgs
-	PRESEED_URL="$QEMU_WEBSERVER/$PRESEED_PATH/${NAME}_$PRESEEDCFG"
-	#
-	# boot configuration
-	#
-	if [ -n "$NETBOOT" ]; then
-		ARCH="$(ls debian-installer/)"
-		GRUB_CFG="debian-installer/$ARCH/grub.cfg"
-		case $NAME in
-			*_kfreebsd*)	# boot the fourth menu option (Automated Install) after 3 seconds
-					sed -i 's#^set default=.*#set default=3#' $GRUB_CFG
-					sed -i 's#^set timeout=.*#set timeout=2#' $GRUB_CFG
-					# prepend additional options
-					OPTION="preseed/url" ; VALUE="$PRESEED_URL"
-					sed -i "s#kfreebsd .*#set kFreeBSD.$OPTION='$VALUE'\n	\\0#" $GRUB_CFG
-					# redirect d-i syslog to virtual serial port
-					OPTION="preseed/early_command" ; VALUE="sed -ie s/ttyv3/cuau0/ /etc/inittab ; kill -HUP 1"
-					sed -i "s#kfreebsd .*#set kFreeBSD.$OPTION='$VALUE'\n	\\0#" $GRUB_CFG
-					# enable kernel logging to virtual serial port
-					KERNEL_FLAGS="-D"
-					sed -i "s#kfreebsd .*#\0 $KERNEL_FLAGS#" $GRUB_CFG
-					;;
-			*)		;;
-		esac
-		QEMU_NET_OPTS="$QEMU_NET_OPTS,bootfile=grub2pxe,tftp=."
-	elif [ -n "$IMAGE" ] ; then
-		QEMU_OPTS="$QEMU_OPTS -cdrom $IMAGE -boot d"
-	        case $NAME in
-			*_kfreebsd*)	;;
-			*_hurd*)	QEMU_OPTS="$QEMU_OPTS -vga std"
-					gzip -cd $IMAGE_MNT/boot/kernel/gnumach.gz > $WORKSPACE/gnumach
-					;;
-			*)		QEMU_OPTS="$QEMU_OPTS -vga std" # try to workaround lp#1318119
-					QEMU_KERNEL="--kernel $IMAGE_MNT/install.amd/vmlinuz --initrd $IMAGE_MNT/install.amd/gtk/initrd.gz"
-					;;
-		esac
-	else
-		QEMU_KERNEL="--kernel $KERNEL --initrd $INITRD"
-	fi
-	QEMU_OPTS="$QEMU_OPTS -drive file=${FILEPATH},index=0,media=disk,cache=unsafe,format=raw -serial file:$RESULTS/serial.log -m $RAMSIZE $QEMU_NET_OPTS"
-	INST_LOCALE="locale=$DI_LOCALE"
-	INST_KEYMAP="keymap=us"	# always us!
-	INST_VIDEO="video=vesa:ywrap,mtrr vga=788"
-	EXTRA_APPEND=""
-	case $NAME in
-		*_sid_daily*)
-			EXTRA_APPEND="mirror/suite=sid"
-			;;
-		*)	;;
-	esac
-	case $NAME in
-		debian_*_xfce)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=xfce"
-			;;
-		debian_*_lxde)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=lxde"
-			;;
-		debian_*_kde)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=kde"
-			;;
-		debian_*_rescue*)
-			EXTRA_APPEND="$EXTRA_APPEND rescue/enable=true"
-			;;
-		debian-edu_*ltsp-server|debian-edu_*combi-server)
-			QEMU_OPTS="$QEMU_OPTS -net nic,name=hub1 -net user,name=hub1"
-			EXTRA_APPEND="$EXTRA_APPEND netcfg/choose_interface=auto desktop=xfce"
-			;;
-		*)	;;
-	esac
-	case $NAME in
-		*_dark_theme)
-			EXTRA_APPEND="$EXTRA_APPEND theme=dark"
-			;;
-		debian-edu_*_gnome)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=gnome"
-			GUITERMINAL=xterm
-			;;
-		debian-edu_*_lxde)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=lxde"
-			GUITERMINAL=xterm
-			;;
-		debian-edu_*_xfce)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=xfce"
-			GUITERMINAL=xterm
-			;;
-		debian-edu_*_mate)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=mate"
-			GUITERMINAL=xterm
-			;;
-		debian-edu_*)
-			EXTRA_APPEND="$EXTRA_APPEND desktop=kde"
-			GUITERMINAL=konsole
-			;;
-		*)	;;
-	esac
-	case $NAME in
-		debian-edu_*)
-			EXTRA_APPEND="$EXTRA_APPEND DEBCONF_DEBUG=developer"
-			;;
-		*_brltty)
-			EXTRA_APPEND="$EXTRA_APPEND brltty=tt,ttyS0,en"
-			;;
-		*_speakup)
-			EXTRA_APPEND="$EXTRA_APPEND speakup.synth=soft"
-			QEMU_OPTS="$QEMU_OPTS -soundhw ac97"
-			;;
-		*_presentation)
-			EXTRA_APPEND="$EXTRA_APPEND url=hands.com classes=jenkins.debian.org;talks/fosdem07"
-			;;
-		*)
-		;;
-	esac
-	case $NAME in
-	    debian-edu_*)
-		# Debian Edu and tasksel do not work the expected way
-		# with priority=critical, so do not set it.
-		;;
-	    *)
-		EXTRA_APPEND="$EXTRA_APPEND priority=critical"
-		;;
-	esac
-	case $NAME in
-		*_presentation)
-			APPEND="auto=true $EXTRA_APPEND $INST_LOCALE $INST_KEYMAP $INST_VIDEO -- quiet"
-			;;
-		*)
-			APPEND="auto=true $EXTRA_APPEND $INST_LOCALE $INST_KEYMAP url=$PRESEED_URL $INST_VIDEO -- quiet"
-			;;
-	esac
-	show_preseed $QEMU_WEBSERVER/$PRESEED_PATH/${NAME}_$PRESEEDCFG
-	echo
-	echo "Starting QEMU now:"
-	QEMU_LAUNCHER=$(mktemp)
-	echo "cd $WORKSPACE" > $QEMU_LAUNCHER
-	echo -n "sudo qemu-system-x86_64 $QEMU_OPTS " >> $QEMU_LAUNCHER
-	if [ -n "$QEMU_KERNEL" ]; then
-		echo -n "$QEMU_KERNEL " >> $QEMU_LAUNCHER
-	else
-	        case $NAME in
-			*_kfreebsd*)	;;
-			*_hurd*)	# Hurd needs multiboot options jenkins can't escape correctly
-					case $NAME in
-						*_jessie_hurd*)	EXEC="/boot/kernel/ld.so.1 /hurd/exec" ;;
-						*_hurd*)	EXEC="/boot/kernel/exec.static" ;;
-					esac
-					echo -n '--kernel '$WORKSPACE'/gnumach --initrd "'$IMAGE_MNT'/boot/initrd.gz \$(ramdisk-create),'$IMAGE_MNT'/boot/kernel/ext2fs.static --multiboot-command-line=\${kernel-command-line} --host-priv-port=\${host-port} --device-master-port=\${device-port} --exec-server-task=\${exec-task} -T typed gunzip:device:rd0 \$(task-create) \$(task-resume),'$IMAGE_MNT"$EXEC"' \$(exec-task=task-create)" ' >> $QEMU_LAUNCHER
-					APPEND="console=com0 $APPEND"
-					;;
-			*)		;;
-		esac
-	fi
-	case $NAME in
-		*_kfreebsd*)	# not supported for the --append option
-				;;
-		*)		echo "--append \"$APPEND\"" >> $QEMU_LAUNCHER
-				;;
-	esac
-	set -x
-	(bash -x $QEMU_LAUNCHER && touch $RESULTS/qemu_quit ) &
-	set +x
-}
-
-boot_system() {
-	cd $WORKSPACE
-	echo "Booting system installed with g-i installation test for $NAME."
-	# qemu related variables (incl kernel+initrd) - display first, as we grep for this in the process list
-	QEMU_OPTS="-display vnc=$DISPLAY"
-	case $NAME in
-		# nested KVM runs gnumach horribly slowly
-		*_hurd*)	;;
-		*)		QEMU_OPTS="$QEMU_OPTS -enable-kvm -cpu host" ;;
-	esac
-	echo "Checking ${FILEPATH}:"
-	FILE=$(file -Ls ${FILEPATH})
-	if [ $(echo $FILE | grep -E '(x86 boot sector|DOS/MBR boot sector)' | wc -l) -eq 0 ] ; then
-		echo "ERROR: no x86 boot sector found in ${FILEPATH} - its filetype is $FILE."
-		exit 1
-	fi
-	QEMU_OPTS="$QEMU_OPTS -drive file=${FILEPATH},index=0,media=disk,cache=unsafe,format=raw -m $RAMSIZE"
-	QEMU_OPTS="$QEMU_OPTS -net nic,name=hub0 -net user,name=hub0,host=10.0.2.1,dhcpstart=10.0.2.2,dns=10.0.2.254"
-	case $NAME in
-		debian-edu_*ltsp-server|debian-edu_*combi-server)
-				QEMU_OPTS="$QEMU_OPTS -net nic,name=hub1 -net user,name=hub1"
-				;;
-		*)
-				;;
-	esac
-	echo
-	echo "Starting QEMU_ now:"
-	set -x
-	(sudo qemu-system-x86_64 \
-		$QEMU_OPTS && touch $RESULTS/qemu_quit ) &
-	set +x
-}
-
-backup_screenshot() {
-	# after createing the video all .png files are deleted, so we make sure to keep them...
-	cp snapshot_${PRINTF_NR}.png snapshot_${PRINTF_NR}.png.bak
-}
-
-publish_screenshot() {
-	# make screenshots available for the live screenshot plugin
-	ln -f $PWD/snapshot_${PRINTF_NR}.png $WORKSPACE/screenshot.png
-	convert $WORKSPACE/screenshot.png -adaptive-resize 128x96 $WORKSPACE/screenshot-thumb.new
-}
-
-do_and_report() {
-	echo "$(date -u) $PRINTF_NR / $TOKEN - sending '$@'"
-	# Workaround #758881: vncdo type command sending "e" chars sometimes not
-	# received, sometimes received as if "e" key was kept pressed.
-	if [ "$1" = "type" ]; then
-		typestr=$2
-		for i in $(seq 0 $(( ${#typestr} - 1 ))); do
-			vncdo -s $DISPLAY --delay=100 key ${typestr:$i:1}
-		done
-	else
-		vncdo -s $DISPLAY "$@"
-	fi
-	backup_screenshot
-	publish_screenshot
-}
-
-rescue_boot() {
-	# boot in rescue mode
-	let MY_NR=NR-TRIGGER_NR
-	TOKEN=$(printf "%04d" $MY_NR)
-	case $TOKEN in
-		0010)	do_and_report key tab
-			;;
-		0020)	do_and_report key enter
-			;;
-		0100)	do_and_report key tab
-			;;
-		0110)	do_and_report key enter
-			;;
-		0150)	do_and_report type df
-			;;
-		0160)	do_and_report key enter
-			;;
-		0170)	do_and_report type exit
-			;;
-		0200)	do_and_report key enter
-			;;
-		0210)	do_and_report key down
-			;;
-		0220)	do_and_report key enter
-			;;
-		*)	;;
-	esac
-}
-
-presentation_boot() {
-	# boot in presentation mode
-	let MY_NR=NR-TRIGGER_NR
-	TOKEN=$(printf "%04d" $MY_NR)
-	case $TOKEN in
-		[01][123456789]00)	do_and_report key enter
-			;;
-		*)	;;
-	esac
-}
-
-post_install_boot() {
-	# normal boot after installation
-	let MY_NR=NR-TRIGGER_NR
-	TOKEN=$(printf "%04d" $MY_NR)
-	#
-	# login as jenkins or root
-	#
-	case $NAME in
-		debian_*)	case $TOKEN in
-					0050)	do_and_report type jenkins
-						;;
-					0060)	do_and_report key enter
-						;;
-					0070)	do_and_report type insecure
-						;;
-					0080)	do_and_report key enter
-						;;
-					*)	;;
-				esac
-				;;
-				# debian-edu installations differ too much, login individually
-				*)	;;
-	esac
-	#
-	# actions depending on the type of installation
-	#
-	case $NAME in
-		debian_*xfce)	case $TOKEN in
-					0200)	do_and_report key enter
-						;;
-					0210)	do_and_report key alt-f2
-						;;
-					0220)
-						case $NAME in
-							*_hurd*)
-								do_and_report type "epiphany"
-								;;
-							*)
-								do_and_report type "iceweasel"
-								;;
-						esac
-						;;
-					0230)	do_and_report key space
-						;;
-					0240)	do_and_report type "www"
-						;;
-					0250)	do_and_report type "."
-						;;
-					0260)	do_and_report type "debian"
-						;;
-					0270)	do_and_report type "."
-						;;
-					0280)	do_and_report type "org"
-						;;
-					0290)	do_and_report key enter
-						;;
-					0400)	do_and_report key alt-f2
-						;;
-					0410)	do_and_report type xterm
-						;;
-					0420)	do_and_report key enter
-						;;
-					0430)	do_and_report type apt-get
-						;;
-					0440)	do_and_report key space
-						;;
-					0450)	do_and_report type moo
-						;;
-					0500)	do_and_report key enter
-						;;
-					0510)	do_and_report type "su"
-						;;
-					0520)	do_and_report key enter
-						;;
-					0530)	do_and_report type r00tme
-						;;
-					0540)	do_and_report key enter
-						;;
-					0550)	do_and_report type "poweroff"
-						;;
-					0560)	do_and_report key enter
-						;;
-					*)	;;
-				esac
-				;;
-		debian_*lxde)	case $TOKEN in
-					0200)	do_and_report key alt-f2
-						;;
-					0220)
-						case $NAME in
-							*_hurd*)
-								do_and_report type "epiphany"
-								;;
-							*)
-								do_and_report type "iceweasel"
-								;;
-						esac
-						;;
-					0230)	do_and_report key space
-						;;
-					0240)	do_and_report type "www"
-						;;
-					0250)	do_and_report type "."
-						;;
-					0260)	do_and_report type "debian"
-						;;
-					0270)	do_and_report type "."
-						;;
-					0280)	do_and_report type "org"
-						;;
-					0290)	do_and_report key enter
-						;;
-					0400)	do_and_report key alt-f2
-						;;
-					0410)	do_and_report type lxterminal
-						;;
-					0420)	do_and_report key enter
-						;;
-					0430)	do_and_report type apt-get
-						;;
-					0440)	do_and_report key space
-						;;
-					0450)	do_and_report type moo
-						;;
-					0520)	do_and_report key enter
-						;;
-					0530)	do_and_report type "su"
-						;;
-					0540)	do_and_report key enter
-						;;
-					0550)	do_and_report type r00tme
-						;;
-					0560)	do_and_report key enter
-						;;
-					0570)	do_and_report type "poweroff"
-						;;
-					0580)	do_and_report key enter
-						;;
-					*)	;;
-				esac
-				;;
-		debian_*kde)	case $TOKEN in
-					0300)	do_and_report key tab
-						;;
-					0310)	do_and_report key enter
-						;;
-					0400)	do_and_report key alt-f2
-						;;
-					0410)	do_and_report type "konqueror"
-						;;
-					0420)	do_and_report key space
-						;;
-					0430)	do_and_report type "www"
-						;;
-					0440)	do_and_report type "."
-						;;
-					0450)	do_and_report type "debian"
-						;;
-					0460)	do_and_report type "."
-						;;
-					0470)	do_and_report type "org"
-						;;
-					0480)	do_and_report key enter
-						;;
-					0600)	do_and_report key alt-f2
-						;;
-					0610)	do_and_report type konsole
-						;;
-					0620)	do_and_report key enter
-						;;
-					0700)	do_and_report type apt-get
-						;;
-					0710)	do_and_report key space
-						;;
-					0720)	do_and_report type moo
-						;;
-					0730)	do_and_report key enter
-						;;
-					0740)	do_and_report type "su"
-						;;
-					0750)	do_and_report key enter
-						;;
-					0760)	do_and_report type r00tme
-						;;
-					0770)	do_and_report key enter
-						;;
-					0780)	do_and_report type "poweroff"
-						;;
-					0790)	do_and_report key enter
-						;;
-					*)	;;
-				esac
-				;;
-		debian_*gnome*)	case $TOKEN in
-					0150)	do_and_report move 530 420 click 1
-						;;
-					0200)	do_and_report key alt-f2
-						;;
-					0220)
-						case $NAME in
-							*_hurd*)
-								do_and_report type "epiphany"
-								;;
-							*)
-								do_and_report type "iceweasel"
-								;;
-						esac
-						;;
-					0230)	do_and_report key space
-						;;
-					0240)	do_and_report type "www"
-						;;
-					0250)	do_and_report type "."
-						;;
-					0260)	do_and_report type "debian"
-						;;
-					0270)	do_and_report type "."
-						;;
-					0280)	do_and_report type "org"
-						;;
-					0290)	do_and_report key enter
-						;;
-					0400)	do_and_report key alt-f2
-						;;
-					0410)	do_and_report type gnome
-						;;
-					0420)	do_and_report type "-"
-						;;
-					0430)	do_and_report type terminal
-						;;
-					0440)	do_and_report key enter
-						;;
-					0450)	do_and_report type apt-get
-						;;
-					0460)	do_and_report key space
-						;;
-					0470)	do_and_report type moo
-						;;
-					0520)	do_and_report key enter
-						;;
-					0530)	do_and_report type "su"
-						;;
-					0540)	do_and_report key enter
-						;;
-					0550)	do_and_report type r00tme
-						;;
-					0560)	do_and_report key enter
-						;;
-					0570)	do_and_report type "poweroff"
-						;;
-					0580)	do_and_report key enter
-						;;
-					*)	;;
-				esac
-				;;
-		debian-edu*minimal)	case $TOKEN in
-						# debian-edu installations report error found during installation, go forward in text mode
-						0180)	! $EDUTESTMODE || do_and_report key tab
-							;;
-						0220)	! $EDUTESTMODE || do_and_report key enter
-							;;
-						0250)	do_and_report type root
-							;;
-						0260)	do_and_report key enter
-							;;
-						0270)	do_and_report type r00tme
-							;;
-						0280)	do_and_report key enter
-							;;
-						0300)	do_and_report type ps
-							;;
-						0310)	do_and_report key space
-							;;
-						0320)	do_and_report type fax
-							;;
-						0330)	do_and_report key enter
-							;;
-						0340)	do_and_report type df
-							;;
-						0350)	do_and_report key enter
-							;;
-						0360)	do_and_report type apt-get
-							;;
-						0370)	do_and_report key space
-							;;
-						0380)	do_and_report type moo
-							;;
-						0400)	do_and_report key enter
-							;;
-						0420)	do_and_report type "id"
-							;;
-						0430)	do_and_report key enter
-							;;
-						0450)	do_and_report type poweroff
-							;;
-						0460)	do_and_report key enter
-							;;
-						*)	;;
-					esac
-					;;
-		debian-edu*main-server)	case $TOKEN in
-						# debian-edu installations report error found during installation, go forward, in text mode
-						0200)	! $EDUTESTMODE || do_and_report key tab
-							;;
-						0250)	! $EDUTESTMODE || do_and_report key enter
-							;;
-						0350)	do_and_report type root
-							;;
-						0400)	do_and_report key enter
-							;;
-						0410)	do_and_report type r00tme
-							;;
-						0420)	do_and_report key enter
-							;;
-						0550)	do_and_report type ps
-							;;
-						0560)	do_and_report key space
-							;;
-						0570)	do_and_report type fax
-							;;
-						0580)	do_and_report key enter
-							;;
-						0590)	do_and_report type df
-							;;
-						0600)	do_and_report key enter
-							;;
-						0610)	do_and_report type apt-get 	# apt-get moo
-							;;
-						0620)	do_and_report key space
-							;;
-						0630)	do_and_report type moo
-							;;
-						0640)	do_and_report key enter
-							;;
-						0650)	do_and_report type ip
-							;;
-						0660)	do_and_report key space
-							;;
-						0670)	do_and_report type a
-							;;
-						0680)	do_and_report key enter
-							;;
-						0690)	do_and_report type ping
-							;;
-						0700)	do_and_report key space
-							;;
-						0710)	do_and_report type '-'
-							;;
-						0720)	do_and_report type 'c'
-							;;
-						0730)	do_and_report key space
-							;;
-						0740)	do_and_report type '2'
-							;;
-						0750)	do_and_report key space
-							;;
-						0760)	do_and_report type '8.8.8.8'
-							;;
-						0770)	do_and_report key enter
-							;;
-						0800)	do_and_report type route
-							;;
-						0810)	do_and_report key space
-							;;
-						0820)	do_and_report type '-'
-							;;
-						0830)	do_and_report type 'n'
-							;;
-						0840)	do_and_report key enter
-							;;
-						# there is not network, so dont try to install w3m…
-						#0850)	do_and_report type apt-get 	# apt-get install w3m
-						#	;;
-						#0860)	do_and_report key space
-						#	;;
-						#0870)	do_and_report type '-y'
-						#	;;
-						#0880)	do_and_report key space
-						#	;;
-						#0890)	do_and_report type install
-						#	;;
-						#0900)	do_and_report key space
-						#	;;
-						#0910)	do_and_report type w3m
-						#	;;
-						#0920)	do_and_report key enter
-						#	;;
-						#1000)	do_and_report type w3m 		# check nagios
-						#	;;
-						#1010)	do_and_report key space
-						#	;;
-						#1020)	do_and_report type 'https;'
-						#	;;
-						#1030)	do_and_report type '//www'
-						#	;;
-						#1040)	do_and_report type '/nagios'
-						#	;;
-						#1050)	do_and_report key enter
-						#	;;
-						#1090)	do_and_report type q
-						#	;;
-						#1100)	do_and_report key enter
-						#	;;
-						#1010)	do_and_report type w3m		# check cups
-						#	;;
-						#1120)	do_and_report key space
-						#	;;
-						#1130)	do_and_report type 'https;'
-						#	;;
-						#1150)	do_and_report type '//www'
-						#	;;
-						#1170)	do_and_report type ';631'
-						#	;;
-						#1180)	do_and_report key enter
-						#	;;
-						#1250)	do_and_report type q
-						#	;;
-						#1270)	do_and_report key enter
-						#	;;
-						1330)	do_and_report type poweroff	# poweroff
-							;;
-						1340)	do_and_report key enter
-							;;
-						*)	;;
-					esac
-					;;
-		debian-edu*ltsp-server|debian-edu*-combi-server) case $TOKEN in
-						# debian-edu installations report error found during installation, go forward
-						0100)	! $EDUTESTMODE || do_and_report move 760 560 click 1
-							;;
-						0300)	do_and_report type jenkins
-							;;
-						0350)	do_and_report key enter
-							;;
-						0360)	do_and_report type insecure
-							;;
-						0370)	do_and_report key enter
-							;;
-						0400)	do_and_report key tab
-							;;
-						0410)	do_and_report key enter
-							;;
-						0500)	do_and_report key alt-f2
-							;;
-						0510)	do_and_report type "iceweasel"
-							;;
-						0520)	do_and_report key space
-						       ;;
-						0530)	do_and_report type "www"
-						       ;;
-						0540)	do_and_report type "."
-						       ;;
-						0550)	do_and_report type "debian"
-						       ;;
-						0560)	do_and_report type "."
-						       ;;
-						0570)	do_and_report type "org"
-						       ;;
-						0580)	do_and_report key enter
-						       ;;
-						0700)	do_and_report key alt-f2
-						       ;;
-						0710)	do_and_report type $GUITERMINAL
-						       ;;
-						0720)	do_and_report key enter
-						       ;;
-						0800)	do_and_report type apt-get
-						       ;;
-						0810)	do_and_report key space
-						       ;;
-						0820)	do_and_report type moo
-						       ;;
-						0830)	do_and_report key enter
-						       ;;
-						0840)	do_and_report type "su"
-						       ;;
-						0850)	do_and_report key enter
-						       ;;
-						0860)	do_and_report type r00tme
-						       ;;
-						0870)	do_and_report key enter
-						       ;;
-						0880)	do_and_report type "poweroff"
-						       ;;
-						0890)	do_and_report key enter
-							;;
-						*)	;;
-					esac
-					;;
-		debian-edu*workstation)	case $TOKEN in
-						# debian-edu installations report error found during installation, go forward
-						0100)	! $EDUTESTMODE || do_and_report move 760 560 click 1
-							;;
-						# try shutdown
-						0150)	do_and_report key ctrl-alt-f1
-							;;
-						0170)	do_and_report type root
-							;;
-						0180)	do_and_report key enter
-							;;
-						0190)	do_and_report type r00tme
-							;;
-						0200)	do_and_report key enter
-							;;
-						0220)	do_and_report type "poweroff"
-						       ;;
-						0240)	do_and_report key enter
-							;;
-						*)	;;
-					esac
-					;;
-		debian-edu*standalone*)	case $TOKEN in
-					# debian-edu installations report error found during installation, go forward
-						0100)	! $EDUTESTMODE || do_and_report move 760 560 click 1
-							;;
-						0110)	do_and_report type jenkins
-							;;
-						0120)	do_and_report key enter
-							;;
-						0130)	do_and_report type insecure
-							;;
-						0140)	do_and_report key enter
-							;;
-						0200)	do_and_report key tab
-							;;
-						0300)	do_and_report key enter
-							;;
-						0350)	do_and_report key ctrl-l
-							;;
-						0430)	do_and_report type "www"
-							;;
-						0440)	do_and_report type "."
-							;;
-						0450)	do_and_report type "debian"
-							;;
-						0460)	do_and_report type "."
-							;;
-						0470)	do_and_report type "org"
-							;;
-						0480)	do_and_report key enter
-							;;
-						0600)	do_and_report key alt-f2
-							;;
-						0610)	do_and_report type $GUITERMINAL
-							;;
-						0620)	do_and_report key enter
-							;;
-						0700)	do_and_report type apt-get
-							;;
-						0710)	do_and_report key space
-							;;
-						0720)	do_and_report type moo
-							;;
-						0730)	do_and_report key enter
-							;;
-						0740)	do_and_report type "su"
-							;;
-						0750)	do_and_report key enter
-							;;
-						0760)	do_and_report type r00tme
-							;;
-						0770)	do_and_report key enter
-							;;
-						0780)	do_and_report type "poweroff"
-							;;
-						0790)	do_and_report key enter
-							;;
-						*)	;;
-					esac
-					;;
-		*)		;;
-	esac
-}
-
-
-monitor_system() {
-	MODE=$1
-	# if TRIGGER_MODE is set to a number, triggered mode will be entered in that many steps - else an image match needs to happen
-	TRIGGER_MODE=$2
-	TRIGGER_NR=0
-	# use default valule for timeout if none given
-	if [ -z "$3" ] ; then
-		TIMEOUT=600
-	else
-		TIMEOUT=$3
-	fi
-	if [ -z "$4" ] ; then
-		PIXELDIFF=100
-	else
-		PIXELDIFF=$4
-	fi
-	cd $RESULTS
-	sleep 4	# chosen by fair dice roll
-	hourlimit=16 # hours
-	echo "Taking screenshots every 2 seconds now, until qemu ends for whatever reasons or $hourlimit hours have passed or if the test seems to hang."
-	echo
-	timelimit=$(( $hourlimit * 60 * 60 / 2 ))
-	let MAX_RUNS=NR+$timelimit
-	while [ $NR -lt $MAX_RUNS ] ; do
-		#
-		# break if qemu-system has finished
-		#
-		if ! ps fax | grep [q]emu-system | grep "vnc=$DISPLAY " >/dev/null; then
-			touch $RESULTS/qemu_quit
-			break
-		fi
-		PRINTF_NR=$(printf "%06d" $NR)
-		vncsnapshot -quiet -allowblank -compresslevel 0 $DISPLAY snapshot_${PRINTF_NR}.jpg 2>/dev/null || true
-		if [ -f snapshot_${PRINTF_NR}.jpg ]; then
-			convert $CONVERTOPTS snapshot_${PRINTF_NR}.jpg snapshot_${PRINTF_NR}.png
-			rm snapshot_${PRINTF_NR}.jpg
-		else
-			echo "$(date -u) $PRINTF_NR          - could not take vncsnapshot from $DISPLAY - using a blank fake one instead"
-			convert -size $VIDEOSIZE xc:black -depth 8 snapshot_${PRINTF_NR}.png
-		fi
-		# every 100 ticks take a screenshot and analyse it
-		if [ $(($NR % 100)) -eq 0 ] ; then
-			# press ctrl-key regularily to avoid screensaver kicking in
-			vncdo -s $DISPLAY key ctrl || true
-			# publish it
-			publish_screenshot
-			#
-			# search for known text using ocr of screenshot and break out of this loop if certain content is found
-			#
-			# gocr likes black background
-			convert -fill black -opaque $VIDEOBGCOLOR snapshot_${PRINTF_NR}.png $GOCR.png
-			gocr $GOCR.png > $GOCR
-			LAST_LINE=$(tail -1 $GOCR |cut -d "]" -f2- || true)
-			STACK_LINE=$(egrep "(Call Trace|end trace)" $GOCR || true)
-			INVALID_SIG_LINE=$(grep "Invalid Release signature" $GOCR || true)
-			CDROM_PROBLEM=$(grep "There was a problem reading data from the CD-ROM" $GOCR || true)
-			INSTALL_PROBLEM=$(egrep "(nstallation step fail|he failing step i)"  $GOCR || true)
-			ROOT_PROBLEM=$(egrep "(Giue root password for maintenance|or type Control-D to continue)"  $GOCR || true)
-			BUILD_LTSP_PROBLEM=$(grep "The failing step is: Build LTSP chroot" $GOCR || true)
-			echo >> $GOCR
-			rm $GOCR.png
-			if [[ "$LAST_LINE" =~ .*Power\ down.* ]] ||
-			    [[ "$LAST_LINE" =~ .*System\ halted.* ]] ||
-			    [[ "$LAST_LINE" =~ .*Reached\ target\ Shutdown.* ]] ||
-			    [[ "$LAST_LINE" =~ .*Cannot\ .inalize\ remaining\ .ile\ systems.* ]]; then
-				echo "QEMU was powered down." >> $GOCR
-				break
-			elif [ ! -z "$STACK_LINE" ] ; then
-				echo "INFO: got a stack-trace, probably on power-down." >> $GOCR
-				break
-			elif [ ! -z "$INVALID_SIG_LINE" ] ; then
-				echo "ERROR: Invalid Release signature found, aborting." >> $GOCR
-				exit 1
-			elif [ ! -z "$CDROM_PROBLEM" ] ; then
-				echo "ERROR: Loading installer components from CDROM failed, aborting." >> $GOCR
-				exit 1
-			elif [ ! -z "$INSTALL_PROBLEM" ] ; then
-				echo "ERROR: An installation step failed." >> $GOCR
-				exit 1
-			elif [ ! -z "$ROOT_PROBLEM" ] ; then
-				echo "ERROR: System is hanging at boot and waiting for root maintenance." >> $GOCR
-				exit 1
-			elif [ ! -z "$BUILD_LTSP_PROBLEM" ] ; then
-				echo "ERROR: The failing step is: Build LTSP chroot." >> $GOCR
-				exit 1
-			fi
-		elif [ $(($NR % 30)) -eq 0 ] ; then
-			# give signal we are still running
-			echo "$(date -u) $PRINTF_NR / $TOKEN"
-			publish_screenshot
-		fi
-		# in install mode, every 300 ticks preserve an screenshot as artefact
-		if [ "$MODE" = "install" ] && [ $(($NR % 300)) -eq 0 ] ; then
-			backup_screenshot
-		fi
-		# every 100 screenshots, starting from the $TIMEOUTth one...
-		if [ $(($NR % 100)) -eq 0 ] && [ $NR -gt $TIMEOUT ] ; then
-			# from help let: "Exit Status: If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
-			let OLD=NR-$TIMEOUT
-			PRINTF_OLD=$(printf "%06d" $OLD)
-			# test if this screenshot is basically the same as the one $TIMEOUT screenshots ago
-			# $PIXELDIFF pixels difference between to images is tolerated, to ignore updating clocks
-			PIXEL=$(compare -metric AE snapshot_${PRINTF_NR}.png snapshot_${PRINTF_OLD}.png /dev/null 2>&1 || true )
-			# usually this returns an integer, but not always....
-			if [[ "$PIXEL" =~ ^[0-9]+$ ]] ; then
-				echo "$PIXEL pixel difference between snapshot_${PRINTF_NR}.png and snapshot_${PRINTF_OLD}.png"
-				if [ $PIXEL -lt $PIXELDIFF ] ; then
-				    SAME=Y
-				    for INTER in $(seq $OLD 10 $NR); do
-					PRINTF_INTER=$(printf "%06d" $INTER)
-					PIXEL=$(compare -metric AE snapshot_${PRINTF_NR}.png snapshot_${PRINTF_INTER}.png /dev/null 2>&1 || true )
-					if [[ "$PIXEL" =~ ^[0-9]+$ ]] ; then
-						if [ $PIXEL -ge $PIXELDIFF ] ; then
-							echo "but $PIXEL difference between snapshot_${PRINTF_NR}.png and snapshot_${PRINTF_INTER}.png"
-							SAME=N
-							break
-						fi
-					else
-						echo "but snapshot_${PRINTF_NR}.png and snapshot_${PRINTF_INTER}.png have different sizes."
-						SAME=N
-						break
-					fi
-				    done
-				    if [ $SAME = Y ]
-				    then
-					# unless TRIGGER_MODE is empty, matching images means its over
-					if [ ! -z "$TRIGGER_MODE" ] ; then
-						echo "Warning: snapshot_${PRINTF_NR}.png snapshot_${PRINTF_OLD}.png match or almost match, ending installation."
-						ls -la snapshot_${PRINTF_NR}.png snapshot_${PRINTF_OLD}.png
-						echo "System in $MODE mode is hanging."
-						if [ "$MODE" = "install" ] ; then
-							# hanging install = broken install
-							backup_screenshot
-							exit 1
-						fi
-						break
-					else
-						# this is only reached once in rescue mode
-						# and the next matching screenshots will cause a failure...
-						TRIGGER_MODE="already_matched"
-						# really kick off trigger:
-						let TRIGGER_NR=NR
-					fi
-				    fi
-				fi
-			else
-				echo "snapshot_${PRINTF_NR}.png and snapshot_${PRINTF_OLD}.png have different sizes."
-			fi
-		fi
-		# let's drive this further (once/if triggered)
-		if [ $TRIGGER_NR -ne 0 ] && [ $TRIGGER_NR -ne $NR ] ; then
-			case $MODE in
-				rescue)		rescue_boot
-						;;
-				presentation)	presentation_boot
-						;;
-				post_install)	post_install_boot
-						;;
-				*)		;;
-			esac
-		fi
-		# if TRIGGER_MODE matches NR, we are triggered too
-		if [ ! -z "$TRIGGER_MODE" ] && [ "$TRIGGER_MODE" = "$NR" ] ; then
-			let TRIGGER_NR=NR
-		fi
-		let NR=NR+1
-		sleep 2
-	done
-	if [ $NR -eq $MAX_RUNS ] ; then
-		echo "Warning: running for ${hourlimit}h, forcing termination."
-	fi
-	if [ -f "$RESULTS/qemu_quit" ] ; then
-		rm $RESULTS/qemu_quit
-	fi
-	if [ ! -f snapshot_${PRINTF_NR}.png ] ; then
-		let NR=NR-1
-		PRINTF_NR=$(printf "%06d" $NR)
-	fi
-	backup_screenshot
-	publish_screenshot
-}
-
-save_logs() {
-	#
-	# get logs and other files from the installed system
-	#
-	cd $WORKSPACE
-	SYSTEM_MNT=/media/$NAME
-	sudo mkdir -p $SYSTEM_MNT
-	FAILURE=false
-	# workaround problem in guestmount in wheezy: -o uid doesnt work:
-	# "sudo guestmount -o uid=$(id -u) -o gid=$(id -g)" would be nicer, but it doesnt work: as root, the files seem to belong to jenkins, but as jenkins they cannot be accessed
-	sudo guestmount -a ${FILEPATH} -i --ro $SYSTEM_MNT || { echo "Warning: cannot mount filesystems from ${FILEPATH}" ; export FAILURE=true ; }
-	#
-	# copy logs (and continue if some logs cannot be copied)
-	#
-	sudo cp -rv $SYSTEM_MNT/var/log $SYSTEM_MNT/etc/fstab $RESULTS/ || { echo "Warning: cannot get logs from installed system." ; echo "Did the installation finish correctly?" ; export FAILURE=true ; }
-	#
-	# get list of installed packages
-	#
-	case $NAME in
-		*_kfreebsd*|*_hurd*)
-			;;
-		*)
-			sudo chroot $SYSTEM_MNT dpkg -l > $RESULTS/dpkg-l || { echo "Warning: cannot run dpkg inside the installed system, did the installation finish correctly?" ; export FAILURE=true ; }
-			#
-			# check for must installed packages
-			#
-			case $NAME in
-				*_brltty)
-					grep brltty $RESULTS/dpkg-l || { echo "Warning: package brltty not installed." ; export FAILURE=true ; }
-					;;
-				*_speakup)
-					grep espeakup $RESULTS/dpkg-l || { echo "Warning: package espeakup not installed." ; export FAILURE=true ; }
-					;;
-				*)
-				;;
-			esac
-			;;
-	esac
-
-	#
-	# only on combi-servers and ltsp-servers:
-	#	mount /opt
-	#	copy LTSP logs and package list
-	#	unmount /opt
-	#
-	case $NAME in debian-edu_*ltsp-server|debian-edu_*combi-server)	mkdir -p $RESULTS/log/opt
-						if [ -d $SYSTEM_MNT/opt/ltsp/amd64 ] ; then
-							LTSPARCH="amd64"
-						elif [ -d $SYSTEM_MNT/opt/ltsp/i386 ] ; then
-							LTSPARCH="i386"
-						else
-							echo "Warning: no LTSP chroot found."
-						fi
-						if [ ! -z "$LTSPARCH" ] ; then
-							sudo cp -rv $SYSTEM_MNT/opt/ltsp/$LTSPARCH/var/log $RESULTS/log/opt/
-							sudo chroot $SYSTEM_MNT/opt/ltsp/$LTSPARCH dpkg -l > $RESULTS/log/opt/dpkg-l || { echo "Warning: cannot run dpkg inside the ltsp chroot." ; sudo ls -la $SYSTEM_MNT/opt/ltsp/$LTSPARCH ; export FAILURE=true ; }
-						fi
-						;;
-		*)				;;
-	esac
-	#
-	# umount guests (debian-edu uses many mountpoints...)
-	#
-	#for MP in var/log var/ usr/ boot/ opt/ home/ debianedufreespace/ skole/tjener/home0 var/opt/ltsp/swapfiles skole/backup/ var/spool/squid3/ ; do
-	#	sudo umount -l $SYSTEM_MNT/$MP 2>/dev/null || true
-	#done
-	sudo umount -l $SYSTEM_MNT || { echo "Warning: cannot un-mount $SYSTEM_MNT" ; export FAILURE=true ; }
-	#
-	# make sure we can read everything after installation
-	#
-	sudo chown -R jenkins:jenkins $RESULTS/log/
-	#
-	# finally delete the mountpoint again
-	#
-	sudo rmdir $SYSTEM_MNT
-	#
-	# cry out lout, if...
-	#
-	if $FAILURE ; then
-		figlet "failure"
-	fi
-}
-
-trap cleanup_all INT TERM EXIT
-
-#
-# install image preparation
-#
-if [ ! -z "$NETBOOT" ] ; then
-	#
-	# if there is a netboot installer tarball...
-	#
-	fetch_if_newer "$NETBOOT" "$URL"
-	sha256sum "$NETBOOT"
-	# try to extract, otherwise clean up and abort
-	if ! tar -zxvf "$NETBOOT" ; then
-		echo "tarball seems corrupt;  deleting it"
-		rm -f "$NETBOOT"
-		exit 1
-	fi
-elif [ ! -z "$IMAGE" ] ; then
-	#
-	# if there is a CD image...
-	#
-	fetch_if_newer "$IMAGE" "$URL"
-	# is this really an .iso?
-	if [ $(file "$IMAGE" | grep -cE '(ISO 9660|DOS/MBR boot sector)') -eq 1 ] ; then
-		# yes, so let's md5sum and mount it
-		md5sum $IMAGE
-		sudo mkdir -p $IMAGE_MNT
-		grep -q $IMAGE_MNT /proc/mounts && sudo umount -l $IMAGE_MNT
-		sleep 1
-		sudo mount -o loop,ro $IMAGE $IMAGE_MNT
-	else
-		# something went wrong
-		figlet "no .iso"
-		echo "ERROR: no valid .iso found"
-		if [ $(file "$IMAGE" | grep -c "HTML document") -eq 1 ] ; then
-			mv "$IMAGE" "$IMAGE.html"
-			lynx --dump "$IMAGE.html"
-			rm "$IMAGE.html"
-		fi
-		exit 1
-	fi
-else
-	#
-	# else netboot gtk
-	#
-	fetch_if_newer "$KERNEL" "$URL/$KERNEL"
-	fetch_if_newer "$INITRD" "$URL/$INITRD"
-fi
-
-#
-# run g-i
-#
-bootstrap_system
-set +x
-case $NAME in
-	*_rescue*)	 			monitor_system rescue
-						;;
-	*_presentation)	 			monitor_system presentation 10
-						;;
-	debian-edu_*ltsp-server|debian-edu_*combi-server)	monitor_system install wait4match 6000 100
-						;;
-	debian-edu_*wheezy*standalone*)		monitor_system install wait4match 1200 100
-						;;
-	*hurd*)					monitor_system install wait4match 1800 100
-						;;
-	*)					monitor_system install wait4match
-						;;
-esac
-#
-# boot up installed system
-#
-let NR=NR+1
-case $NAME in
-	*_rescue*|*_presentation)	# so there are some artifacts to publish
-			mkdir -p $RESULTS/log/installer
-			touch $RESULTS/log/dummy $RESULTS/log/installer/dummy
-			;;
-	*)		#
-			# kill qemu and image
-			#
-			set -x
-			TOKILL=$(ps fax | grep [q]emu-system | grep "vnc=$DISPLAY " 2>/dev/null | awk '{print $1}')
-			if [ ! -z "$TOKILL" ] ; then
-				sudo kill -9 "$TOKILL" || true
-			fi
-			set +x
-			if [ ! -z "$IMAGE" ] ; then
-				sudo umount -l $IMAGE_MNT || true
-			fi
-			echo "Sleeping 15 seconds."
-			sleep 15
-			boot_system
-			case $NAME in
-				debian-edu_*test*server)	let START_TRIGGER=NR+600
-								;;
-				*_kfreebsd*)			let START_TRIGGER=NR+200
-								;;
-				*)				let START_TRIGGER=NR+80
-								;;
-			esac
-			monitor_system post_install $START_TRIGGER 600 1000
-esac
-cleanup_all
-
-# don't cleanup twice
-trap - INT TERM EXIT


=====================================
bin/maintenance.sh
=====================================
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright 2012-2020 Holger Levsen <holger at layer-acht.org>
+# Copyright 2012-2021 Holger Levsen <holger at layer-acht.org>
 # released under the GPLv2
 
 DEBUG=false
@@ -191,12 +191,6 @@ build_jenkins_job_health_page() {
 		"d-i_schroot"
 		"d-i_:(overview|manual|build|schroot)"
 		"rebootstrap"
-		"g-i-installation_debian_jessie:(presentation|rescue)"
-		"g-i-installation_debian_sid:(presentation|rescue)"
-		"g-i-installation_.*presentation"
-		"g-i-installation_.*rescue"
-		"g-i-installation_debian-edu_stretch"
-		"g-i-installation_.*hurd"
 		"debian-archive-keyring")
 	numfilters=$(( ${#FILTER[@]} -1 ))
 	write_page "<!DOCTYPE html><html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"
@@ -282,36 +276,6 @@ else
 						report_disk_usage $1
 						chroot_checks $1
 						;;
-		g-i-installation)		ACTIVE_JOBS=$(mktemp)
-						WATCHED_JOBS=$(mktemp)
-						RUNNING=$(mktemp)
-						ps fax > $RUNNING
-						cd /var/lib/jenkins/jobs
-						for GIJ in g-i-installation_* ; do
-							if grep -q "$GIJ/workspace" $RUNNING ; then
-								echo "$GIJ" >> $ACTIVE_JOBS
-								echo "Ignoring $GIJ job as it's currently running."
-							else
-								echo "$GIJ" >> $WATCHED_JOBS
-							fi
-						done
-						echo
-						report_disk_usage $1
-						report_filetype_usage $1 png
-						report_filetype_usage $1 bak
-						report_filetype_usage $1 raw warn
-						report_filetype_usage $1 iso
-						rm $ACTIVE_JOBS $WATCHED_JOBS $RUNNING
-
-						for VOLUME in $(sudo lvdisplay jenkins01|grep "LV Path" |grep -v "/dev/jenkins01/swap" | cut -d '/' -f2-) ; do
-							if [ -z "$(ps fax | grep "$VOLUME" | grep -v grep)" ] ; then
-								echo "Error: /$VOLUME exists, but no running job is using it."
-								exit 1
-							else
-								echo "/$VOLUME is used by a running job, fine."
-							fi
-						done
-						;;
 		d-i)				report_old_directories /srv/d-i 7 /srv/d-i/workspace /srv/d-i/isos
 						remove_old_d-i_manual_builds
 						;;


=====================================
job-cfg/g-i-installation.yaml deleted
=====================================
@@ -1,292 +0,0 @@
-
-- defaults:
-    name: g-i-installation
-    description: '{my_description}{do_not_edit}'
-    disabled: true
-    logrotate:
-      daysToKeep: 90
-      numToKeep: 20
-      artifactDaysToKeep: -1
-      artifactNumToKeep: -1
-    triggers:
-      - timed: '{my_time}'
-    builders:
-      - shell: '/srv/jenkins/bin/g-i-installation.sh {my_disksize} {my_inst_url}'
-    publishers:
-      - trigger:
-          project: '{my_trigger}'
-      - logparser:
-          parse-rules: '/srv/jenkins/logparse/debian.rules'
-          unstable-on-warning: 'true'
-          fail-on-error: 'true'
-      - email-ext:
-          recipients: '{my_recipients}'
-          first-failure: true
-          fixed: true
-          subject: '$BUILD_STATUS: $JOB_NAME/$BUILD_NUMBER'
-          attach-build-log: false
-          body: 'See $BUILD_URL and $BUILD_URL/console and $BUILD_URL/artifact/results/ if there are any.'
-      - archive:
-          artifacts: 'results/*.*, results/log/*, results/log/installer/*'
-          latest-only: false
-      - image-gallery:
-          - title: '{my_title}'
-            includes: 'results/*.png'
-            image-width: 300
-    wrappers:
-      - live-screenshot
-      - timeout:
-          timeout: 600
-    properties:
-      - sidebar: &sb01
-          url: https://jenkins.debian.net/userContent/about.html
-          text: About jenkins.debian.net
-          icon: /userContent/images/debian-swirl-24x24.png
-      - sidebar: &sb10
-          url: https://jenkins.debian.net/view/g-i-installation/
-          text: All g-i-installation jobs
-          icon: /userContent/images/debian-jenkins-24x24.png
-      - sidebar: &sb99
-          url: https://www.ionos.com
-          text: Sponsored by IONOS
-          icon: /userContent/images/ionos-24x24.png
-      - priority-sorter:
-          priority: '140'
-      - throttle:
-          max-total: 3
-          max-per-node: 3
-          enabled: true
-          option: category
-          categories:
-            - g-i-installation
-- defaults:
-    name: g-i-installation-maintenance
-    description: 'Cleanup and monitor so that there is a predictable environment.{do_not_edit}'
-    logrotate:
-      daysToKeep: 90
-      numToKeep: 20
-      artifactDaysToKeep: -1
-      artifactNumToKeep: -1
-    triggers:
-      - timed: '0 6 * * *'
-    builders:
-      - shell: '/srv/jenkins/bin/maintenance.sh {name}'
-    publishers:
-      - logparser:
-          parse-rules: '/srv/jenkins/logparse/debian.rules'
-          unstable-on-warning: 'true'
-          fail-on-error: 'true'
-      - email:
-          recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
-    properties:
-      - sidebar: *sb01
-      - sidebar: *sb10
-      - sidebar: *sb99
-      - priority-sorter:
-          priority: '175'
-
-- job-template:
-    defaults: g-i-installation-maintenance
-    name: '{name}_maintenance'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_debian_{my_ver}_{my_desktop}'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_{my_dist}_{my_ver}_{my_profile}'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_{my_dist}_{my_ver}_{my_profile}_{my_desktop}'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_debian_sid_daily_rescue_{my_langname}'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_debian_{my_ver}_presentation'
-
-- job-template:
-    defaults: g-i-installation
-    name: '{name}_debian_{my_ver}_{my_profile}_{my_theme}'
-
-- job-group:
-    name: '{name}_{my_dist}_{my_ver}_group'
-    my_time: ''
-    my_desktop: ''
-    my_trigger: ''
-    my_title_extra: ''
-    jobs:
-      - '{name}_{my_dist}_{my_ver}_{my_profile}':
-         my_title: '{my_distname} ({my_ver}) {my_profile}{my_title_extra}'
-         my_description: 'Do a fully automated installation of a {my_distname} {my_verdesc} {my_profile} profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/{my_dist}_{my_ver}_{my_profile}_preseed.cfg">this preseed.cfg</a>) using the {my_ver} image.'
-
-- job-group:
-    name: '{name}_debian_{my_ver}_desktops_group'
-    my_optdesc: ''
-    my_trigger: ''
-    my_time: ''
-    my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
-    jobs:
-      - '{name}_debian_{my_ver}_{my_desktop}':
-          my_title: 'Debian ({my_verdesc}) {my_desktop} desktop install{my_optdesc}'
-          my_description: 'Do a fully automated installation of Debian {my_desktop} desktop{my_optdesc} - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_{my_ver}_{my_desktop}_preseed.cfg">this preseed.cfg</a>){my_instdesc}.'
-          my_disksize: 10
-
-
-- job-group:
-    name: '{name}_debian_sid_daily_rescue_translations_group'
-    my_langname: ''
-    my_time: ''
-    my_trigger: ''
-    my_langname:
-      - spanish:    { my_locale: es es_ES, my_time: '23 7 18 * *' }
-      - japanese:   { my_locale: ja ja_JA, my_time: '42 7 18 * *' }
-      - chinese:    { my_locale: zh zh_CN, my_time: '23 8 18 * *' }
-      - korean:     { my_locale: ko ko_KR, my_time: '42 8 18 * *' }
-      - russian:    { my_locale: ru ru_RU, my_time: '42 9 18 * *' }
-      - greek:      { my_locale: el el_GR, my_time: '42 9 18 * *' }
-      - vietnamese: { my_locale: vi vi_VI, my_time: '42 9 18 * *' }
-      - hebrew:     { my_locale: he he_IL, my_time: '23 10 18 * *' }
-      - hindi:      { my_locale: hi hi_IN, my_time: '23 10 18 * *' }
-      - tamil:      { my_locale: ta ta_IN, my_time: '42 10 18 * *' }
-      - tibetan:    { my_locale: bo bo_IN, my_time: '23 11 18 * *' }
-      - gujarati:   { my_locale: gu gu_IN, my_time: '42 11 18 * *' }
-      - kannada:    { my_locale: kn kn_IN, my_time: '23 12 18 * *' }
-      - malayalam:  { my_locale: ml ml_IN, my_time: '42 12 18 * *' }
-      - marathi:    { my_locale: mr mr_IN, my_time: '23 13 18 * *' }
-      - punjabi:    { my_locale: pa pa_IN, my_time: '42 13 18 * *' }
-      - telugu:     { my_locale: te te_IN, my_time: '23 14 18 * *' }
-      - arabic:     { my_locale: ar ar_EG, my_time: '42 14 18 * *' }
-    jobs:
-      - '{name}_debian_sid_daily_rescue_{my_langname}':
-          my_title: 'Debian (sid daily build CD) rescue mode in {my_langname}'
-          my_disksize: 1
-          my_inst_url: 'http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso {my_locale}'
-          my_description: 'Just go into rescue mode, via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_sid_daily_rescue_preseed.cfg">this preseed.cfg</a>) using netboot gtk.'
-          my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
-
-- project:
-    name: g-i-installation
-    do_not_edit: '<br><br>Job configuration source is <a href="https://salsa.debian.org/qa/jenkins.debian.net/blob/master/job-cfg/g-i-installation.yaml">g-i-installation.yaml</a>.'
-    jobs:
-      - '{name}_maintenance'
-      - '{name}_debian_{my_ver}_desktops_group':
-          my_ver: jessie
-          my_verdesc: jessie
-          my_inst_url: 'http://d-i.debian.org/daily-images/amd64/daily/netboot/gtk/debian-installer/amd64/'
-          my_instdesc: ' using netboot gtk'
-          my_desktop:
-            - gnome_brltty:
-                my_optdesc: ' with braille display support'
-                my_trigger: 'g-i-installation_debian_{my_ver}_gnome_speakup'
-                my_time: '42 19 */2 * *'
-                my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org debian-accessibility at lists.debian.org'
-            - gnome_speakup:
-                my_optdesc: ' with Speakup support'
-                my_time: ''
-                my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org debian-accessibility at lists.debian.org'
-
-      - '{name}_debian_{my_ver}_desktops_group':
-          my_ver: sid_daily
-          my_inst_url: 'http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso'
-          my_verdesc: 'sid daily build CD'
-          my_instdesc: ' using netboot gtk'
-          my_desktop:
-            - gnome:
-                my_time: '42 8 * * *'
-                my_trigger: 'g-i-installation_debian_sid_gnome_brltty, g-i-installation_debian_sid_gnome_speakup'
-            - gnome_brltty:
-                my_optdesc: ' with braille display support'
-                my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org debian-accessibility at lists.debian.org'
-            - gnome_speakup:
-                my_optdesc: ' with Speakup support'
-                my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org debian-accessibility at lists.debian.org'
-            - xfce:
-                my_time: '42 8 * * *'
-            - lxde:
-                my_time: '42 10 * * *'
-
-      - '{name}_debian_{my_ver}_desktops_group':
-          my_desktop: kfreebsd_xfce
-          my_instdesc: ' using PXE netboot gtk'
-          my_ver:
-            - jessie:
-                my_verdesc: jessie
-                my_inst_url: 'http://deb.debian.org/debian/dists/jessie-kfreebsd-proposed-updates/main/installer-kfreebsd-amd64/current/images/netboot-10/gtk/netboot.tar.gz'
-                my_time: '42 16 3,18 * *'
-            - sid:
-                my_verdesc: 'sid build from 2017'
-                my_inst_url: 'https://people.debian.org/~jrtc27/debian-unofficial-kfreebsd-amd64-NETINST-1.iso'
-                my_time: '42 8 */7 * *'
-
-      - '{name}_debian_{my_ver}_desktops_group':
-          my_desktop:
-            - hurd_lxde:
-                # putting these at the outer level doesn't work for some reason, so put them in here
-                my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org debian-hurd at lists.debian.org'
-                my_instdesc: ''
-          my_ver:
-            - stretch:
-                my_inst_url: 'https://cdimage.debian.org/cdimage/ports//9.0/hurd-i386/iso-cd/debian-hurd-2017-i386-NETINST-1.iso'
-                my_verdesc: 'stretch netinst'
-                my_time: '42 16 31 12 *'
-            - buster:
-                my_inst_url: 'https://cdimage.debian.org/cdimage/ports//10.0/hurd-i386/current/debian-sid-hurd-i386-NETINST-1.iso'
-                my_time: '42 10 */10 * *'
-                my_verdesc: 'buster netinst'
-            - sid:
-                #my_inst_url: 'https://d-i.debian.org/daily-images/hurd-i386/daily/netboot/mini.iso'
-                my_inst_url: 'https://people.debian.org/~sthibault/hurd-i386/installer/cdimage/daily/debian-sid-hurd-i386-NETINST-1.iso'
-                my_time: '42 16 */3 * *'
-                #my_verdesc: 'sid mini.iso'
-                my_verdesc: 'sid netinst'
-      - '{name}_debian_sid_daily_rescue_translations_group'
-
-      - '{name}_debian_{my_ver}_presentation':
-          my_ver:
-            - wheezy:
-                my_verdesc: 'wheezy netboot'
-                my_inst_url: 'http://deb.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/debian-installer/amd64/'
-                my_time: '42 15 23 * *'
-            - jessie:
-                my_verdesc: 'jessie netboot'
-                my_inst_url: 'http://d-i.debian.org/daily-images/amd64/daily/netboot/debian-installer/amd64/'
-                my_time: '43 15 23 * *'
-            - stretch:
-                my_verdesc: 'stretch netboot'
-                my_inst_url: 'http://cdimage.debian.org/cdimage/archive/9.4.0/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso'
-                my_time: '44 15 23 * *'
-            - buster:
-                my_verdesc: 'buster netboot'
-                my_inst_url: 'http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso'
-                my_time: '45 15 23 * *'
-            - sid_daily:
-                my_verdesc: 'sid daily build CD'
-                my_inst_url: 'http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso'
-                my_time: '46 15 23 * *'
-          my_title: 'Debian-Installer ({my_verdesc}) used for presentations'
-          my_disksize: 10
-          my_description: 'Use d-i for presentations via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_{my_ver}_presentation_preseed.cfg">this preseed.cfg</a>).'
-          my_trigger: ''
-          my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
-
-      - '{name}_debian_{my_ver}_{my_profile}_{my_theme}':
-          my_ver: sid_daily
-          my_profile: rescue
-          my_theme:
-            - 'default_theme':
-                my_theme_desc: ''
-                my_time: '42 6 * * *'
-            - 'dark_theme':
-                my_theme_desc: ', using theme=dark'
-                my_time: '42 6 * * 7'
-          my_title: 'Debian (sid daily build CD) rescue mode{my_theme_desc}'
-          my_disksize: 1
-          my_inst_url: 'http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso'
-          my_description: 'Just go into rescue mode{my_theme_desc}, via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_sid_daily_rescue{my_theme}_preseed.cfg">this preseed.cfg</a>) using netboot gtk.'
-          my_trigger: ''
-          my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'



View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/commit/ca6dcd2c8581f933b4451b55922fd8c2e6afe14e

-- 
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/-/commit/ca6dcd2c8581f933b4451b55922fd8c2e6afe14e
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/qa-jenkins-scm/attachments/20210414/ba2f1ce7/attachment-0001.htm>


More information about the Qa-jenkins-scm mailing list