177 lines
4.5 KiB
Bash
177 lines
4.5 KiB
Bash
# scripts/01-chroot.sh
|
|
|
|
chroots ()
|
|
{
|
|
# Execute commands chrooted
|
|
chroot "${LIVE_CHROOT}" /usr/bin/env -i HOME="/root" \
|
|
PATH="/usr/sbin:/usr/bin:/sbin:/bin" TERM="${TERM}" \
|
|
ftp_proxy="${LIVE_FTPPROXY}" http_proxy="${LIVE_HTTPPROXY}" \
|
|
DEBIAN_PRIORITY="critical" ${1}
|
|
#DEBIAN_FRONTEND=non-interactive DEBIAN_PRIORITY=critical
|
|
# FIXME: setting DEBIAN_FRONTEND to non-interactive seems not to work.
|
|
}
|
|
|
|
Chroot ()
|
|
{
|
|
# Configure chroot
|
|
Patch_chroot apply
|
|
|
|
# Configure network
|
|
Patch_network apply
|
|
|
|
# Configure /etc/apt/sources.list
|
|
echo "deb ${LIVE_MIRROR} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" > \
|
|
"${LIVE_CHROOT}"/etc/apt/sources.list
|
|
chroots "apt-get update"
|
|
|
|
# Install gnupg
|
|
chroots "apt-get install --yes --force-yes gnupg wget"
|
|
|
|
# Import archive signing key
|
|
if [ ! -z "${LIVE_MIRROR_KEY}" ]
|
|
then
|
|
chroots "wget ${LIVE_MIRROR_KEY}"
|
|
chroots "apt-key add `basename ${LIVE_MIRROR_KEY}`"
|
|
chroots "rm -f `basename ${LIVE_MIRROR_KEY}`"
|
|
fi
|
|
|
|
# Add other repository
|
|
if [ ! -z "${LIVE_REPOSITORY}" ]
|
|
then
|
|
# Configure /etc/apt/sources.list
|
|
echo "deb ${LIVE_REPOSITORY}" >> \
|
|
"${LIVE_CHROOT}"/etc/apt/sources.list
|
|
|
|
# Import archive signing key
|
|
if [ ! -z "${LIVE_REPOSITORY_KEY}" ]
|
|
then
|
|
chroots "wget ${LIVE_REPOSITORY_KEY}"
|
|
chroots "apt-key add `basename ${LIVE_REPOSITORY_KEY}`"
|
|
chroots "rm -f `basename ${LIVE_REPOSITORY_KEY}`"
|
|
fi
|
|
fi
|
|
|
|
# Update indices
|
|
chroots "apt-get update"
|
|
|
|
# Configure linux-image
|
|
Patch_linuximage apply
|
|
|
|
# Install linux-image
|
|
chroots "apt-get install --yes linux-image-2.6-${LIVE_LINUX}"
|
|
chroots "apt-get install --yes --force-yes casper \
|
|
squashfs-modules-2.6-${LIVE_LINUX} \
|
|
unionfs-modules-2.6-${LIVE_LINUX}"
|
|
|
|
# Rebuild initial ramdisk
|
|
chroots "dpkg-reconfigure `basename ${LIVE_CHROOT}/var/lib/dpkg/info/linux-image-2.6.*-${LIVE_LINUX}.postinst .postinst`"
|
|
|
|
# Deconfigure linux-image
|
|
Patch_linuximage deapply
|
|
|
|
# --- Begin FIXME ---
|
|
if [ -d "${LIVE_CLONE}" ]
|
|
then
|
|
# swapping chroots
|
|
LIVE_TMP="${LIVE_CHROOT}"
|
|
LIVE_CHROOT="${LIVE_CLONE}"
|
|
|
|
# get info
|
|
chroots "apt-get install --yes debconf-utils"
|
|
chroots "debconf-get-selections" > "${LIVE_ROOT}"/preseed.cloned
|
|
chroots "dpkg --get-selections" | grep -v deinstall | cut -f1 > "${LIVE_ROOT}"/package-list.cloned
|
|
|
|
# swapping out
|
|
LIVE_CHROOT="${LIVE_TMP}"
|
|
|
|
LIVE_PRESEED="${LIVE_ROOT}"/preseed.cloned
|
|
LIVE_PACKAGE_LIST="${LIVE_ROOT}"/package-list.cloned
|
|
fi
|
|
|
|
if [ -f "${LIVE_PRESEED}" ]
|
|
then
|
|
chroots "apt-get install --yes debconf-utils"
|
|
cp ${LIVE_PRESEED} ${LIVE_CHROOT}/tmp/preseed
|
|
chroots "debconf-set-selections /tmp/preseed"
|
|
rm ${LIVE_CHROOT}/tmp/preseed
|
|
fi
|
|
|
|
# Add splashy and conditionally a theme
|
|
if [ ! -z "${LIVE_SPLASHY}" ]
|
|
then
|
|
chroots "apt-get install --yes splashy splashy-themes"
|
|
|
|
if [ ! -z "${LIVE_SPLASHY_THEME}" ]
|
|
then
|
|
# not already installed ? Then its a new theme to install!
|
|
if [ ! -d "${LIVE_CHROOT}"/etc/splashy/themes/"${LIVE_SPLASHY_THEME}" ]
|
|
then
|
|
if [ -f "${LIVE_SPLASHY_THEME}".tar.gz ]
|
|
then
|
|
cp "${LIVE_SPLASHY_THEME}".tar.gz "${LIVE_CHROOT}"/tmp/"${LIVE_SPLASHY_THEME}".tar.gz # this permits simlink to theme
|
|
chroots "splashy_config -i /tmp/${LIVE_SPLASHY_THEME}.tar.gz"
|
|
rm "${LIVE_CHROOT}"/tmp/"${LIVE_SPLASHY_THEME}".tar.gz
|
|
chroots "splashy_config -s ${LIVE_SPLASHY_THEME}"
|
|
else
|
|
echo "Specify the local splashy theme without extension, it also must be in the cwd"
|
|
fi
|
|
else
|
|
chroots "splashy_config -s ${LIVE_SPLASHY_THEME}"
|
|
fi
|
|
fi
|
|
fi
|
|
# --- End FIXME ---
|
|
|
|
if [ -z "${LIVE_ROOTFS}" ]
|
|
then
|
|
if [ -z "${lIVE_INTERACTIVE}" ]
|
|
then
|
|
# Install packages list
|
|
if [ ! -z "${LIVE_PACKAGE_LIST}" ]
|
|
then
|
|
chroots "apt-get install --yes `cat ${LIVE_PACKAGE_LIST}`"
|
|
fi
|
|
|
|
# Install extra packages
|
|
if [ ! -z "${LIVE_PACKAGES}" ]
|
|
then
|
|
chroots "apt-get install --yes ${LIVE_PACKAGES}"
|
|
fi
|
|
else
|
|
# Run aptitude
|
|
chroots "apt-get install --yes aptitude"
|
|
chroots "aptitude"
|
|
fi
|
|
fi
|
|
|
|
# Copy external directory into the chroot
|
|
if [ -d "${LIVE_INCLUDE_ROOTFS}" ]
|
|
then
|
|
cd "${LIVE_INCLUDE_ROOTFS}"
|
|
find . | cpio -pumd "${LIVE_CHROOT}"/
|
|
cd "${OLDPWD}"
|
|
fi
|
|
|
|
# Execute extra command in the chroot
|
|
if [ ! -z "${LIVE_HOOK}" ]
|
|
then
|
|
chroots "${LIVE_HOOK}"
|
|
fi
|
|
|
|
# Clean apt packages cache
|
|
rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/*.deb
|
|
rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/partial/*.deb
|
|
|
|
# Clean apt indices cache
|
|
rm -f "${LIVE_CHROOT}"/var/cache/apt/*pkgcache.bin
|
|
|
|
# Remove cdebootstrap packages cache
|
|
rm -rf "${LIVE_CHROOT}"/var/cache/bootstrap
|
|
|
|
# Deconfigure network
|
|
Patch_network deapply
|
|
|
|
# Deconfigure chroot
|
|
Patch_chroot deapply
|
|
}
|