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>
This commit is contained in:
parent
c37a06fe1d
commit
870d4c8fdd
2 changed files with 16 additions and 7 deletions
|
@ -212,8 +212,9 @@ underscore and the architecture name e.g., 'checkdepends_x86_64=()'.
|
||||||
An array of packages (and accompanying reasons) that are not essential for
|
An array of packages (and accompanying reasons) that are not essential for
|
||||||
base functionality, but may be necessary to make full use of the contents
|
base functionality, but may be necessary to make full use of the contents
|
||||||
of this package. optdepends are currently for informational purposes only
|
of this package. optdepends are currently for informational purposes only
|
||||||
and are not utilized by pacman during dependency resolution. The format
|
and are not utilized by pacman during dependency resolution. Packages in
|
||||||
for specifying optdepends is:
|
this list follow the same format as depends, with an optional description
|
||||||
|
appended. The format for specifying optdepends descriptions is:
|
||||||
|
|
||||||
optdepends=('python: for library bindings')
|
optdepends=('python: for library bindings')
|
||||||
+
|
+
|
||||||
|
|
|
@ -31,15 +31,23 @@ lint_pkgbuild_functions+=('lint_optdepends')
|
||||||
|
|
||||||
|
|
||||||
lint_optdepends() {
|
lint_optdepends() {
|
||||||
local a list name optdepends_list ret=0
|
local optdepends_list optdepend name ver ret=0
|
||||||
|
|
||||||
local optdepends_list optdepend name ret=0
|
|
||||||
|
|
||||||
get_pkgbuild_all_split_attributes optdepends optdepends_list
|
get_pkgbuild_all_split_attributes optdepends optdepends_list
|
||||||
|
|
||||||
for optdepend in "${optdepends_list[@]}"; do
|
# this function requires extglob - save current status to restore later
|
||||||
name=${optdepend%%:[[:space:]]*}
|
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
|
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
|
done
|
||||||
|
|
||||||
return $ret
|
return $ret
|
||||||
|
|
Loading…
Add table
Reference in a new issue