diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2018-05-10 23:23:58 -0400 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2018-05-12 21:10:44 +1000 |
commit | 2c94118dc168f16231e38a84c0b569b5b0006fd9 (patch) | |
tree | 7f1f7c850ced3a7f83749340dcd418924188b1ce /scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in | |
parent | fa8b99189e9f2035a81c8ff8275894b61dc0bce7 (diff) | |
download | pacman-2c94118dc168f16231e38a84c0b569b5b0006fd9.tar.xz |
libmakepkg/lint_pkgbuild: fix regression in linting depends=(foo=$epoch:$pkgver-$pkgrel)
In commit 91b72cc386ca03241791748da5da2b150c724ace support was added for
linting depends/etc. to ensure they contain only valid dependency
specifiers. However it did not properly take into account the
possibility of dependencies linked to a specific pkgrel or epoch, which
promptly failed to build because "-" and ":" is not allowed in a pkgver.
pkgrel is something supported by pacman and useful for e.g. split packages
which cannot be mismatched even if the pkgver is the same. Fix by
removing an optional suffixed "-$decimal" when checking for a valid
pkgver.
epoch is kind of difficult to do without :D so likewise fix by removing
an optional prefixed "$integer:"
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in')
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in index 5d15bfb2..fb289a67 100644 --- a/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in @@ -43,10 +43,12 @@ lint_checkdepends() { for checkdepend in "${checkdepends_list[@]}"; do name=${checkdepend%%@(<|>|=|>=|<=)*} - ver=${checkdepend#*@(<|>|=|>=|<=)} + # remove optional epoch in version specifier + ver=${checkdepend##$name@(<|>|=|>=|<=)?(+([0-9]):)} lint_one_pkgname checkdepends "$name" || ret=1 if [[ $ver != $checkdepend ]]; then - check_pkgver "$ver" checkdepends || ret=1 + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" checkdepends || ret=1 fi done |