diff options
Diffstat (limited to 'system-build/functions/defaults.sh')
-rwxr-xr-x | system-build/functions/defaults.sh | 882 |
1 files changed, 882 insertions, 0 deletions
diff --git a/system-build/functions/defaults.sh b/system-build/functions/defaults.sh new file mode 100755 index 0000000..e1106a7 --- /dev/null +++ b/system-build/functions/defaults.sh @@ -0,0 +1,882 @@ +#!/bin/sh + +## live-build(7) - System Build Scripts +## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch> +## +## This program 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. + + +New_configuration () +{ + ## Runtime + + # Image: Architecture + if [ -x "/usr/bin/dpkg" ] + then + CURRENT_IMAGE_ARCHITECTURE="$(dpkg --print-architecture)" + else + case "$(uname -m)" in + x86_64) + CURRENT_IMAGE_ARCHITECTURE="amd64" + ;; + + i?86) + CURRENT_IMAGE_ARCHITECTURE="i386" + ;; + + *) + Echo_warning "Unable to determine current architecture, using ${CURRENT_IMAGE_ARCHITECTURE}" + ;; + esac + fi + + + ## Configuration + + # Configuration-Version + LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-$(Get_configuration config/build Configuration-Version)}" + LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-${LIVE_BUILD_VERSION}}" + export LIVE_CONFIGURATION_VERSION + + # Image: Name + LIVE_IMAGE_NAME="${LIVE_IMAGE_NAME:-$(Get_configuration config/build Name)}" + LIVE_IMAGE_NAME="${LIVE_IMAGE_NAME:-system}" + export LIVE_IMAGE_NAME + + # Image: Architecture (FIXME: Support and default to 'any') + LB_ARCHITECTURES="${LB_ARCHITECTURES:-$(Get_configuration config/build Architecture)}" + LB_ARCHITECTURES="${LB_ARCHITECTURES:-${CURRENT_IMAGE_ARCHITECTURE}}" + export LB_ARCHITECTURES + + # Image: Archive Areas + LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-$(Get_configuration config/build Archive-Areas)}" + + case "${LB_MODE}" in + progress-linux) + LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main contrib non-free}" + ;; + + *) + LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main}" + ;; + esac + + export LB_ARCHIVE_AREAS + + # Image: Archive Areas + LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-$(Get_configuration config/build Parent-Archive-Areas)}" + LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS:-${LB_ARCHIVE_AREAS}}" + export LB_PARENT_ARCHIVE_AREAS + + # Image: Type + LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-$(Get_configuration config/build Type)}" + LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}" + export LIVE_IMAGE_TYPE +} + +Set_defaults () +{ + # FIXME + New_configuration + + ## config/common + + if [ -e local/live-build ] + then + LIVE_BUILD="${LIVE_BUILD:-${PWD}/local/live-build}" + export LIVE_BUILD + fi + + # Setting system type + LB_SYSTEM="${LB_SYSTEM:-live}" + + # Setting mode + LB_MODE="${LB_MODE:-debian}" + + # Setting distribution name + case "${LB_MODE}" in + progress-linux) + LB_DISTRIBUTION="${LB_DISTRIBUTION:-cairon}" + LB_DERIVATIVE="true" + LB_DERIVATIVE_IS_BASED_ON="debian" + ;; + + *) + LB_DISTRIBUTION="${LB_DISTRIBUTION:-stretch}" + LB_DERIVATIVE="false" + ;; + esac + + case "${LB_MODE}" in + progress-linux) + case "${LB_DISTRIBUTION}" in + baureo|baureo-backports) + LB_PARENT_DISTRIBUTION="${LB_PARENT_DISTRIBUTION:-wheezy}" + LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION:-${LB_PARENT_DISTRIBUTION}}" + ;; + + cairon|cairon-backports) + LB_PARENT_DISTRIBUTION="${LB_PARENT_DISTRIBUTION:-sid}" + LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION:-${LB_PARENT_DISTRIBUTION}}" + ;; + esac + + LB_BACKPORTS="${LB_BACKPORTS:-true}" + ;; + + *) + LB_PARENT_DISTRIBUTION="${LB_PARENT_DISTRIBUTION:-${LB_DISTRIBUTION}}" + LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION:-${LB_PARENT_DISTRIBUTION}}" + + LB_BACKPORTS="${LB_BACKPORTS:-false}" + ;; + esac + + # Setting package manager + LB_APT="${LB_APT:-apt}" + + # Setting apt ftp proxy + LB_APT_FTP_PROXY="${LB_APT_FTP_PROXY}" + + # Setting apt http proxy + LB_APT_HTTP_PROXY="${LB_APT_HTTP_PROXY}" + + # Setting apt pipeline + # LB_APT_PIPELINE + + APT_OPTIONS="${APT_OPTIONS:---yes}" + + BZIP2_OPTIONS="${BZIP2_OPTIONS:--6}" + + GZIP_OPTIONS="${GZIP_OPTIONS:--6}" + + if gzip --help | grep -qs "\-\-rsyncable" + then + GZIP_OPTIONS="$(echo ${GZIP_OPTIONS} | sed -e 's|--rsyncable||') --rsyncable" + fi + + LZIP_OPTIONS="${LZIP_OPTIONS:--6}" + + LZMA_OPTIONS="${LZMA_OPTIONS:--6}" + + XZ_OPTIONS="${XZ_OPTIONS:--6}" + + # Setting apt recommends + case "${LB_MODE}" in + progress-linux) + LB_APT_RECOMMENDS="${LB_APT_RECOMMENDS:-false}" + ;; + + *) + LB_APT_RECOMMENDS="${LB_APT_RECOMMENDS:-true}" + ;; + esac + + # Setting apt secure + LB_APT_SECURE="${LB_APT_SECURE:-true}" + + # Setting apt source + case "${LB_MODE}" in + progress-linux) + LB_APT_SOURCE_ARCHIVES="${LB_APT_SOURCE_ARCHIVES:-false}" + ;; + + *) + LB_APT_SOURCE_ARCHIVES="${LB_APT_SOURCE_ARCHIVES:-true}" + ;; + esac + + # Setting cache option + LB_CACHE="${LB_CACHE:-true}" + LB_CACHE_INDICES="${LB_CACHE_INDICES:-false}" + LB_CACHE_PACKAGES="${LB_CACHE_PACKAGES:-true}" + LB_CACHE_STAGES="${LB_CACHE_STAGES:-bootstrap}" + + # Setting debconf frontend + LB_DEBCONF_FRONTEND="${LB_DEBCONF_FRONTEND:-noninteractive}" + LB_DEBCONF_PRIORITY="${LB_DEBCONF_PRIORITY:-critical}" + + # Setting initramfs hook + case "${LB_SYSTEM}" in + live) + LB_INITRAMFS="${LB_INITRAMFS:-system-boot}" + ;; + + normal) + LB_INITRAMFS="${LB_INITRAMFS:-none}" + ;; + esac + + LB_INITRAMFS_COMPRESSION="${LB_INITRAMFS_COMPRESSION:-gzip}" + + # Setting initsystem + case "${LB_MODE}" in + progress-linux) + case "${LB_DISTRIBUTION}" in + cairon*) + LB_INITSYSTEM="${LB_INITSYSTEM:-systemd}" + ;; + + *) + LB_INITSYSTEM="${LB_INITSYSTEM:-sysvinit}" + ;; + esac + ;; + + *) + case "${LB_SYSTEM}" in + live) + LB_INITSYSTEM="${LB_INITSYSTEM:-systemd}" + ;; + + normal) + LB_INITSYSTEM="${LB_INITSYSTEM:-none}" + ;; + esac + ;; + esac + + # Setting fdisk + if [ -z "${LB_FDISK}" ] || [ ! -x "${LB_FDISK}" ] + then + # Workaround for gnu-fdisk divertion + # (gnu-fdisk is buggy, #445304). + if [ -x /sbin/fdisk.distrib ] + then + LB_FDISK="fdisk.distrib" + elif [ -x /sbin/fdisk ] + then + LB_FDISK="fdisk" + else + Echo_error "Can't process file /sbin/fdisk" + fi + fi + + # Setting losetup + if [ -z "${LB_LOSETUP}" ] || [ "${LB_LOSETUP}" != "/sbin/losetup.orig" ] + then + # Workaround for loop-aes-utils divertion + # (loop-aes-utils' losetup lacks features). + if [ -x /sbin/losetup.orig ] + then + LB_LOSETUP="losetup.orig" + elif [ -x /sbin/losetup ] + then + LB_LOSETUP="losetup" + else + Echo_error "Can't process file /sbin/losetup" + fi + fi + + if [ "${LB_ARCHITECTURES}" = "i386" ] && [ "${CURRENT_IMAGE_ARCHITECTURE}" = "amd64" ] + then + # Use linux32 when building amd64 images on i386 + _LINUX32="linux32" + else + _LINUX32="" + fi + + # Setting tasksel + LB_TASKSEL="${LB_TASKSEL:-apt}" + + # Setting root directory + case "${LB_MODE}" in + progress-linux) + LB_ROOT="${LB_ROOT:-progress-linux}" + ;; + + *) + LB_ROOT="${LB_ROOT:-${LB_MODE}-live}" + ;; + esac + + # Setting live build options + _BREAKPOINTS="${_BREAKPOINTS:-false}" + _COLOR="${_COLOR:-false}" + _DEBUG="${_DEBUG:-false}" + _FORCE="${_FORCE:-false}" + _QUIET="${_QUIET:-false}" + _VERBOSE="${_VERBOSE:-false}" + + ## config/bootstrap + + # Setting mirror to fetch packages from + case "${LB_MODE}" in + debian) + LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-https://deb.debian.org/debian}" + LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP:-${LB_MIRROR_BOOTSTRAP}}" + ;; + + progress-linux) + LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP:-https://deb.debian.org/debian}" + LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-http://cdn.archive.progress-linux.org/packages}" + ;; + esac + + LB_PARENT_MIRROR_CHROOT="${LB_PARENT_MIRROR_CHROOT:-${LB_PARENT_MIRROR_BOOTSTRAP}}" + LB_MIRROR_CHROOT="${LB_MIRROR_CHROOT:-${LB_MIRROR_BOOTSTRAP}}" + + # Setting security mirror to fetch packages from + case "${LB_MODE}" in + debian) + LB_MIRROR_CHROOT_SECURITY="${LB_MIRROR_CHROOT_SECURITY:-http://security.debian.org}" + LB_PARENT_MIRROR_CHROOT_SECURITY="${LB_PARENT_MIRROR_CHROOT_SECURITY:-${LB_MIRROR_CHROOT_SECURITY}}" + ;; + + progress-linux) + LB_PARENT_MIRROR_CHROOT_SECURITY="${LB_PARENT_MIRROR_CHROOT_SECURITY:-http://security.debian.org}" + LB_MIRROR_CHROOT_SECURITY="${LB_MIRROR_CHROOT_SECURITY:-${LB_MIRROR_CHROOT}}" + ;; + esac + + # Setting mirror which ends up in the image + case "${LB_MODE}" in + debian) + LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-https://deb.debian.org/debian}" + LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY:-${LB_MIRROR_BINARY}}" + ;; + + progress-linux) + LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY:-https://deb.debian.org/debian}" + LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-${LB_MIRROR_CHROOT}}" + ;; + esac + + # Setting security mirror which ends up in the image + case "${LB_MODE}" in + debian) + LB_MIRROR_BINARY_SECURITY="${LB_MIRROR_BINARY_SECURITY:-http://security.debian.org}" + LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY:-${LB_MIRROR_BINARY_SECURITY}}" + ;; + + progress-linux) + LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY:-http://security.debian.org}" + LB_MIRROR_BINARY_SECURITY="${LB_MIRROR_BINARY_SECURITY:-${LB_MIRROR_CHROOT}}" + ;; + esac + + case "${LB_MODE}" in + progress-linux) + LB_PARENT_MIRROR_DEBIAN_INSTALLER="${LB_PARENT_MIRROR_DEBIAN_INSTALLER:-${LB_MIRROR_CHROOT}}" + LB_MIRROR_DEBIAN_INSTALLER="${LB_MIRROR_DEBIAN_INSTALLER:-${LB_MIRROR_CHROOT}}" + ;; + + *) + LB_MIRROR_DEBIAN_INSTALLER="${LB_MIRROR_DEBIAN_INSTALLER:-${LB_MIRROR_CHROOT}}" + LB_PARENT_MIRROR_DEBIAN_INSTALLER="${LB_PARENT_MIRROR_DEBIAN_INSTALLER:-${LB_PARENT_MIRROR_CHROOT}}" + ;; + esac + + ## config/system + + # Setting chroot filesystem + LB_CHROOT_FILESYSTEM="${LB_CHROOT_FILESYSTEM:-squashfs}" + + # Setting union filesystem + LB_UNION_FILESYSTEM="${LB_UNION_FILESYSTEM:-aufs}" + + # Setting interactive shell/X11/Xnest + LB_INTERACTIVE="${LB_INTERACTIVE:-false}" + + # Setting keyring packages + LB_KEYRING_PACKAGES="${LB_KEYRING_PACKAGES:-debian-archive-keyring}" + + # Setting linux flavour string + case "${LB_ARCHITECTURES}" in + arm64) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-arm64}" + ;; + + armel) + # armel will have special images: one rootfs image and many additional kernel images. + # therefore we default to all available armel flavours + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-kirkwood orion5x versatile}" + ;; + + armhf) + # armhf will have special images: one rootfs image and many additional kernel images. + # therefore we default to all available armhf flavours + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-armmp armmp-lpae}" + ;; + + amd64) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-amd64}" + ;; + + i386) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-686-pae}" + ;; + + ia64) + case "${LB_MODE}" in + progress-linux) + Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode." + exit 1 + ;; + + *) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-itanium}" + ;; + esac + ;; + + powerpc) + case "${LB_MODE}" in + progress-linux) + Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode." + exit 1 + ;; + + *) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc64 powerpc}" + ;; + esac + ;; + + s390x) + case "${LB_MODE}" in + progress-linux) + Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode." + exit 1 + ;; + + *) + LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-s390x}" + ;; + esac + ;; + + *) + Echo_error "Architecture(s) ${LB_ARCHITECTURES} not yet supported (FIXME)" + exit 1 + ;; + esac + + # Set linux packages + LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES:-linux-image}" + + # Setting security updates option + case "${LB_PARENT_DISTRIBUTION}" in + sid) + LB_SECURITY="${LB_SECURITY:-false}" + ;; + + *) + LB_SECURITY="${LB_SECURITY:-true}" + ;; + esac + + # Setting updates updates option + case "${LB_PARENT_DISTRIBUTION}" in + sid) + LB_UPDATES="${LB_UPDATES:-false}" + ;; + + *) + LB_UPDATES="${LB_UPDATES:-true}" + ;; + esac + + ## config/binary + + # Setting image filesystem + LB_BINARY_FILESYSTEM="${LB_BINARY_FILESYSTEM:-fat32}" + + # Setting image type + case "${LB_ARCHITECTURES}" in + amd64|i386) + LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}" + ;; + + *) + LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso}" + ;; + esac + + # Setting apt indices + case "${LB_MODE}" in + progress-linux) + LB_APT_INDICES="${LB_APT_INDICES:-false}" + ;; + + *) + LB_APT_INDICES="${LB_APT_INDICES:-true}" + ;; + esac + + # Setting bootloader + if [ -z "${LB_BOOTLOADERS}" ] + then + case "${LB_ARCHITECTURES}" in + amd64|i386) + LB_BOOTLOADERS="syslinux" + ;; + esac + fi + + # Setting checksums + case "${LB_MODE}" in + progress-linux) + LB_CHECKSUMS="${LB_CHECKSUMS:-sha256}" + ;; + + *) + LB_CHECKSUMS="${LB_CHECKSUMS:-md5}" + ;; + esac + + # Setting compression + LB_COMPRESSION="${LB_COMPRESSION:-none}" + + # Setting zsync + LB_ZSYNC="${LB_ZSYNC:-true}" + + # Setting chroot option + LB_BUILD_WITH_CHROOT="${LB_BUILD_WITH_CHROOT:-true}" + + LB_BUILD_WITH_TMPFS="${LB_BUILD_WITH_TMPFS:-false}" + + # Setting debian-installer option + LB_DEBIAN_INSTALLER="${LB_DEBIAN_INSTALLER:-false}" + + LB_DEBIAN_INSTALLER_DISTRIBUTION="${LB_DEBIAN_INSTALLER_DISTRIBUTION:-${LB_DISTRIBUTION}}" + + # Setting debian-installer-gui + case "${LB_MODE}" in + debian|progress-linux) + LB_DEBIAN_INSTALLER_GUI="${LB_DEBIAN_INSTALLER_GUI:-true}" + ;; + + *) + LB_DEBIAN_INSTALLER_GUI="${LB_DEBIAN_INSTALLER_GUI:-false}" + ;; + esac + + # Setting debian-installer preseed filename + if [ -z "${LB_DEBIAN_INSTALLER_PRESEEDFILE}" ] + then + if Find_files config/debian-installer/preseed.cfg + then + LB_DEBIAN_INSTALLER_PRESEEDFILE="/preseed.cfg" + fi + + if Find_files config/debian-installer/*.cfg && [ ! -e config/debian-installer/preseed.cfg ] + then + Echo_warning "You have placed some preseeding files into config/debian-installer but you didn't specify the default preseeding file through LB_DEBIAN_INSTALLER_PRESEEDFILE. This means that debian-installer will not take up a preseeding file by default." + fi + fi + + # Setting boot parameters + case "${LB_INITRAMFS}" in + system-boot) + LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE:-boot=live components quiet splash}" + LB_BOOTAPPEND_LIVE_FAILSAFE="${LB_BOOTAPPEND_LIVE_FAILSAFE:-boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal}" + ;; + + none) + LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE:-quiet splash}" + LB_BOOTAPPEND_LIVE_FAILSAFE="${LB_BOOTAPPEND_LIVE_FAILSAFE:-memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal}" + ;; + esac + + if [ -n "${LB_DEBIAN_INSTALLER_PRESEEDFILE}" ] + then + case "${LIVE_IMAGE_TYPE}" in + iso*) + _LB_BOOTAPPEND_PRESEED="file=/cdrom/install/${LB_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + + hdd*) + _LB_BOOTAPPEND_PRESEED="file=/hd-media/install/${LB_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + + netboot) + case "${LB_DEBIAN_INSTALLER_PRESEEDFILE}" in + *://*) + _LB_BOOTAPPEND_PRESEED="file=${LB_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + + *) + _LB_BOOTAPPEND_PRESEED="file=/${LB_DEBIAN_INSTALLER_PRESEEDFILE}" + ;; + esac + ;; + esac + fi + + if [ -n ${_LB_BOOTAPPEND_PRESEED} ] + then + LB_BOOTAPPEND_INSTALL="${LB_BOOTAPPEND_INSTALL} ${_LB_BOOTAPPEND_PRESEED}" + fi + + LB_BOOTAPPEND_INSTALL="$(echo ${LB_BOOTAPPEND_INSTALL} | sed -e 's/[ \t]*$//')" + + # Setting grub splash + # LB_GRUB_SPLASH + + # Setting iso author + case "${LB_MODE}" in + debian) + LB_ISO_APPLICATION="${LB_ISO_APPLICATION:-Debian Live}" + ;; + + progress-linux) + LB_ISO_APPLICATION="${LB_ISO_APPLICATION:-Progress Linux}" + ;; + esac + + # Set iso preparer + LB_ISO_PREPARER="${LB_ISO_PREPARER:-live-build \$VERSION; http://live-systems.org/devel/live-build}" + + # Set iso publisher + case "${LB_MODE}" in + progress-linux) + LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER:-Progress Linux; http://www.progress-linux.org/; progress-project@lists.progress-linux.org}" + ;; + + *) + LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER:-Live Systems project; http://live-systems.org/; debian-live@lists.debian.org}" + ;; + esac + + # Setting hdd options + case "${LB_MODE}" in + debian) + LB_HDD_LABEL="${LB_HDD_LABEL:-DEBIAN_LIVE}" + ;; + + progress-linux) + LB_HDD_LABEL="${LB_HDD_LABEL:-PROGRESS_$(echo ${LB_DISTRIBUTION} | tr "[a-z]" "[A-Z]")}" + ;; + esac + + # Setting hdd size + LB_HDD_SIZE="${LB_HDD_SIZE:-auto}" + + # Setting iso volume + case "${LB_MODE}" in + debian) + LB_ISO_VOLUME="${LB_ISO_VOLUME:-Debian ${LB_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)}" + ;; + + progress-linux) + LB_ISO_VOLUME="${LB_ISO_VOLUME:-Progress ${LB_DISTRIBUTION}}" + ;; + esac + + # Setting memtest option + LB_MEMTEST="${LB_MEMTEST:-none}" + + # Setting loadlin option + case "${LB_MODE}" in + progress-linux) + + ;; + + *) + case "${LB_ARCHITECTURES}" in + amd64|i386) + if [ "${LB_DEBIAN_INSTALLER}" != "false" ] + then + LB_LOADLIN="${LB_LOADLIN:-true}" + else + LB_LOADLIN="${LB_LOADLIN:-false}" + fi + ;; + + *) + LB_LOADLIN="${LB_LOADLIN:-false}" + ;; + esac + ;; + esac + + # Setting win32-loader option + case "${LB_MODE}" in + progress-linux) + + ;; + + *) + case "${LB_ARCHITECTURES}" in + amd64|i386) + if [ "${LB_DEBIAN_INSTALLER}" != "false" ] + then + LB_WIN32_LOADER="${LB_WIN32_LOADER:-true}" + else + LB_WIN32_LOADER="${LB_WIN32_LOADER:-false}" + fi + ;; + + *) + LB_WIN32_LOADER="${LB_WIN32_LOADER:-false}" + ;; + esac + ;; + esac + + # Setting netboot filesystem + LB_NET_ROOT_FILESYSTEM="${LB_NET_ROOT_FILESYSTEM:-nfs}" + + # Setting netboot server path + case "${LB_MODE}" in + progress-linux) + LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH:-/srv/progress-linux}" + ;; + + *) + LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH:-/srv/${LB_MODE}-live}" + ;; + esac + + # Setting netboot server address + LB_NET_ROOT_SERVER="${LB_NET_ROOT_SERVER:-192.168.1.1}" + + # Setting net cow filesystem + LB_NET_COW_FILESYSTEM="${LB_NET_COW_FILESYSTEM:-nfs}" + + # Setting net tarball + LB_NET_TARBALL="${LB_NET_TARBALL:-true}" + + # Setting firmware option + LB_FIRMWARE_CHROOT="${LB_FIRMWARE_CHROOT:-true}" + LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY:-true}" + + # Setting swap file + LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE:-512}" + + ## config/source + + # Setting source option + LB_SOURCE="${LB_SOURCE:-false}" + + # Setting image type + LB_SOURCE_IMAGES="${LB_SOURCE_IMAGES:-tar}" +} + +Check_defaults () +{ + if [ -n "${LIVE_BUILD_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-build always declares LIVE_BUILD_VERSION + # internally, this is safe assumption (no cases where it's unset, + # except when bootstrapping the functions/defaults etc.). + + CURRENT_CONFIGURATION_VERSION="$(echo ${LIVE_CONFIGURATION_VERSION} | awk -F. ' { print $1 }')" + + if [ -n "${CURRENT_CONFIGURATION_VERSION}" ] + then + CORRECT_VERSION="$(echo ${LIVE_BUILD_VERSION} | awk -F. '{ print $1 }')" + TOO_NEW_VERSION="$((${CORRECT_VERSION} + 1))" + TOO_OLD_VERSION="$((${CORRECT_VERSION} - 1))" + + if [ ${CURRENT_CONFIGURATION_VERSION} -ne ${CORRECT_VERSION} ] + then + if [ ${CURRENT_CONFIGURATION_VERSION} -ge ${TOO_NEW_VERSION} ] + then + Echo_error "This config tree is too new for live-build (${VERSION})." + Echo_error "Aborting build, please update live-build." + + exit 1 + elif [ ${CURRENT_CONFIGURATION_VERSION} -le ${TOO_OLD_VERSION} ] + then + Echo_error "This config tree is too old for live-build (${VERSION})." + Echo_error "Aborting build, please update the configuration." + + exit 1 + else + Echo_warning "This configuration does not specify a version or has a unknown version." + Echo_warning "Continuing build, please correct the configuration." + fi + fi + fi + fi + + case "${LB_BINARY_FILESYSTEM}" in + ntfs) + if [ ! -x "$(which ntfs-3g 2>/dev/null)" ] + then + Echo_error "Using ntfs as the binary filesystem is currently only supported" + Echo_error "if ntfs-3g is installed on the host system." + + exit 1 + fi + ;; + esac + + if echo ${LB_HDD_LABEL} | grep -qs ' ' + then + Echo_error "There are currently no whitespaces supported in hdd labels." + + exit 1 + fi + + if [ "${LB_DEBIAN_INSTALLER}" != "false" ] + then + # d-i true, no caching + if ! echo ${LB_CACHE_STAGES} | grep -qs "bootstrap\b" || [ "${LB_CACHE}" != "true" ] || [ "${LB_CACHE_PACKAGES}" != "true" ] + then + Echo_warning "You have selected values of LB_CACHE, LB_CACHE_PACKAGES, LB_CACHE_STAGES and LB_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 + + + LB_PRIMARY_BOOTLOADER=$(echo "${LB_BOOTLOADERS}" | awk -F, '{ print $1 }') + + if [ "${LB_PRIMARY_BOOTLOADER}" = "syslinux" ] + then + # syslinux + fat or ntfs, or extlinux + ext[234] or btrfs + case "${LB_BINARY_FILESYSTEM}" in + fat*|ntfs|ext[234]|btrfs) + ;; + *) + Echo_warning "You have selected values of LB_BOOTLOADER and LB_BINARY_FILESYSTEM which are incompatible - the syslinux family only support FAT, NTFS, ext[234] or btrfs filesystems." + ;; + esac + fi + + case "${LIVE_IMAGE_TYPE}" in + hdd*) + case "${LB_PRIMARY_BOOTLOADER}" in + grub) + Echo_error "You have selected a combination of bootloader and image type that is currently not supported by live-build. Please use either another bootloader or a different image type." + exit 1 + ;; + esac + ;; + esac + + if [ "$(echo \"${LB_ISO_APPLICATION}\" | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LB_ISO_APPLICATION that is too long; the maximum length is 128 characters." + fi + + if [ "$(echo \"${LB_ISO_PREPARER}\" | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LB_ISO_PREPARER that is too long; the maximum length is 128 characters." + fi + + if [ "$(echo \"${LB_ISO_PUBLISHER}\" | wc -c)" -gt 128 ] + then + Echo_warning "You have specified a value of LB_ISO_PUBLISHER that is too long; the maximum length is 128 characters." + fi + + if [ "$(eval "echo \"${LB_ISO_VOLUME}\"" | wc -c)" -gt 32 ] + then + Echo_warning "You have specified a value of LB_ISO_VOLUME that is too long; the maximum length is 32 characters." + fi + + # Architectures to use foreign bootstrap for + LB_BOOTSTRAP_QEMU_ARCHITECTURES="${LB_BOOTSTRAP_QEMU_ARCHITECTURES:-}" + + # Packages to exclude for the foreign/ports bootstrapping + LB_BOOTSTRAP_QEMU_EXCLUDE="${LB_BOOTSTRAP_QEMU_EXCLUDE:-}" + + # Ports using foreign bootstrap need a working qemu-*-system. This is the location it + LB_BOOTSTRAP_QEMU_STATIC="${LB_BOOTSTRAP_QEMU_STATIC:-}" + +} |