1 |
Author: zmedico |
2 |
Date: 2009-09-05 22:25:05 +0000 (Sat, 05 Sep 2009) |
3 |
New Revision: 14203 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/main.py |
7 |
main/trunk/pym/portage/__init__.py |
8 |
main/trunk/pym/portage/dbapi/vartree.py |
9 |
Log: |
10 |
Add a vardbapi._pkgs_changed attribute to use instead of PORTAGE_COUNTER_HASH |
11 |
for emerge to check whether any packages have been added/removed. This is an |
12 |
optimization, since vardbapi._counter_hash() can be somewhat slow on embedded |
13 |
systems. Thanks to Marat Radchenko <slonopotamusorama@×××××.com> for |
14 |
reporting. |
15 |
|
16 |
|
17 |
Modified: main/trunk/pym/_emerge/main.py |
18 |
=================================================================== |
19 |
--- main/trunk/pym/_emerge/main.py 2009-09-05 22:06:46 UTC (rev 14202) |
20 |
+++ main/trunk/pym/_emerge/main.py 2009-09-05 22:25:05 UTC (rev 14203) |
21 |
@@ -314,9 +314,7 @@ |
22 |
|
23 |
_flush_elog_mod_echo() |
24 |
|
25 |
- counter_hash = settings.get("PORTAGE_COUNTER_HASH") |
26 |
- if "--pretend" in myopts or (counter_hash is not None and \ |
27 |
- counter_hash == vardbapi._counter_hash()): |
28 |
+ if not vardbapi._pkgs_changed: |
29 |
display_news_notification(root_config, myopts) |
30 |
# If vdb state has not changed then there's nothing else to do. |
31 |
sys.exit(retval) |
32 |
@@ -1075,11 +1073,6 @@ |
33 |
mysettings = trees[myroot]["vartree"].settings |
34 |
mysettings.unlock() |
35 |
adjust_config(myopts, mysettings) |
36 |
- if '--pretend' not in myopts and myaction in \ |
37 |
- (None, 'clean', 'depclean', 'prune', 'unmerge'): |
38 |
- mysettings["PORTAGE_COUNTER_HASH"] = \ |
39 |
- trees[myroot]["vartree"].dbapi._counter_hash() |
40 |
- mysettings.backup_changes("PORTAGE_COUNTER_HASH") |
41 |
mysettings.lock() |
42 |
del myroot, mysettings |
43 |
|
44 |
|
45 |
Modified: main/trunk/pym/portage/__init__.py |
46 |
=================================================================== |
47 |
--- main/trunk/pym/portage/__init__.py 2009-09-05 22:06:46 UTC (rev 14202) |
48 |
+++ main/trunk/pym/portage/__init__.py 2009-09-05 22:25:05 UTC (rev 14203) |
49 |
@@ -1438,7 +1438,6 @@ |
50 |
"GENTOO_MIRRORS", "NOCONFMEM", "O", |
51 |
"PORTAGE_BACKGROUND", |
52 |
"PORTAGE_BINHOST_CHUNKSIZE", "PORTAGE_CALLER", |
53 |
- "PORTAGE_COUNTER_HASH", |
54 |
"PORTAGE_ELOG_CLASSES", |
55 |
"PORTAGE_ELOG_MAILFROM", "PORTAGE_ELOG_MAILSUBJECT", |
56 |
"PORTAGE_ELOG_MAILURI", "PORTAGE_ELOG_SYSTEM", |
57 |
|
58 |
Modified: main/trunk/pym/portage/dbapi/vartree.py |
59 |
=================================================================== |
60 |
--- main/trunk/pym/portage/dbapi/vartree.py 2009-09-05 22:06:46 UTC (rev 14202) |
61 |
+++ main/trunk/pym/portage/dbapi/vartree.py 2009-09-05 22:25:05 UTC (rev 14203) |
62 |
@@ -790,6 +790,10 @@ |
63 |
self.root = _unicode_decode(root, |
64 |
encoding=_encodings['content'], errors='strict') |
65 |
|
66 |
+ # Used by emerge to check whether any packages |
67 |
+ # have been added or removed. |
68 |
+ self._pkgs_changed = False |
69 |
+ |
70 |
#cache for category directory mtimes |
71 |
self.mtdircache = {} |
72 |
|
73 |
@@ -1041,9 +1045,11 @@ |
74 |
self._aux_cache_obj = None |
75 |
|
76 |
def _add(self, pkg_dblink): |
77 |
+ self._pkgs_changed = True |
78 |
self._clear_pkg_cache(pkg_dblink) |
79 |
|
80 |
def _remove(self, pkg_dblink): |
81 |
+ self._pkgs_changed = True |
82 |
self._clear_pkg_cache(pkg_dblink) |
83 |
|
84 |
def _clear_pkg_cache(self, pkg_dblink): |