#!/bin/sh ## live-build(7) - System Build Scripts ## Copyright (C) 2016-2020 The Debian Live team ## Copyright (C) 2006-2015 Daniel Baumann ## ## 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. set -e # Including common functions [ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh # Setting static variables PROGRAM="lb config" DESCRIPTION="Create configuration for live-build(7)" USAGE="${PROGRAM} [--apt apt|aptitude]\n\ \t [--apt-ftp-proxy URL]\n\ \t [--apt-http-proxy URL]\n\ \t [--apt-indices true|false]\n\ \t [--apt-options OPTION|\"OPTIONS\"]\n\ \t [--apt-pipeline DEPTH]\n\ \t [--apt-recommends true|false]\n\ \t [--apt-secure true|false]\n\ \t [--apt-source-archives true|false]\n\ \t [--aptitude-options OPTION|\"OPTIONS\"]\n\ \t [-a|--architecture ARCHITECTURE]\n\ \t [--archive-areas ARCHIVE_AREA|\"ARCHIVE_AREAS\"]\n\ \t [--backports true|false]\n\ \t [--binary-filesystem fat16|fat32|ext2|ext3|ext4|ntfs]\n\ \t [-b|--binary-image iso|iso-hybrid|netboot|tar|hdd]\n\ \t [--bootappend-install PARAMETER|\"PARAMETERS\"]\n\ \t [--bootappend-live PARAMETER|\"PARAMETERS\"]\n\ \t [--bootappend-live-failsafe PARAMETER|\"PARAMETERS\"]\n\ \t [--bootloaders grub-legacy|grub-pc|syslinux|grub-efi|\"BOOTLOADERS\"]\n\ \t [--bootstrap-qemu-arch ARCH]\n\ \t [--bootstrap-qemu-exclude PACKAGE|\"PACKAGES\"]\n\ \t [--bootstrap-qemu-static PATH]\n\ \t [--breakpoints]\n\ \t [--build-with-chroot true|false]\n\ \t [--cache true|false]\n\ \t [--cache-indices true|false]\n\ \t [--cache-packages true|false]\n\ \t [--cache-stages STAGE|\"STAGES\"]\n\ \t [--checksums md5|sha1|sha224|sha256|sha384|sha512|none]\n\ \t [--chroot-filesystem ext2|ext3|ext4|squashfs|jffs2|none]\n\ \t [--clean]\n\ \t [--color]\n\ \t [--compression bzip2|gzip|lzip|xz|none]\n\ \t [-c|--conffile FILE]\n\ \t [--config GIT_URL::GIT_BRANCH]\n\ \t [--debconf-frontend dialog|editor|noninteractive|readline]\n\ \t [--debconf-priority low|medium|high|critical]\n\ \t [--debian-installer cdrom|netinst|netboot|businesscard|live|none]\n\ \t [--debian-installer-distribution daily|CODENAME]\n\ \t [--debian-installer-gui true|false]\n\ \t [--debian-installer-preseedfile FILE|URL]\n\ \t [--debootstrap-options OPTION|\"OPTIONS\"]\n\ \t [--debootstrap-script SCRIPT]\n\ \t [--debug]\n\ \t [-d|--distribution CODENAME]\n\ \t [--distribution-binary CODENAME]\n\ \t [--distribution-chroot CODENAME]\n\ \t [--dump]\n\ \t [--firmware-binary true|false]\n\ \t [--firmware-chroot true|false]\n\ \t [--force]\n\ \t [--gzip-options OPTION|\"OPTIONS\"]\n\ \t [--hdd-label LABEL]\n\ \t [--hdd-partition-start START]\n\ \t [--hdd-size SIZE]\n\ \t [--ignore-system-defaults]\n\ \t [--image-name NAME]\n\ \t [--initramfs none|live-boot]\n\ \t [--initramfs-compression bzip2|gzip|lzma]\n\ \t [--initsystem sysvinit|systemd|none]\n\ \t [--interactive true|shell|x11|xnest|false]\n\ \t [--iso-application NAME]\n\ \t [--iso-preparer NAME]\n\ \t [--iso-publisher NAME]\n\ \t [--iso-volume NAME]\n\ \t [--isohybrid-options OPTION|\"OPTIONS\"]\n\ \t [--jffs2-eraseblock SIZE]\n\ \t [--keyring-packages PACKAGE|\"PACKAGES\"]\n\ \t [-k|--linux-flavours FLAVOUR|\"FLAVOURS\"]\n\ \t [--linux-packages PACKAGE|\"PACKAGES\"]\n\ \t [--loadlin true|false]\n\ \t [--memtest memtest86+|memtest86|none]\n\ \t [--mirror-binary URL]\n\ \t [--mirror-binary-security URL]\n\ \t [--mirror-bootstrap URL]\n\ \t [--mirror-chroot URL]\n\ \t [--mirror-chroot-security URL]\n\ \t [--mirror-debian-installer URL]\n\ \t [--mode debian]\n\ \t [--net-cow-filesystem nfs|cfs]\n\ \t [--net-cow-mountoptions OPTION|\"OPTIONS\"]\n\ \t [--net-cow-path PATH]\n\ \t [--net-cow-server IP|HOSTNAME]\n\ \t [--net-root-filesystem nfs|cfs]\n\ \t [--net-root-mountoptions OPTION|\"OPTIONS\"]\n\ \t [--net-root-path PATH]\n\ \t [--net-root-server IP|HOSTNAME]\n\ \t [--net-tarball true|false]\n\ \t [--no-color]\n\ \t [--onie true|false]\n\ \t [--onie-kernel-cmdline OPTION|\"OPTIONS\"]\n\ \t [--parent-archive-areas ARCHIVE_AREA|\"ARCHIVE_AREAS\"]\n\ \t [--parent-debian-installer-distribution CODENAME]\n\ \t [--parent-distribution CODENAME]\n\ \t [--parent-distribution-binary CODENAME]\n\ \t [--parent-distribution-chroot CODENAME]\n\ \t [--parent-mirror-binary URL]\n\ \t [--parent-mirror-binary-security URL]\n\ \t [-m|--parent-mirror-bootstrap URL]\n\ \t [--parent-mirror-chroot URL]\n\ \t [--parent-mirror-chroot-security URL]\n\ \t [--parent-mirror-debian-installer URL]\n\ \t [--quiet]\n\ \t [--security true|false]\n\ \t [--source true|false]\n\ \t [-s|--source-images iso|netboot|tar|hdd]\n\ \t [--swap-file-path PATH]\n\ \t [--swap-file-size MB]\n\ \t [--system live|normal]\n\ \t [--tasksel apt|aptitude|tasksel]\n\ \t [--uefi-secure-boot auto|enable|disable]\n\ \t [--updates true|false]\n\ \t [--validate]\n\ \t [--verbose]\n\ \t [--win32-loader true|false]\n\ \t [--zsync true|false]" Local_arguments () { local LONG_OPTIONS LONG_OPTIONS=" apt:,apt-ftp-proxy:,apt-http-proxy:,apt-indices:,aptitude-options:, apt-options:,apt-pipeline:,apt-recommends:,apt-secure:, apt-source-archives:,architecture:,architectures:,archive-areas:, backports:,binary-filesystem:,binary-image:,binary-images:, bootappend-install:,bootappend-live:,bootappend-live-failsafe:, bootloader:,bootloaders:,bootstrap-qemu-arch:,bootstrap-qemu-exclude:, bootstrap-qemu-static:,breakpoints,build-with-chroot:, cache:,cache-indices:,cache-packages:,cache-stages:,checksums:, chroot-filesystem:,clean,color,compression:,conffile:,config:, debconf-frontend:,debconf-priority:,debian-installer:, debian-installer-distribution:,debian-installer-gui:, debian-installer-preseedfile:,debootstrap-options:,debootstrap-script:, debug,distribution:,distribution-binary:,distribution-chroot:,dump, fdisk:,firmware-binary:,firmware-chroot:,force, grub-splash:,gzip-options:, hdd-label:,hdd-partition-start:,hdd-size:,help, ignore-system-defaults,image-name:,initramfs:,initramfs-compression:, initsystem:,interactive:,iso-application:,isohybrid-options:, iso-preparer:,iso-publisher:,iso-volume:, jffs2-eraseblock:, keyring-packages:, linux-flavours:,linux-packages:,loadlin:,losetup:, memtest:,mirror-binary:,mirror-binary-security:,mirror-bootstrap:, mirror-chroot:,mirror-chroot-security:,mirror-debian-installer:,mode:, net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:, net-cow-server:,net-root-filesystem:,net-root-mountoptions:, net-root-path:,net-root-server:,net-tarball:,no-color, onie:,onie-kernel-cmdline:, parent-archive-areas:,parent-debian-installer-distribution:, parent-distribution:,parent-distribution-binary:, parent-distribution-chroot:,parent-mirror-binary:, parent-mirror-binary-security:,parent-mirror-bootstrap:, parent-mirror-chroot:,parent-mirror-chroot-security:, parent-mirror-debian-installer:, quiet, security:,source:,source-images:,swap-file-path:,swap-file-size:,system:, tasksel:, uefi-secure-boot:,updates:,usage, validate,verbose,version, win32-loader:, zsync:" # Remove spaces added by indentation LONG_OPTIONS="$(echo ${LONG_OPTIONS} | tr -d ' ')" local ARGUMENTS local ERR=0 ARGUMENTS="$(getopt --longoptions ${LONG_OPTIONS} --name="${PROGRAM}" --options a:d:m:k:b:s:c:huv --shell sh -- "${@}")" || ERR=$? if [ $ERR -eq 1 ]; then Echo_error "invalid arguments" exit 1 elif [ $ERR -ne 0 ]; then Echo_error "getopt failure" exit 1 fi eval set -- "${ARGUMENTS}" while true do case "${1}" in # Config script specific options --clean) _CLEAN="true" shift ;; --config) _CONFIG="${2}" shift 2 ;; -c|--conffile) _CONFFILE="${2}" shift 2 ;; --dump) # Dump version local VERSION_DPKG if [ $(which dpkg-query) ] then VERSION_DPKG="$(dpkg-query -f='${Version}' --show live-build)" fi Echo "%s: This is live-build version %s" "${0}" "${VERSION_DPKG:-${VERSION}}" # Dump conffile contents Print_conffiles $(Common_config_files) # Dump contents of directories that contain text files local DIRECTORY for DIRECTORY in config/package-lists config/apt config/preseed config/rootfs do if Find_files "${DIRECTORY}" then Echo_file "${DIRECTORY}"/* fi done # Dump directory listings of all directories under config/ for DIRECTORY in $(find config/ -mindepth 1 -maxdepth 1 -type d) do if Find_files "${DIRECTORY}" then ls -lR "${DIRECTORY}" | while read LINE do echo "${DIRECTORY}: ${LINE}" done fi done exit 0 ;; --ignore-system-defaults) shift ;; --validate) _VALIDATE_MODE="true" shift ;; # General options --breakpoints) _BREAKPOINTS="true" shift ;; --color) _COLOR="true" shift ;; --debug) _DEBUG="true" shift ;; --force) _FORCE="true" shift ;; -h|--help) Help shift ;; --no-color) _COLOR="false" shift ;; --quiet) _QUIET="true" shift ;; -u|--usage) Usage shift ;; --verbose) _VERBOSE="true" shift ;; -v|--version) echo "${VERSION}" exit 0 ;; # Build config options --apt) LB_APT="${2}" shift 2 ;; --apt-ftp-proxy) LB_APT_FTP_PROXY="${2}" shift 2 ;; --apt-http-proxy) LB_APT_HTTP_PROXY="${2}" shift 2 ;; --apt-indices) LB_APT_INDICES="${2}" shift 2 ;; --apt-options) APT_OPTIONS="${2}" shift 2 ;; --apt-pipeline) LB_APT_PIPELINE="${2}" shift 2 ;; --apt-recommends) LB_APT_RECOMMENDS="${2}" shift 2 ;; --apt-secure) LB_APT_SECURE="${2}" shift 2 ;; --apt-source-archives) LB_APT_SOURCE_ARCHIVES="${2}" shift 2 ;; --aptitude-options) APTITUDE_OPTIONS="${2}" shift 2 ;; -a|--architecture|--architectures) LB_ARCHITECTURES="${2}" shift 2 ;; --archive-areas) LB_ARCHIVE_AREAS="${2}" shift 2 ;; --backports) LB_BACKPORTS="${2}" shift 2 ;; --binary-filesystem) LB_BINARY_FILESYSTEM="${2}" shift 2 ;; -b|--binary-image|--binary-images) LIVE_IMAGE_TYPE="${2}" shift 2 ;; --bootappend-install) LB_BOOTAPPEND_INSTALL="${2}" shift 2 ;; --bootappend-live) LB_BOOTAPPEND_LIVE="${2}" shift 2 ;; --bootappend-live-failsafe) LB_BOOTAPPEND_LIVE_FAILSAFE="${2}" shift 2 ;; --bootloaders|--bootloader) LB_BOOTLOADERS="${2}" shift 2 ;; --bootstrap-qemu-arch) LB_BOOTSTRAP_QEMU_ARCHITECTURES="${2}" shift 2 ;; --bootstrap-qemu-exclude) LB_BOOTSTRAP_QEMU_EXCLUDE="${2}" shift 2 ;; --bootstrap-qemu-static) LB_BOOTSTRAP_QEMU_STATIC="${2}" shift 2 ;; --build-with-chroot) LB_BUILD_WITH_CHROOT="${2}" shift 2 ;; --cache) LB_CACHE="${2}" shift 2 ;; --cache-indices) LB_CACHE_INDICES="${2}" shift 2 ;; --cache-packages) LB_CACHE_PACKAGES="${2}" shift 2 ;; --cache-stages) LB_CACHE_STAGES="${2}" shift 2 ;; --checksums) LB_CHECKSUMS="${2}" shift 2 ;; --chroot-filesystem) LB_CHROOT_FILESYSTEM="${2}" shift 2 ;; --compression) LB_COMPRESSION="${2}" shift 2 ;; --debconf-frontend) LB_DEBCONF_FRONTEND="${2}" shift 2 ;; --debconf-priority) LB_DEBCONF_PRIORITY="${2}" shift 2 ;; --debian-installer) LB_DEBIAN_INSTALLER="${2}" shift 2 ;; --debian-installer-distribution) LB_DEBIAN_INSTALLER_DISTRIBUTION="${2}" shift 2 ;; --debian-installer-gui) LB_DEBIAN_INSTALLER_GUI="${2}" shift 2 ;; --debian-installer-preseedfile) LB_DEBIAN_INSTALLER_PRESEEDFILE="${2}" shift 2 ;; --debootstrap-options) DEBOOTSTRAP_OPTIONS="${2}" shift 2 ;; --debootstrap-script) DEBOOTSTRAP_SCRIPT="${2}" shift 2 ;; -d|--distribution) LB_DISTRIBUTION="${2}" shift 2 ;; --distribution-binary) LB_DISTRIBUTION_BINARY="${2}" shift 2 ;; --distribution-chroot) LB_DISTRIBUTION_CHROOT="${2}" shift 2 ;; --fdisk) Echo_warning "--fdisk is an obsolete option" shift 2 ;; --firmware-binary) LB_FIRMWARE_BINARY="${2}" shift 2 ;; --firmware-chroot) LB_FIRMWARE_CHROOT="${2}" shift 2 ;; --grub-splash) Echo_warning "--grub-splash is an obsolete option" shift 2 ;; --gzip-options) GZIP_OPTIONS="${2}" shift 2 ;; --hdd-label) LB_HDD_LABEL="${2}" shift 2 ;; --hdd-partition-start) LB_HDD_PARTITION_START="${2}" shift 2 ;; --hdd-size) LB_HDD_SIZE="${2}" shift 2 ;; --image-name) LIVE_IMAGE_NAME="${2}" shift 2 ;; --initramfs) LB_INITRAMFS="${2}" shift 2 ;; --initramfs-compression) LB_INITRAMFS_COMPRESSION="${2}" shift 2 ;; --initsystem) LB_INITSYSTEM="${2}" shift 2 ;; --interactive) LB_INTERACTIVE="${2}" shift 2 ;; --iso-application) LB_ISO_APPLICATION="${2}" shift 2 ;; --iso-preparer) LB_ISO_PREPARER="${2}" shift 2 ;; --iso-publisher) LB_ISO_PUBLISHER="${2}" shift 2 ;; --iso-volume) LB_ISO_VOLUME="${2}" shift 2 ;; --isohybrid-options) LB_ISOHYBRID_OPTIONS="${2}" shift 2 ;; --jffs2-eraseblock) LB_JFFS2_ERASEBLOCK="${2}" shift 2 ;; --keyring-packages) LB_KEYRING_PACKAGES="${2}" shift 2 ;; -k|--linux-flavours) LB_LINUX_FLAVOURS_WITH_ARCH="${2}" shift 2 ;; --linux-packages) LB_LINUX_PACKAGES="${2}" shift 2 ;; --loadlin) LB_LOADLIN="${2}" shift 2 ;; --losetup) Echo_warning "--losetup is an obsolete option" shift 2 ;; --memtest) LB_MEMTEST="${2}" shift 2 ;; --mirror-binary) LB_MIRROR_BINARY="${2}" shift 2 ;; --mirror-binary-security) LB_MIRROR_BINARY_SECURITY="${2}" shift 2 ;; --mirror-bootstrap) LB_MIRROR_BOOTSTRAP="${2}" shift 2 ;; --mirror-chroot) LB_MIRROR_CHROOT="${2}" shift 2 ;; --mirror-chroot-security) LB_MIRROR_CHROOT_SECURITY="${2}" shift 2 ;; --mirror-debian-installer) LB_MIRROR_DEBIAN_INSTALLER="${2}" shift 2 ;; --mode) LB_MODE="${2}" shift 2 ;; --net-cow-filesystem) LB_NET_COW_FILESYSTEM="${2}" shift 2 ;; --net-cow-mountoptions) LB_NET_COW_MOUNTOPTIONS="${2}" shift 2 ;; --net-cow-path) LB_NET_COW_PATH="${2}" shift 2 ;; --net-cow-server) LB_NET_COW_SERVER="${2}" shift 2 ;; --net-root-filesystem) LB_NET_ROOT_FILESYSTEM="${2}" shift 2 ;; --net-root-mountoptions) LB_NET_ROOT_MOUNTOPTIONS="${2}" shift 2 ;; --net-root-path) LB_NET_ROOT_PATH="${2}" shift 2 ;; --net-root-server) LB_NET_ROOT_SERVER="${2}" shift 2 ;; --net-tarball) LB_NET_TARBALL="${2}" shift 2 ;; --onie) LB_ONIE="${2}" shift 2 ;; --onie-kernel-cmdline) LB_ONIE_KERNEL_CMDLINE="${2}" shift 2 ;; --parent-archive-areas) LB_PARENT_ARCHIVE_AREAS="${2}" shift 2 ;; --parent-debian-installer-distribution) LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${2}" shift 2 ;; --parent-distribution) LB_PARENT_DISTRIBUTION="${2}" shift 2 ;; --parent-distribution-binary) LB_PARENT_DISTRIBUTION_BINARY="${2}" shift 2 ;; --parent-distribution-chroot) LB_PARENT_DISTRIBUTION_CHROOT="${2}" shift 2 ;; --parent-mirror-binary) LB_PARENT_MIRROR_BINARY="${2}" shift 2 ;; --parent-mirror-binary-security) LB_PARENT_MIRROR_BINARY_SECURITY="${2}" shift 2 ;; -m|--parent-mirror-bootstrap) LB_PARENT_MIRROR_BOOTSTRAP="${2}" shift 2 ;; --parent-mirror-chroot) LB_PARENT_MIRROR_CHROOT="${2}" shift 2 ;; --parent-mirror-chroot-security) LB_PARENT_MIRROR_CHROOT_SECURITY="${2}" shift 2 ;; --parent-mirror-debian-installer) LB_PARENT_MIRROR_DEBIAN_INSTALLER="${2}" shift 2 ;; --security) LB_SECURITY="${2}" shift 2 ;; --source) LB_SOURCE="${2}" shift 2 ;; -s|--source-images) LB_SOURCE_IMAGES="${2}" shift 2 ;; --swap-file-path) LB_SWAP_FILE_PATH="${2}" shift 2 ;; --swap-file-size) LB_SWAP_FILE_SIZE="${2}" shift 2 ;; --system) LB_SYSTEM="${2}" shift 2 ;; --tasksel) LB_TASKSEL="${2}" shift 2 ;; --uefi-secure-boot) LB_UEFI_SECURE_BOOT="${2}" shift 2 ;; --updates) LB_UPDATES="${2}" shift 2 ;; --win32-loader) LB_WIN32_LOADER="${2}" shift 2 ;; --zsync) LB_ZSYNC="${2}" shift 2 ;; # Other --) shift break ;; *) Echo_error "Internal error, unhandled option: %s" "${1}" exit 1 ;; esac done } # Processing args such that we have a value for --config if given # We can thus momentarily print an appropriate message that we are ignoring it under certain circumstances Local_arguments "${@}" # Ignoring --config if CWD is already a git repo # Only print warning from direct execution, not when run from auto script redirection, to avoid repetition if [ -e .git ] && [ -n "${_CONFIG}" ] then if [ "${1}" != "noauto" ] then Echo_message "Ignoring --config ${_CONFIG}: ${PWD} is already a git repository" fi _CONFIG="" fi # Ignoring --config if CWD already has a config # Only print warning from direct execution, not when run from auto script redirection, to avoid repetition if [ -e .build/config ] && [ -n "${_CONFIG}" ] then if [ "${1}" != "noauto" ] then Echo_message "Ignoring --config ${_CONFIG}: ${PWD} is already a live-build configuration tree" fi _CONFIG="" fi # Otherwise, handling --config request, copying specified config if [ -n "${_CONFIG}" ] then if [ -e "${_CONFIG}" ] || [ -e "/usr/share/live/images/${_CONFIG}" ] then if [ ! -e "${_CONFIG}" ] && [ -e "/usr/share/live/images/${_CONFIG}" ] then _CONFIG="/usr/share/live/images/${_CONFIG}" fi Echo_message "Copying ${_CONFIG}" tar -C "${_CONFIG}" -c . | tar -C ./ -x else _GIT_REPOSITORY="$(echo ${_CONFIG} | sed -e 's|::.*$||')" Echo_message "Cloning ${_GIT_REPOSITORY}" git clone ${_GIT_REPOSITORY} ./ if [ "${_GIT_REPOSITORY}" != "${_CONFIG}" ] then _GIT_BRANCH="$(echo ${_CONFIG} | awk -F\:\: '{ print $NF }')" Echo_message "Checking out ${_GIT_BRANCH}" git checkout ${_GIT_BRANCH} fi fi if [ -e auto/config ] then _EXTRA_OPTIONS="$(echo ${@} | sed -e "s|--config ${_GIT_REPOSITORY}::${_GIT_BRANCH}||g" -e "s|--config ${_GIT_REPOSITORY}||g")" Echo_message "The following extra options specified to lb config are going to be added to auto/config: ${_EXTRA_OPTIONS}" sed -i -e "s|\"\${@}\"|${_EXTRA_OPTIONS} \"\${@}\"|" auto/config fi fi # "Auto" script redirection. # Re-run via "auto" script to pick up saved command-line arguments, if not already redirected. # See the documentation of the Maybe_auto_redirect function for more details. if [ "${1}" = "noauto" ]; then shift else Maybe_auto_redirect config fi # Reading config defaults configured at system level if ls /etc/live/build.conf > /dev/null 2>&1 || ls /etc/live/build/* > /dev/null 2>&1 then if In_list "--ignore-system-defaults" "${@}" then Echo_message "Ignoring defaults in %s" "/etc/live/build.conf" else Echo_message "Using defaults in %s" "/etc/live/build.conf" Read_conffiles /etc/live/build.conf /etc/live/build/* fi fi # Reading existing saved configuration Read_conffiles $(Common_config_files) # Processing arguments again to overwrite just-read previously saved settings as necessary Local_arguments "${@}" # Loading user specified saved config file if specified if [ -n "${_CONFFILE}" ] then Read_conffiles "${_CONFFILE}" fi # Setting and validating config Prepare_config Validate_config if [ "${_VALIDATE_MODE}" = "true" ]; then Echo_message "Validation check complete! Please address any problem notices given above." exit 0 fi # Creating or updating saved config if [ ! -e config ] then Echo_message "Creating config tree for a ${LB_MODE}/${LB_DISTRIBUTION_BINARY}/${LB_ARCHITECTURES} system" mkdir config else Echo_message "Updating config tree for a ${LB_MODE}/${LB_DISTRIBUTION_BINARY}/${LB_ARCHITECTURES} system" fi # Creating live-build configuration cat > config/common << EOF # config/common - common options for live-build(7) # \$LB_APT: set package manager # (Default: ${LB_APT}) LB_APT="${LB_APT}" # \$LB_APT_FTP_PROXY: set apt/aptitude ftp proxy # (Default: autodetected or empty) LB_APT_FTP_PROXY="${LB_APT_FTP_PROXY}" # \$LB_APT_HTTP_PROXY: set apt/aptitude http proxy # (Default: autodetected or empty) LB_APT_HTTP_PROXY="${LB_APT_HTTP_PROXY}" # \$LB_APT_PIPELINE: set apt/aptitude pipeline depth # (Default: ${LB_APT_PIPELINE}) LB_APT_PIPELINE="${LB_APT_PIPELINE}" # \$LB_APT_RECOMMENDS: set apt/aptitude recommends # (Default: ${LB_APT_RECOMMENDS}) LB_APT_RECOMMENDS="${LB_APT_RECOMMENDS}" # \$LB_APT_SECURE: set apt/aptitude security # (Default: ${LB_APT_SECURE}) LB_APT_SECURE="${LB_APT_SECURE}" # \$LB_APT_SOURCE_ARCHIVES: set apt/aptitude source entries in sources.list # (Default: ${LB_APT_SOURCE_ARCHIVES}) LB_APT_SOURCE_ARCHIVES="${LB_APT_SOURCE_ARCHIVES}" # \$LB_CACHE: control cache # (Default: ${LB_CACHE}) LB_CACHE="${LB_CACHE}" # \$LB_CACHE_INDICES: control if downloaded package indices should be cached # (Default: ${LB_CACHE_INDICES}) LB_CACHE_INDICES="${LB_CACHE_INDICES}" # \$LB_CACHE_PACKAGES: control if downloaded packages files should be cached # (Default: ${LB_CACHE_PACKAGES}) LB_CACHE_PACKAGES="${LB_CACHE_PACKAGES}" # \$LB_CACHE_STAGES: control if completed stages should be cached # (Default: ${LB_CACHE_STAGES}) LB_CACHE_STAGES="${LB_CACHE_STAGES}" # \$LB_DEBCONF_FRONTEND: set debconf(1) frontend to use # (Default: ${LB_DEBCONF_FRONTEND}) LB_DEBCONF_FRONTEND="${LB_DEBCONF_FRONTEND}" # \$LB_DEBCONF_PRIORITY: set debconf(1) priority to use # (Default: ${LB_DEBCONF_PRIORITY}) LB_DEBCONF_PRIORITY="${LB_DEBCONF_PRIORITY}" # \$LB_INITRAMFS: set initramfs hook # (Default: ${LB_INITRAMFS}) LB_INITRAMFS="${LB_INITRAMFS}" # \$LB_INITRAMFS_COMPRESSION: set initramfs compression # (Default: ${LB_INITRAMFS_COMPRESSION}) LB_INITRAMFS_COMPRESSION="${LB_INITRAMFS_COMPRESSION}" # \$LB_INITSYSTEM: set init system # (Default: ${LB_INITSYSTEM}) LB_INITSYSTEM="${LB_INITSYSTEM}" # \$LB_MODE: set distribution mode # (Default: ${LB_MODE}) LB_MODE="${LB_MODE}" # \$LB_SYSTEM: set system type # (Default: ${LB_SYSTEM}) LB_SYSTEM="${LB_SYSTEM}" # \$LB_TASKSEL: set tasksel program # (Default: ${LB_TASKSEL}) LB_TASKSEL="${LB_TASKSEL}" # live-build options # \$_BREAKPOINTS: enable breakpoints # If set here, overrides the command line option # (Default: ${_BREAKPOINTS}) #_BREAKPOINTS="${_BREAKPOINTS}" # \$_DEBUG: enable debug # If set here, overrides the command line option # (Default: ${_DEBUG}) #_DEBUG="${_DEBUG}" # \$_COLOR: enable color # If set here, overrides the command line option # (Default: ${_COLOR}) #_COLOR="${_COLOR}" # \$_FORCE: enable force # If set here, overrides the command line option # (Default: ${_FORCE}) #_FORCE="${_FORCE}" # \$_QUIET: enable quiet # If set here, overrides the command line option # (Default: ${_QUIET}) #_QUIET="${_QUIET}" # \$_VERBOSE: enable verbose # If set here, overrides the command line option # (Default: ${_VERBOSE}) #_VERBOSE="${_VERBOSE}" # Internal stuff (FIXME) APT_OPTIONS="${APT_OPTIONS}" APTITUDE_OPTIONS="${APTITUDE_OPTIONS}" DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS}" DEBOOTSTRAP_SCRIPT="${DEBOOTSTRAP_SCRIPT}" GZIP_OPTIONS="${GZIP_OPTIONS}" ISOHYBRID_OPTIONS="${ISOHYBRID_OPTIONS}" EOF # Creating lb_bootstrap_* configuration cat > config/bootstrap << EOF # config/bootstrap - options for live-build(7), bootstrap stage # \$LB_DISTRIBUTION: select distribution to use # (Default: ${LB_DISTRIBUTION}) LB_DISTRIBUTION="${LB_DISTRIBUTION}" # \$LB_PARENT_DISTRIBUTION: select parent distribution to use # (Default: ${LB_PARENT_DISTRIBUTION}) LB_PARENT_DISTRIBUTION="${LB_PARENT_DISTRIBUTION}" # \$LB_DISTRIBUTION_CHROOT: select distribution to use in the chroot # (Default: ${LB_DISTRIBUTION_CHROOT}) LB_DISTRIBUTION_CHROOT="${LB_DISTRIBUTION_CHROOT}" # \$LB_PARENT_DISTRIBUTION_CHROOT: select parent distribution to use in the chroot # (Default: ${LB_PARENT_DISTRIBUTION_CHROOT}) LB_PARENT_DISTRIBUTION_CHROOT="${LB_PARENT_DISTRIBUTION_CHROOT}" # \$LB_DISTRIBUTION_BINARY: select distribution to use in the final image # (Default: ${LB_DISTRIBUTION_BINARY}) LB_DISTRIBUTION_BINARY="${LB_DISTRIBUTION_BINARY}" # \$LB_PARENT_DISTRIBUTION_BINARY: select parent distribution to use in the final image # (Default: ${LB_PARENT_DISTRIBUTION_BINARY}) LB_PARENT_DISTRIBUTION_BINARY="${LB_PARENT_DISTRIBUTION_BINARY}" # \$LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION: select parent distribution for debian-installer to use # (Default: ${LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION}) LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION="${LB_PARENT_DEBIAN_INSTALLER_DISTRIBUTION}" # \$LB_PARENT_MIRROR_BOOTSTRAP: set parent mirror to bootstrap from # (Default: ${LB_PARENT_MIRROR_BOOTSTRAP}) LB_PARENT_MIRROR_BOOTSTRAP="${LB_PARENT_MIRROR_BOOTSTRAP}" # \$LB_PARENT_MIRROR_CHROOT: set parent mirror to fetch packages from # (Default: ${LB_PARENT_MIRROR_CHROOT}) LB_PARENT_MIRROR_CHROOT="${LB_PARENT_MIRROR_CHROOT}" # \$LB_PARENT_MIRROR_CHROOT_SECURITY: set security parent mirror to fetch packages from # (Default: ${LB_PARENT_MIRROR_CHROOT_SECURITY}) LB_PARENT_MIRROR_CHROOT_SECURITY="${LB_PARENT_MIRROR_CHROOT_SECURITY}" # \$LB_PARENT_MIRROR_BINARY: set parent mirror which ends up in the image # (Default: ${LB_PARENT_MIRROR_BINARY}) LB_PARENT_MIRROR_BINARY="${LB_PARENT_MIRROR_BINARY}" # \$LB_PARENT_MIRROR_BINARY_SECURITY: set security parent mirror which ends up in the image # (Default: ${LB_PARENT_MIRROR_BINARY_SECURITY}) LB_PARENT_MIRROR_BINARY_SECURITY="${LB_PARENT_MIRROR_BINARY_SECURITY}" # \$LB_PARENT_MIRROR_DEBIAN_INSTALLER: set debian-installer parent mirror # (Default: ${LB_PARENT_MIRROR_BOOTSTRAP}) LB_PARENT_MIRROR_DEBIAN_INSTALLER="${LB_PARENT_MIRROR_DEBIAN_INSTALLER}" # \$LB_MIRROR_BOOTSTRAP: set mirror to bootstrap from # (Default: ${LB_MIRROR_BOOTSTRAP}) LB_MIRROR_BOOTSTRAP="${LB_MIRROR_BOOTSTRAP}" # \$LB_MIRROR_CHROOT: set mirror to fetch packages from # (Default: ${LB_MIRROR_CHROOT}) LB_MIRROR_CHROOT="${LB_MIRROR_CHROOT}" # \$LB_MIRROR_CHROOT_SECURITY: set security mirror to fetch packages from # (Default: ${LB_MIRROR_CHROOT_SECURITY}) LB_MIRROR_CHROOT_SECURITY="${LB_MIRROR_CHROOT_SECURITY}" # \$LB_MIRROR_BINARY: set mirror which ends up in the image # (Default: ${LB_MIRROR_BINARY}) LB_MIRROR_BINARY="${LB_MIRROR_BINARY}" # \$LB_MIRROR_BINARY_SECURITY: set security mirror which ends up in the image # (Default: ${LB_MIRROR_BINARY_SECURITY}) LB_MIRROR_BINARY_SECURITY="${LB_MIRROR_BINARY_SECURITY}" # \$LB_MIRROR_DEBIAN_INSTALLER: set debian-installer mirror # (Default: ${LB_MIRROR_BOOTSTRAP}) LB_MIRROR_DEBIAN_INSTALLER="${LB_MIRROR_DEBIAN_INSTALLER}" # \$LB_BOOTSTRAP_QEMU_ARCHITECTURES: architectures to use foreign bootstrap # (Default: ${LB_BOOTSTRAP_QEMU_ARCHITECTURES}) LB_BOOTSTRAP_QEMU_ARCHITECTURES="${LB_BOOTSTRAP_QEMU_ARCHITECTURES}" # \$LB_BOOTSTRAP_QEMU_EXCLUDE: packages to exclude during foreign bootstrap # (Default: ${LB_BOOTSTRAP_QEMU_EXCLUDE}) LB_BOOTSTRAP_QEMU_EXCLUDE="${LB_BOOTSTRAP_QEMU_EXCLUDE}" # \$LB_BOOTSTRAP_QEMU_STATIC: static qemu binary for foreign bootstrap # (Default: ${LB_BOOTSTRAP_QEMU_STATIC}) LB_BOOTSTRAP_QEMU_STATIC="${LB_BOOTSTRAP_QEMU_STATIC}" EOF # Creating lb_chroot_* configuration mkdir -p config/archives mkdir -p config/apt mkdir -p config/packages mkdir -p config/packages.chroot mkdir -p config/package-lists mkdir -p config/preseed cat > config/chroot << EOF # config/chroot - options for live-build(7), chroot stage # \$LB_CHROOT_FILESYSTEM: set chroot filesystem # (Default: ${LB_CHROOT_FILESYSTEM}) LB_CHROOT_FILESYSTEM="${LB_CHROOT_FILESYSTEM}" # \$LB_UNION_FILESYSTEM: set union filesystem # (Default: ${LB_UNION_FILESYSTEM}) LB_UNION_FILESYSTEM="${LB_UNION_FILESYSTEM}" # \$LB_INTERACTIVE: set interactive build # (Default: ${LB_INTERACTIVE}) LB_INTERACTIVE="${LB_INTERACTIVE}" # \$LB_KEYRING_PACKAGES: set keyring packages # (Default: empty) LB_KEYRING_PACKAGES="${LB_KEYRING_PACKAGES}" # \$LB_LINUX_FLAVOURS: set kernel flavour to use # This is kept for backwards compatibility # (Default: autodetected) if [ -n "${LB_LINUX_FLAVOURS}" ] then LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS}" fi # \$LB_LINUX_FLAVOURS_WITH_ARCH: set kernel flavour to use (with arch) # (Default: autodetected) LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH}" # \$LB_LINUX_PACKAGES: set kernel packages to use # (Default: autodetected) LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES}" # \$LB_SECURITY: enable security updates # (Default: ${LB_SECURITY}) LB_SECURITY="${LB_SECURITY}" # \$LB_UPDATES: enable updates updates # (Default: ${LB_UPDATES}) LB_UPDATES="${LB_UPDATES}" # \$LB_BACKPORTS: enable backports updates # (Default: ${LB_BACKPORTS}) LB_BACKPORTS="${LB_BACKPORTS}" EOF # Creating lb_binary_* configuration mkdir -p config/debian-installer mkdir -p config/includes.installer mkdir -p config/packages.binary mkdir -p config/package-lists mkdir -p config/rootfs cat > config/binary << EOF # config/binary - options for live-build(7), binary stage # \$LB_BINARY_FILESYSTEM: set image filesystem # (Default: ${LB_BINARY_FILESYSTEM}) LB_BINARY_FILESYSTEM="${LB_BINARY_FILESYSTEM}" # \$LB_APT_INDICES: set apt/aptitude generic indices # (Default: ${LB_APT_INDICES}) LB_APT_INDICES="${LB_APT_INDICES}" # \$LB_BOOTAPPEND_LIVE: set boot parameters # (Default: empty) LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE}" # \$LB_BOOTAPPEND_INSTALL: set boot parameters # (Default: empty) LB_BOOTAPPEND_INSTALL="${LB_BOOTAPPEND_INSTALL}" # \$LB_BOOTAPPEND_LIVE_FAILSAFE: set boot parameters # (Default: empty) LB_BOOTAPPEND_LIVE_FAILSAFE="${LB_BOOTAPPEND_LIVE_FAILSAFE}" # \$LB_BOOTLOADERS: set bootloaders # (Default: ${LB_BOOTLOADERS}) LB_BOOTLOADERS="${LB_BOOTLOADERS}" # \$LB_CHECKSUMS: set checksums # (Default: ${LB_CHECKSUMS}) LB_CHECKSUMS="${LB_CHECKSUMS}" # \$LB_COMPRESSION: set compression # (Default: ${LB_COMPRESSION}) LB_COMPRESSION="${LB_COMPRESSION}" # \$LB_ZSYNC: set zsync # (Default: ${LB_ZSYNC}) LB_ZSYNC="${LB_ZSYNC}" # \${LB_BUILD_WITH_CHROOT: control if we build binary images chrooted # (Default: ${LB_BUILD_WITH_CHROOT}) # DO NEVER, *NEVER*, *N*E*V*E*R* SET THIS OPTION to false. LB_BUILD_WITH_CHROOT="${LB_BUILD_WITH_CHROOT}" # \$LB_DEBIAN_INSTALLER: set debian-installer # (Default: ${LB_DEBIAN_INSTALLER}) LB_DEBIAN_INSTALLER="${LB_DEBIAN_INSTALLER}" # \$LB_DEBIAN_INSTALLER_DISTRIBUTION: set debian-installer suite # (Default: empty) LB_DEBIAN_INSTALLER_DISTRIBUTION="${LB_DEBIAN_INSTALLER_DISTRIBUTION}" # \$LB_DEBIAN_INSTALLER_PRESEEDFILE: set debian-installer preseed filename/url # (Default: ${LB_DEBIAN_INSTALLER_PRESEEDFILE}) LB_DEBIAN_INSTALLER_PRESEEDFILE="${LB_DEBIAN_INSTALLER_PRESEEDFILE}" # \$LB_DEBIAN_INSTALLER_GUI: toggle use of GUI debian-installer # (Default: ${LB_DEBIAN_INSTALLER_GUI}) LB_DEBIAN_INSTALLER_GUI="${LB_DEBIAN_INSTALLER_GUI}" # \$LB_HDD_LABEL: set hdd label # (Default: ${LB_HDD_LABEL}) LB_HDD_LABEL="${LB_HDD_LABEL}" # \$LB_HDD_SIZE: set hdd filesystem size # (Default: ${LB_HDD_SIZE}) LB_HDD_SIZE="${LB_HDD_SIZE}" # \$LB_HDD_PARTITION_START: set start of partition for the hdd target for BIOSes that expect a specific boot partition start (e.g. "63s"). If empty, use optimal layout. # (Default: ${LB_HDD_PARTITION_START}) LB_HDD_PARTITION_START="${LB_HDD_PARTITION_START}" # \$LB_ISO_APPLICATION: set iso author # (Default: ${LB_ISO_APPLICATION}) LB_ISO_APPLICATION="${LB_ISO_APPLICATION}" # \$LB_ISO_PREPARER: set iso preparer # (Default: ${LB_ISO_PREPARER}) LB_ISO_PREPARER="${LB_ISO_PREPARER}" # \$LB_ISO_PUBLISHER: set iso publisher # (Default: ${LB_ISO_PUBLISHER}) LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER}" # \$LB_ISO_VOLUME: set iso volume (max 32 chars) # (Default: ${LB_ISO_VOLUME}) LB_ISO_VOLUME="${LB_ISO_VOLUME}" # \$LB_JFFS2_ERASEBLOCK: set jffs2 eraseblock size # (Default: unset) LB_JFFS2_ERASEBLOCK="" # \$LB_MEMTEST: set memtest # (Default: ${LB_MEMTEST}) LB_MEMTEST="${LB_MEMTEST}" # \$LB_LOADLIN: set loadlin # (Default: ${LB_LOADLIN}) LB_LOADLIN="${LB_LOADLIN}" # \$LB_WIN32_LOADER: set win32-loader # (Default: ${LB_WIN32_LOADER}) LB_WIN32_LOADER="${LB_WIN32_LOADER}" # \$LB_NET_ROOT_FILESYSTEM: set netboot filesystem # (Default: ${LB_NET_ROOT_FILESYSTEM}) LB_NET_ROOT_FILESYSTEM="${LB_NET_ROOT_FILESYSTEM}" # \$LB_NET_ROOT_MOUNTOPTIONS: set nfsopts # (Default: empty) LB_NET_ROOT_MOUNTOPTIONS="${LB_NET_ROOT_MOUNTOPTIONS}" # \$LB_NET_ROOT_PATH: set netboot server directory # (Default: ${LB_NET_ROOT_PATH}) LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH}" # \$LB_NET_ROOT_SERVER: set netboot server address # (Default: ${LB_NET_ROOT_SERVER}) LB_NET_ROOT_SERVER="${LB_NET_ROOT_SERVER}" # \$LB_NET_COW_FILESYSTEM: set net client cow filesystem # (Default: ${LB_NET_COW_FILESYSTEM}) LB_NET_COW_FILESYSTEM="${LB_NET_COW_FILESYSTEM}" # \$LB_NET_COW_MOUNTOPTIONS: set cow mount options # (Default: empty) LB_NET_COW_MOUNTOPTIONS="${LB_NET_COW_MOUNTOPTIONS}" # \$LB_NET_COW_PATH: set cow directory # (Default: ${LB_NET_COW_PATH}) LB_NET_COW_PATH="${LB_NET_COW_PATH}" # \$LB_NET_COW_SERVER: set cow server # (Default: ${LB_NET_COW_SERVER}) LB_NET_COW_SERVER="${LB_NET_COW_SERVER}" # \$LB_NET_TARBALL: set net tarball # (Default: ${LB_NET_TARBALL}) LB_NET_TARBALL="${LB_NET_TARBALL}" # \$LB_ONIE: set onie # (Default: ${LB_ONIE}) LB_ONIE="${LB_ONIE}" # \$LB_ONIE_KERNEL_CMDLINE: set onie additional kernel cmdline options # (Default: ${LB_ONIE_KERNEL_CMDLINE}) LB_ONIE_KERNEL_CMDLINE="${LB_ONIE_KERNEL_CMDLINE}" # \$LB_FIRMWARE_BINARY: include firmware packages in debian-installer # (Default: ${LB_FIRMWARE_BINARY}) LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY}" # \$LB_FIRMWARE_CHROOT: include firmware packages in the live image # (Default: ${LB_FIRMWARE_CHROOT}) LB_FIRMWARE_CHROOT="${LB_FIRMWARE_CHROOT}" # \$LB_SWAP_FILE_PATH: set swap file path # (Default: ${LB_SWAP_FILE_PATH}) LB_SWAP_FILE_PATH="${LB_SWAP_FILE_PATH}" # \$LB_SWAP_FILE_SIZE: set swap file size # (Default: ${LB_SWAP_FILE_SIZE}) LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE}" # \$LB_UEFI_SECURE_BOOT: enable/disable UEFI secure boot # (Default: ${LB_UEFI_SECURE_BOOT}) LB_UEFI_SECURE_BOOT="${LB_UEFI_SECURE_BOOT}" EOF # Creating lb_source_* configuration cat > config/source << EOF # config/source - options for live-build(7), source stage # \$LB_SOURCE: set source option # (Default: ${LB_SOURCE}) LB_SOURCE="${LB_SOURCE}" # \$LB_SOURCE_IMAGES: set image type # (Default: ${LB_SOURCE_IMAGES}) LB_SOURCE_IMAGES="${LB_SOURCE_IMAGES}" EOF mkdir -p auto mkdir -p local/bin if [ "${_CLEAN}" = "true" ] then # Remove empty directories in config tree rmdir --ignore-fail-on-non-empty auto > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty config/*/ > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty config > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty local/*/ > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty local > /dev/null 2>&1 || true fi mkdir -p config/hooks/normal config/hooks/live mkdir -p config/includes config/includes.bootstrap config/includes.chroot config/includes.binary config/includes.source Echo_message "Symlinking hooks..." for _HOOK in "${LIVE_BUILD}"/share/hooks/normal/*.hook* /usr/share/live/build/hooks/normal/*.hook* do if [ -e "${_HOOK}" ] && [ ! -e "config/hooks/normal/$(basename ${_HOOK})" ] then ln -s "${_HOOK}" "config/hooks/normal/$(basename ${_HOOK})" fi done for _HOOK in "${LIVE_BUILD}"/share/hooks/live/*.hook* /usr/share/live/build/hooks/live/*.hook* do if [ -e "${_HOOK}" ] && [ ! -e "config/hooks/live/$(basename ${_HOOK})" ] then ln -s "${_HOOK}" "config/hooks/live/$(basename ${_HOOK})" fi done if [ ! -e config/package-lists/live.list.chroot ] then mkdir -p config/package-lists case "${LB_INITRAMFS}" in live-boot) echo "live-boot" > config/package-lists/live.list.chroot echo "live-config" >> config/package-lists/live.list.chroot case "${LB_INITSYSTEM}" in none) # do nothing ;; systemd) echo "live-config-systemd" >> config/package-lists/live.list.chroot ;; sysvinit) echo "live-config-${LB_INITSYSTEM}" >> config/package-lists/live.list.chroot echo "sysvinit-core" >> config/package-lists/live.list.chroot ;; esac ;; *) ;; esac fi cat > config/build << EOF [Image] Architecture: ${LB_ARCHITECTURES} Archive-Areas: ${LB_ARCHIVE_AREAS} Distribution-Chroot: ${LB_DISTRIBUTION_CHROOT} Distribution-Binary: ${LB_DISTRIBUTION_BINARY} Mirror-Bootstrap: ${LB_MIRROR_BOOTSTRAP} EOF if [ "${LB_DERIVATIVE}" = "true" ] then cat >> config/build << EOF Parent-Archive-Areas: ${LB_PARENT_ARCHIVE_AREAS} Parent-Distribution-Chroot: ${LB_PARENT_DISTRIBUTION_CHROOT} Parent-Distribution-Binary: ${LB_PARENT_DISTRIBUTION_BINARY} Parent-Mirror-Bootstrap: ${LB_PARENT_MIRROR_BOOTSTRAP} EOF fi cat >> config/build << EOF [FIXME] Configuration-Version: ${LIVE_CONFIGURATION_VERSION} Name: ${LIVE_IMAGE_NAME} Type: ${LIVE_IMAGE_TYPE} EOF # Creating stage file Create_stagefile