1 |
commit: bdaca74c12d592d9b955e7009539f1b598497ec2 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Nov 27 06:02:38 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Nov 27 06:02:38 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=bdaca74c |
7 |
|
8 |
Add Package.built_time property. |
9 |
|
10 |
--- |
11 |
pym/_emerge/Package.py | 9 +++++++++ |
12 |
pym/_emerge/depgraph.py | 25 ++++++++----------------- |
13 |
2 files changed, 17 insertions(+), 17 deletions(-) |
14 |
|
15 |
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py |
16 |
index 602fea8..86ed5f7 100644 |
17 |
--- a/pym/_emerge/Package.py |
18 |
+++ b/pym/_emerge/Package.py |
19 |
@@ -109,6 +109,15 @@ class Package(Task): |
20 |
return self._metadata["EAPI"] |
21 |
|
22 |
@property |
23 |
+ def build_time(self): |
24 |
+ if not self.built: |
25 |
+ raise AttributeError('build_time') |
26 |
+ try: |
27 |
+ return long(self._metadata['BUILD_TIME']) |
28 |
+ except (KeyError, ValueError): |
29 |
+ return 0 |
30 |
+ |
31 |
+ @property |
32 |
def defined_phases(self): |
33 |
return self._metadata.defined_phases |
34 |
|
35 |
|
36 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
37 |
index 702f7fe..f5fe435 100644 |
38 |
--- a/pym/_emerge/depgraph.py |
39 |
+++ b/pym/_emerge/depgraph.py |
40 |
@@ -269,13 +269,12 @@ class _rebuild_config(object): |
41 |
return True |
42 |
elif (parent.installed and |
43 |
root_slot not in self.reinstall_list): |
44 |
- inst_build_time = parent._metadata.get("BUILD_TIME") |
45 |
try: |
46 |
bin_build_time, = bindb.aux_get(parent.cpv, |
47 |
["BUILD_TIME"]) |
48 |
except KeyError: |
49 |
continue |
50 |
- if bin_build_time != inst_build_time: |
51 |
+ if bin_build_time != _unicode(parent.build_time): |
52 |
# 2) Remote binary package is valid, and local package |
53 |
# is not up to date. Force reinstall. |
54 |
reinstall = True |
55 |
@@ -593,8 +592,7 @@ class depgraph(object): |
56 |
|
57 |
if selected_pkg.installed and \ |
58 |
selected_pkg.cpv == pkg.cpv and \ |
59 |
- selected_pkg._metadata.get('BUILD_TIME') == \ |
60 |
- pkg._metadata.get('BUILD_TIME'): |
61 |
+ selected_pkg.build_time == pkg.build_time: |
62 |
# We don't care about ignored binaries when an |
63 |
# identical installed instance is selected to |
64 |
# fill the slot. |
65 |
@@ -3886,7 +3884,7 @@ class depgraph(object): |
66 |
return True |
67 |
|
68 |
def _equiv_binary_installed(self, pkg): |
69 |
- build_time = pkg._metadata.get('BUILD_TIME') |
70 |
+ build_time = pkg.build_time |
71 |
if not build_time: |
72 |
return False |
73 |
|
74 |
@@ -3896,7 +3894,7 @@ class depgraph(object): |
75 |
except PackageNotFound: |
76 |
return False |
77 |
|
78 |
- return build_time == inst_pkg._metadata.get('BUILD_TIME') |
79 |
+ return build_time == inst_pkg.build_time |
80 |
|
81 |
class _AutounmaskLevel(object): |
82 |
__slots__ = ("allow_use_changes", "allow_unstable_keywords", "allow_license_changes", \ |
83 |
@@ -4317,8 +4315,8 @@ class depgraph(object): |
84 |
for selected_pkg in matched_packages: |
85 |
if selected_pkg.type_name == "binary" and \ |
86 |
selected_pkg.cpv == pkg.cpv and \ |
87 |
- selected_pkg._metadata.get('BUILD_TIME') == \ |
88 |
- pkg._metadata.get('BUILD_TIME'): |
89 |
+ selected_pkg.build_time == \ |
90 |
+ pkg.build_time: |
91 |
identical_binary = True |
92 |
break |
93 |
|
94 |
@@ -4551,15 +4549,8 @@ class depgraph(object): |
95 |
# non-empty, in order to avoid cases like to |
96 |
# bug #306659 where BUILD_TIME fields are missing |
97 |
# in local and/or remote Packages file. |
98 |
- try: |
99 |
- built_timestamp = int(built_pkg._metadata['BUILD_TIME']) |
100 |
- except (KeyError, ValueError): |
101 |
- built_timestamp = 0 |
102 |
- |
103 |
- try: |
104 |
- installed_timestamp = int(inst_pkg._metadata['BUILD_TIME']) |
105 |
- except (KeyError, ValueError): |
106 |
- installed_timestamp = 0 |
107 |
+ built_timestamp = built_pkg.build_time |
108 |
+ installed_timestamp = inst_pkg.build_time |
109 |
|
110 |
if unbuilt_pkg is not None and unbuilt_pkg > built_pkg: |
111 |
pass |