Create a clean chroot for the installer.
The installer stage has a clean chroot for its own usage. The chroot from the chroot stage is available in chroot/chroot (implemented similar to the binary stage).
This commit is contained in:
parent
ac0cde14e6
commit
26845abebc
|
@ -28,6 +28,9 @@ Init_config_data "${@}"
|
|||
Setup_clean_exit
|
||||
|
||||
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]; then
|
||||
# Use a fresh chroot environment, to not pollute the 'normal' chroot
|
||||
lb installer_chroot "${@}"
|
||||
|
||||
# Configuring chroot
|
||||
lb chroot_prep install all mode-archives-chroot "${@}"
|
||||
fi
|
||||
|
@ -39,6 +42,12 @@ lb installer_preseed "${@}"
|
|||
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]; then
|
||||
# Deconfiguring chroot
|
||||
lb chroot_prep remove all mode-archives-chroot "${@}"
|
||||
|
||||
# Revert lb installer_chroot
|
||||
mv chroot/chroot chroot.tmp
|
||||
rm -rf chroot
|
||||
mv chroot.tmp chroot
|
||||
Remove_stagefile installer_chroot
|
||||
fi
|
||||
|
||||
Echo_message "Installer stage completed"
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
#!/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="Copy chroot into chroot"
|
||||
USAGE="${PROGRAM} [--force]"
|
||||
|
||||
# Processing arguments and configuration files
|
||||
Init_config_data "${@}"
|
||||
|
||||
Echo_message "Begin copying chroot for the installer..."
|
||||
|
||||
# Requiring stage file
|
||||
Require_stagefiles config bootstrap
|
||||
|
||||
# Checking stage file
|
||||
Check_stagefile
|
||||
|
||||
# Acquire lock file
|
||||
Acquire_lockfile
|
||||
|
||||
# Normally, virtual filesystems are not mounted here, but people tend to be lazy
|
||||
if [ -f chroot/proc/version ]
|
||||
then
|
||||
umount chroot/proc
|
||||
fi
|
||||
|
||||
if [ -d chroot/sys/kernel ]
|
||||
then
|
||||
umount chroot/sys
|
||||
fi
|
||||
|
||||
if [ "${LB_BUILD_WITH_CHROOT}" = "false" ]
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Removing old chroot
|
||||
rm -rf chroot/chroot
|
||||
rm -rf chroot.tmp
|
||||
|
||||
# Copying new chroot
|
||||
mv chroot chroot.tmp
|
||||
cp -a cache/bootstrap chroot
|
||||
touch chroot/chroot_for_installer.cache
|
||||
mv chroot.tmp chroot/chroot
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile
|
|
@ -38,13 +38,13 @@ Acquire_lockfile
|
|||
|
||||
if ls config/preseed/*.cfg > /dev/null 2>&1 || \
|
||||
ls config/preseed/*.cfg.installer > /dev/null 2>&1 || \
|
||||
ls chroot/root/packages.installer > /dev/null 2>&1
|
||||
ls chroot/chroot/root/packages.installer > /dev/null 2>&1
|
||||
then
|
||||
_DIRECTORY="binary/install"
|
||||
|
||||
rm -f "${_DIRECTORY}/preseed.cfg"
|
||||
|
||||
for _FILE in config/preseed/*.cfg config/preseed/*.cfg.installer chroot/root/packages.installer
|
||||
for _FILE in config/preseed/*.cfg config/preseed/*.cfg.installer chroot/chroot/root/packages.installer
|
||||
do
|
||||
if [ -e "${_FILE}" ]
|
||||
then
|
||||
|
|
Loading…
Reference in New Issue