[pacman-dev] FS#30582 : add a postextract() to PKGBUILD
Enjolras
0enjolras0 at laposte.net
Fri Jul 27 17:45:55 EDT 2012
Hi
A lot of PKGBUILD calls patch in build(), causing errors when you run
makepkg --noextract. Patchs/sed and other non-idempotent operations on
the sources should be run in another function, which whould only been
called after extracting the sources, and not all the times build() is run.
Patch attached :
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index abfabdf..cf4b542 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -70,6 +70,7 @@ LOGGING=0
SOURCEONLY=0
IGNOREARCH=0
HOLDVER=0
+POSTEXTRACTFUNC=0
BUILDFUNC=0
CHECKFUNC=0
PKGFUNC=0
@@ -1004,6 +1005,10 @@ run_function() {
eval "$shellopts"
}
+run_postextract() {
+ run_function_safe "postextract"
+}
+
run_build() {
# use distcc if it is requested (check buildenv and PKGBUILD opts)
if check_buildenv "distcc" "y" && ! check_option "distc" "n"; then
@@ -2280,6 +2285,9 @@ if (( ${#pkgname[@]} > 1 )); then
fi
# test for available PKGBUILD functions
+if declare -f postextract >/dev/null; then
+ POSTEXTRACTFUNC=1
+fi
if declare -f build >/dev/null; then
BUILDFUNC=1
fi
@@ -2491,6 +2499,9 @@ else
download_sources
check_source_integrity
extract_sources
+ if (( POSTEXTRACTFUNC )); then
+ run_postextract
+ fi
fi
if (( NOBUILD )); then
More information about the pacman-dev
mailing list