#!/bin/sh ## live-build(7) - System Build Scripts ## Copyright (C) 2016-2020 The Debian Live team ## 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. # Note, updates _LB_PACKAGES Check_package () { local CHROOT="${1}" local FILE="${2}" local PACKAGE="${3}" Check_installed "${CHROOT}" "${FILE}" "${PACKAGE}" if [ "${INSTALL_STATUS}" -ne 0 ] then if [ "${LB_BUILD_WITH_CHROOT}" != "false" ] && [ "${CHROOT}" = "chroot" ] then _LB_PACKAGES="${_LB_PACKAGES} ${PACKAGE}" else Echo_error "You need to install %s on your host system." "${PACKAGE}" exit 1 fi fi } Install_package () { if [ -n "${_LB_PACKAGES}" ] && [ "${LB_BUILD_WITH_CHROOT}" != "false" ] then case "${LB_APT}" in apt|apt-get) Chroot chroot "apt-get install -o APT::Install-Recommends=false ${APT_OPTIONS} ${_LB_PACKAGES}" ;; aptitude) Chroot chroot "aptitude install --without-recommends ${APTITUDE_OPTIONS} ${_LB_PACKAGES}" ;; esac fi } Remove_package () { if [ -n "${_LB_PACKAGES}" ] && [ "${LB_BUILD_WITH_CHROOT}" != "false" ] then case "${LB_APT}" in apt|apt-get) Chroot chroot "apt-get remove --purge ${APT_OPTIONS} ${_LB_PACKAGES}" ;; aptitude) Chroot chroot "aptitude purge ${APTITUDE_OPTIONS} ${_LB_PACKAGES}" ;; esac fi } # Check_installed # uses as return value global var INSTALL_STATUS # INSTALL_STATUS : 0 if package is installed # 1 if package isn't installed and we're in an apt managed system # 2 if package isn't installed and we aren't in an apt managed system Check_installed () { local CHROOT="${1}" local FILE="${2}" local PACKAGE="${3}" if [ "${LB_BUILD_WITH_CHROOT}" = "true" ] && [ "${CHROOT}" = "chroot" ] then if Chroot chroot "dpkg-query -s ${PACKAGE}" 2> /dev/null | grep -qs "Status: install" then INSTALL_STATUS=0 else INSTALL_STATUS=1 fi else if [ $(which dpkg-query) ] then if dpkg-query -s "${PACKAGE}" 2> /dev/null | grep -qs "Status: install" then INSTALL_STATUS=0 else INSTALL_STATUS=1 fi else if [ ! -e "${FILE}" ] then INSTALL_STATUS=2 else INSTALL_STATUS=0 fi fi fi }