diff options
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/3 | 0 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in | 6 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in | 6 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/depends.sh.in | 6 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in | 6 | ||||
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/provides.sh.in | 14 |
6 files changed, 27 insertions, 11 deletions
diff --git a/scripts/libmakepkg/lint_pkgbuild/3 b/scripts/libmakepkg/lint_pkgbuild/3 new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/scripts/libmakepkg/lint_pkgbuild/3 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 diff --git a/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in b/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in index d81e9784..8abad0b0 100644 --- a/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in @@ -43,10 +43,12 @@ lint_conflicts() { for conflict in "${conflicts_list[@]}"; do name=${conflict%%@(<|>|=|>=|<=)*} - ver=${conflict#*@(<|>|=|>=|<=)} + # remove optional epoch in version specifier + ver=${conflict##$name@(<|>|=|>=|<=)?(+([0-9]):)} lint_one_pkgname conflicts "$name" || ret=1 if [[ $ver != $conflict ]]; then - check_pkgver "$ver" conflicts || ret=1 + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" conflicts || ret=1 fi done diff --git a/scripts/libmakepkg/lint_pkgbuild/depends.sh.in b/scripts/libmakepkg/lint_pkgbuild/depends.sh.in index f17bc545..d90a15f8 100644 --- a/scripts/libmakepkg/lint_pkgbuild/depends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/depends.sh.in @@ -43,10 +43,12 @@ lint_depends() { for depend in "${depends_list[@]}"; do name=${depend%%@(<|>|=|>=|<=)*} - ver=${depend#*@(<|>|=|>=|<=)} + # remove optional epoch in version specifier + ver=${depend##$name@(<|>|=|>=|<=)?(+([0-9]):)} lint_one_pkgname depends "$name" || ret=1 if [[ $ver != $depend ]]; then - check_pkgver "$ver" depends || ret=1 + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" depends || ret=1 fi done diff --git a/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in index 1d0762fb..55ca4e28 100644 --- a/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in @@ -43,10 +43,12 @@ lint_makedepends() { for makedepend in "${makedepends_list[@]}"; do name=${makedepend%%@(<|>|=|>=|<=)*} - ver=${makedepend#*@(<|>|=|>=|<=)} + # remove optional epoch in version specifier + ver=${makedepend##$name@(<|>|=|>=|<=)?(+([0-9]):)} lint_one_pkgname makedepends "$name" || ret=1 if [[ $ver != $makedepend ]]; then - check_pkgver "$ver" makedepends || ret=1 + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" makedepends || ret=1 fi done diff --git a/scripts/libmakepkg/lint_pkgbuild/provides.sh.in b/scripts/libmakepkg/lint_pkgbuild/provides.sh.in index 7500a88a..102be08e 100644 --- a/scripts/libmakepkg/lint_pkgbuild/provides.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/provides.sh.in @@ -37,19 +37,27 @@ lint_provides() { get_pkgbuild_all_split_attributes provides provides_list + # this function requires extglob - save current status to restore later + local shellopts=$(shopt -p extglob) + shopt -s extglob + for provide in "${provides_list[@]}"; do if [[ $provide == *['<>']* ]]; then error "$(gettext "%s array cannot contain comparison (< or >) operators.")" "provides" ret=1 continue fi - name=${provide%%=*} - ver=${provide#*=} + name=${provide%=*} + # remove optional epoch in version specifier + ver=${provide##$name=?(+([0-9]):)} lint_one_pkgname provides "$name" || ret=1 if [[ $ver != $provide ]]; then - check_pkgver "$ver" provides || ret=1 + # remove optional pkgrel in version specifier + check_pkgver "${ver%-+([0-9])?(.+([0-9]))}" provides || ret=1 fi done + eval "$shellopts" + return $ret } |