#!/bin/sh # lh_chroot_sources(1) - manage /etc/apt/sources.list # Copyright (C) 2006-2007 Daniel Baumann # # 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. set -e # Source common functions for FUNCTION in /usr/share/live-helper/functions/*.sh do . ${FUNCTION} done # Set static variables DESCRIPTION="manage /etc/apt/sources.list" HELP="" USAGE="${PROGRAM} {install|remove} [--force]" Arguments "${@}" Echo_debug "Init ${PROGRAM}" # Reading configuration files Read_conffile config/bootstrap Read_conffile config/chroot Read_conffile config/common Read_conffile config/image Set_defaults Breakpoint "chroot_sources: Init" # Requiring stage file Require_stagefile .stage/bootstrap case "${1}" in install) # Checking stage file Check_stagefile .stage/chroot_sources # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock # Configure custom sources.list echo "deb ${LIVE_MIRROR_BUILD} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" > chroot/etc/apt/sources.list if [ "${LIVE_SOURCE}" = "enabled" ] then echo "deb-src ${LIVE_MIRROR_BUILD} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list fi if [ "${LIVE_SECURITY}" = "enabled" ] then if [ "${LIVE_DISTRIBUTION}" != "sid" ] && [ "${LIVE_DISTRIBUTION}" != "unstable" ] then echo "deb ${LIVE_MIRROR_BUILD_SECURITY} ${LIVE_DISTRIBUTION}/updates ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list if [ "${LIVE_SOURCE}" = "yes" ] then echo "deb-src ${LIVE_MIRROR_BUILD_SECURITY} ${LIVE_DISTRIBUTION}/updates ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list fi fi fi # Check local sources.list if ls config/chroot_sources/*.build &> /dev/null then echo "" >> chroot/etc/apt/sources.list echo "# Custom repositories" >> chroot/etc/apt/sources.list for FILE in config/chroot_sources/*.build do cat ${FILE} | grep -v "^##" >> chroot/etc/apt/sources.list done fi # Check local gpg keys if ls config/chroot_sources/*.build.gpg &> /dev/null then for FILE in config/chroot_sources/*.build.gpg do cp ${FILE} chroot/root Chroot "apt-key add /root/`basename ${FILE}`" rm -f chroot/root/`basename ${FILE}` done fi # Check local keyring packages if ls config/chroot_sources/*.deb &> /dev/null then for PACKAGE in config/chroot_sources/*.deb do cp ${PACKAGE} chroot/root Chroot "dpkg -i `basename ${PACKAGE}`" rm -f chroot/root/`basename ${PACKAGE}` done fi # Installing aptitude if [ "${LH_APT}" = "apt" ] || [ "${LH_APT}" = "apt-get" ] then Chroot "apt-get update" elif [ "${LH_APT}" = "aptitude" ] then if [ ! -x /usr/bin/aptitude ] then Chroot "apt-get update" Chroot "apt-get install --yes --force-yes aptitude" fi Chroot "aptitude update" fi # Installing keyring packages if [ -n "${LIVE_KEYRING_PACKAGES}" ] then Chroot "apt-get install --yes --force-yes ${LIVE_KEYRING_PACKAGES}" Chroot "apt-get update" fi # Creating stage file Create_stagefile .stage/chroot_sources ;; remove) # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock # Configure generic indices if [ "${LH_APT_GENERIC}" = "enabled" ] then # Don't do anything if it's not required if [ "${LIVE_MIRROR_BUILD}" = "${LIVE_MIRROR_IMAGE}" ] && \ [ "${LIVE_MIRROR_BUILD_SECURITY}" = "${LIVE_MIRROR_IMAGE_SECURITY}" ] then exit 0 fi # Cleaning apt list cache rm -rf chroot/var/lib/apt/lists mkdir -p chroot/var/lib/apt/lists/partial echo "deb ${LIVE_MIRROR_IMAGE} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" > chroot/etc/apt/sources.list if [ "${LIVE_SOURCE}" = "enabled" ] then echo "deb-src ${LIVE_MIRROR_IMAGE} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list fi if [ "${LIVE_SECURITY}" = "enabled" ] then if [ "${LIVE_DISTRIBUTION}" = "etch" ] || [ "${LIVE_DISTRIBUTION}" = "testing" ] then echo "deb ${LIVE_MIRROR_IMAGE_SECURITY} ${LIVE_DISTRIBUTION}/updates ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list if [ "${LIVE_SOURCE}" = "yes" ] then echo "deb-src ${LIVE_MIRROR_IMAGE_SECURITY} ${LIVE_DISTRIBUTION}/updates ${LIVE_SECTIONS}" >> chroot/etc/apt/sources.list fi fi fi # Check local sources.list if ls config/chroot_sources/*.image &> /dev/null then echo "" >> chroot/etc/apt/sources.list echo "# Custom repositories" >> chroot/etc/apt/sources.list for FILE in config/chroot_sources/*.build do cat ${FILE} | grep -v "^##" >> chroot/etc/apt/sources.list done fi # Check local gpg keys if ls config/chroot_sources/*.image.gpg &> /dev/null then for FILE in config/chroot_sources/*.image.gpg do cp ${FILE} chroot/root Chroot "apt-key add /root/`basename ${FILE}`" rm -f chroot/root/`basename ${FILE}` done fi case "${LH_APT}" in apt|apt-get) Chroot "apt-get update" ;; aptitude) Chroot "aptitude update" ;; esac fi # Cleaning apt packages cache rm -rf chroot/var/cache/apt mkdir -p chroot/var/cache/apt/archives/partial # Removing old files rm -f chroot/var/lib/dpkg/available-old rm -f chroot/var/lib/dpkg/diversions-old rm -f chroot/var/lib/dpkg/statoverride-old rm -f chroot/var/lib/dpkg/status-old # Removing stage file rm -f .stage/chroot_sources ;; *) Usage ;; esac