diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2018-05-31 04:50:24 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2018-06-18 05:15:51 +0200 |
commit | 870d4c8fdd5e53c24c2a13cf1010b2536460fd8f (patch) | |
tree | 246932af00fc2097cf510057fd1815042c791816 /scripts | |
parent | c37a06fe1d1fbd2be73adc725323e8a4665eeb09 (diff) | |
download | pacman-870d4c8fdd5e53c24c2a13cf1010b2536460fd8f.tar.gz pacman-870d4c8fdd5e53c24c2a13cf1010b2536460fd8f.tar.xz |
libmakepkg/lint_pkgbuild: permit versioned optdepends
pacman accepts these, and there is no good reason to be more restrictive
ourselves; we should follow the example of "depends" here.
Update the documentation to actually state that this is supported.
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in index 87e561cb..9978fe9b 100644 --- a/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in @@ -31,15 +31,23 @@ lint_pkgbuild_functions+=('lint_optdepends') lint_optdepends() { - local a list name optdepends_list ret=0 - - local optdepends_list optdepend name ret=0 + local optdepends_list optdepend name ver ret=0 get_pkgbuild_all_split_attributes optdepends optdepends_list - for optdepend in "${optdepends_list[@]}"; do - name=${optdepend%%:[[:space:]]*} + # this function requires extglob - save current status to restore later + local shellopts=$(shopt -p extglob) + shopt -s extglob + + for optdepend in "${optdepends_list[@]%%:[[:space:]]*}"; do + name=${optdepend%%@(<|>|=|>=|<=)*} + # remove optional epoch in version specifier + ver=${optdepend##$name@(<|>|=|>=|<=)?(+([0-9]):)} lint_one_pkgname optdepends "$name" || ret=1 + if [[ $ver != $optdepend ]]; then + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" optdepends || ret=1 + fi done return $ret |