From 6357edfc61e293170a4c922fbdcfa260963d7268 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 31 Aug 2014 17:10:32 -0400 Subject: [PATCH] makepkg: treat pkgrel more similarly to pkgver This is perfectly fine with libalpm; it was only makepkg that was more strict with pkgrel than pkgver. Further, the former error message about invalid pkgrel formats claimed that pkgrel was a "decimal", which would mean that `1.1 == 1.10`. This was not the case; alpm parsed pkgrel as a version, not a decimal. In that light, enforcing /[0-9]+(\.([0-9]+)?/ on a version spec seems silly. --- doc/PKGBUILD.5.txt | 4 ++-- scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in | 4 ++-- test/util/vercmptest.sh | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff -Nur pacman-5.0.0.orig/doc/PKGBUILD.5.txt pacman-5.0.0/doc/PKGBUILD.5.txt --- pacman-5.0.0.orig/doc/PKGBUILD.5.txt 2016-01-28 20:50:49.000000000 -0300 +++ pacman-5.0.0/doc/PKGBUILD.5.txt 2016-02-01 10:11:47.825919218 -0300 @@ -48,7 +48,7 @@ *pkgver*:: The version of the software as released from the author (e.g., '2.7.1'). - The variable is not allowed to contain colons or hyphens. + The variable is not allowed to contain colons, hyphens or whitespace. + The `pkgver` variable can be automatically updated by providing a `pkgver()` function in the PKGBUILD that outputs the new package version. @@ -62,7 +62,7 @@ allows package maintainers to make updates to the package's configure flags, for example. This is typically set to '1' for each new upstream software release and incremented for intermediate PKGBUILD updates. The - variable is not allowed to contain hyphens. + variable is not allowed to contain colons, hyphens or whitespace. *epoch*:: Used to force the package to be seen as newer than any previous versions diff -Nur pacman-5.0.0.orig/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in pacman-5.0.0/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in --- pacman-5.0.0.orig/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in 2016-01-04 00:27:45.000000000 -0300 +++ pacman-5.0.0/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in 2016-02-01 10:31:09.102801369 -0300 @@ -35,8 +35,8 @@ return 1 fi - if [[ $pkgrel != +([0-9])?(.+([0-9])) ]]; then - error "$(gettext "%s must be a decimal, not %s.")" "pkgrel" "$pkgrel" + if [[ $pkgrel = *[[:space:]:-]* ]]; then + error "$(gettext "%s is not allowed to contain colons, hyphens or whitespace.")" "pkgrel" "$pkgrel" return 1 fi } diff -Nur pacman-5.0.0.orig/test/util/vercmptest.sh pacman-5.0.0/test/util/vercmptest.sh --- pacman-5.0.0.orig/test/util/vercmptest.sh 2016-01-04 00:27:45.000000000 -0300 +++ pacman-5.0.0/test/util/vercmptest.sh 2016-02-01 10:36:29.503809606 -0300 @@ -113,6 +113,24 @@ tap_runtest 1:1.0 1.1 1 tap_runtest 1:1.1 1.1 1 +# complex pkgrel values +tap_runtest 1-1.5.0 1-1.5.0 0 +tap_runtest 1-1.5.1 1-1.5.0 1 +tap_runtest 1-1.5.1 1-1.5 1 +tap_runtest 1-1.5b 1-1.5 -1 +tap_runtest 1-1.5b 1-1.5.1 -1 +tap_runtest 1-1.0a 1-1.0alpha -1 +tap_runtest 1-1.0alpha 1-1.0b -1 +tap_runtest 1-1.0b 1-1.0beta -1 +tap_runtest 1-1.0beta 1-1.0rc -1 +tap_runtest 1-1.0rc 1-1.0 -1 +tap_runtest 1-1.5.a 1-1.5 1 +tap_runtest 1-1.5.b 1-1.5.a 1 +tap_runtest 1-1.5.1 1-1.5.b 1 +tap_runtest 1-2 1-2.par1 1 +tap_runtest 1-2 1-2.par1 1 +tap_runtest 1-3 1-2.par1 -1 + tap_finish # vim: set noet: