From 3d5a056452fe897e533edfac2ddbe2d1ca702a6e Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Thu, 21 Jun 2018 12:39:21 -0400 Subject: makepkg: reject PKGBUILDs with both split and non-split package functions 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 Signed-off-by: Allan McRae --- scripts/libmakepkg/lint_pkgbuild/package_function.sh.in | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'scripts/libmakepkg') diff --git a/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in b/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in index e52f1325..1b973c3f 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 "Conflicting %s and %s functions in %s")" "package()" "package_$pkgname()" "$BUILDFILE" + 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" -- cgit v1.2.3-24-g4f1b