diff options
Diffstat (limited to 'functions/defaults.sh')
-rwxr-xr-x | functions/defaults.sh | 1130 |
1 files changed, 1130 insertions, 0 deletions
diff --git a/functions/defaults.sh b/functions/defaults.sh new file mode 100755 index 000000000..30cdfc6f7 --- /dev/null +++ b/functions/defaults.sh @@ -0,0 +1,1130 @@ +#!/bin/sh + +# defaults.sh - handle default values +# Copyright (C) 2006-2009 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Set_defaults () +{ + ## config/common + + # Setting mode + if [ -z "${LH_MODE}" ] + then + LH_MODE="debian" + fi + + # Setting distribution name + if [ -z "${LH_DISTRIBUTION}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_DISTRIBUTION="lenny" + ;; + + emdebian) + LH_DISTRIBUTION="sid" + ;; + + ubuntu) + LH_DISTRIBUTION="jaunty" + ;; + esac + fi + + # Setting package manager + if [ "${LH_DISTRIBUTION}" = "etch" ] + then + LH_APT="${LH_APT:-aptitude}" + else + LH_APT="${LH_APT:-apt}" + fi + + # Setting apt ftp proxy + if [ -z "${LH_APT_FTP_PROXY}" ] && [ -n "${ftp_proxy}" ] + then + LH_APT_FTP_PROXY="${ftp_proxy}" + else + if [ -n "${LH_APT_FTP_PROXY}" ] && [ "${LH_APT_FTP_PROXY}" != "${ftp_proxy}" ] + then + ftp_proxy="${LH_APT_FTP_PROXY}" + fi + fi + + # Setting apt http proxy + if [ -z "${LH_APT_HTTP_PROXY}" ] && [ -n "${http_proxy}" ] + then + LH_APT_HTTP_PROXY="${http_proxy}" + else + if [ -n "${LH_APT_HTTP_PROXY}" ] && [ "${LH_APT_HTT_PROXY}" != "${http_proxy}" ] + then + http_proxy="${LH_APT_HTTP_PROXY}" + fi + fi + + # Setting apt pdiffs + LH_APT_PDIFFS="${LH_APT_PDIFFS:-enabled}" + + # Setting apt pipeline + # LH_APT_PIPELINE + + APT_OPTIONS="${APT_OPTIONS:---yes}" + APTITUDE_OPTIONS="${APTITUDE_OPTIONS:---assume-yes}" + + GZIP_OPTIONS="${GZIP_OPTIONS:---best}" + + if gzip --help | grep -qs "\-\-rsyncable" && \ + ! echo ${GZIP_OPTIONS} | grep -q rsyncable + then + GZIP_OPTIONS="${GZIP_OPTIONS} --rsyncable" + else + GZIP_OPTIONS="$(echo ${GZIP_OPTIONS} | sed -e 's|--rsyncable||')" + fi + + # Setting apt recommends + case "${LH_MODE}" in + debian|debian-release|ubuntu) + LH_APT_RECOMMENDS="${LH_APT_RECOMMENDS:-enabled}" + ;; + + emdebian) + LH_APT_RECOMMENDS="${LH_APT_RECOMMENDS:-disabled}" + ;; + esac + + # Setting apt secure + LH_APT_SECURE="${LH_APT_SECURE:-enabled}" + + # Setting bootstrap program + if [ -z "${LH_BOOTSTRAP}" ] || ( [ ! -x "$(which ${LH_BOOTSTRAP} 2>/dev/null)" ] && [ "${LH_BOOTSTRAP}" != "copy" ] ) + then + if [ -x "/usr/sbin/debootstrap" ] + then + LH_BOOTSTRAP="debootstrap" + elif [ -x "/usr/bin/cdebootstrap" ] + then + LH_BOOTSTRAP="cdebootstrap" + else + Echo_error "Cannot find /usr/sbin/debootstrap or /usr/bin/cdebootstrap. Please install debootstrap or cdebootstrap, or specify an alternative bootstrapping utility." + exit 1 + fi + fi + + # Setting cache option + LH_CACHE="${LH_CACHE:-enabled}" + LH_CACHE_INDICES="${LH_CACHE_INDICES:-disabled}" + LH_CACHE_PACKAGES="${LH_CACHE_PACKAGES:-enabled}" + LH_CACHE_STAGES="${LH_CACHE_STAGES:-bootstrap}" + + # Setting debconf frontend + LH_DEBCONF_FRONTEND="${LH_DEBCONF_FRONTEND:-noninteractive}" + LH_DEBCONF_NOWARNINGS="${LH_DEBCONF_NOWARNINGS:-yes}" + LH_DEBCONF_PRIORITY="${LH_DEBCONF_PRIORITY:-critical}" + + case "${LH_DEBCONF_NOWARNINGS}" in + enabled) + LH_DEBCONF_NOWARNINGS="yes" + ;; + + disabled) + LH_DEBCONF_NOWARNINGS="no" + ;; + esac + + # Setting initramfs hook + if [ -z "${LH_INITRAMFS}" ] + then + LH_INITRAMFS="auto" + else + if [ "${LH_INITRAMFS}" = "auto" ] + then + case "${LH_MODE}" in + debian|debian-release) + if [ "${LH_DISTRIBUTION}" = "etch" ] + then + LH_INITRAMFS="casper" + else + LH_INITRAMFS="live-initramfs" + fi + ;; + + ubuntu) + LH_INITRAMFS="casper" + ;; + + *) + LH_INITRAMFS="live-initramfs" + ;; + esac + fi + fi + + # Setting fdisk + if [ -z "${LH_FDISK}" ] || [ ! -x "${LH_FDISK}" ] + then + # Workaround for gnu-fdisk divertion + # (gnu-fdisk is buggy, #445304). + if [ -x /sbin/fdisk.distrib ] + then + LH_FDISK="fdisk.distrib" + elif [ -x /sbin/fdisk ] + then + LH_FDISK="fdisk" + else + Echo_error "Can't process file /sbin/fdisk" + fi + fi + + # Setting losetup + if [ -z "${LH_LOSETUP}" ] || [ "${LH_LOSETUP}" != "/sbin/losetup.orig" ] + then + # Workaround for loop-aes-utils divertion + # (loop-aes-utils' losetup lacks features). + if [ -x /sbin/losetup.orig ] + then + LH_LOSETUP="losetup.orig" + elif [ -x /sbin/losetup ] + then + LH_LOSETUP="losetup" + else + Echo_error "Can't process file /sbin/losetup" + fi + fi + + if [ "$(id -u)" = "0" ] + then + # If we are root, disable root command + LH_ROOT_COMMAND="" + else + if [ -x /usr/bin/sudo ] + then + # FIXME: this is disabled until considered safe + #LH_ROOT_COMMAND="sudo" + LH_ROOT_COMMAND="" + fi + fi + + # Setting tasksel + LH_TASKSEL="${LH_TASKSEL:-tasksel}" + + # Setting root directory + if [ -z "${LH_ROOT}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_ROOT="debian-live" + ;; + + emdebian) + LH_ROOT="emdebian-live" + ;; + + ubuntu) + LH_ROOT="ubuntu-live" + ;; + esac + fi + + # Setting includes + if [ -z "${LH_INCLUDES}" ] + then + LH_INCLUDES="${LH_BASE:-/usr/share/live-helper}/includes" + fi + + # Setting templates + if [ -z "${LH_TEMPLATES}" ] + then + LH_TEMPLATES="${LH_BASE:-/usr/share/live-helper}/templates" + fi + + # Setting live helper options + _BREAKPOINTS="${_BREAKPOINTS:-disabled}" + _COLOR="${_COLOR:-false}" + _DEBUG="${_DEBUG:-disabled}" + _FORCE="${_FORCE:-disabled}" + _QUIET="${_QUIET:-disabled}" + _VERBOSE="${_VERBOSE:-disabled}" + + ## config/bootstrap + + # Setting architecture value + if [ -z "${LH_ARCHITECTURE}" ] + then + if [ -x "/usr/bin/dpkg" ] + then + LH_ARCHITECTURE="$(dpkg --print-architecture)" + else + case "$(uname -m)" in + sparc|powerpc) + LH_ARCHITECTURE="$(uname -m)" + ;; + x86_64) + LH_ARCHITECTURE="amd64" + ;; + *) + Echo_warning "Can't determine architecture, assuming i386" + LH_ARCHITECTURE="i386" + ;; + esac + fi + fi + + # Include packages on base + # LH_BOOTSTRAP_INCLUDE + + # Exclude packages on base + # LH_BOOTSTRAP_EXCLUDE + + # Setting distribution configuration value + # LH_BOOTSTRAP_CONFIG + + # Setting flavour value + case "${LH_BOOTSTRAP}" in + cdebootstrap) + LH_BOOTSTRAP_FLAVOUR="${LH_BOOTSTRAP_FLAVOUR:-standard}" + ;; + esac + + # Setting bootstrap keyring + # LH_BOOTSTRAP_KEYRING + + # Setting mirror to fetch packages from + if [ -z "${LH_MIRROR_BOOTSTRAP}" ] + then + case "${LH_MODE}" in + debian|debian-release) + case "${LH_ARCHITECTURE}" in + amd64|i386) + LH_MIRROR_BOOTSTRAP="http://ftp.de.debian.org/debian/" + ;; + + *) + LH_MIRROR_BOOTSTRAP="http://ftp.de.debian.org/debian/" + ;; + esac + ;; + + emdebian) + LH_MIRROR_BOOTSTRAP="http://buildd.emdebian.org/grip/" + ;; + + ubuntu) + case "${LH_ARCHITECTURE}" in + amd64|i386) + LH_MIRROR_BOOTSTRAP="http://archive.ubuntu.com/ubuntu/" + ;; + + *) + LH_MIRROR_BOOTSTRAP="http://ports.ubuntu.com/" + ;; + esac + ;; + esac + fi + + LH_MIRROR_CHROOT="${LH_MIRROR_CHROOT:-${LH_MIRROR_BOOTSTRAP}}" + + # Setting security mirror to fetch packages from + if [ -z "${LH_MIRROR_CHROOT_SECURITY}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_MIRROR_CHROOT_SECURITY="http://security.debian.org/" + ;; + + emdebian) + LH_MIRROR_CHROOT_SECURITY="none" + ;; + + ubuntu) + case "${LH_ARCHITECTURE}" in + amd64|i386) + LH_MIRROR_CHROOT_SECURITY="http://archive.ubuntu.com/ubuntu/" + ;; + + *) + LH_MIRROR_CHROOT_SECURITY="http://ports.ubuntu.com/" + ;; + esac + ;; + esac + fi + + # Setting mirror which ends up in the image + if [ -z "${LH_MIRROR_BINARY}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_MIRROR_BINARY="http://cdn.debian.net/debian/" + ;; + + emdebian) + LH_MIRROR_BINARY="http://buildd.emdebian.org/grip/" + ;; + + ubuntu) + case "${LH_ARCHITECTURE}" in + amd64|i386) + LH_MIRROR_BINARY="http://archive.ubuntu.com/ubuntu/" + ;; + + *) + LH_MIRROR_BINARY="http://ports.ubuntu.com/" + ;; + esac + ;; + esac + fi + + # Setting security mirror which ends up in the image + if [ -z "${LH_MIRROR_BINARY_SECURITY}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_MIRROR_BINARY_SECURITY="http://security.debian.org/" + ;; + + emdebian) + LH_MIRROR_BINARY_SECURITY="none" + ;; + + ubuntu) + case "${LH_ARCHITECTURE}" in + amd64|i386) + LH_MIRROR_BINARY_SECURITY="http://archive.ubuntu.com/ubuntu/" + ;; + + *) + LH_MIRROR_BINARY_SECURITY="http://ports.ubuntu.com/" + ;; + esac + ;; + esac + fi + + # Setting archive areas value + if [ -z "${LH_ARCHIVE_AREAS}" ] + then + case "${LH_MODE}" in + ubuntu) + LH_ARCHIVE_AREAS="main restricted" + ;; + + *) + LH_ARCHIVE_AREAS="main" + ;; + esac + fi + + ## config/chroot + + # Setting chroot filesystem + LH_CHROOT_FILESYSTEM="${LH_CHROOT_FILESYSTEM:-squashfs}" + + # Setting virtual root size + LH_VIRTUAL_ROOT_SIZE="${LH_VIRTUAL_ROOT_SIZE:-10000}" + + # Setting whether to expose root filesystem as read only + LH_EXPOSED_ROOT="${LH_EXPOSED_ROOT:-disabled}" + + # Setting union filesystem + if [ -z "${LH_UNION_FILESYSTEM}" ] + then + if [ "${LH_DISTRIBUTION}" = "etch" ] + then + LH_UNION_FILESYSTEM="unionfs" + else + LH_UNION_FILESYSTEM="aufs" + fi + fi + + # LH_HOOKS + + # Setting interactive shell/X11/Xnest + LH_INTERACTIVE="${LH_INTERACTIVE:-disabled}" + + # Setting keyring packages + case "${LH_MODE}" in + debian|debian-release) + LH_KEYRING_PACKAGES="${LH_KEYRING_PACKAGES:-debian-archive-keyring}" + ;; + + emdebian) + LH_KEYRING_PACKAGES="${LH_kEYRING_PACKAGES:-debian-archive-keyring}" + ;; + + ubuntu) + LH_KEYRING_PACKAGES="${LH_KEYRING_PACKAGES:-ubuntu-keyring}" + ;; + esac + + # Setting language string + LH_LANGUAGE="${LH_LANGUAGE:-en}" + + # Setting linux flavour string + if [ -z "${LH_LINUX_FLAVOURS}" ] + then + case "${LH_ARCHITECTURE}" in + alpha) + case "${LH_MODE}" in + ubuntu) + Echo_error "Architecture ${LH_ARCHITECTURE} not supported on Ubuntu." + exit 1 + ;; + + *) + LH_LINUX_FLAVOURS="alpha-generic" + ;; + esac + ;; + + amd64) + case "${LH_MODE}" in + ubuntu) + LH_LINUX_FLAVOURS="generic" + ;; + + *) + LH_LINUX_FLAVOURS="amd64" + ;; + esac + ;; + + hppa) + case "${LH_MODE}" in + ubuntu) + LH_LINUX_FLAVOURS="hppa32 hppa64" + ;; + + *) + LH_LINUX_FLAVOURS="parisc" + ;; + esac + ;; + + i386) + case "${LH_MODE}" in + ubuntu) + LH_LINUX_FLAVOURS="generic" + ;; + + *) + case "${LIST}" in + stripped|minimal) + LH_LINUX_FLAVOURS="486" + ;; + + *) + LH_LINUX_FLAVOURS="486 686" + ;; + esac + ;; + esac + ;; + + ia64) + LH_LINUX_FLAVOURS="itanium" + ;; + + lpia) + case "${LH_MODE}" in + debian|debian-release|embedian) + Echo_error "Architecture ${LH_ARCHITECTURE} not supported on ${LH_MODE}." + exit 1 + ;; + + *) + LH_LINUX_FLAVOURS="lpia" + ;; + esac + ;; + + powerpc) + case "${LIST}" in + stripped|minimal) + LH_LINUX_FLAVOURS="powerpc" + ;; + + *) + LH_LINUX_FLAVOURS="powerpc powerpc64" + ;; + esac + ;; + + s390) + case "${LH_MODE}" in + ubuntu) + Echo_error "Architecture ${LH_ARCHITECTURE} not supported on Ubuntu." + exit 1 + ;; + + *) + LH_LINUX_FLAVOURS="s390" + ;; + esac + ;; + + sparc) + if [ "${LH_DISTRIBUTION}" = "etch" ] + then + LH_LINUX_FLAVOURS="sparc32" + else + LH_LINUX_FLAVOURS="sparc64" + fi + ;; + + arm|armel|m68k) + Echo_error "You need to specify the linux kernel flavour manually on ${LH_ARCHITECTURE} (FIXME)." + exit 1 + ;; + + *) + Echo_error "Architecture ${LH_ARCHITECTURE} not yet supported (FIXME)" + exit 1 + ;; + esac + fi + + # Set linux packages + if [ -z "${LH_LINUX_PACKAGES}" ] + then + case "${LH_MODE}" in + debian|debian-release|embedian) + case "${LH_DISTRIBUTION}" in + etch|lenny|squeeze) + LH_LINUX_PACKAGES="linux-image-2.6 \${LH_UNION_FILESYSTEM}-modules-2.6" + ;; + + *) + LH_LINUX_PACKAGES="linux-image-2.6" + ;; + esac + + if [ "${LH_CHROOT_FILESYSTEM}" = "squashfs" ] + then + case "${LH_DISTRIBUTION}" in + etch|lenny) + LH_LINUX_PACKAGES="${LH_LINUX_PACKAGES} squashfs-modules-2.6" + ;; + esac + fi + + case "${LH_ENCRYPTION}" in + ""|disabled) + + ;; + + *) + LH_LINUX_PACKAGES="${LH_LINUX_PACKAGES} loop-aes-modules-2.6" + ;; + esac + ;; + + ubuntu) + LH_LINUX_PACKAGES="linux" + ;; + esac + fi + + # Setting packages string + case "${LH_MODE}" in + ubuntu) + LH_PACKAGES="${LH_PACKAGES:-ubuntu-minimal}" + ;; + + *) + LH_PACKAGES_LISTS="${LH_PACKAGES_LISTS:-standard}" + ;; + esac + + case "${LH_ENCRYPTION}" in + ""|disabled) + + ;; + + *) + if ! In_list loop-aes-utils "${LH_PACKAGES}" + then + LH_PACKAGES="${LH_PACKAGES} loop-aes-utils" + fi + ;; + esac + + # Setting tasks string + for LIST in ${LH_PACKAGES_LISTS} + do + case "${LIST}" in + stripped|minimal) + LH_APT="apt-get" + ;; + + gnome-desktop) + LH_PACKAGES_LISTS="$(echo ${LH_PACKAGES_LISTS} | sed -e 's|gnome-desktop||') standard-x11" + LH_TASKS="$(echo ${LH_TASKS} | sed -e 's|standard||' -e 's|gnome-desktop||' -e 's|desktop||') standard gnome-desktop desktop" + ;; + + kde-desktop) + LH_PACKAGES_LISTS="$(echo ${LH_PACKAGES_LISTS} | sed -e 's|kde-desktop||') standard-x11" + LH_TASKS="$(echo ${LH_TASKS} | sed -e 's|standard||' -e 's|kde-desktop||' -e 's|desktop||') standard kde-desktop desktop" + ;; + + lxde-desktop) + LH_PACKAGES_LISTS="$(echo ${LH_PACKAGES_LISTS} | sed -e 's|lxde-desktop||') standard-x11" + LH_TASKS="$(echo ${LH_TASKS} | sed -e 's|standard||' -e 's|lxde-desktop||' -e 's|desktop||') standard lxde-desktop desktop" + ;; + + xfce-desktop) + LH_PACKAGES_LISTS="$(echo ${LH_PACKAGES_LISTS} | sed -e 's|xfce-desktop||') standard-x11" + LH_TASKS="$(echo ${LH_TASKS} | sed -e 's|standard||' -e 's|xfce-desktop||' -e 's|desktop||') standard xfce-desktop desktop" + ;; + esac + done + + LH_PACKAGES_LISTS="$(echo ${LH_PACKAGES_LISTS} | sed -e 's| ||g')" + LH_TASKS="$(echo ${LH_TASKS} | sed -e 's| ||g')" + + # Setting security updates option + if [ "${LH_MIRROR_CHROOT_SECURITY}" = "none" ] || [ "${LH_MIRROR_BINARY_SECURITY}" = "none" ] + then + LH_SECURITY="disabled" + fi + + LH_SECURITY="${LH_SECURITY:-enabled}" + + # Setting symlink convertion option + LH_SYMLINKS="${LH_SYMLINKS:-disabled}" + + # Setting sysvinit option + LH_SYSVINIT="${LH_SYSVINIT:-disabled}" + + ## config/binary + + # Setting image filesystem + case "${LH_ARCHITECTURE}" in + sparc) + LH_BINARY_FILESYSTEM="${LH_BINARY_FILESYSTEM:-ext2}" + ;; + + *) + LH_BINARY_FILESYSTEM="${LH_BINARY_FILESYSTEM:-fat16}" + ;; + esac + + # Setting image type + LH_BINARY_IMAGES="${LH_BINARY_IMAGES:-iso}" + + # Setting apt indices + if echo ${LH_PACKAGES_LISTS} | grep -qs -E "(stripped|minimal)\b" + then + LH_BINARY_INDICES="${LH_BINARY_INDICES:-none}" + else + LH_BINARY_INDICES="${LH_BINARY_INDICES:-enabled}" + fi + + # Setting bootloader + if [ -z "${LH_BOOTLOADER}" ] + then + case "${LH_ARCHITECTURE}" in + amd64|i386|lpia) + LH_BOOTLOADER="syslinux" + ;; + + powerpc) + LH_BOOTLOADER="yaboot" + ;; + + sparc) + LH_BOOTLOADER="silo" + ;; + esac + fi + + # Setting checksums + LH_CHECKSUMS="${LH_CHECKSUMS:-enabled}" + + # Setting chroot option + LH_CHROOT_BUILD="${LH_CHROOT_BUILD:-enabled}" + + # Setting debian-installer option + LH_DEBIAN_INSTALLER="${LH_DEBIAN_INSTALLER:-disabled}" + + # Setting debian-installer distribution + LH_DEBIAN_INSTALLER_DISTRIBUTION="${LH_DEBIAN_INSTALLER_DISTRIBUTION:-${LH_DISTRIBUTION}}" + + # Setting debian-installer-gui + case "${LH_MODE}" in + debian) + LH_DEBIAN_INSTALLER_GUI="${LH_DEBIAN_INSTALLER_GUI:-enabled}" + ;; + + ubuntu) + case "${LH_DEBIAN_INSTALLER_DISTRIBUTION}" in + karmic) + # Not available for Karmic currently. + LH_DEBIAN_INSTALLER_GUI="${LH_DEBIAN_INSTALLER_GUI:-disabled}" + ;; + + *) + LH_DEBIAN_INSTALLER_GUI="${LH_DEBIAN_INSTALLER_GUI:-enabled}" + ;; + esac + ;; + + *) + LH_DEBIAN_INSTALLER_GUI="${LH_DEBIAN_INSTALLER_GUI:-disabled}" + ;; + esac + + # Setting debian-installer preseed filename + if [ -z "${LH_DEBIAN_INSTALLER_PRESEEDFILE}" ] + then + if Find_files config/binary_debian-installer/preseed.cfg + then + LH_DEBIAN_INSTALLER_PRESEEDFILE="/preseed.cfg" + fi + + if Find_files config/binary_debian-installer/*.cfg && [ ! -e config/binary_debian-installer/preseed.cfg ] + then + Echo_warning "You have placed some preseeding files into config/binary_debian-installer but you didn't specify the default preseeding file through LH_DEBIAN_INSTALLER_PRESEEDFILE. This means that debian-installer will not take up a preseeding file by default." + fi + fi + + # Setting boot parameters + # LH_BOOTAPPEND_LIVE + if [ -n "${LH_DEBIAN_INSTALLER_PRESEEDFILE}" ] + then + case "${LH_BINARY_IMAGES}" in + iso) + _LH_BOOTAPPEND_PRESEED="file=/cdrom/install/${LH_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + + usb-hdd) + if [ "${LH_MODE}" = "ubuntu" ] || [ "${LH_DEBIAN_INSTALLER}" = "live" ] + then + _LH_BOOTAPPEND_PRESEED="file=/cdrom/install/${LH_DEBIAN_INSTALLER_PRESEEDFILE}" + else + _LH_BOOTAPPEND_PRESEED="file=/hd-media/install/${LH_DEBIAN_INSTALLER_PRESEEDFILE}" + fi + ;; + + net) + case "${LH_DEBIAN_INSTALLER_PRESEEDFILE}" in + *://*) + _LH_BOOTAPPEND_PRESEED="file=${LH_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + + *) + _LH_BOOTAPPEND_PRESEED="file=/${LH_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + esac + ;; + esac + fi + + if [ "${LH_BINARY_IMAGES}" = "usb-hdd" ] + then + # Try USB block devices for install media + LH_BOOTAPPEND_INSTALL="cdrom-detect/try-usb=true ${LH_BOOTAPPEND_INSTALL}" + fi + + if [ -n ${_LH_BOOTAPPEND_PRESEED} ] + then + LH_BOOTAPPEND_INSTALL="${LH_BOOTAPPEND_INSTALL} ${_LH_BOOTAPPEND_PRESEED}" + fi + + if [ -n "${LH_BOOTAPPEND_LIVE}" ] + then + LH_BOOTAPPEND_INSTALL="${LH_BOOTAPPEND_INSTALL} -- \${LH_BOOTAPPEND_LIVE}" + fi + + # Setting encryption + LH_ENCRYPTION="${LH_ENCRYPTION:-disabled}" + + # Setting grub splash + # LH_GRUB_SPLASH + + # Setting hostname + if [ -z "${LH_HOSTNAME}" ] + then + case "${LH_MODE}" in + embedian) + LH_HOSTNAME="embedian" + ;; + + ubuntu) + LH_HOSTNAME="ubuntu" + ;; + + *) + LH_HOSTNAME="debian" + ;; + esac + fi + + # Setting iso author + if [ -z "${LH_ISO_APPLICATION}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_ISO_APPLICATION="Debian Live" + ;; + + emdebian) + LH_ISO_APPLICATION="Emdebian Live" + ;; + + ubuntu) + LH_ISO_APPLICATION="Ubuntu Live" + ;; + esac + fi + + # Set iso preparer + LH_ISO_PREPARER="${LH_ISO_PREPARER:-live-helper \$VERSION; http://packages.qa.debian.org/live-helper}" + + # Set iso publisher + LH_ISO_PUBLISHER="${LH_ISO_PUBLISHER:-Debian Live project; http://debian-live.alioth.debian.org/; debian-live@lists.debian.org}" + + # Setting iso volume + if [ -z "${LH_ISO_VOLUME}" ] + then + case "${LH_MODE}" in + debian) + LH_ISO_VOLUME="Debian ${LH_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)" + ;; + + debian-release) + eval VERSION="$`echo RELEASE_${LH_DISTRIBUTION}`" + LH_ISO_VOLUME="Debian ${VERSION} ${LH_ARCHITECTURE} live" + ;; + + emdebian) + LH_ISO_VOLUME="Emdebian ${LH_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)" + ;; + + ubuntu) + LH_ISO_VOLUME="Ubuntu ${LH_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)" + ;; + esac + fi + + # Setting memtest option + LH_MEMTEST="${LH_MEMTEST:-memtest86+}" + + # Setting win32-loader option + case "${LH_ARCHITECTURE}" in + amd64|i386|lpia) + if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ] + then + LH_WIN32_LOADER="${LH_WIN32_LOADER:-enabled}" + else + LH_WIN32_LOADER="${LH_WIN32_LOADER:-disabled}" + fi + ;; + + *) + LH_WIN32_LOADER="${LH_WIN32_LOADER:-disabled}" + ;; + esac + + # Setting netboot filesystem + LH_NET_ROOT_FILESYSTEM="${LH_NET_ROOT_FILESYSTEM:-nfs}" + + # Setting netboot server path + if [ -z "${LH_NET_ROOT_PATH}" ] + then + case "${LH_MODE}" in + debian|debian-release) + LH_NET_ROOT_PATH="/srv/debian-live" + ;; + + emdebian) + LH_NET_ROOT_PATH="/srv/emdebian-live" + ;; + + ubuntu) + LH_NET_ROOT_PATH="/srv/ubuntu-live" + ;; + esac + fi + + # Setting netboot server address + LH_NET_ROOT_SERVER="${LH_NET_ROOT_SERVER:-192.168.1.1}" + + # Setting net cow filesystem + LH_NET_COW_FILESYSTEM="${LH_NET_COW_FILESYSTEM:-nfs}" + + # Setting net tarball + LH_NET_TARBALL="${LH_NET_TARBALL:-gzip}" + + # Setting syslinux configuration file + # LH_SYSLINUX_CFG + + # Setting syslinux splash + # LH_SYSLINUX_SPLASH + + LH_SYSLINUX_TIMEOUT="${LH_SYSLINUX_TIMEOUT:-0}" + + # Setting syslinux menu + case "${LH_DISTRIBUTION}" in + etch) + LH_SYSLINUX_MENU="${LH_SYSLINUX_MENU:-disabled}" + ;; + + *) + LH_SYSLINUX_MENU="${LH_SYSLINUX_MENU:-enabled}" + ;; + esac + + # Setting syslinux menu live entries + case "${LH_MODE}" in + debian|debian-release) + LH_SYSLINUX_MENU_LIVE_ENTRY="${LH_SYSLINUX_MENU_LIVE_ENTRY:-Live}" + LH_SYSLINUX_MENU_LIVE_ENTRY_FAILSAFE="${LH_SYSLINUX_MENU_LIVE_ENTRY_FAILSAFE:-${LH_SYSLINUX_MENU_LIVE_ENTRY} (failsafe)}" + ;; + + *) + LH_SYSLINUX_MENU_LIVE_ENTRY="${LH_SYSLINUX_MENU_LIVE_ENTRY:-Start ${LH_ISO_APPLICATION}}" + LH_SYSLINUX_MENU_LIVE_ENTRY_FAILSAFE="${LH_SYSLINUX_MENU_LIVE_ENTRY_FAILSAFE:-${LH_SYSLINUX_MENU_LIVE_ENTRY} (failsafe)}" + ;; + esac + + # Settings memtest menu entry + LH_SYSLINUX_MENU_MEMTEST_ENTRY="${LH_SYSLINUX_MENU_MEMTEST_ENTRY:-Memory test}" + + # Setting username + case "${LH_MODE}" in + ubuntu) + LH_USERNAME="${LH_USERNAME:-ubuntu}" + ;; + + *) + LH_USERNAME="${LH_USERNAME:-user}" + ;; + esac + + ## config/source + + # Setting source option + LH_SOURCE="${LH_SOURCE:-disabled}" + + # Setting image type + LH_SOURCE_IMAGES="${LH_SOURCE_IMAGES:-tar}" + + # Setting fakeroot/fakechroot + LH_USE_FAKEROOT="${LH_USE_FAKEROOT:-disabled}" +} + +Check_defaults () +{ + if [ "${LH_CONFIG_VERSION}" ] + then + # We're only checking when we're actually running the checks + # that's why the check for emptyness of the version; + # however, as live-helper always declares LH_CONFIG_VERSION + # internally, this is safe assumption (no cases where it's unset, + # except when bootstrapping the functions/defaults etc.). + CURRENT_CONFIG_VERSION="$(echo ${LH_CONFIG_VERSION} | awk -F. '{ print $1 }')" + + if [ ${CURRENT_CONFIG_VERSION} -ge 2 ] + then + Echo_error "This config tree is too new for this version of live-helper (${VERSION})." + Echo_error "Aborting build, please get a new version of live-helper." + + exit 1 + elif [ ${CURRENT_CONFIG_VERSION} -lt 1 ] + then + Echo_warning "This config tree does not specify a format version or has an unknown version number." + Echo_warning "Continuing build, but it could lead to errors or different results. Please repopulate the config tree." + fi + fi + + if [ "${LH_DISTRIBUTION}" = "etch" ] + then + # etch + live-initramfs + if [ "${LH_INITRAMFS}" = "live-initramfs" ] + then + Echo_warning "You selected LH_DISTRIBUTION='etch' and LH_INITRAMFS='live-initramfs'. This configuration is potentially unsafe as live-initramfs is not part of the etch distribution. Either make sure that live-initramfs is installable (e.g. through setting up etch-backports repository as third-party source or putting a valid live-initramfs deb into config/chroot_local-packages) or change your config to the etch default (casper)." + fi + + # etch + aufs + if [ "${LH_UNION_FILESYSTEM}" = "aufs" ] + then + Echo_warning "You selected LH_DISTRIBUTION='etch' and LH_UNION_FILESYSTEM='aufs'. This configuration is potentially unsafe as live-initramfs is not part of the etch distribution. Either make sure that live-initramfs is installable (e.g. through setting up etch-backports repository as third-party source or putting a valid live-initramfs deb into config/chroot_local-packages) or change your config to the etch default (casper)." + + fi + fi + + if echo ${LH_PACKAGES_LISTS} | grep -qs -E "(stripped|minimal)\b" + then + # aptitude + stripped|minimal + if [ "${LH_APT}" = "aptitude" ] + then + Echo_warning "You selected LH_PACKAGES_LISTS='%s' and LH_APT='aptitude'" "${LH_PACKAGES_LIST}. This configuration is potentially unsafe, as aptitude is not used in the stripped/minimal package lists." + fi + fi + + if [ "${LH_DEBIAN_INSTALLER}" != "disabled" ] + then + # d-i enabled, no caching + if ! echo ${LH_CACHE_STAGES} | grep -qs "bootstrap\b" || [ "${LH_CACHE}" != "enabled" ] || [ "${LH_CACHE_PACKAGES}" != "enabled" ] + then + Echo_warning "You have selected values of LH_CACHE, LH_CACHE_PACKAGES, LH_CACHE_STAGES and LH_DEBIAN_INSTALLER which will result in 'bootstrap' packages not being cached. This configuration is potentially unsafe as the bootstrap packages are re-used when integrating the Debian Installer." + fi + fi + + if [ "${LH_BOOTLOADER}" = "syslinux" ] + then + # syslinux + fat + case "${LH_BINARY_FILESYSTEM}" in + fat*) + ;; + *) + Echo_warning "You have selected values of LH_BOOTLOADER and LH_BINARY_FILESYSTEM which are incompatible - syslinux only supports FAT filesystems." + ;; + esac + fi + + if [ "${LH_BINARY_IMAGES}" = "usb-hdd" ] + then + # grub or yaboot + usb-hdd + case "${LH_BOOTLOADER}" in + grub|yaboot) + Echo_error "You have selected a combination of bootloader and image type that is currently not supported by live-helper. Please use either another bootloader or a different image type." + exit 1 + ;; + esac + fi + + if [ "$(echo ${LH_ISO_APPLICATION} | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LH_ISO_APPLICATION that is too long; the maximum length is 128 characters." + fi + + if [ "$(echo ${LH_ISO_PREPARER} | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LH_ISO_PREPARER that is too long; the maximum length is 128 characters." + fi + + if [ "$(echo ${LH_ISO_PUBLISHER} | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LH_ISO_PUBLISHER that is too long; the maximum length is 128 characters." + fi + + if [ "$(eval "echo ${LH_ISO_VOLUME}" | wc -c)" -gt 32 ] + then + Echo_warning "You have specified a value of LH_ISO_VOLUME that is too long; the maximum length is 32 characters." + fi + + if echo ${LH_PACKAGES_LISTS} | grep -qs -E "(stripped|minimal)\b" + then + if [ "${LH_BINARY_INDICES}" = "enabled" ] + then + Echo_warning "You have selected hook to minimise image size but you are still including package indices with your value of LH_BINARY_INDICES." + fi + fi + +} |