#418 Issue closed: REQUIRED_PROGS added in prep/* are not checked

Labels: bug

schlomo opened issue at 2014-05-28 11:25:

See also #250 (rear not complaining about missing extlinux).

I just realized that we validate REQUIRED_PROGS only in /usr/sbin/rear before jumping into the workflow.

As an effect any changes to REQUIRED_PROGS in prep/* are effectively ignored. ATM we already have several such places:

$ grep -r REQUIRED_PROGS .
./conf/Debian/ia64.conf:REQUIRED_PROGS=(
./conf/Debian/ia64.conf:"${REQUIRED_PROGS[@]}"
./conf/Linux-i386.conf:REQUIRED_PROGS=(
./conf/Linux-i386.conf:"${REQUIRED_PROGS[@]}"
./conf/Linux-ia64.conf:REQUIRED_PROGS=(
./conf/Linux-ia64.conf:"${REQUIRED_PROGS[@]}"
./conf/Linux-ppc64.conf:REQUIRED_PROGS=(
./conf/Linux-ppc64.conf:"${REQUIRED_PROGS[@]}"
./conf/default.conf:REQUIRED_PROGS=(
./conf/default.conf:REQUIRED_PROGS_OBDR=( lsscsi sg_wr_mode )
./prep/USB/Linux-i386/05_check_extlinux.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" extlinux )
./prep/TAPE/default/40_check_tape_drive.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" mt )
./prep/TAPE/default/40_check_tape_drive.sh:    REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" "${REQUIRED_PROGS_OBDR[@]}" )
./prep/DUPLICITY/default/05_prep_duplicity.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" gpg duplicity "$PYTHON_BIN" )
./prep/NETFS/default/05_check_NETFS_requirements.sh:    REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" sshfs )
./prep/NETFS/default/09_check_encrypted_backup.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" openssl )
./prep/GNU/Linux/21_include_dhclient.sh:    REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" $DHCLIENT_BIN $DHCLIENT6_BIN )
./prep/GNU/Linux/29_include_drbd.sh:    REQUIRED_PROGS=("${REQUIRED_PROGS[@]}" drbdadm drbdsetup drbdmeta)
./prep/GNU/Linux/20_include_agetty.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" "${GETTY}" stty )
./build/GNU/Linux/39_copy_binaries_libraries.sh:for bin in "${PROGS[@]}" "${REQUIRED_PROGS[@]}"; do
./layout/save/GNU/Linux/26_crypt_layout.sh:REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" cryptsetup )

I think we should copy or move the check for the REQUIRED_PROGS to the end of the prep stage.


[Export of Github issue for rear/rear.]