From 32322960234c8ec91e0d42835a3ec5ee63305070 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 2 Feb 2019 11:00:00 +0100 Subject: Adding upstream version 20190202. Signed-off-by: Daniel Baumann --- system-build/scripts/build/chroot_archives | 675 +++++++++++++++++++++++++++++ 1 file changed, 675 insertions(+) create mode 100755 system-build/scripts/build/chroot_archives (limited to 'system-build/scripts/build/chroot_archives') diff --git a/system-build/scripts/build/chroot_archives b/system-build/scripts/build/chroot_archives new file mode 100755 index 0000000..063f3b6 --- /dev/null +++ b/system-build/scripts/build/chroot_archives @@ -0,0 +1,675 @@ +#!/bin/sh + +## live-build(7) - System Build Scripts +## Copyright (C) 2006-2015 Daniel Baumann +## +## 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. + + +set -e + +# Including common functions +[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh + +# Setting static variables +DESCRIPTION="$(Echo 'manage /etc/apt/sources.list')" +HELP="" +USAGE="${PROGRAM} {install|remove} [--force]" + +_PASS="${1}" +shift + +Arguments "${@}" + +# Reading configuration files +Read_conffiles config/all config/common config/bootstrap config/system config/binary config/source +Set_defaults + +# Requiring stage file +Require_stagefile .build/config .build/bootstrap + +case "${LB_DERIVATIVE}" in + true) + _PARENT_FILE="sources.list.d/debian.list" + ;; + + false) + _PARENT_FILE="sources.list" + ;; +esac + +case "${1}" in + install) + Echo_message "Configuring file /etc/apt/sources.list" + + # Checking stage file + Check_stagefile .build/chroot_archives + + # Checking lock file + Check_lockfile .lock + + # Creating lock file + Create_lockfile .lock + + # Restoring cache + Restore_cache cache/packages.chroot + + # Configure custom sources.list + +if echo "${LB_PARENT_MIRROR_CHROOT}" | grep -q '^file:/' +then + Chroot_bind_path chroot "$(echo ${LB_PARENT_MIRROR_CHROOT} | sed -e 's|file:||')" +fi + +cat > chroot/etc/apt/${_PARENT_FILE} << EOF +deb ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS} +EOF + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + + if [ "${LB_DERIVATIVE}" = "true" ] + then + rm -f chroot/etc/apt/sources.list.d/${LB_MODE}.list + + _DISTRIBUTION="$(echo ${LB_DISTRIBUTION} | sed -e 's|-backports||')" + + echo "deb ${LB_MIRROR_CHROOT} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_CHROOT} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + + if [ "${LB_SECURITY}" = "true" ] + then + case "${LB_MODE}" in + debian|progress-linux) + case "${LB_PARENT_DISTRIBUTION}" in + sid) + + ;; + + *) + echo "deb ${LB_PARENT_MIRROR_CHROOT_SECURITY} ${LB_PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_CHROOT_SECURITY} ${LB_PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + ;; + esac + + if [ "${LB_MODE}" = progress-linux ] + then + echo "deb ${LB_MIRROR_CHROOT_SECURITY} ${_DISTRIBUTION}-security ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_CHROOT_SECURITY} ${_DISTRIBUTION}-security ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + else + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_CHROOT_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_CHROOT_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + ;; + esac + fi + + if [ "${LB_UPDATES}" = "true" ] + then + echo "deb ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_CHROOT} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_CHROOT} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + + if [ "${LB_BACKPORTS}" = "true" ] + then + case "${LB_MODE}" in + debian) + if [ "${LB_PARENT_DISTRIBUTION}" != "sid" ] + then + echo "deb ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_CHROOT} ${LB_PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + fi + ;; + esac + + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_CHROOT} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_CHROOT} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + + # Adding local apt sources (chroot) + for FILE in config/archives/*.list config/archives/*.list.chroot + do + if [ -e "${FILE}" ] + then + sed -e "s|@DISTRIBUTION@|${LB_DISTRIBUTION}|g" \ + -e "s|@PARENT_DISTRIBUTION@|${LB_PARENT_DISTRIBUTION}|g" \ + -e "s|@ARCHIVE_AREAS@|${LB_ARCHIVE_AREAS}|g" \ + -e "s|@PARENT_ARCHIVE_AREAS@|${LB_PARENT_ARCHIVE_AREAS}|g" \ + "${FILE}" > "chroot/etc/apt/sources.list.d/$(basename ${FILE} .chroot)" + + if [ "${_PASS}" != "source" ] && [ "${LB_APT_SOURCE_ARCHIVES}" = "false" ] + then + # Strip out source archives + sed "/^deb-src /d" "chroot/etc/apt/sources.list.d/$(basename ${FILE} .chroot)" + fi + fi + done + + # Adding local apt configuration (chroot) + for FILE in config/archives/*.conf config/archives/*.conf.chroot + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/etc/apt/apt.conf.d/$(basename ${FILE} .chroot) + fi + done + + # Adding local apt preferences (chroot) + for FILE in config/archives/*.pref config/archives/*.pref.chroot + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/etc/apt/preferences.d/$(basename ${FILE} .chroot) + fi + done + + # Configure local package repository + if Find_files config/packages.chroot/*.deb || Find_files config/packages/*.deb + then + rm -rf chroot/root/packages + mkdir -p chroot/root/packages + + if [ "$(stat --printf %d config/packages.chroot/)" = "$(stat --printf %d chroot/root/packages/)" ] || + [ "$(stat --printf %d config/packages/)" = "$(stat --printf %d chroot/root/packages/)" ] + then + CP_OPTIONS="-l" + fi + + # Copy packages + if Find_files config/packages.chroot/*_"${LB_ARCHITECTURES}".deb || Find_files config/packages/*_"${LB_ARCHITECTURES}".deb + then + for FILE in config/packages.chroot/*_"${LB_ARCHITECTURES}".deb config/packages/*_"${LB_ARCHITECTURES}".deb + do + if [ -L "${FILE}" ] + then + cp -L "${FILE}" chroot/root/packages + elif [ -e "${FILE}" ] + then + cp ${CP_OPTIONS} "${FILE}" chroot/root/packages + fi + done + fi + + if Find_files config/packages.chroot/*_all.deb || Find_files config/packages/*_all.deb + then + for FILE in config/packages.chroot/*_all.deb config/packages/*_all.deb + do + if [ -L "${FILE}" ] + then + cp -L "${FILE}" chroot/root/packages + elif [ -e "${FILE}" ] + then + cp ${CP_OPTIONS} "${FILE}" chroot/root/packages + fi + done + fi + + if Find_files chroot/root/packages/*.deb + then + # If we bootstrapped a minimal chroot, we need + # to install apt-utils before we have + # completed all the indices. + if [ ! -e chroot/usr/bin/apt-ftparchive ] + then + Apt chroot update + fi + + # Check depends + Check_package chroot /usr/bin/apt-ftparchive apt-utils + + # Installing depends + Install_package + + # Generate Packages and Packages.gz + echo "cd /root/packages && apt-ftparchive packages . > Packages" | Chroot chroot sh + gzip -9 -c chroot/root/packages/Packages > chroot/root/packages/Packages.gz + + # Generate Release + echo "cd /root/packages && apt-ftparchive \ + -o APT::FTPArchive::Release::Origin=config/packages.chroot \ + release . > Release" | Chroot chroot sh + + # Add to sources.list.d + echo "deb [ trusted=yes ] file:/root/packages ./" > chroot/etc/apt/sources.list.d/packages.list + + # Move top-level sources away, otherwise apt always preferes it (#644148) + if [ -e chroot/etc/apt/sources.list ] + then + mv chroot/etc/apt/sources.list chroot/etc/apt/sources.list.d/zz-sources.list + fi + + # Removing depends + Remove_package + else + Echo_warning "Local packages must be named with suffix '_all.deb' or '_\$architecture.deb'." + fi + fi + + if Find_files chroot/root/packages/*.deb + then + gunzip < chroot/root/packages/Packages.gz | awk '/^Package: / { print $2 }' \ + >> chroot/root/packages.chroot + fi + + # Update indices from cache + if [ "${LB_CACHE_INDICES}" = "true" ] && [ -d cache/indices.bootstrap ] + then + if Find_files cache/indices.bootstrap/secring.gpg* + then + cp -f cache/indices.bootstrap/secring.gpg* chroot/etc/apt + fi + + if Find_files cache/indices.bootstrap/trusted.gpg* + then + cp -rf cache/indices.bootstrap/trusted.gpg* chroot/etc/apt + fi + + if [ -f cache/indices.bootstrap/pkgcache.bin ] + then + cp -f cache/indices.bootstrap/pkgcache.bin chroot/var/cache/apt + fi + + if [ -f cache/indices.bootstrap/srcpkgcache.bin ] + then + cp -f cache/indices.bootstrap/srcpkgcache.bin chroot/var/cache/apt + fi + + if Find_files cache/indices.bootstrap/*_Packages + then + cp -f cache/indices.bootstrap/*_Packages chroot/var/lib/apt/lists + fi + + if Find_files cache/indices.bootstrap/*_Sources + then + cp -f cache/indices.bootstrap/*_Sources chroot/var/lib/apt/lists + fi + + if Find_files cache/indices.bootstrap/*Release* + then + cp -f cache/indices.bootstrap/*Release* chroot/var/lib/apt/lists + fi + else # Get fresh indices + # Check local archive keys + if Find_files config/archives/*.key || \ + Find_files config/archives/*.key.chroot + then + for FILE in config/archives/*.key \ + config/archives/*.key.chroot + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/root + Chroot chroot "apt-key add /root/$(basename ${FILE})" + rm -f chroot/root/$(basename ${FILE}) + fi + done + fi + + # Check local keyring packages + if Find_files config/archives/*.deb + then + for PACKAGE in config/archives/*.deb + do + cp ${PACKAGE} chroot/root + Chroot chroot "dpkg -i /root/$(basename ${PACKAGE})" + rm -f chroot/root/$(basename ${PACKAGE}) + done + fi + + # Rebuild apt indices from scratch. + # Due to the fact that apt doesn't understand + # pinning on the fly, we need to manually remove + # the cached indices and rebuild them again. + rm -rf chroot/var/cache/apt/*.bin + + Apt chroot update + + # Installing keyring packages + if [ -n "${LB_KEYRING_PACKAGES}" ] + then + Apt chroot "install ${LB_KEYRING_PACKAGES}" + fi + + rm -rf chroot/var/cache/apt/*.bin + + Apt chroot update + Apt chroot "upgrade" + Apt chroot "dist-upgrade" + + if [ "${LB_CACHE_INDICES}" = "true" ] + then + mkdir -p cache/indices.bootstrap + + if Find_files chroot/etc/apt/secring.gpg* + then + cp -f chroot/etc/apt/secring.gpg* cache/indices.bootstrap + fi + + cp -rf chroot/etc/apt/trusted.gpg* cache/indices.bootstrap + + cp -f chroot/var/cache/apt/pkgcache.bin cache/indices.bootstrap + + if Find_files chroot/var/cache/apt/srcpkgcache.bin + then + cp -f chroot/var/cache/apt/srcpkgcache.bin cache/indices.bootstrap + fi + + cp -f chroot/var/lib/apt/lists/*_Packages cache/indices.bootstrap + + if Find_files chroot/var/lib/apt/lists/*_Sources + then + cp -f chroot/var/lib/apt/lists/*_Sources cache/indices.bootstrap + fi + + cp -f chroot/var/lib/apt/lists/*Release* cache/indices.bootstrap + fi + fi + + # Saving cache + Save_cache cache/packages.chroot + + # Creating stage file + Create_stagefile .build/chroot_archives + ;; + + remove) + Echo_message "Deconfiguring file /etc/apt/sources.list" + + # Checking lock file + Check_lockfile .lock + + # Creating lock file + Create_lockfile .lock + + # Restore top-level sources + if [ -e chroot/etc/apt/sources.list.d/zz-sources.list ] + then + mv chroot/etc/apt/sources.list.d/zz-sources.list chroot/etc/apt/sources.list + fi + + # Unmount local repository +if echo "${LB_PARENT_MIRROR_CHROOT}" | grep -q '^file:/' +then + Chroot_unbind_path chroot "$(echo ${LB_PARENT_MIRROR_CHROOT} | sed -e 's|file:||')" +fi + + # Configure generic indices + # Don't do anything if it's not required + if [ "${LB_PARENT_MIRROR_CHROOT}" = "${LB_PARENT_MIRROR_BINARY}" ] && \ + [ "${LB_PARENT_MIRROR_CHROOT_SECURITY}" = "${LB_PARENT_MIRROR_BINARY_SECURITY}" ] && \ + [ ! -d chroot/root/packages ] + then + # Removing stage file + rm -f .build/chroot_archives + + exit 0 + fi + + # Cleaning apt list cache + rm -rf chroot/var/lib/apt/lists + mkdir -p chroot/var/lib/apt/lists/partial + + # Configure custom sources.list + +cat > chroot/etc/apt/${_PARENT_FILE} << EOF +deb ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS} +EOF + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + + if [ "${LB_DERIVATIVE}" = "true" ] + then + rm -f chroot/etc/apt/sources.list.d/${LB_MODE}.list + + _DISTRIBUTION="$(echo ${LB_DISTRIBUTION} | sed -e 's|-backports||')" + + echo "deb ${LB_MIRROR_BINARY} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_BINARY} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + + if [ "${LB_SECURITY}" = "true" ] + then + case "${LB_MODE}" in + debian|progress-linux) + case "${LB_PARENT_DISTRIBUTION}" in + sid) + + ;; + + *) + echo "deb ${LB_PARENT_MIRROR_BINARY_SECURITY} ${LB_PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_BINARY_SECURITY} ${LB_PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + ;; + esac + + if [ "${LB_MODE}" = progress-linux ] + then + echo "deb ${LB_MIRROR_BINARY_SECURITY} ${_DISTRIBUTION}-security ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_BINARY_SECURITY} ${_DISTRIBUTION}-security ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + else + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_BINARY_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_BINARY_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + ;; + esac + fi + + if [ "${LB_UPDATES}" = "true" ] + then + echo "deb ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_BINARY} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_BINARY} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + + if [ "${LB_BACKPORTS}" = "true" ] + then + case "${LB_MODE}" in + debian) + if [ "${LB_PARENT_DISTRIBUTION}" != "sid" ] + then + echo "deb ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_PARENT_MIRROR_BINARY} ${LB_PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> chroot/etc/apt/${_PARENT_FILE} + fi + fi + ;; + esac + + if [ "${LB_DERIVATIVE}" = "true" ] + then + echo "deb ${LB_MIRROR_BINARY} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + + if [ "${_PASS}" = "source" ] || [ "${LB_APT_SOURCE_ARCHIVES}" = "true" ] + then + echo "deb-src ${LB_MIRROR_BINARY} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> chroot/etc/apt/sources.list.d/${LB_MODE}.list + fi + fi + fi + + # Removing chroot-only apt sources + for FILE in config/archives/*.list.chroot + do + if [ -e "${FILE}" ] + then + rm -f "chroot/etc/apt/sources.list.d/$(basename ${FILE} .chroot)" + fi + done + + # Removing chroot-only apt configuration + for FILE in config/archives/*.conf.chroot + do + if [ -e "${FILE}" ] + then + rm -f "chroot/etc/apt/apt.conf.d/$(basename ${FILE} .chroot)" + fi + done + + # Removing chroot-only apt preferences + for FILE in config/archives/*.pref.chroot + do + if [ -e "${FILE}" ] + then + rm -f "chroot/etc/apt/preferences.d/$(basename ${FILE} .chroot)" + fi + done + + # Adding local apt sources (binary) + for FILE in config/archives/*.list config/archives/*.list.binary + do + if [ -e "${FILE}" ] + then + sed -e "s|@DISTRIBUTION@|${LB_DISTRIBUTION}|g" \ + -e "s|@PARENT_DISTRIBUTION@|${LB_PARENT_DISTRIBUTION}|g" \ + -e "s|@ARCHIVE_AREAS@|${LB_ARCHIVE_AREAS}|g" \ + -e "s|@PARENT_ARCHIVE_AREAS@|${LB_PARENT_ARCHIVE_AREAS}|g" \ + "${FILE}" > "chroot/etc/apt/sources.list.d/$(basename ${FILE} .binary)" + + if [ "${_PASS}" != "source" ] && [ "${LB_APT_SOURCE_ARCHIVES}" = "false" ] + then + # Strip out source archives + sed "/^deb-src /d" "chroot/etc/apt/sources.list.d/$(basename ${FILE} .binary)" + fi + fi + done + + # Adding local apt configuration (binary) + for FILE in config/archives/*.conf config/archives/*.conf.binary + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/etc/apt/apt.conf.d/$(basename ${FILE} .binary) + fi + done + + # Adding local apt preferences (binary) + for FILE in config/archives/*.pref config/archives/*.pref.binary + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/etc/apt/preferences.d/$(basename ${FILE} .binary) + fi + done + + # Adding local apt keys (binary) + for FILE in config/archives/*.key config/archives/*.key.binary + do + if [ -e "${FILE}" ] + then + cp ${FILE} chroot/root + Chroot chroot "apt-key add /root/$(basename ${FILE})" + rm -f chroot/root/$(basename ${FILE}) + fi + done + + # Updating indices + Apt chroot update + + # Cleaning apt package cache + rm -rf chroot/var/cache/apt + mkdir -p chroot/var/cache/apt/archives/partial + + # Cleaning apt package lists + if [ "${LB_APT_INDICES}" = "false" ] + then + rm -rf chroot/var/lib/apt/lists + mkdir -p chroot/var/lib/apt/lists/partial + fi + + # Remove local package repository + rm -f chroot/etc/apt/sources.list.d/packages.list + rm -rf chroot/root/packages + + # Removing stage file + rm -f .build/chroot_archives + ;; + + *) + Usage + ;; +esac -- cgit v1.2.3