1 |
commit: d477ed333db169615548743eeca1a190f6b84c17 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Fri Jun 29 22:30:32 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Fri Jun 29 22:30:32 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=d477ed33 |
7 |
|
8 |
filter out dependencies provided by eclass |
9 |
|
10 |
* dev-lang/R will automatically be removed from the ebuild dependencies |
11 |
unless a version newer than the oldest in the portage tree (2.10.1) |
12 |
is required |
13 |
|
14 |
modified: roverlay/ebuild/depres.py |
15 |
|
16 |
--- |
17 |
roverlay/ebuild/depres.py | 39 ++++++++++++++++++++++++++++++++++++++- |
18 |
1 files changed, 38 insertions(+), 1 deletions(-) |
19 |
|
20 |
diff --git a/roverlay/ebuild/depres.py b/roverlay/ebuild/depres.py |
21 |
index 6aca522..383831e 100644 |
22 |
--- a/roverlay/ebuild/depres.py |
23 |
+++ b/roverlay/ebuild/depres.py |
24 |
@@ -153,9 +153,46 @@ class EbuildDepRes ( object ): |
25 |
|
26 |
def _make_result ( self ): |
27 |
"""Make evars using the depres result.""" |
28 |
+ def dep_allowed ( dep ): |
29 |
+ #FIXME hardcoded |
30 |
+ |
31 |
+ # the oldest version of dev-lang/R in portage |
32 |
+ OLDEST_R_VERSION = ( 2, 20, 1 ) |
33 |
+ |
34 |
+ if not dep: |
35 |
+ return False |
36 |
+ |
37 |
+ cat, sep, remainder = dep.partition ( '/' ) |
38 |
+ |
39 |
+ if not sep: |
40 |
+ raise Exception ( "bad dependency string '%s'!" % dep ) |
41 |
+ |
42 |
+ dep_list = remainder.split ( '-', 2 ) |
43 |
+ |
44 |
+ if len ( dep_list ) < 2: |
45 |
+ ver = ( 0, ) |
46 |
+ else: |
47 |
+ ver = tuple ( int (x) for x in dep_list [1].split ( '.' ) ) |
48 |
+ |
49 |
+ |
50 |
+ if cat.endswith ( 'dev-lang' ) \ |
51 |
+ and dep_list [0] == 'R' \ |
52 |
+ and cat [0] != '!' \ |
53 |
+ : |
54 |
+ if not ver: |
55 |
+ # filters out 'dev-lang/R' |
56 |
+ return False |
57 |
+ else: |
58 |
+ return ver > OLDEST_R_VERSION |
59 |
+ |
60 |
+ return True |
61 |
+ # --- end of dep_allowed (...) --- |
62 |
+ |
63 |
_result = list() |
64 |
for dep_type, channel in self._channels.items(): |
65 |
- deplist = list ( filter ( None, channel.collect_dependencies() ) ) |
66 |
+ deplist = tuple ( filter ( |
67 |
+ dep_allowed, channel.collect_dependencies() ) |
68 |
+ ) |
69 |
|
70 |
if deplist is None: |
71 |
## FIXME: false positive: "empty" channel |