Commit 316b031b authored by Eli Schwartz's avatar Eli Schwartz Committed by Allan McRae
Browse files

makepkg: reduce strictness of pkgver in depends linting



This change was introduced to prevent entries like depends=('foo>').
However, it had the unintended side effect of causing a number of
working PKGBUILDs to fail to build. This happened when a PKGBUILD
defined one variable through calling a "complex" statement within the
PKGBUILD's package function (e.g. a function or evaluating in a
subshell), then used it to define the package metadata variable.

extract_function_variable() cannot execute the package function in order
to retrieve this information, so it performs a simple grep + eval instead
and in the process misses the contextual awareness of running within the
package function.

While not catching these "issues" can result in incorrect SRCINFO, the
resulting packages are fine. Stop aborting on the common case where the
pkgver of a dependency is dynamically set during the package function
until the large number of broken PKGBUILDs are fixed, and the
restrictions of the PKGBUILD format are documented.

"Fixes" FS#58776

Signed-off-by: Eli Schwartz's avatarEli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae's avatarAllan McRae <allan@archlinux.org>
parent 757e85b2
...@@ -46,7 +46,8 @@ lint_depends() { ...@@ -46,7 +46,8 @@ lint_depends() {
# remove optional epoch in version specifier # remove optional epoch in version specifier
ver=${depend##$name@(<|>|=|>=|<=)?(+([0-9]):)} ver=${depend##$name@(<|>|=|>=|<=)?(+([0-9]):)}
lint_one_pkgname depends "$name" || ret=1 lint_one_pkgname depends "$name" || ret=1
if [[ $ver != $depend ]]; then # Don't validate empty version because of https://bugs.archlinux.org/task/58776
if [[ $ver != $depend && -n $ver ]]; then
# remove optional pkgrel in version specifier # remove optional pkgrel in version specifier
check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" depends || ret=1 check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" depends || ret=1
fi fi
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment