diff options
author | Allan McRae <allan@archlinux.org> | 2015-05-12 23:51:07 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-05-16 14:10:42 +1000 |
commit | dbbe76b83d2dc1cac6f44c6d46d2f73ce14f01b5 (patch) | |
tree | d8a71b024e253cfe0269c3e7ab9fdf53f07eadef | |
parent | 9302593cfb8a5a845dab501cfaef71ea5d54933a (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.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 } |