1 |
commit: 6a2487574fcf8b40f42b9e3046976b3ca0658195 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Mon Jul 30 08:44:06 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Mon Jul 30 08:44:06 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=6a248757 |
7 |
|
8 |
unquote dep strings, accept == version modifier |
9 |
|
10 |
--- |
11 |
roverlay/depres/depenv.py | 19 +++++++++++++------ |
12 |
1 files changed, 13 insertions(+), 6 deletions(-) |
13 |
|
14 |
diff --git a/roverlay/depres/depenv.py b/roverlay/depres/depenv.py |
15 |
index 69e9d57..e70c6d3 100644 |
16 |
--- a/roverlay/depres/depenv.py |
17 |
+++ b/roverlay/depres/depenv.py |
18 |
@@ -2,14 +2,18 @@ |
19 |
# Copyright 2006-2012 Gentoo Foundation |
20 |
# Distributed under the terms of the GNU General Public License v2 |
21 |
import re |
22 |
+from roverlay import strutil |
23 |
|
24 |
class DepEnv ( object ): |
25 |
|
26 |
# excluding A-Z since dep_str_low will be used to find a match |
27 |
- _NAME = '(?P<name>[a-z0-9_\-/]+)' |
28 |
+ _NAME = '(?P<name>[a-z0-9_\-/.+-]+)' |
29 |
_VER = '(?P<ver>[0-9._\-]+)' |
30 |
- # { <, >, <=, >=, =, != } (TODO !=) |
31 |
- _VERMOD = '(?P<vmod>[<>]|[<>!]?[=])' |
32 |
+ # { <, >, ==, <=, >=, =, != } (TODO !=) |
33 |
+ _VERMOD = '(?P<vmod>[<>]|[=<>!]?[=])' |
34 |
+ |
35 |
+ # FIXME: "boost library (>1.0)" not resolved as >=dev-libs/boost-1.0, |
36 |
+ # regex \s |
37 |
|
38 |
V_REGEX_STR = frozenset ( ( |
39 |
# 'R >= 2.15', 'R >=2.15' etc. (but not 'R>=2.15'!) |
40 |
@@ -52,8 +56,8 @@ class DepEnv ( object ): |
41 |
* dep_str -- dependency string at it appears in the description data. |
42 |
""" |
43 |
self.deptype_mask = deptype_mask |
44 |
- self.dep_str = dep_str |
45 |
- self.dep_str_low = dep_str.lower() |
46 |
+ self.dep_str = strutil.unquote ( dep_str ) |
47 |
+ self.dep_str_low = self.dep_str.lower() |
48 |
self.status = DepEnv.STATUS_UNDONE |
49 |
self.resolved_by = None |
50 |
|
51 |
@@ -79,9 +83,12 @@ class DepEnv ( object ): |
52 |
# fix versions like ".9" (-> "0.9") |
53 |
if version [0] == '.': version = '0' + version |
54 |
|
55 |
+ vmod = m.group ( 'vmod' ) |
56 |
+ if vmod == '==' : vmod = '=' |
57 |
+ |
58 |
result.append ( dict ( |
59 |
name = m.group ( 'name' ), |
60 |
- version_modifier = m.group ( 'vmod' ), |
61 |
+ version_modifier = vmod, |
62 |
version = version |
63 |
) ) |