[pacman-dev] [PATCH] makepkg: allow the use of only a package() function

Allan McRae allan at archlinux.org
Wed Oct 28 03:02:32 EDT 2009


Cedric Staniewski wrote:
> For some packages, generally the 'any' arch ones, a build step is not
> required and therefore can be skipped. In these cases, a package()
> function without a build() one is sufficient.
>
> As a side effect, this commit makes meta packages without any function
> at all in the PKGBUILD possible.
>
> Fixes FS#15147.
>
> Signed-off-by: Cedric Staniewski <cedric at gmx.ca>
> ---
> <snip>
>   
>  
> +# test for available PKGBUILD functions
> +# The exclamation mark is required here to avoid triggering the ERR trap when
> +# a tested function does not exist.
> +if [[ $(! type -t build) = "function" ]]; then
> +	BUILDFUNC=1
> +fi
>   

This certainly appears to work, but can you explain how?  Here is my 
understanding.  The "!" means that when build() is not present, the 
function will still return 0 (not triggering the err trap) and the 
comparison then fails.   When build() function is present, the type 
-t... outputs "function" but returns 1.  How is the err trap not  set of 
then?  Is it because there is a value output?

Anyway, this is certainly a good catch for when applying the [[ & (( 
patch.   The rest of the patch looks good to me.

Allan


More information about the pacman-dev mailing list