[pacman-dev] FS#30582 : add a postextract() to PKGBUILD
Allan McRae
allan at archlinux.org
Sat Jul 28 03:55:55 EDT 2012
On 28/07/12 07:45, Enjolras wrote:
> 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.
I would prefer it to be name "prepare()". A single function name fits
the style of the rest (build, check, package).
Also, documentation is needed - both PKGBUILD.5 and makepkg.8 (behaviour
of --noextract).
> 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