95 lines
2.7 KiB
Bash
Executable File
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"
|