diff options
-rw-r--r-- | doc/PKGBUILD.5.txt | 6 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in | 9 |
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 } |