* auto/*: Added live-layered image formatsil2100/core18-pi3-arm64
parent
3e34faaa70
commit
7b4acba31d
@ -0,0 +1,141 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## live-build(7) - System Build Scripts
|
||||||
|
## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
|
||||||
|
##
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
## This is a fork of lb_chroot for layered live system.
|
||||||
|
## We don't want leaking host configuratino in each layer, and so,
|
||||||
|
## we clean and setup the chroot each time.
|
||||||
|
## In addition, we create the squashfs for each layer, but top one (live)
|
||||||
|
## which still can be configured after lb chroot call.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Including common functions
|
||||||
|
( . "${LIVE_BUILD}/scripts/build.sh" > /dev/null 2>&1 || true ) || . /usr/lib/live/build.sh
|
||||||
|
|
||||||
|
# Automatically populating config tree
|
||||||
|
if [ -x auto/config ] && [ ! -e .build/config ]
|
||||||
|
then
|
||||||
|
Echo_message "Automatically populating config tree."
|
||||||
|
lb config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setting static variables
|
||||||
|
DESCRIPTION="$(Echo 'customize the Debian system')"
|
||||||
|
HELP=""
|
||||||
|
USAGE="${PROGRAM} [--force]"
|
||||||
|
|
||||||
|
Arguments "${@}"
|
||||||
|
|
||||||
|
# Reading configuration files
|
||||||
|
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
|
||||||
|
Set_defaults
|
||||||
|
|
||||||
|
# Setup cleanup function
|
||||||
|
Setup_cleanup
|
||||||
|
|
||||||
|
. config/functions
|
||||||
|
|
||||||
|
teardownPath="config/teardown_chroot_layered"
|
||||||
|
cat >> $teardownPath << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
EOF
|
||||||
|
chmod +x $teardownPath
|
||||||
|
|
||||||
|
PASSES="${PASSES:-install live}"
|
||||||
|
CURPASS=1
|
||||||
|
LASTPASS=$(echo $PASSES|wc -w)
|
||||||
|
for _PASS in $PASSES
|
||||||
|
do
|
||||||
|
|
||||||
|
if [ $CURPASS -gt 1 ]; then
|
||||||
|
mkdir chroot.${_PASS}
|
||||||
|
mount_overlay chroot/ "chroot.${_PASS}/" chroot/
|
||||||
|
cat >> $teardownPath << EOF
|
||||||
|
umount chroot/
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configuring chroot
|
||||||
|
lb chroot_cache restore ${*}
|
||||||
|
lb chroot_devpts install ${*}
|
||||||
|
lb chroot_proc install ${*}
|
||||||
|
lb chroot_selinuxfs install ${*}
|
||||||
|
lb chroot_sysfs install ${*}
|
||||||
|
lb chroot_debianchroot install ${*}
|
||||||
|
lb chroot_dpkg install ${*}
|
||||||
|
lb chroot_tmpfs install ${*}
|
||||||
|
lb chroot_sysv-rc install ${*}
|
||||||
|
lb chroot_upstart install ${*}
|
||||||
|
lb chroot_hosts install ${*}
|
||||||
|
lb chroot_resolv install ${*}
|
||||||
|
lb chroot_hostname install ${*}
|
||||||
|
lb chroot_apt install ${*}
|
||||||
|
lb chroot_archives chroot install ${*}
|
||||||
|
|
||||||
|
# Customizing chroot
|
||||||
|
lb chroot_linux-image ${*}
|
||||||
|
lb chroot_preseed ${*}
|
||||||
|
lb chroot_early_hooks ${*}
|
||||||
|
|
||||||
|
lb chroot_package-lists ${_PASS} ${*}
|
||||||
|
lb chroot_install-packages ${_PASS} ${*}
|
||||||
|
|
||||||
|
# Kernel should be in first layer
|
||||||
|
if [ $CURPASS -eq 1 ]; then
|
||||||
|
Chroot chroot "dpkg -l linux-headers-3* linux-headers-4*" 2>/dev/null \
|
||||||
|
| awk '/^i/ {print $2}' > chroot.headers
|
||||||
|
for i in $(cat chroot.headers); do
|
||||||
|
Chroot chroot "apt-mark auto $i"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
Chroot chroot "apt-get --purge -y autoremove"
|
||||||
|
|
||||||
|
# Add live packages to top layer
|
||||||
|
if [ $CURPASS -eq $LASTPASS ]; then
|
||||||
|
lb chroot_live-packages ${*}
|
||||||
|
fi
|
||||||
|
|
||||||
|
lb chroot_includes ${*}
|
||||||
|
# TODO: look if this is what copies distro hooks
|
||||||
|
lb chroot_hooks ${*}
|
||||||
|
lb chroot_hacks ${*}
|
||||||
|
lb chroot_interactive ${*}
|
||||||
|
|
||||||
|
Chroot chroot "dpkg-query -W" > chroot.packages.${_PASS}
|
||||||
|
|
||||||
|
# Deconfiguring chroot
|
||||||
|
lb chroot_archives chroot remove ${*}
|
||||||
|
lb chroot_apt remove ${*}
|
||||||
|
lb chroot_hostname remove ${*}
|
||||||
|
lb chroot_resolv remove ${*}
|
||||||
|
lb chroot_hosts remove ${*}
|
||||||
|
lb chroot_sysv-rc remove ${*}
|
||||||
|
lb chroot_upstart remove ${*}
|
||||||
|
lb chroot_tmpfs remove ${*}
|
||||||
|
lb chroot_dpkg remove ${*}
|
||||||
|
lb chroot_debianchroot remove ${*}
|
||||||
|
lb chroot_sysfs remove ${*}
|
||||||
|
lb chroot_selinuxfs remove ${*}
|
||||||
|
lb chroot_proc remove ${*}
|
||||||
|
lb chroot_devpts remove ${*}
|
||||||
|
lb chroot_cache save ${*}
|
||||||
|
|
||||||
|
if [ $CURPASS -eq 1 ]; then
|
||||||
|
cp -a chroot chroot.${_PASS}
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURPASS=$(( CURPASS + 1 ))
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove unused chroot binary corresponding to bottom layer (once everything is unmount)
|
||||||
|
cat >> $teardownPath << EOF
|
||||||
|
rm -rf chroot/
|
||||||
|
EOF
|
Loading…
Reference in new issue