makepkg: handle "epoch=" in PKGBUILD with pkgver function

After resourcing the PKGBUILD in update_pkgver(), set the epoch to 0
if it is empty.  Also adjust the get_full_version function to be more
robust if epoch somehow still is empty.

Fixes FS#41022.

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2014-06-29 17:13:42 +10:00
parent e0a7682607
commit 7305768d54

View file

@ -824,6 +824,7 @@ update_pkgver() {
fi fi
@SEDINPLACE@ "s:^pkgrel=[^ ]*:pkgrel=1:" "$BUILDFILE" @SEDINPLACE@ "s:^pkgrel=[^ ]*:pkgrel=1:" "$BUILDFILE"
source_safe "$BUILDFILE" source_safe "$BUILDFILE"
epoch=${epoch:-0}
local fullver=$(get_full_version) local fullver=$(get_full_version)
msg "$(gettext "Updated version: %s")" "$pkgbase $fullver" msg "$(gettext "Updated version: %s")" "$pkgbase $fullver"
else else
@ -846,10 +847,10 @@ missing_source_file() {
## ##
get_full_version() { get_full_version() {
if [[ -z $1 ]]; then if [[ -z $1 ]]; then
if [[ $epoch ]] && (( ! $epoch )); then if [[ -n $epoch ]] && (( $epoch )); then
printf "%s\n" "$pkgver-$pkgrel"
else
printf "%s\n" "$epoch:$pkgver-$pkgrel" printf "%s\n" "$epoch:$pkgver-$pkgrel"
else
printf "%s\n" "$pkgver-$pkgrel"
fi fi
else else
for i in pkgver pkgrel epoch; do for i in pkgver pkgrel epoch; do
@ -857,10 +858,10 @@ get_full_version() {
eval $(declare -f package_$1 | sed -n "s/\(^[[:space:]]*$i=\)/${i}_override=/p") eval $(declare -f package_$1 | sed -n "s/\(^[[:space:]]*$i=\)/${i}_override=/p")
[[ -z ${!indirect} ]] && eval ${indirect}=\"${!i}\" [[ -z ${!indirect} ]] && eval ${indirect}=\"${!i}\"
done done
if (( ! $epoch_override )); then if [[ -n $epoch_override ]] && (( $epoch_override )); then
printf "%s\n" "$pkgver_override-$pkgrel_override"
else
printf "%s\n" "$epoch_override:$pkgver_override-$pkgrel_override" printf "%s\n" "$epoch_override:$pkgver_override-$pkgrel_override"
else
printf "%s\n" "$pkgver_override-$pkgrel_override"
fi fi
fi fi
} }