From 09f88a6e3837f71343dacb1bf7c6411183cca2cf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 21 Feb 2008 20:03:57 +0100 Subject: Adding apt/aptitude options. By using APT_OPTIONS and APTITUDE_OPTIONS in config/common, one can manipulate the default options wich is made to each and every apt and aptitude call. --- functions/defaults.sh | 3 +++ functions/wrapper.sh | 23 +++++++++++++++++++++ helpers/lh_binary_debian-installer | 2 +- helpers/lh_binary_local-packageslists | 2 +- helpers/lh_chroot_hacks | 10 +-------- helpers/lh_chroot_linux-image | 20 ++---------------- helpers/lh_chroot_local-packages | 10 +-------- helpers/lh_chroot_local-packageslists | 4 ++-- helpers/lh_chroot_packages | 10 +-------- helpers/lh_chroot_packageslists | 4 ++-- helpers/lh_chroot_sources | 38 ++++++++++------------------------- helpers/lh_chroot_tasks | 2 +- helpers/lh_config | 19 ++++++++++++++++-- helpers/lh_source_debian | 2 +- 14 files changed, 67 insertions(+), 82 deletions(-) create mode 100755 functions/wrapper.sh diff --git a/functions/defaults.sh b/functions/defaults.sh index 4214db1..177520f 100755 --- a/functions/defaults.sh +++ b/functions/defaults.sh @@ -64,6 +64,9 @@ Set_defaults () # Setting apt pipeline # LH_APT_PIPELINE + APT_OPTIONS="${APT_OPTIONS:---yes}" + APTITUDE_OPTIONS="${APTITUDE_OPTIONS:---assume-yes}" + # Setting apt recommends case "${LH_MODE}" in debian-edu) diff --git a/functions/wrapper.sh b/functions/wrapper.sh new file mode 100755 index 0000000..90144e7 --- /dev/null +++ b/functions/wrapper.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +# wrapper.sh - external command wrappers +# 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 + +Apt () +{ + case "${LH_APT}" in + apt|apt-get) + Chroot "apt-get ${APT_OPTIONS} ${@}" + ;; + + aptitude) + Chroot "aptittude ${APTITUDE_OPTIONS} ${@}" + ;; + esac +} diff --git a/helpers/lh_binary_debian-installer b/helpers/lh_binary_debian-installer index 096ca47..79fe2c6 100755 --- a/helpers/lh_binary_debian-installer +++ b/helpers/lh_binary_debian-installer @@ -250,7 +250,7 @@ if [ "${LH_DEBIAN_INSTALLER}" != "netboot" ]; then DI_PACKAGES="${DI_PACKAGES} cryptsetup lvm2" - Chroot "apt-get -o Dir::Cache=/binary.deb --download-only install --yes ${DI_PACKAGES}" + Chroot "apt-get ${APT_OPTIONS} -o Dir::Cache=/binary.deb --download-only install ${DI_PACKAGES}" mv chroot/binary.deb ./ mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status diff --git a/helpers/lh_binary_local-packageslists b/helpers/lh_binary_local-packageslists index 011386e..3afa7fe 100755 --- a/helpers/lh_binary_local-packageslists +++ b/helpers/lh_binary_local-packageslists @@ -60,7 +60,7 @@ then # Downloading additional packages - Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) apt-get -o Dir::Cache=/binary.deb --download-only install --yes" + Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) apt-get ${APT_OPTIONS} -o Dir::Cache=/binary.deb --download-only install" done for FILE in chroot/binary.deb/archives/*.deb diff --git a/helpers/lh_chroot_hacks b/helpers/lh_chroot_hacks index 1dd4850..ffa9d9c 100755 --- a/helpers/lh_chroot_hacks +++ b/helpers/lh_chroot_hacks @@ -54,15 +54,7 @@ case "${LH_BINARY_IMAGES}" in net) if [ ! -f chroot/usr/bin/smbmount ] then - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get install --yes smbfs" - ;; - - aptitude) - Chroot "aptitude install --assume-yes smbfs" - ;; - esac + Apt install smbfs fi if [ ! -d chroot/etc/initramfs-tools ] diff --git a/helpers/lh_chroot_linux-image b/helpers/lh_chroot_linux-image index 7d3ee31..d8718af 100755 --- a/helpers/lh_chroot_linux-image +++ b/helpers/lh_chroot_linux-image @@ -88,15 +88,7 @@ EOF fi # Installing linux-image, modules and ${LH_INITRAMFS} - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get install --yes ${PACKAGES}" - ;; - - aptitude) - Chroot "aptitude install --assume-yes ${PACKAGES}" - ;; - esac + Apt install ${PACKAGES} if ls config/chroot_local-packages/${LH_INITRAMFS}*.deb > /dev/null 2>&1 then @@ -107,15 +99,7 @@ EOF Chroot "xargs --arg-file=/root/initfs dpkg -i" || true # Cleaning dependencies - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get install -f --yes" - ;; - - aptitude) - Chroot "aptitude install --assume-yes ${LH_INITRAMFS}" - ;; - esac + Apt install -f # Removing package files rm -f chroot/root/${LH_INITRAMFS}*.deb diff --git a/helpers/lh_chroot_local-packages b/helpers/lh_chroot_local-packages index 96565a2..5b7d297 100755 --- a/helpers/lh_chroot_local-packages +++ b/helpers/lh_chroot_local-packages @@ -68,15 +68,7 @@ then Chroot "xargs --arg-file=/root/local-packages dpkg -i" || true # Cleaning dependencies - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get install -f --yes" - ;; - - aptitude) - Chroot "aptitude install -f --assume-yes" - ;; - esac + Apt install -f # Removing package files rm -f chroot/root/*.deb diff --git a/helpers/lh_chroot_local-packageslists b/helpers/lh_chroot_local-packageslists index 2c03f3c..4c3a100 100755 --- a/helpers/lh_chroot_local-packageslists +++ b/helpers/lh_chroot_local-packageslists @@ -60,11 +60,11 @@ then # Installing package list case "${LH_APT}" in apt|apt-get) - Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) apt-get install --yes" + Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) apt-get ${APT_OPTIONS} install" ;; aptitude) - Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) aptitude install --assume-yes" + Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) aptitude ${APTITUDE_OPTIONS} install" ;; esac diff --git a/helpers/lh_chroot_packages b/helpers/lh_chroot_packages index 661b335..9fe2984 100755 --- a/helpers/lh_chroot_packages +++ b/helpers/lh_chroot_packages @@ -53,15 +53,7 @@ then Restore_cache cache/packages_packages # Installing packages - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get install --yes ${LH_PACKAGES}" - ;; - - aptitude) - Chroot "aptitude install --assume-yes ${LH_PACKAGES}" - ;; - esac + Apt install ${LH_PACKAGES} # Saving cache Save_cache cache/packages_packages diff --git a/helpers/lh_chroot_packageslists b/helpers/lh_chroot_packageslists index 7d0cdef..651e359 100755 --- a/helpers/lh_chroot_packageslists +++ b/helpers/lh_chroot_packageslists @@ -62,11 +62,11 @@ then # Installing package list case "${LH_APT}" in apt|apt-get) - Chroot "xargs --arg-file=/root/${LIST} apt-get install --yes" + Chroot "xargs --arg-file=/root/${LIST} apt-get ${APT_OPTIONS} install" ;; aptitude) - Chroot "xargs --arg-file=/root/${LIST} aptitude install --assume-yes" + Chroot "xargs --arg-file=/root/${LIST} aptitude ${APTITUDE_OPTIONS} install" ;; esac diff --git a/helpers/lh_chroot_sources b/helpers/lh_chroot_sources index 25713a1..6cb0b3e 100755 --- a/helpers/lh_chroot_sources +++ b/helpers/lh_chroot_sources @@ -122,7 +122,7 @@ case "${1}" in if [ "${LH_APT}" = "aptitude" ] && [ ! -x /usr/bin/aptitude ] then - Chroot "apt-get install --yes --force-yes aptitude" + Chroot "apt-get ${APT_OPTIONS} install aptitude" fi else # Get fresh indices # Check local gpg keys @@ -148,29 +148,20 @@ case "${1}" in fi # Installing aptitude - if [ "${LH_APT}" = "apt" ] || [ "${LH_APT}" = "apt-get" ] - then - Chroot "apt-get update" - Chroot "apt-get --yes upgrade" - Chroot "apt-get --yes dist-upgrade" - elif [ "${LH_APT}" = "aptitude" ] + if [ "${LH_APT}" = "aptitude" ] && [ ! -x /usr/bin/aptitude ] then - if [ ! -x /usr/bin/aptitude ] - then - Chroot "apt-get update" - Chroot "apt-get install --yes --force-yes aptitude" - fi - - Chroot "aptitude update" - Chroot "aptitude --assume-yes upgrade" - Chroot "aptitude --assume-yes dist-upgrade" + Chroot "apt-get ${APT_OPTIONS} update" + Chroot "apt-get ${APT_OPTIONS} install aptitude" fi + Apt upgrade + Apt dist-upgrade + # Installing keyring packages if [ -n "${LH_KEYRING_PACKAGES}" ] then - Chroot "apt-get install --yes --force-yes ${LH_KEYRING_PACKAGES}" - Chroot "apt-get update" + Apt --force-yes install "${LH_KEYRING_PACKAGES}" + Apt update fi if [ "${LH_CACHE_INDICES}" = "enabled" ] @@ -262,15 +253,8 @@ case "${1}" in done fi - case "${LH_APT}" in - apt|apt-get) - Chroot "apt-get update" - ;; - - aptitude) - Chroot "aptitude update" - ;; - esac + # Updating indices + Apt update fi # Cleaning apt packages cache diff --git a/helpers/lh_chroot_tasks b/helpers/lh_chroot_tasks index 46277d7..7a19be9 100755 --- a/helpers/lh_chroot_tasks +++ b/helpers/lh_chroot_tasks @@ -69,7 +69,7 @@ then # Installing tasks case "${LH_TASKSEL}" in aptitude) - Chroot "aptitude install --assume-yes ${LH_TASKS}" + Chroot "aptitude ${APTITUDE_OPTIONS} install ${LH_TASKS}" ;; tasksel) diff --git a/helpers/lh_config b/helpers/lh_config index 02056f3..2f2596a 100755 --- a/helpers/lh_config +++ b/helpers/lh_config @@ -24,6 +24,8 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\ \t [--apt-ftp-proxy URL]\n\ \t [--apt-http-proxy URL]\n\ \t [--apt-pdiffs enabled|disabled]\n\ +\t [--apt-options OPTION|\"OPTIONS\"]\n\ +\t [--aptitude-options OPTION|\"OPTIONS\"]\n\ \t [--apt-pipeline FIXME]\n\ \t [--apt-recommends enabled|disabled]\n\ \t [--apt-secure enabled|disabled]\n\ @@ -111,7 +113,7 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\ Local_arguments () { - ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,fdisk:,losetup:,mode:,root-command:,use-fakeroot:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-filesystem:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,checksums:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-root-filesystem:,net-root-mountoptions:,net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,net-cow-server:,syslinux-splash:,syslinux-timeout:,syslinux-menu:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")" + ARGUMENTS="$(getopt --longoptions apt:,apt-ftp-proxy:,apt-http-proxy:,apt-pdiffs:,apt-options:,aptitute-options:,apt-pipeline:,apt-recommends:,apt-secure:,bootstrap:,cache:,cache-indices:,cache-packages:,cache-stages:,debconf-frontend:,debconf-nowarnings:,debconf-priority:,genisoimage:,initramfs:,fdisk:,losetup:,mode:,root-command:,use-fakeroot:,tasksel:,includes:,templates:,architecture:,bootstrap-config:,bootstrap-flavour:,bootstrap-keyring:,distribution:,mirror-bootstrap:,mirror-bootstrap-security:,mirror-binary:,mirror-binary-security:,sections:,chroot-filesystem:,union-filesystem:,exposed-root:,hooks:,interactive:,keyring-packages:,language:,linux-flavours:,linux-packages:,packages:,packages-lists:,tasks:,security:,symlinks:,sysvinit:,binary-filesystem:,binary-images:,binary-indices:,bootappend-install:,bootappend-live:,bootloader:,checksums:,chroot-build:,debian-installer:,debian-installer-daily:,encryption:,grub-splash:,hostname:,iso-application:,iso-preparer:,iso-publisher:,iso-volume:,memtest:,net-root-filesystem:,net-root-mountoptions:,net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,net-cow-server:,syslinux-splash:,syslinux-timeout:,syslinux-menu:,username:,source:,source-images:,breakpoints,conffile:,debug,force,help,quiet,usage,verbose,version --name=${PROGRAM} --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")" if [ "${?}" != "0" ] then @@ -141,7 +143,16 @@ Local_arguments () ;; --apt-pdiffs) - LH_APT_PDIFFS="${2}" + APT_PDIFFS="${2}" + shift 2 + ;; + --apt-options) + APT_OPTIONS="${2}" + shift 2 + ;; + + --aptitude-options) + LH_APTITUDE_OPTIONS="${2}" shift 2 ;; @@ -770,6 +781,10 @@ LH_QUIET="${LH_QUIET}" # \$LH_VERBOSE: enable verbose # (Default: ${LH_VERBOSE}) #LH_VERBOSE="${LH_VERBOSE}" + +# Internal stuff (FIXME) +APT_OPTIONS="${APT_OPTIONS}" +APTITUDE_OPTIONS="${APTITUDE_OPTIONS}" EOF # Creating lh_bootstrap_* configuration diff --git a/helpers/lh_source_debian b/helpers/lh_source_debian index 31ee006..6a86ddc 100755 --- a/helpers/lh_source_debian +++ b/helpers/lh_source_debian @@ -93,7 +93,7 @@ fi ;; esac -Chroot "xargs --arg-file=/root/dpkg-selection.txt apt-get source --download-only" +Chroot "xargs --arg-file=/root/dpkg-selection.txt apt-get ${APT_OPTIONS} --download-only source" rm -f chroot/root/dpkg-selection.txt # Sort sources -- cgit v1.0