[pacman-dev] [PATCH 5/6] makepkg: put further restrictions on pkgbase

Allan McRae allan at archlinux.org
Tue May 12 14:02:29 UTC 2015


pkgbase should be subject to the same restrictions as pkgver

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 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 bc278f2..62ae5c7 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 members of
+	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 abb40e0..0d4361c 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:]+_. at -]* ]]; then
+		error "$(gettext "%s contains invalid characters: '%s'")" \
+				'pkgbase' "${i//[[:alnum:]+_. at -]}"
+		ret=1
+	fi
 }
-- 
2.4.0


More information about the pacman-dev mailing list