#!/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 'install queued packages into chroot')" HELP="" USAGE="${PROGRAM} [--force]" USAGE="${PROGRAM} {install|live} [--force]" _PASS="${1}" shift Arguments "${@}" # Reading configuration files Read_conffiles config/all config/common config/bootstrap config/system config/binary config/source Set_defaults Echo_message "Begin installing packages (${_PASS} pass)..." # Requiring stage file Require_stagefile .build/config .build/bootstrap # Checking stage file Check_stagefile .build/chroot_install-packages.${PASS} # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock # Check for packages specified with foreign architecture _FOREIGN_ARCHITECTURES_FILE="chroot/root/packages.foreign-architectures" if [ -e "${_FOREIGN_ARCHITECTURES_FILE}" ] && [ -s "${_FOREIGN_ARCHITECTURES_FILE}" ] then _APT_ARCHITECTURES_ADDED="0" # Check if version of dpkg in chroot supports multiarch if Chroot chroot dpkg --print-foreign-architectures > /dev/null 2>&1 then # Add foregin architectures while read _ARCHITECTURES_LINE do Echo_message "Adding foreign architecture ${_ARCHITECTURES_LINE} to dpkg" Chroot chroot dpkg --add-architecture ${_ARCHITECTURES_LINE} _APT_ARCHITECTURES_ADDED="1" done < "${_FOREIGN_ARCHITECTURES_FILE}" # Tidy up rm -f "${_FOREIGN_ARCHITECTURES_FILE}" else Echo_error "Version of dpkg in chroot does not support foreign architectures." fi # Update apt if foreign architectures were added if [ "${_APT_ARCHITECTURES_ADDED}" -ne "0" ] then Echo_message "Added foreign architectures, updating apt..." Apt chroot update fi fi if [ -e chroot/root/packages.chroot ] && [ -s chroot/root/packages.chroot ] then # Restoring cache Restore_cache cache/packages.chroot # Installing packages Chroot chroot "xargs --arg-file=/root/packages.chroot apt-get ${APT_OPTIONS} install" # Tidying up rm -f chroot/root/packages.chroot # Saving cache Save_cache cache/packages.chroot fi # Creating stage file Create_stagefile .build/chroot_install-packages.${_PASS}