From dbbe76b83d2dc1cac6f44c6d46d2f73ce14f01b5 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Tue, 12 May 2015 23:51:07 +1000 Subject: [PATCH] makepkg: put further restrictions on pkgbase pkgbase should be subject to the same restrictions as pkgname Signed-off-by: Allan McRae --- doc/PKGBUILD.5.txt | 6 ++++-- 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 }