blob: bdf755e3c67c69acf5377812389c92257eb8a1ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
#!/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_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"
|