summaryrefslogtreecommitdiff
path: root/libre/pacman/makepkg-pkgrel-4.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/pacman/makepkg-pkgrel-4.patch')
-rw-r--r--libre/pacman/makepkg-pkgrel-4.patch87
1 files changed, 87 insertions, 0 deletions
diff --git a/libre/pacman/makepkg-pkgrel-4.patch b/libre/pacman/makepkg-pkgrel-4.patch
new file mode 100644
index 000000000..4024b0ad6
--- /dev/null
+++ b/libre/pacman/makepkg-pkgrel-4.patch
@@ -0,0 +1,87 @@
+From 6357edfc61e293170a4c922fbdcfa260963d7268 Mon Sep 17 00:00:00 2001
+From: Luke Shumaker <lukeshu@sbcglobal.net>
+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/makepkg.sh.in | 4 ++--
+ test/util/vercmptest.sh | 18 ++++++++++++++++++
+ 3 files changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
+index e78a8e5..986a4f6 100644
+--- a/doc/PKGBUILD.5.txt
++++ b/doc/PKGBUILD.5.txt
+@@ -46,7 +46,7 @@ similar to `$_basekernver`.
+
+ *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. This is run after downloading
+@@ -58,7 +58,7 @@ This is most useful when used with sources from version control systems (see bel
+ 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.
+
+ *pkgdesc*::
+ This should be a brief description of the package and its functionality.
+diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
+index 940e947..88b654d 100644
+--- a/scripts/makepkg.sh.in
++++ b/scripts/makepkg.sh.in
+@@ -2134,8 +2134,8 @@ check_sanity() {
+ awk -F'=' '$1 ~ /^[[:space:]]*pkgrel$/' "$BUILDFILE" | sed "s/[[:space:]]*#.*//" |
+ while IFS='=' read -r _ i; do
+ eval i=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< "${i%%+([[:space:]])}")\"
+- if [[ $i != +([0-9])?(.+([0-9])) ]]; then
+- error "$(gettext "%s must be a decimal.")" "pkgrel"
++ if [[ $i = *[[:space:]:-]* ]]; then
++ error "$(gettext "%s is not allowed to contain colons, hyphens or whitespace.")" "pkgrel"
+ return 1
+ fi
+ done || ret=1
+diff --git a/test/util/vercmptest.sh b/test/util/vercmptest.sh
+index 04b841f..7985ddc 100755
+--- a/test/util/vercmptest.sh
++++ b/test/util/vercmptest.sh
+@@ -144,6 +144,24 @@ runtest 1:1.0 1.0 1
+ runtest 1:1.0 1.1 1
+ runtest 1:1.1 1.1 1
+
++# complex pkgrel values
++runtest 1-1.5.0 1-1.5.0 0
++runtest 1-1.5.1 1-1.5.0 1
++runtest 1-1.5.1 1-1.5 1
++runtest 1-1.5b 1-1.5 -1
++runtest 1-1.5b 1-1.5.1 -1
++runtest 1-1.0a 1-1.0alpha -1
++runtest 1-1.0alpha 1-1.0b -1
++runtest 1-1.0b 1-1.0beta -1
++runtest 1-1.0beta 1-1.0rc -1
++runtest 1-1.0rc 1-1.0 -1
++runtest 1-1.5.a 1-1.5 1
++runtest 1-1.5.b 1-1.5.a 1
++runtest 1-1.5.1 1-1.5.b 1
++runtest 1-2 1-2.par1 1
++runtest 1-2 1-2.par1 1
++runtest 1-3 1-2.par1 -1
++
+ #END TESTS
+
+ if [[ $failure -eq 0 ]]; then
+--
+2.1.0
+