[pacman-dev] [PATCH] makepkg: reject PKGBUILDs with both split and non-split package functions

Allan McRae allan at archlinux.org
Tue Jun 19 14:34:55 UTC 2018


On 13/06/18 00:56, Eli Schwartz wrote:
> We accept package_foo() in non-split packages, because it's easier to
> switch to/from a split package just by removing a pkgname element. But
> it makes no sense to have both in one PKGBUILD.
> 
> Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
> ---
>  scripts/libmakepkg/lint_pkgbuild/package_function.sh.in | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in b/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in
> index e52f1325..457b8f67 100644
> --- a/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in
> +++ b/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in
> @@ -34,11 +34,18 @@ lint_package_function() {
>  	local i ret=0
>  
>  	if (( ${#pkgname[@]} == 1 )); then
> -		if have_function 'build' && ! { have_function 'package' || have_function "package_$pkgname"; }; then
> +		if have_function 'package' && have_function "package_$pkgname"; then
> +			error "$(gettext "Duplicate %s and %s functions in %s")" "package()" "package_$pkgname()" "$BUILDFILE"

I don't think duplicate is the right word here.

Conflicting?

> +			ret=1
> +		elif have_function 'build' && ! { have_function 'package' || have_function "package_$pkgname"; }; then
>  			error "$(gettext "Missing %s function in %s")" "package()" "$BUILDFILE"
>  			ret=1
>  		fi
>  	else
> +		if have_function "package"; then
> +			error "$(gettext "Extra %s function for split package '%s'")" "package()" "$pkgbase"
> +			ret=1
> +		fi
>  		for i in "${pkgname[@]}"; do
>  			if ! have_function "package_$i"; then
>  				error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i"
> 


More information about the pacman-dev mailing list