live-build/helpers/lh_bootstrap_cdebootstrap

180 lines
4.2 KiB
Plaintext
Raw Normal View History

2007-09-23 08:04:46 +00:00
#!/bin/sh
# lh_bootstrap_cdebootstrap(1) - bootstrap a Debian system with cdebootstrap(1)
2007-09-23 08:04:48 +00:00
# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
#
# live-helper 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.
2007-09-23 08:04:46 +00:00
set -e
2007-09-23 08:05:11 +00:00
# Including common functions
LH_BASE="${LH_BASE:-/usr/share/live-helper}"
for FUNCTION in "${LH_BASE}"/functions/*.sh
2007-09-23 08:04:46 +00:00
do
2007-09-23 08:05:11 +00:00
. "${FUNCTION}"
2007-09-23 08:04:46 +00:00
done
2007-09-23 08:05:11 +00:00
# Setting static variables
2007-09-23 08:04:48 +00:00
DESCRIPTION="bootstrap a Debian system with cdebootstrap(1)"
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
2007-09-23 08:04:46 +00:00
# Reading configuration files
2007-09-23 08:04:52 +00:00
Read_conffile config/common
2007-09-23 08:04:46 +00:00
Read_conffile config/bootstrap
2007-09-23 08:04:49 +00:00
Read_conffile config/chroot
2007-09-23 08:04:52 +00:00
Read_conffile config/binary
Read_conffile config/source
2007-09-23 08:05:18 +00:00
Read_conffile "${LH_CONFIG}"
2007-09-23 08:04:46 +00:00
Set_defaults
2007-09-23 08:04:49 +00:00
if [ "${LH_BOOTSTRAP}" != "cdebootstrap" ]
then
exit 0
fi
# Check architecture
Check_crossarchitecture
2007-09-23 08:05:11 +00:00
Echo_message "Begin bootstrapping system..."
2007-09-23 08:05:16 +00:00
Check_package /usr/bin/cdebootstrap cdebootstrap
2007-09-23 08:05:11 +00:00
# Ensure that a system is built as root
lh_testroot
2007-09-23 08:04:46 +00:00
# Checking stage file
2007-09-23 08:04:47 +00:00
Check_stagefile .stage/bootstrap
2007-09-23 08:05:11 +00:00
Check_stagefile .stage/bootstrap_cache.restore
2007-09-23 08:04:46 +00:00
# Checking lock file
2007-09-23 08:04:47 +00:00
Check_lockfile .lock
2007-09-23 08:04:46 +00:00
# Creating lock file
2007-09-23 08:04:47 +00:00
Create_lockfile .lock
2007-09-23 08:04:46 +00:00
# Creating chroot directory
2007-09-23 08:05:11 +00:00
mkdir -p chroot
2007-09-23 08:04:46 +00:00
# Setting cdebootstrap options
2007-09-23 08:05:17 +00:00
if [ -n "${LH_ARCHITECTURE}" ]
2007-09-23 08:04:46 +00:00
then
2007-09-23 08:05:17 +00:00
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --arch=${LH_ARCHITECTURE}"
2007-09-23 08:04:46 +00:00
fi
2007-09-23 08:05:17 +00:00
if [ -n "${LH_BOOTSTRAP_CONFIG}" ]
2007-09-23 08:04:46 +00:00
then
2007-09-23 08:05:17 +00:00
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --suite-config=${LH_BOOTSTRAP_CONFIG}"
2007-09-23 08:04:46 +00:00
fi
if [ -n "${LH_BOOTSTRAP_INCLUDE}" ]
then
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --include=${LH_BOOTSTRAP_INCLUDE}"
fi
if [ -n "${LH_BOOTSTRAP_EXCLUDE}" ]
then
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --exclude=${LH_BOOTSTRAP_EXCLUDE}"
fi
2007-09-23 08:05:17 +00:00
if [ -n "${LH_BOOTSTRAP_KEYRING}" ]
2007-09-23 08:05:11 +00:00
then
2007-09-23 08:05:17 +00:00
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --keyring=${LH_BOOTSTRAP_KEYRING}"
2007-09-23 08:05:11 +00:00
fi
if [ -z "${LH_BOOTSTRAP_FLAVOUR}" ]
then
case "${LH_PACKAGES_LISTS}" in
minimal|mini)
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --flavour=minimal"
;;
*)
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --flavour=standard"
;;
esac
else
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --flavour=${LH_BOOTSTRAP_FLAVOUR}"
fi
2007-09-23 08:04:46 +00:00
if [ "${LH_DEBUG}" = "enabled" ]
2007-09-23 08:04:49 +00:00
then
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --debug"
fi
if [ "${LH_QUIET}" = "enabled" ]
2007-09-23 08:04:49 +00:00
then
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --quiet"
fi
if [ "${LH_VERBOSE}" = "enabled" ]
2007-09-23 08:04:49 +00:00
then
CDEBOOTSTRAP_OPTIONS="${CDEBOOTSTRAP_OPTIONS} --verbose"
fi
2007-09-23 08:04:46 +00:00
if [ -x "/usr/bin/cdebootstrap" ]
then
2007-09-23 08:04:52 +00:00
if [ "${LH_CACHE_PACKAGES}" = "enabled" ]
then
if [ -d cache/packages_bootstrap ]
2007-09-23 08:04:48 +00:00
then
mkdir -p chroot/var/cache/bootstrap
2007-09-23 08:04:52 +00:00
cp cache/packages_bootstrap/*.deb chroot/var/cache/bootstrap
2007-09-23 08:04:48 +00:00
fi
2007-09-23 08:04:46 +00:00
# Executing cdebootstrap (download-only)
2007-09-23 08:05:17 +00:00
${LH_ROOT_COMMAND} cdebootstrap ${CDEBOOTSTRAP_OPTIONS} --download-only "${LH_DISTRIBUTION}" chroot "${LH_MIRROR_BOOTSTRAP}"
2007-09-23 08:04:51 +00:00
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R $(whoami):$(whoami) chroot
2007-09-23 08:04:51 +00:00
fi
2007-09-23 08:04:46 +00:00
# Removing old cache
2007-09-23 08:04:52 +00:00
if [ -d cache/packages_bootstrap ]
2007-09-23 08:04:46 +00:00
then
2007-09-23 08:04:52 +00:00
rm -f cache/packages_bootstrap/*.deb
2007-09-23 08:04:46 +00:00
fi
# Saving new cache
2007-09-23 08:05:11 +00:00
mkdir -p cache/packages_bootstrap
2007-09-23 08:04:46 +00:00
2007-09-23 08:04:52 +00:00
cp chroot/var/cache/bootstrap/*.deb cache/packages_bootstrap
2007-09-23 08:04:46 +00:00
fi
# Executing cdebootstrap (regular run)
[ "$LH_QUIET" = "enabled" ] && echo -n "Running cdebootstrap ... "
2007-09-23 08:05:17 +00:00
${LH_ROOT_COMMAND} cdebootstrap ${CDEBOOTSTRAP_OPTIONS} "${LH_DISTRIBUTION}" chroot "${LH_MIRROR_BOOTSTRAP}"
[ "$LH_QUIET" = "enabled" ] && echo "done."
2007-09-23 08:04:51 +00:00
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R $(whoami):$(whoami) chroot
2007-09-23 08:04:51 +00:00
fi
2007-09-23 08:04:48 +00:00
# Remove cdebootstrap-helper-diverts (needed at least for minimal flavours)
case "${LH_PACKAGES_LISTS}" in
minimal|mini)
Chroot "dpkg -P cdebootstrap-helper-diverts"
;;
esac
2007-09-23 08:04:48 +00:00
2007-09-23 08:04:50 +00:00
# Deconfiguring cdebootstrap configurations
rm -f chroot/etc/apt/sources.list
rm -f chroot/etc/hosts
rm -f chroot/etc/resolv.conf
2007-09-23 08:04:48 +00:00
# Removing bootstrap cache
2007-09-23 08:04:52 +00:00
rm -rf chroot/var/cache/bootstrap
2007-09-23 08:04:48 +00:00
# Creating stage file
Create_stagefile .stage/bootstrap
2007-09-23 08:04:46 +00:00
else
2007-09-23 08:04:50 +00:00
Echo_error "Can't process file /usr/bin/cdebootstrap (FIXME)"
2007-09-23 08:04:46 +00:00
exit 1
fi