summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
}