#!/bin/sh # make-live - utility to build Debian Live systems # # Copyright (C) 2006 Daniel Baumann # Copyright (C) 2006 Marco Amadori # # make-live 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. Chroot_exec () { # Execute commands chrooted chroot "${LIVE_CHROOT}" /usr/bin/env -i HOME="/root" PATH="/usr/sbin:/usr/bin:/sbin:/bin" TERM="${TERM}" ftp_proxy="${LIVE_PROXY_FTP}" http_proxy="${LIVE_PPROXY_HTTP}" DEBIAN_FRONTEND="noninteractive" DEBIAN_PRIORITY="critical" ${1} return ${?} } Chroot () { if [ ! -f "${LIVE_ROOT}"/.stage/chroot ] then # Configure chroot Patch_chroot apply Patch_runlevel apply # Configure network Patch_network apply # Configure sources.list Indices custom # Install secure apt if [ "${LIVE_DISTRIBUTION}" = "testing" ] || [ "${LIVE_DISTRIBUTION}" = "unstable" ] then Chroot_exec "apt-get install --yes --force-yes debian-archive-keyring" fi # Update indices Chroot_exec "apt-get update" # Configure linux-image Patch_linux apply # Install linux-image, modules and casper Chroot_exec "apt-get install --yes linux-image-2.6-${LIVE_KERNEL} squashfs-modules-2.6-${LIVE_KERNEL} unionfs-modules-2.6-${LIVE_KERNEL} casper" # Deconfigure linux-image Patch_linux deapply # Install packages list if [ -n "${LIVE_PACKAGE_LIST}" ] then grep -v "^#" "${LIVE_PACKAGE_LIST}" > "${LIVE_CHROOT}"/root/"`basename ${LIVE_PACKAGE_LIST}`" Chroot_exec "xargs --arg-file=/root/`basename ${LIVE_PACKAGE_LIST}` apt-get install --yes" rm -f "${LIVE_CHROOT}"/root/"`basename ${LIVE_PACKAGE_LIST}`" fi # Install extra packages if [ -n "${LIVE_PACKAGES}" ] then Chroot_exec "apt-get install --yes ${LIVE_PACKAGES}" fi # Copy external directory into the chroot if [ -d "${LIVE_INCLUDE_CHROOT}" ] then cd "${LIVE_INCLUDE_CHROOT}" find . | cpio -pumd "${LIVE_CHROOT}" cd "${OLDPWD}" fi # Execute extra command in the chroot if [ -r "${LIVE_HOOK}" ] then # FIXME Chroot_exec "`cat ${LIVE_HOOK}`" elif [ -n "${LIVE_HOOK}" ] then Chroot_exec "${LIVE_HOOK}" fi # Temporary hacks for broken packages Hack_xorg # Add filesystem.manifest Chroot_exec "dpkg-query -W \*" | awk '$2 ~ /./ {print $1 " " $2 }' > "${LIVE_ROOT}"/filesystem.manifest if [ ! -z "${LIVE_MANIFEST}" ] then Chroot_exec "apt-get install --yes ${LIVE_MANIFEST}" Chroot_exec "dpkg-query -W \*" | awk '$2 ~ /./ {print $1 " " $2 }' > "${LIVE_ROOT}"/filesystem.manifest-desktop 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_runlevel deapply Patch_chroot deapply # Touching stage file touch "${LIVE_ROOT}"/.stage/chroot fi }