Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Tue, 27 Nov 2012 06:03:01
Message-Id: 1353996158.bdaca74c12d592d9b955e7009539f1b598497ec2.zmedico@gentoo
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