makepkpg will now error if disallowed variables are overridden inside of
the package function.

Signed-off-by: morganamilo <morganam...@gmail.com>
---
 .../libmakepkg/lint_pkgbuild/variable.sh.in   | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in 
b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
index 3266cb5e..68512a62 100644
--- a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
@@ -37,6 +37,12 @@ lint_variable() {
                          replaces sha1sums sha256sums sha384sums sha512sums 
source)
        local string=(changelog epoch install pkgdesc pkgrel pkgver url)
 
+       local no_overide_string=(pkgbase pkgver pkgrel epoch)
+
+       local no_overide_array=(checkdepends makedepends
+                       noextract source validpgpkeys md5suns sha1sums
+                       sha224sums sha256sums sha384sums sha512sums)
+
        local i a v pkg keys out bad ret=0
 
        # global variables
@@ -87,6 +93,22 @@ lint_variable() {
                for a in ${arch[@]}; do
                        [[ $a == "any" ]] && continue
 
+                       for i in ${no_overide_string[@]}; do
+                               if extract_function_variable "package_$pkg" 
"${i}_${a}" 0 out; then
+                                       error "$(gettext "%s_%s can not be 
overridden in package function")" "$i" "$a"
+                                       ret=1
+                               fi
+                       done
+
+                       for i in ${no_overide_array[@]}; do
+                               if extract_function_variable "package_$pkg" 
"${i}_${a}" 1 out; then
+                                       error "$(gettext "%s_%s can not be 
overridden in package function")" "$i" "$a"
+                                       ret=1
+                               fi
+
+                       done
+
+
                        for i in ${arch_array[@]}; do
                                if extract_function_variable "package_$pkg" 
"${i}_${a}" 0 out; then
                                        error "$(gettext "%s_%s should be an 
array")" "$i" "$a"
@@ -95,6 +117,20 @@ lint_variable() {
                        done
                done
 
+               for i in ${no_overide_string[@]}; do
+                       if extract_function_variable "package_$pkg" "$i" 0 out; 
then
+                               error "$(gettext "%s can not be overridden in 
package function")" "$i"
+                               ret=1
+                       fi
+               done
+
+               for i in ${no_overide_string[@]}; do
+                       if extract_function_variable "package_$pkg" "$i" 1 out; 
then
+                               error "$(gettext "%s can not be overridden in 
package function")" "$i"
+                               ret=1
+                       fi
+               done
+
                for i in ${string[@]}; do
                        if extract_function_variable "package_$pkg" $i 1 out; 
then
                                error "$(gettext "%s should not be an array")" 
"$i"
-- 
2.17.1

Reply via email to