live-build/functions/defaults.sh

1083 lines
26 KiB
Bash
Raw Normal View History

2007-09-23 08:04:46 +00:00
#!/bin/sh
## live-build(7) - System Build Scripts
2014-02-08 15:47:02 -01:00
## Copyright (C) 2006-2014 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.
2007-09-23 08:04:46 +00:00
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
2012-12-19 10:07:10 -01:00
## Configuration
# Configuration-Version
LIVE_CONFIGURATION_VERSION="${LIVE_CONFIGURATION_VERSION:-$(Get_configuration config/build Configuration-Version)}"
2012-12-19 10:07:10 -01:00
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:-live-image}"
export LIVE_IMAGE_NAME
2012-12-19 10:07:10 -01:00
# 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
2012-12-19 10:07:10 -01:00
# 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}"
;;
ubuntu)
LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS:-main restricted}"
;;
*)
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
2012-12-19 10:07:10 -01:00
# Image: Type
LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-$(Get_configuration config/build Type)}"
2012-12-19 10:07:10 -01:00
LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}"
export LIVE_IMAGE_TYPE
}
2007-09-23 08:04:46 +00:00
Set_defaults ()
{
# FIXME
New_configuration
2007-09-23 08:04:46 +00:00
## 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 (currently: debian, progress-linux, and ubuntu)
if [ -x /usr/bin/lsb_release ]
then
_DISTRIBUTOR="$(lsb_release -is | tr "[A-Z]" "[a-z]")"
case "${_DISTRIBUTOR}" in
debian|progress-linux|ubuntu)
LB_MODE="${LB_MODE:-${_DISTRIBUTOR}}"
;;
*)
LB_MODE="${LB_MODE:-debian}"
;;
esac
else
if [ -e /etc/progress-linux_version ]
then
LB_MODE="${LB_MODE:-progress-linux}"
elif [ -e /etc/ubuntu_version ]
then
LB_MODE="${LB_MODE:-ubuntu}"
else
LB_MODE="${LB_MODE:-debian}"
fi
fi
2007-09-23 08:04:49 +00:00
2007-09-23 08:05:13 +00:00
# Setting distribution name
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
progress-linux)
LB_DISTRIBUTION="${LB_DISTRIBUTION:-baureo}"
LB_DERIVATIVE="true"
LB_DERIVATIVE_IS_BASED_ON="debian"
2011-01-01 22:45:08 -01:00
;;
ubuntu)
LB_DISTRIBUTION="${LB_DISTRIBUTION:-quantal}"
LB_DERIVATIVE="false"
2010-12-27 16:12:36 -01:00
;;
2009-04-15 20:07:26 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_DISTRIBUTION="${LB_DISTRIBUTION:-jessie}"
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}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:11 +00:00
# Setting package manager
LB_APT="${LB_APT:-apt}"
2007-09-23 08:05:11 +00:00
2007-09-23 08:04:46 +00:00
# Setting apt ftp proxy
LB_APT_FTP_PROXY="${LB_APT_FTP_PROXY}"
2007-09-23 08:04:46 +00:00
# Setting apt http proxy
LB_APT_HTTP_PROXY="${LB_APT_HTTP_PROXY}"
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:11 +00:00
# Setting apt pipeline
# LB_APT_PIPELINE
2007-09-23 08:04:46 +00:00
APT_OPTIONS="${APT_OPTIONS:---yes}"
APTITUDE_OPTIONS="${APTITUDE_OPTIONS:---assume-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}"
2012-07-18 17:44:00 +00:00
XZ_OPTIONS="${XZ_OPTIONS:--6}"
2007-09-23 08:04:46 +00:00
# Setting apt recommends
case "${LB_MODE}" in
progress-linux)
LB_APT_RECOMMENDS="${LB_APT_RECOMMENDS:-false}"
2008-12-08 10:24:11 -01:00
;;
2010-12-27 16:12:36 -01:00
*)
LB_APT_RECOMMENDS="${LB_APT_RECOMMENDS:-true}"
;;
2007-09-23 08:05:17 +00:00
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:04:48 +00:00
# Setting apt secure
LB_APT_SECURE="${LB_APT_SECURE:-true}"
2007-09-23 08:04:48 +00:00
# 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
2007-09-23 08:04:46 +00:00
# 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}"
2007-09-23 08:04:46 +00:00
# Setting debconf frontend
LB_DEBCONF_FRONTEND="${LB_DEBCONF_FRONTEND:-noninteractive}"
LB_DEBCONF_PRIORITY="${LB_DEBCONF_PRIORITY:-critical}"
2007-09-23 08:04:50 +00:00
2007-09-23 08:05:10 +00:00
# Setting initramfs hook
case "${LB_SYSTEM}" in
live)
case "${LB_MODE}" in
ubuntu)
LB_INITRAMFS="${LB_INITRAMFS:-casper}"
2009-04-15 20:07:26 +00:00
;;
2008-12-08 10:24:11 -01:00
*)
LB_INITRAMFS="${LB_INITRAMFS:-live-boot}"
2008-12-08 10:24:11 -01:00
;;
2007-09-23 08:05:17 +00:00
esac
2010-12-27 16:12:36 -01:00
;;
normal)
LB_INITRAMFS="${LB_INITRAMFS:-none}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:05:10 +00:00
LB_INITRAMFS_COMPRESSION="${LB_INITRAMFS_COMPRESSION:-gzip}"
# Setting initsystem
2011-02-10 21:31:21 -01:00
case "${LB_MODE}" in
ubuntu)
case "${LB_INITRAMFS}" in
live-boot)
LB_INITSYSTEM="${LB_INITSYSTEM:-upstart}"
;;
esac
2011-02-10 21:31:21 -01:00
;;
progress-linux)
case "${LB_DISTRIBUTION}" in
cairon*)
LB_INITSYSTEM="${LB_INITSYSTEM:-systemd}"
;;
*)
LB_INITSYSTEM="${LB_INITSYSTEM:-sysvinit}"
;;
esac
;;
*)
case "${LB_SYSTEM}" in
live)
2014-12-10 06:38:42 -01:00
LB_INITSYSTEM="${LB_INITSYSTEM:-systemd}"
;;
normal)
LB_INITSYSTEM="${LB_INITSYSTEM:-none}"
;;
esac
;;
2011-02-10 21:31:21 -01:00
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
2007-09-23 08:04:47 +00:00
# Setting losetup
if [ -z "${LB_LOSETUP}" ] || [ "${LB_LOSETUP}" != "/sbin/losetup.orig" ]
2007-09-23 08:04:46 +00:00
then
2007-09-23 08:05:10 +00:00
# Workaround for loop-aes-utils divertion
# (loop-aes-utils' losetup lacks features).
2007-09-23 08:04:47 +00:00
if [ -x /sbin/losetup.orig ]
then
LB_LOSETUP="losetup.orig"
2007-09-23 08:04:47 +00:00
elif [ -x /sbin/losetup ]
then
LB_LOSETUP="losetup"
2007-09-23 08:04:47 +00:00
else
Echo_error "Can't process file /sbin/losetup"
2007-09-23 08:04:47 +00:00
fi
2007-09-23 08:04:46 +00:00
fi
if [ "${LB_ARCHITECTURES}" = "i386" ] && [ "${CURRENT_IMAGE_ARCHITECTURE}" = "amd64" ]
then
# Use linux32 when building amd64 images on i386
_LINUX32="linux32"
else
_LINUX32=""
fi
2007-09-23 08:05:10 +00:00
# Setting tasksel
2013-05-06 12:48:46 +00:00
LB_TASKSEL="${LB_TASKSEL:-apt}"
2007-09-23 08:04:52 +00:00
2007-09-23 08:04:47 +00:00
# Setting root directory
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
progress-linux)
2011-01-01 22:45:08 -01:00
LB_ROOT="${LB_ROOT:-progress-linux}"
;;
2010-12-27 16:12:36 -01:00
*)
LB_ROOT="${LB_ROOT:-${LB_MODE}-live}"
;;
esac
2007-09-23 08:04:49 +00:00
2007-09-23 08:04:52 +00:00
# Setting templates
if [ -n "${LIVE_BUILD}" ]
then
LB_TEMPLATES="${LB_TEMPLATES:-${LIVE_BUILD}/templates}"
else
LB_TEMPLATES="${LB_TEMPLATES:-/usr/share/live/build/templates}"
fi
2007-09-23 08:04:52 +00:00
2010-09-13 19:49:20 +00:00
# Setting live build options
_BREAKPOINTS="${_BREAKPOINTS:-false}"
_COLOR="${_COLOR:-false}"
_DEBUG="${_DEBUG:-false}"
_FORCE="${_FORCE:-false}"
_QUIET="${_QUIET:-false}"
_VERBOSE="${_VERBOSE:-false}"
2007-09-23 08:04:46 +00:00
## config/bootstrap
2007-09-23 08:04:48 +00:00
# Setting mirror to fetch packages from
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
2011-01-07 19:18:27 -01:00
debian)
LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-http://ftp.debian.org/debian/}"
LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP:-${LB_MIRROR_BOOTSTRAP}}"
2010-12-27 16:12:36 -01:00
;;
2008-12-08 10:24:11 -01:00
progress-linux)
LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP:-http://ftp.debian.org/debian/}"
LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-http://cdn.archive.progress-linux.org/packages/}"
2011-01-07 19:18:27 -01:00
;;
ubuntu)
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
amd64|i386)
LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-http://archive.ubuntu.com/ubuntu/}"
2010-12-27 16:12:36 -01:00
;;
2009-04-15 20:07:26 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP:-http://ports.ubuntu.com/ubuntu-ports/}"
2010-12-27 16:12:36 -01:00
;;
esac
LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP:-${LB_MIRROR_BOOTSTRAP}}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
LB_PARENT_MIRROR_CHROOT="${LB_PARENT_MIRROR_CHROOT:-${LB_PARENT_MIRROR_BOOTSTRAP}}"
LB_MIRROR_CHROOT="${LB_MIRROR_CHROOT:-${LB_MIRROR_BOOTSTRAP}}"
2007-09-23 08:04:48 +00:00
# Setting security mirror to fetch packages from
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
2011-01-07 19:18:27 -01:00
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}}"
2010-12-27 16:12:36 -01:00
;;
2008-12-08 10:24:11 -01:00
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}}"
2011-01-07 19:18:27 -01:00
;;
ubuntu)
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
amd64|i386)
LB_MIRROR_CHROOT_SECURITY="${LB_MIRROR_CHROOT_SECURITY:-http://security.ubuntu.com/ubuntu/}"
2010-12-27 16:12:36 -01:00
;;
2009-04-15 20:07:26 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_MIRROR_CHROOT_SECURITY="${LB_MIRROR_CHROOT_SECURITY:-http://ports.ubuntu.com/ubuntu-ports/}"
2010-12-27 16:12:36 -01:00
;;
esac
LB_PARENT_MIRROR_CHROOT_SECURITY="${LB_PARENT_MIRROR_CHROOT_SECURITY:-${LB_MIRROR_CHROOT_SECURITY}}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:04:48 +00:00
# Setting mirror which ends up in the image
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
debian)
LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-http://http.debian.net/debian/}"
LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY:-${LB_MIRROR_BINARY}}"
;;
progress-linux)
LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY:-http://ftp.debian.org/debian/}"
LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-${LB_MIRROR_CHROOT}}"
2010-12-27 16:12:36 -01:00
;;
2009-04-15 20:07:26 +00:00
ubuntu)
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
amd64|i386)
LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-http://archive.ubuntu.com/ubuntu/}"
2009-04-15 20:07:26 +00:00
;;
2010-12-27 16:12:36 -01:00
*)
LB_MIRROR_BINARY="${LB_MIRROR_BINARY:-http://ports.ubuntu.com/ubuntu-ports/}"
2010-12-27 16:12:36 -01:00
;;
esac
LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY:-${LB_MIRROR_BINARY}}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:04:48 +00:00
# Setting security mirror which ends up in the image
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
2011-01-07 19:18:27 -01:00
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}}"
2010-12-27 16:12:36 -01:00
;;
2008-12-08 10:24:11 -01:00
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}}"
2011-01-07 19:18:27 -01:00
;;
ubuntu)
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
amd64|i386)
LB_MIRROR_BINARY_SECURITY="${LB_MIRROR_BINARY_SECURITY:-http://security.ubuntu.com/ubuntu/}"
2010-12-27 16:12:36 -01:00
;;
2009-04-15 20:07:26 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_MIRROR_BINARY_SECURITY="${LB_MIRROR_BINARY_SECURITY:-http://ports.ubuntu.com/ubuntu-ports/}"
2010-12-27 16:12:36 -01:00
;;
esac
LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY:-${LB_MIRROR_BINARY_SECURITY}}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
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
2007-09-23 08:04:46 +00:00
## config/chroot
2007-09-23 08:05:10 +00:00
# Setting chroot filesystem
LB_CHROOT_FILESYSTEM="${LB_CHROOT_FILESYSTEM:-squashfs}"
2007-09-23 08:05:10 +00:00
2007-09-23 08:05:13 +00:00
# Setting union filesystem
LB_UNION_FILESYSTEM="${LB_UNION_FILESYSTEM:-aufs}"
2007-09-23 08:05:13 +00:00
2007-09-23 08:04:48 +00:00
# Setting interactive shell/X11/Xnest
LB_INTERACTIVE="${LB_INTERACTIVE:-false}"
2007-09-23 08:04:48 +00:00
2007-09-23 08:05:10 +00:00
# Setting keyring packages
case "${LB_MODE}" in
ubuntu)
LB_KEYRING_PACKAGES="${LB_KEYRING_PACKAGES:-ubuntu-keyring}"
2007-09-23 08:05:17 +00:00
;;
2008-12-08 10:24:11 -01:00
*)
LB_KEYRING_PACKAGES="${LB_KEYRING_PACKAGES:-debian-archive-keyring}"
2008-12-08 10:24:11 -01:00
;;
2007-09-23 08:05:17 +00:00
esac
2007-09-23 08:05:10 +00:00
# Setting linux flavour string
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
armel)
case "${LB_MODE}" in
ubuntu)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-omap}"
;;
*)
# armel will have special images: one rootfs image and many additional kernel images.
# therefore we default to all available armel flavours
2014-12-10 06:38:42 -01:00
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-ixp4xx kirkwood orion5x versatile}"
;;
esac
2010-12-27 16:12:36 -01:00
;;
armhf)
# armhf will have special images: one rootfs image and many additional kernel images.
# therefore we default to all available armhf flavours
2014-12-10 06:38:42 -01:00
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-armmp armmp-lpae}"
;;
2010-12-27 16:12:36 -01:00
amd64)
case "${LB_MODE}" in
ubuntu)
2010-12-27 16:12:36 -01:00
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-generic}"
;;
2009-04-15 20:07:26 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-amd64}"
;;
esac
;;
2007-09-23 08:04:46 +00:00
2010-12-27 16:12:36 -01:00
i386)
case "${LB_MODE}" in
progress-linux)
2013-05-06 12:48:46 +00:00
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-686-pae}"
2011-01-01 22:45:08 -01:00
;;
ubuntu)
case "${LB_DISTRIBUTION}" in
precise)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-generic-pae}"
;;
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-generic}"
;;
esac
2010-12-27 16:12:36 -01:00
;;
2010-12-27 16:12:36 -01:00
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-486}"
2010-12-27 16:12:36 -01:00
;;
esac
;;
2007-09-23 08:04:46 +00:00
2010-12-27 16:12:36 -01:00
ia64)
2011-01-01 22:45:08 -01:00
case "${LB_MODE}" in
progress-linux)
Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode."
2011-01-01 22:45:08 -01:00
exit 1
;;
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-itanium}"
;;
esac
2010-12-27 16:12:36 -01:00
;;
2010-12-27 16:12:36 -01:00
powerpc)
2011-01-01 22:45:08 -01:00
case "${LB_MODE}" in
progress-linux)
Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode."
2011-01-01 22:45:08 -01:00
exit 1
;;
2007-09-23 08:04:46 +00:00
ubuntu)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc-smp powerpc64-smp e500 powerpc-e500mc}"
;;
2010-12-27 16:12:36 -01:00
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc64 powerpc}"
2010-12-27 16:12:36 -01:00
;;
esac
;;
2009-04-15 20:07:26 +00:00
s390x)
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
progress-linux|ubuntu)
Echo_error "Architecture ${LB_ARCHITECTURES} not supported in the ${LB_MODE} mode."
2010-12-27 16:12:36 -01:00
exit 1
;;
2007-09-23 08:04:46 +00:00
2010-12-27 16:12:36 -01:00
*)
LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-s390x}"
2010-12-27 16:12:36 -01:00
;;
esac
;;
2007-09-23 08:04:46 +00:00
2010-12-27 16:12:36 -01:00
*)
Echo_error "Architecture(s) ${LB_ARCHITECTURES} not yet supported (FIXME)"
2010-12-27 16:12:36 -01:00
exit 1
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Set linux packages
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
ubuntu)
2010-12-27 16:12:36 -01:00
LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES:-linux}"
;;
2007-09-23 08:04:49 +00:00
2010-12-27 16:12:36 -01:00
*)
2013-05-06 12:48:46 +00:00
LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES:-linux-image}"
2010-12-27 16:12:36 -01:00
;;
esac
2007-09-23 08:04:46 +00:00
# Setting security updates option
case "${LB_PARENT_DISTRIBUTION}" in
jessie|sid)
LB_SECURITY="${LB_SECURITY:-false}"
;;
*)
LB_SECURITY="${LB_SECURITY:-true}"
;;
esac
2007-09-23 08:04:46 +00:00
# Setting updates updates option
case "${LB_PARENT_DISTRIBUTION}" in
jessie|sid)
LB_UPDATES="${LB_UPDATES:-false}"
;;
*)
LB_UPDATES="${LB_UPDATES:-true}"
;;
esac
2007-09-23 08:05:10 +00:00
## config/binary
# Setting image filesystem
LB_BINARY_FILESYSTEM="${LB_BINARY_FILESYSTEM:-fat32}"
2007-09-23 08:05:10 +00:00
# Setting image type
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
amd64|i386)
LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso-hybrid}"
;;
*)
LIVE_IMAGE_TYPE="${LIVE_IMAGE_TYPE:-iso}"
;;
esac
2007-09-23 08:05:10 +00:00
# Setting apt indices
case "${LB_MODE}" in
progress-linux)
LB_APT_INDICES="${LB_APT_INDICES:-false}"
;;
*)
LB_APT_INDICES="${LB_APT_INDICES:-true}"
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Setting bootloader
if [ -z "${LB_BOOTLOADER}" ]
2007-09-23 08:05:10 +00:00
then
case "${LB_ARCHITECTURES}" in
amd64|i386)
LB_BOOTLOADER="syslinux"
2007-09-23 08:05:10 +00:00
;;
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}"
2007-09-23 08:05:15 +00:00
# Setting chroot option
LB_BUILD_WITH_CHROOT="${LB_BUILD_WITH_CHROOT:-true}"
2007-09-23 08:05:15 +00:00
LB_BUILD_WITH_TMPFS="${LB_BUILD_WITH_TMPFS:-false}"
2007-09-23 08:05:10 +00:00
# Setting debian-installer option
LB_DEBIAN_INSTALLER="${LB_DEBIAN_INSTALLER:-false}"
2007-09-23 08:04:48 +00:00
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}"
2010-09-26 10:38:38 +00:00
;;
*)
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
live-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}"
;;
casper)
LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE:-boot=casper quiet splash}"
LB_BOOTAPPEND_LIVE_FAILSAFE="${LB_BOOTAPPEND_LIVE_FAILSAFE:-boot=casper 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*)
case "${LB_MODE}" in
ubuntu)
if [ "${LB_DEBIAN_INSTALLER}" = "live" ]
then
_LB_BOOTAPPEND_PRESEED="file=/cdrom/install/${LB_DEBIAN_INSTALLER_PRESEEDFILE}"
else
_LB_BOOTAPPEND_PRESEED="file=/hd-media/install/${LB_DEBIAN_INSTALLER_PRESEEDFILE}"
fi
;;
*)
_LB_BOOTAPPEND_PRESEED="file=/hd-media/install/${LB_DEBIAN_INSTALLER_PRESEEDFILE}"
;;
esac
;;
netboot)
case "${LB_DEBIAN_INSTALLER_PRESEEDFILE}" in
2008-08-12 20:21:40 +00:00
*://*)
_LB_BOOTAPPEND_PRESEED="file=${LB_DEBIAN_INSTALLER_PRESEEDFILE}"
2008-08-12 20:21:40 +00:00
;;
*)
_LB_BOOTAPPEND_PRESEED="file=/${LB_DEBIAN_INSTALLER_PRESEEDFILE}"
2008-08-12 20:21:40 +00:00
;;
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]*$//')"
2007-09-23 08:05:10 +00:00
# Setting grub splash
# LB_GRUB_SPLASH
2007-09-23 08:05:10 +00:00
# Setting iso author
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
2011-01-07 19:09:49 -01:00
debian)
2010-12-27 16:12:36 -01:00
LB_ISO_APPLICATION="${LB_ISO_APPLICATION:-Debian Live}"
;;
2008-12-08 10:24:11 -01:00
progress-linux)
2011-01-01 22:45:08 -01:00
LB_ISO_APPLICATION="${LB_ISO_APPLICATION:-Progress Linux}"
;;
2010-12-27 16:12:36 -01:00
ubuntu)
LB_ISO_APPLICATION="${LB_ISO_APPLICATION:-Ubuntu Live}"
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Set iso preparer
2013-03-11 04:35:40 -01:00
LB_ISO_PREPARER="${LB_ISO_PREPARER:-live-build \$VERSION; http://live-systems.org/devel/live-build}"
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Set iso publisher
2011-01-01 22:45:08 -01:00
case "${LB_MODE}" in
progress-linux)
2011-01-01 22:45:08 -01:00
LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER:-Progress Linux; http://www.progress-linux.org/; progress-project@lists.progress-linux.org}"
;;
*)
2013-03-11 04:35:40 -01:00
LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER:-Live Systems project; http://live-systems.org/; debian-live@lists.debian.org}"
2011-01-01 22:45:08 -01:00
;;
esac
2007-09-23 08:04:52 +00:00
# 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]")}"
;;
ubuntu)
LB_HDD_LABEL="${LB_HDD_LABEL:-UBUNTU}"
;;
esac
# Setting hdd size
LB_HDD_SIZE="${LB_HDD_SIZE:-auto}"
2007-09-23 08:04:46 +00:00
# Setting iso volume
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
debian)
LB_ISO_VOLUME="${LB_ISO_VOLUME:-Debian ${LB_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)}"
;;
2008-12-08 10:24:11 -01:00
progress-linux)
LB_ISO_VOLUME="${LB_ISO_VOLUME:-Progress ${LB_DISTRIBUTION}}"
2011-01-01 22:45:08 -01:00
;;
2010-12-27 16:12:36 -01:00
ubuntu)
LB_ISO_VOLUME="${LB_ISO_VOLUME:-Ubuntu ${LB_DISTRIBUTION} \$(date +%Y%m%d-%H:%M)}"
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Setting memtest option
2013-03-13 19:28:12 -01:00
LB_MEMTEST="${LB_MEMTEST:-none}"
2007-09-23 08:04:46 +00:00
# Setting loadlin option
case "${LB_MODE}" in
progress-linux|ubuntu)
;;
*)
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
2010-12-27 16:12:36 -01:00
case "${LB_MODE}" in
progress-linux|ubuntu)
2010-12-27 16:12:36 -01:00
;;
2010-12-27 16:12:36 -01:00
*)
case "${LB_ARCHITECTURES}" in
2010-12-27 16:12:36 -01:00
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
2007-09-23 08:05:14 +00:00
# Setting netboot filesystem
LB_NET_ROOT_FILESYSTEM="${LB_NET_ROOT_FILESYSTEM:-nfs}"
2007-09-23 08:05:14 +00:00
2007-09-23 08:04:46 +00:00
# Setting netboot server path
2011-01-01 22:45:08 -01:00
case "${LB_MODE}" in
progress-linux)
2011-01-01 22:45:08 -01:00
LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH:-/srv/progress-linux}"
;;
*)
LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH:-/srv/${LB_MODE}-live}"
;;
esac
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# 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}"
2007-09-23 08:05:10 +00:00
# Setting net tarball
LB_NET_TARBALL="${LB_NET_TARBALL:-true}"
# Setting firmware option
case "${LB_MODE}" in
ubuntu)
LB_FIRMWARE_CHROOT="${LB_FIRMWARE_CHROOT:-false}"
LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY:-false}"
;;
*)
LB_FIRMWARE_CHROOT="${LB_FIRMWARE_CHROOT:-true}"
LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY:-true}"
;;
esac
# Setting swap file
LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE:-512}"
2007-09-23 08:05:10 +00:00
## config/source
2007-09-23 08:04:46 +00:00
# Setting source option
LB_SOURCE="${LB_SOURCE:-false}"
2007-09-23 08:04:46 +00:00
2007-09-23 08:05:10 +00:00
# Setting image type
LB_SOURCE_IMAGES="${LB_SOURCE_IMAGES:-tar}"
2007-09-23 08:04:46 +00:00
}
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
2013-05-06 12:48:46 +00:00
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
if [ "${LB_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_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:-}"
}