summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2015-05-12 23:51:07 +1000
committerAllan McRae <allan@archlinux.org>2015-05-16 14:10:42 +1000
commitdbbe76b83d2dc1cac6f44c6d46d2f73ce14f01b5 (patch)
treed8a71b024e253cfe0269c3e7ab9fdf53f07eadef
parent9302593cfb8a5a845dab501cfaef71ea5d54933a (diff)
makepkg: put further restrictions on pkgbase
pkgbase should be subject to the same restrictions as pkgname Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/PKGBUILD.5.txt6
-rw-r--r--scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in9
2 files changed, 13 insertions, 2 deletions
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index bc278f2e..770bd977 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -407,8 +407,10 @@ An optional global directive is available when building a split package:
*pkgbase*::
The name used to refer to the group of packages in the output of makepkg
and in the naming of source-only tarballs. If not specified, the first
- element in the `pkgname` array is used. The variable is not allowed to
- begin with a hyphen.
+ element in the `pkgname` array is used. Valid characters for this
+ variable are alphanumerics, and any of the following characters:
+ ```@ . _ + -`''. Additionally, the variable is not allowed to start with
+ hyphens or dots.
Install/Upgrade/Remove Scripting
diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in
index abb40e0c..0d4361cc 100644
--- a/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in
@@ -34,4 +34,13 @@ lint_pkgbase() {
error "$(gettext "%s is not allowed to start with a hyphen.")" "pkgname"
return 1
fi
+ if [[ ${pkgbase:0:1} = "." ]]; then
+ error "$(gettext "%s is not allowed to start with a dot.")" "pkgbase"
+ ret=1
+ fi
+ if [[ $pkgbase = *[^[:alnum:]+_.@-]* ]]; then
+ error "$(gettext "%s contains invalid characters: '%s'")" \
+ 'pkgbase' "${i//[[:alnum:]+_.@-]}"
+ ret=1
+ fi
}