summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Chantry <shiningxc@gmail.com>2009-08-30 22:05:46 +0200
committerDan McGee <dan@archlinux.org>2009-09-06 23:52:47 +0200
commit0845b2f13cef6db23a4a281976ec1374e93b7c4e (patch)
tree3f230e9d3771463ad7fa49647ffba918cdee4ac5
parent5dbd00faf7a27866ffc2a7197c5cc704425a7af8 (diff)
downloadpacman-0845b2f13cef6db23a4a281976ec1374e93b7c4e.tar.gz
pacman-0845b2f13cef6db23a4a281976ec1374e93b7c4e.tar.xz
sanity check for optdepends syntax
only allow optdepends like: pkgname: description some (real) examples of invalid optdepends: 'tcl, python and/or ruby: to use corresponding binding' 'xorg-fonts-75dpi : X bitmap fonts needed for the interface' 'ruby-htmlentities (AUR): for one provider named Deastore' 'xpdf - for pdf' Signed-off-by: Xavier Chantry <shiningxc@gmail.com> [Allan: rebase off de39a1f6 and adjust man page] Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--doc/PKGBUILD.5.txt2
-rw-r--r--scripts/makepkg.sh.in8
2 files changed, 9 insertions, 1 deletions
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index ef6bace0..c832e236 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -144,7 +144,7 @@ name. The syntax is: `source=('filename::url')`.
base functionality, but may be necessary to make full use of the contents
of this package. optdepends are currently for informational purposes only
and are not utilized by pacman during dependency resolution. The format
- should be similar to the following:
+ for specifying optdepends is:
optdepends=('fakeroot: for makepkg usage as normal user')
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 558f0938..3e918e69 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1180,6 +1180,14 @@ check_sanity() {
fi
done
+ local optdepend
+ for optdepend in "${optdepends[@]}"; do
+ pkg=${optdepend%%:*}
+ if [[ ! $pkg =~ ^[[:alnum:]\>\<\=\.\+\_\-]*$ ]]; then
+ error "$(gettext "Invalid syntax for optdepend : '%s'")" "$optdepend"
+ fi
+ done
+
if [ "$install" -a ! -f "$install" ]; then
error "$(gettext "Install scriptlet (%s) does not exist.")" "$install"
return 1