Browse code

Merge pull request #41542 from thaJeztah/19.03_backport_fix_41517

Brian Goff authored on 2020/10/10 08:14:30
Showing 2 changed files
... ...
@@ -56,6 +56,11 @@ func parseVersion(output string) (int, error) {
56 56
 	words := strings.Split(lines[0], " ")
57 57
 	version := words[len(words)-1]
58 58
 
59
+	// trim "-beta1" suffix from version="3.0.0-beta1" if exists
60
+	version = strings.SplitN(version, "-", 2)[0]
61
+	// also trim "~..." suffix used historically (https://gitlab.com/apparmor/apparmor/-/commit/bca67d3d27d219d11ce8c9cc70612bd637f88c10)
62
+	version = strings.SplitN(version, "~", 2)[0]
63
+
59 64
 	// split by major minor version
60 65
 	v := strings.Split(version, ".")
61 66
 	if len(v) == 0 || len(v) > 3 {
... ...
@@ -44,6 +44,14 @@ Copyright 2009-2012 Canonical Ltd.
44 44
 			version: 205000,
45 45
 		},
46 46
 		{
47
+			output: `AppArmor parser version 2.2.0~rc2
48
+Copyright (C) 1999-2008 Novell Inc.
49
+Copyright 2009-2012 Canonical Ltd.
50
+
51
+`,
52
+			version: 202000,
53
+		},
54
+		{
47 55
 			output: `AppArmor parser version 2.9.95
48 56
 Copyright (C) 1999-2008 Novell Inc.
49 57
 Copyright 2009-2012 Canonical Ltd.
... ...
@@ -59,6 +67,20 @@ Copyright 2009-2012 Canonical Ltd.
59 59
 `,
60 60
 			version: 314159,
61 61
 		},
62
+		{
63
+			output: `AppArmor parser version 3.0.0-beta1
64
+Copyright (C) 1999-2008 Novell Inc.
65
+Copyright 2009-2018 Canonical Ltd.
66
+`,
67
+			version: 300000,
68
+		},
69
+		{
70
+			output: `AppArmor parser version 3.0.0-beta1-foo-bar
71
+Copyright (C) 1999-2008 Novell Inc.
72
+Copyright 2009-2018 Canonical Ltd.
73
+`,
74
+			version: 300000,
75
+		},
62 76
 	}
63 77
 
64 78
 	for _, v := range versions {