summaryrefslogtreecommitdiff
path: root/libre/pacman/makepkg-pkgrel-4.patch
blob: 4024b0ad6c03096437056f26abaee1e03b30ad87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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