Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13422 - in main/branches/2.1.6/pym: _emerge portage/dbapi
Date: Thu, 30 Apr 2009 06:45:41
Message-Id: E1LzQ1a-0003rJ-OT@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-04-30 06:45:37 +0000 (Thu, 30 Apr 2009)
3 New Revision: 13422
4
5 Modified:
6 main/branches/2.1.6/pym/_emerge/__init__.py
7 main/branches/2.1.6/pym/portage/dbapi/vartree.py
8 Log:
9 Bug #243220 - Show messages in emerge.log when old versions are uninstalled
10 for AUTOCLEAN. This reverts behavior so that messages which used to be
11 generated prior to portage-2.1.5.x (when AUTOCLEAN was moved from emerge to
12 dblink.treewalk()) are generated once again. (trunk r13241)
13
14 Modified: main/branches/2.1.6/pym/_emerge/__init__.py
15 ===================================================================
16 --- main/branches/2.1.6/pym/_emerge/__init__.py 2009-04-30 06:45:05 UTC (rev 13421)
17 +++ main/branches/2.1.6/pym/_emerge/__init__.py 2009-04-30 06:45:37 UTC (rev 13422)
18 @@ -9969,7 +9969,7 @@
19
20 class _iface_class(SlotObject):
21 __slots__ = ("dblinkEbuildPhase", "dblinkDisplayMerge",
22 - "dblinkElog", "fetch", "register", "schedule",
23 + "dblinkElog", "dblinkEmergeLog", "fetch", "register", "schedule",
24 "scheduleSetup", "scheduleUnpack", "scheduleYield",
25 "unregister")
26
27 @@ -10098,6 +10098,7 @@
28 dblinkEbuildPhase=self._dblink_ebuild_phase,
29 dblinkDisplayMerge=self._dblink_display_merge,
30 dblinkElog=self._dblink_elog,
31 + dblinkEmergeLog=self._dblink_emerge_log,
32 fetch=fetch_iface, register=self._register,
33 schedule=self._schedule_wait,
34 scheduleSetup=self._schedule_setup,
35 @@ -10409,6 +10410,9 @@
36 if log_file is not None:
37 log_file.close()
38
39 + def _dblink_emerge_log(self, msg):
40 + self._logger.log(msg)
41 +
42 def _dblink_display_merge(self, pkg_dblink, msg, level=0, noiselevel=0):
43 log_path = pkg_dblink.settings.get("PORTAGE_LOG_FILE")
44 background = self._background
45
46 Modified: main/branches/2.1.6/pym/portage/dbapi/vartree.py
47 ===================================================================
48 --- main/branches/2.1.6/pym/portage/dbapi/vartree.py 2009-04-30 06:45:05 UTC (rev 13421)
49 +++ main/branches/2.1.6/pym/portage/dbapi/vartree.py 2009-04-30 06:45:37 UTC (rev 13422)
50 @@ -2068,6 +2068,14 @@
51 if var_name == 'SLOT':
52 slot = val
53
54 + if not slot.strip():
55 + slot = self.settings.get(var_name, '')
56 + if not slot.strip():
57 + showMessage("!!! SLOT is undefined\n",
58 + level=logging.ERROR, noiselevel=-1)
59 + return 1
60 + write_atomic(os.path.join(inforoot, var_name), slot + '\n')
61 +
62 if val != self.settings.get(var_name, ''):
63 self._eqawarn('preinst',
64 ["QA Notice: Expected %s='%s', got '%s'\n" % \
65 @@ -2083,10 +2091,12 @@
66 for v in self.vartree.dbapi.cp_list(self.mysplit[0]):
67 otherversions.append(v.split("/")[1])
68
69 + cp = self.mysplit[0]
70 + slot_atom = "%s:%s" % (cp, slot)
71 +
72 # filter any old-style virtual matches
73 - slot_matches = [cpv for cpv in self.vartree.dbapi.match(
74 - "%s:%s" % (cpv_getkey(self.mycpv), slot)) \
75 - if cpv_getkey(cpv) == cpv_getkey(self.mycpv)]
76 + slot_matches = [cpv for cpv in self.vartree.dbapi.match(slot_atom) \
77 + if cpv_getkey(cpv) == cp]
78
79 if self.mycpv not in slot_matches and \
80 self.vartree.dbapi.cpv_exists(self.mycpv):
81 @@ -2438,7 +2448,17 @@
82 match_from_list(PORTAGE_PACKAGE_ATOM, [self.mycpv]):
83 reinstall_self = True
84
85 + if scheduler is None:
86 + def emerge_log(msg):
87 + pass
88 + else:
89 + emerge_log = scheduler.dblinkEmergeLog
90 +
91 autoclean = self.settings.get("AUTOCLEAN", "yes") == "yes"
92 +
93 + if autoclean:
94 + emerge_log(" >>> AUTOCLEAN: %s" % (slot_atom,))
95 +
96 others_in_slot.append(self) # self has just been merged
97 for dblnk in list(others_in_slot):
98 if dblnk is self:
99 @@ -2446,9 +2466,16 @@
100 if not (autoclean or dblnk.mycpv == self.mycpv or reinstall_self):
101 continue
102 showMessage(">>> Safely unmerging already-installed instance...\n")
103 + emerge_log(" === Unmerging... (%s)" % (dblnk.mycpv,))
104 others_in_slot.remove(dblnk) # dblnk will unmerge itself now
105 - dblnk.unmerge(trimworld=0, ldpath_mtimes=prev_mtimes,
106 - others_in_slot=others_in_slot)
107 + unmerge_rval = dblnk.unmerge(trimworld=0,
108 + ldpath_mtimes=prev_mtimes, others_in_slot=others_in_slot)
109 +
110 + if unmerge_rval == os.EX_OK:
111 + emerge_log(" >>> unmerge success: %s" % (dblnk.mycpv,))
112 + else:
113 + emerge_log(" !!! unmerge FAILURE: %s" % (dblnk.mycpv,))
114 +
115 # TODO: Check status and abort if necessary.
116 dblnk.delete()
117 showMessage(">>> Original instance of package unmerged safely.\n")