[pacman-dev] [PATCH] makepkg: always build when pkgver function used
Allan McRae
allan at archlinux.org
Mon Jul 16 08:30:34 EDT 2012
If a pkgver() function is specified, always build the package even
if a package with the current pkgver is found as this pkgver may
change.
The only exception is when installing with -i. If a new build is
required then, -f must be used.
Signed-off-by: Allan McRae <allan at archlinux.org>
---
I thought this was a reasonable compromise in terms of complexity
and what I would expect makepkg to do. Having makepkg download
all the sources, update pkgver, then check if a package with the same
pkgver is already built did not seem the right approach to me.
scripts/makepkg.sh.in | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ed14577..d7d40de 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -74,6 +74,7 @@ IGNOREARCH=0
BUILDFUNC=0
CHECKFUNC=0
PKGFUNC=0
+PKGVERFUNC=0
SPLITPKG=0
PKGLIST=()
SIGNPKG=''
@@ -545,7 +546,7 @@ download_sources() {
esac
done
- if declare -f pkgver >/dev/null && (( GET_VCS )); then
+ if (( PKGVERFUNC && GET_VCS )); then
update_pkgver
check_pkgver || exit 1
fi
@@ -1807,7 +1808,7 @@ check_sanity() {
ret=1
fi
- if ! declare -f pkgver >/dev/null; then
+ if (( ! PKGVERFUNC )) ; then
check_pkgver || ret=1
fi
@@ -2406,6 +2407,10 @@ if (( GENINTEG )); then
exit 0 # $E_OK
fi
+if declare -f pkgver >/dev/null; then
+ PKGVERFUNC=1
+fi
+
# check the PKGBUILD for some basic requirements
check_sanity || exit 1
@@ -2482,12 +2487,12 @@ else
warning "$(gettext "The package group has already been built, installing existing packages...")"
install_package
exit $?
- else
+ elif (( ! PKGVERFUNC )); then
error "$(gettext "The package group has already been built. (use %s to overwrite)")" "-f"
exit 1
fi
fi
- if (( somepkgbuilt )); then
+ if (( somepkgbuilt && ! PKGVERFUNC )); then
error "$(gettext "Part of the package group has already been built. (use %s to overwrite)")" "-f"
exit 1
fi
--
1.7.11.2
More information about the pacman-dev
mailing list