live-build/scripts/build/binary

95 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2016-2020 The Debian Live team
## 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.
set -e
# Including common functions
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
# Setting static variables
DESCRIPTION="Build binary images"
USAGE="${PROGRAM} [--force]"
# Automatically populating config tree
Auto_build_config
# Processing arguments and configuration files
Init_config_data "${@}"
# Setting up cleanup function
Setup_clean_exit
# Preparing root filesystem
lb binary_chroot "${@}"
# Chroot preparation component lists
# We deliberately exclude 'debianchroot'
CHROOT_PREP_MOUNTS="devpts proc selinuxfs sysfs"
CHROOT_PREP_OTHER="dpkg tmpfs sysv-rc hosts resolv hostname apt"
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]; then
# Configuring chroot
# FIXME: cannot run in 'all' mode while excluding 'debianchroot', do we really need to exclude it?
#lb chroot_prep install all mode-apt-install-binary mode-archives-chroot "${@}"
lb chroot_prep install "${CHROOT_PREP_MOUNTS}" "${@}"
lb chroot_prep install "${CHROOT_PREP_OTHER}" mode-apt-install-binary mode-archives-chroot "${@}"
lb chroot_archives chroot install "${@}"
fi
# Building root filesystem
lb binary_rootfs "${@}"
lb binary_dm-verity "${@}"
lb binary_manifest "${@}"
# Prepare images
lb binary_package-lists "${@}"
lb binary_linux-image "${@}"
lb binary_memtest "${@}"
lb binary_grub-legacy "${@}"
lb binary_grub-pc "${@}"
lb binary_grub_cfg "${@}"
lb binary_syslinux "${@}"
lb binary_disk "${@}"
lb binary_loadlin "${@}"
lb binary_win32-loader "${@}"
lb binary_includes "${@}"
lb binary_grub-efi "${@}"
lb binary_bootloader_splash "${@}"
lb binary_hooks "${@}"
lb binary_checksums "${@}"
if [ "${LB_BUILD_WITH_CHROOT}" != "true" ]; then
lb chroot_prep install "${CHROOT_PREP_MOUNTS}" "${@}"
fi
# Apply SOURCE_DATE_EPOCH to all modified and created files
find binary -newermt "$(date -d@${SOURCE_DATE_EPOCH} '+%Y-%m-%d %H:%M:%S')" -printf "%y %p\n" -exec touch '{}' -d@${SOURCE_DATE_EPOCH} --no-dereference ';' > binary.modified_timestamps
# Building images
lb binary_iso "${@}"
lb binary_onie "${@}"
lb binary_netboot "${@}"
lb binary_tar "${@}"
lb binary_hdd "${@}"
lb binary_zsync "${@}"
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]; then
# Deconfiguring chroot
Remove_stagefile chroot_archives
lb chroot_prep remove "${CHROOT_PREP_OTHER}" "${@}"
fi
lb chroot_prep remove "${CHROOT_PREP_MOUNTS}" "${@}"
Echo_message "Binary stage completed"