makepkg: do not ignore errors from pacman when checking deps

As check_deps is run in a subshell, exit had the same meaning as return.
Since the intention is to halt makepkg when pacman throws an error other than
127, the enclosing function has to handle error control instead.

Fixes FS#19840

Signed-off-by: Andres P <aepd87@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Andres P 2010-06-25 18:46:37 -04:30 committed by Dan McGee
parent 330951200c
commit 579533d1a0
1 changed files with 7 additions and 6 deletions

View File

@ -397,7 +397,7 @@ check_deps() {
echo "$pmout"
elif (( ret )); then
error "$(gettext "'%s' returned a fatal error (%i): %s")" "$PACMAN" "$ret" "$pmout"
exit 1
return "$ret"
fi
}
@ -437,14 +437,15 @@ resolve_deps() {
local R_DEPS_SATISFIED=0
local R_DEPS_MISSING=1
local deplist="$(check_deps $*)"
if [[ -z $deplist ]]; then
return $R_DEPS_SATISFIED
fi
# deplist cannot be declared like this: local deplist=$(foo)
# Otherwise, the return value will depend on the assignment.
local deplist
deplist="$(set +E; check_deps $*)" || exit 1
[[ -z $deplist ]] && return $R_DEPS_SATISFIED
if handle_deps $deplist; then
# check deps again to make sure they were resolved
deplist="$(check_deps $*)"
deplist="$(set +E; check_deps $*)" || exit 1
[[ -z $deplist ]] && return $R_DEPS_SATISFIED
elif (( DEP_BIN )); then
error "$(gettext "Failed to install all missing dependencies.")"