Gentoo Archives: gentoo-commits

From: "Fabian Groffen (grobian)" <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13243 - in main/branches/prefix: bin/ebuild-helpers pym/_emerge pym/portage/dbapi
Date: Sun, 29 Mar 2009 07:48:55
Message-Id: E1LnplF-00013D-Iq@stork.gentoo.org
1 Author: grobian
2 Date: 2009-03-29 07:48:52 +0000 (Sun, 29 Mar 2009)
3 New Revision: 13243
4
5 Modified:
6 main/branches/prefix/bin/ebuild-helpers/dobin
7 main/branches/prefix/bin/ebuild-helpers/dodoc
8 main/branches/prefix/bin/ebuild-helpers/doexe
9 main/branches/prefix/bin/ebuild-helpers/doins
10 main/branches/prefix/bin/ebuild-helpers/dolib
11 main/branches/prefix/bin/ebuild-helpers/doman
12 main/branches/prefix/bin/ebuild-helpers/domo
13 main/branches/prefix/bin/ebuild-helpers/dosbin
14 main/branches/prefix/bin/ebuild-helpers/dosed
15 main/branches/prefix/bin/ebuild-helpers/ecompress
16 main/branches/prefix/bin/ebuild-helpers/ecompressdir
17 main/branches/prefix/bin/ebuild-helpers/prepallman
18 main/branches/prefix/pym/_emerge/__init__.py
19 main/branches/prefix/pym/portage/dbapi/vartree.py
20 Log:
21 Merged from trunk -r13238:13242
22
23 | 13239 | Add (x of y ) package counter in the "Installing" message, |
24 | zmedico | similar to the counter show in the "Emerging" message. |
25 | | Thanks to Ned Ludd <solar@g.o> for the suggestion. |
26
27 | 13240 | Don't show the package counter for "Uninstalling" messages. |
28 | zmedico | |
29
30 | 13241 | Bug #243220 - Show messages in emerge.log when old versions |
31 | zmedico | are uninstalled for AUTOCLEAN. This reverts behavior so that |
32 | | messages which used to be generated prior to portage-2.1.5.x |
33 | | (when AUTOCLEAN was moved from emerge to dblink.treewalk()) |
34 | | are generated once again. |
35
36 | 13242 | In order to eliminate the possibility of integer overflay, |
37 | zmedico | replace things like ((ret+=$?)) with ((ret|=$?)). Thanks to |
38 | | zong_sharo for the suggestion. |
39
40
41 Modified: main/branches/prefix/bin/ebuild-helpers/dobin
42 ===================================================================
43 --- main/branches/prefix/bin/ebuild-helpers/dobin 2009-03-29 04:09:11 UTC (rev 13242)
44 +++ main/branches/prefix/bin/ebuild-helpers/dobin 2009-03-29 07:48:52 UTC (rev 13243)
45 @@ -23,7 +23,7 @@
46 echo "!!! ${0##*/}: $x does not exist" 1>&2
47 false
48 fi
49 - ((ret+=$?))
50 + ((ret|=$?))
51 done
52
53 exit ${ret}
54
55 Modified: main/branches/prefix/bin/ebuild-helpers/dodoc
56 ===================================================================
57 --- main/branches/prefix/bin/ebuild-helpers/dodoc 2009-03-29 04:09:11 UTC (rev 13242)
58 +++ main/branches/prefix/bin/ebuild-helpers/dodoc 2009-03-29 07:48:52 UTC (rev 13243)
59 @@ -21,7 +21,7 @@
60 ecompress --queue "${dir}/${x##*/}"
61 elif [ ! -e "${x}" ] ; then
62 echo "!!! ${0##*/}: $x does not exist" 1>&2
63 - ((++ret))
64 + ((ret|=1))
65 fi
66 done
67
68
69 Modified: main/branches/prefix/bin/ebuild-helpers/doexe
70 ===================================================================
71 --- main/branches/prefix/bin/ebuild-helpers/doexe 2009-03-29 04:09:11 UTC (rev 13242)
72 +++ main/branches/prefix/bin/ebuild-helpers/doexe 2009-03-29 07:48:52 UTC (rev 13243)
73 @@ -35,7 +35,7 @@
74 echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
75 false
76 fi
77 - ((ret+=$?))
78 + ((ret|=$?))
79 done
80
81 rm -rf "$TMP"
82
83 Modified: main/branches/prefix/bin/ebuild-helpers/doins
84 ===================================================================
85 --- main/branches/prefix/bin/ebuild-helpers/doins 2009-03-29 04:09:11 UTC (rev 13242)
86 +++ main/branches/prefix/bin/ebuild-helpers/doins 2009-03-29 07:48:52 UTC (rev 13243)
87 @@ -97,9 +97,9 @@
88 mv "$TMP/1/$x_orig" "$x"
89 fi
90 while popd >/dev/null 2>&1 ; do true ; done
91 - ((++success))
92 + ((success|=1))
93 else
94 - _doins "${x}" && ((++success))
95 + _doins "${x}" && ((success|=1))
96 fi
97 done
98 rm -rf "$TMP"
99
100 Modified: main/branches/prefix/bin/ebuild-helpers/dolib
101 ===================================================================
102 --- main/branches/prefix/bin/ebuild-helpers/dolib 2009-03-29 04:09:11 UTC (rev 13242)
103 +++ main/branches/prefix/bin/ebuild-helpers/dolib 2009-03-29 07:48:52 UTC (rev 13243)
104 @@ -35,7 +35,7 @@
105 echo "!!! ${0##*/}: ${x} does not exist" 1>&2
106 false
107 fi
108 - ((ret+=$?))
109 + ((ret|=$?))
110 done
111
112 exit ${ret}
113
114 Modified: main/branches/prefix/bin/ebuild-helpers/doman
115 ===================================================================
116 --- main/branches/prefix/bin/ebuild-helpers/doman 2009-03-29 04:09:11 UTC (rev 13242)
117 +++ main/branches/prefix/bin/ebuild-helpers/doman 2009-03-29 07:48:52 UTC (rev 13243)
118 @@ -47,14 +47,14 @@
119 fi
120
121 install -m0644 "${x}" "${ED}/usr/share/man/${mandir}/${name}"
122 - ((ret+=$?))
123 + ((ret|=$?))
124 elif [[ ! -e ${x} ]] ; then
125 echo "!!! ${0##*/}: $x does not exist" 1>&2
126 - ((++ret))
127 + ((ret|=1))
128 fi
129 else
130 vecho "doman: '${x}' is probably not a man page; skipping" 1>&2
131 - ((++ret))
132 + ((ret|=1))
133 fi
134 done
135
136
137 Modified: main/branches/prefix/bin/ebuild-helpers/domo
138 ===================================================================
139 --- main/branches/prefix/bin/ebuild-helpers/domo 2009-03-29 04:09:11 UTC (rev 13242)
140 +++ main/branches/prefix/bin/ebuild-helpers/domo 2009-03-29 07:48:52 UTC (rev 13243)
141 @@ -26,7 +26,7 @@
142 echo "!!! ${0##*/}: $x does not exist" 1>&2
143 false
144 fi
145 - ((ret+=$?))
146 + ((ret|=$?))
147 done
148
149 exit $ret
150
151 Modified: main/branches/prefix/bin/ebuild-helpers/dosbin
152 ===================================================================
153 --- main/branches/prefix/bin/ebuild-helpers/dosbin 2009-03-29 04:09:11 UTC (rev 13242)
154 +++ main/branches/prefix/bin/ebuild-helpers/dosbin 2009-03-29 07:48:52 UTC (rev 13243)
155 @@ -21,7 +21,7 @@
156 echo "!!! ${0##*/}: ${x} does not exist" 1>&2
157 false
158 fi
159 - ((ret+=$?))
160 + ((ret|=$?))
161 done
162
163 exit ${ret}
164
165 Modified: main/branches/prefix/bin/ebuild-helpers/dosed
166 ===================================================================
167 --- main/branches/prefix/bin/ebuild-helpers/dosed 2009-03-29 04:09:11 UTC (rev 13242)
168 +++ main/branches/prefix/bin/ebuild-helpers/dosed 2009-03-29 07:48:52 UTC (rev 13243)
169 @@ -22,7 +22,7 @@
170 echo "${y} is not a regular file!" >&2
171 false
172 fi
173 - ((ret+=$?))
174 + ((ret|=$?))
175 else
176 mysed="${x}"
177 fi
178 @@ -30,7 +30,7 @@
179
180 if [ $file_found = 0 ] ; then
181 echo "!!! ${0##*/}: $y does not exist" 1>&2
182 - ((ret+=1))
183 + ((ret|=1))
184 fi
185
186 exit $ret
187
188 Modified: main/branches/prefix/bin/ebuild-helpers/ecompress
189 ===================================================================
190 --- main/branches/prefix/bin/ebuild-helpers/ecompress 2009-03-29 04:09:11 UTC (rev 13242)
191 +++ main/branches/prefix/bin/ebuild-helpers/ecompress 2009-03-29 07:48:52 UTC (rev 13243)
192 @@ -75,7 +75,7 @@
193 for x in "$@" ; do
194 [[ ${x##*.} =~ $mask_ext_re ]] && continue
195 filtered_args[$i]=$x
196 - (( i++ ))
197 + ((i|=1))
198 done
199 [ $i -eq 0 ] && exit 0
200 set -- "${filtered_args[@]}"
201
202 Modified: main/branches/prefix/bin/ebuild-helpers/ecompressdir
203 ===================================================================
204 --- main/branches/prefix/bin/ebuild-helpers/ecompressdir 2009-03-29 04:09:11 UTC (rev 13242)
205 +++ main/branches/prefix/bin/ebuild-helpers/ecompressdir 2009-03-29 07:48:52 UTC (rev 13243)
206 @@ -54,7 +54,7 @@
207
208 # first we act on all the files
209 find "${dir}" -type f ${negate} -iname '*'${suffix} -print0 | ${XARGS} -0 ${binary}
210 - ((ret+=$?))
211 + ((ret|=$?))
212
213 find "${dir}" -type l -print0 | \
214 while read -d $'\0' brokenlink ; do
215 @@ -67,7 +67,7 @@
216 [[ ${act} == "compress" ]] \
217 && ln -snf "${newdest}" "${brokenlink}${suffix}" \
218 || ln -snf "${newdest}" "${brokenlink%${suffix}}"
219 - ((ret+=$?))
220 + ((ret|=$?))
221 done
222 }
223
224
225 Modified: main/branches/prefix/bin/ebuild-helpers/prepallman
226 ===================================================================
227 --- main/branches/prefix/bin/ebuild-helpers/prepallman 2009-03-29 04:09:11 UTC (rev 13242)
228 +++ main/branches/prefix/bin/ebuild-helpers/prepallman 2009-03-29 07:48:52 UTC (rev 13243)
229 @@ -9,7 +9,7 @@
230 while read mandir ; do
231 mandir=${mandir#${ED}}
232 prepman "${mandir%/man}"
233 - ((ret+=$?))
234 + ((ret|=$?))
235 done < "${T}"/prepallman.filelist
236
237 exit ${ret}
238
239 Modified: main/branches/prefix/pym/_emerge/__init__.py
240 ===================================================================
241 --- main/branches/prefix/pym/_emerge/__init__.py 2009-03-29 04:09:11 UTC (rev 13242)
242 +++ main/branches/prefix/pym/_emerge/__init__.py 2009-03-29 07:48:52 UTC (rev 13243)
243 @@ -4062,11 +4062,18 @@
244 if pkg.installed:
245 action_desc = "Uninstalling"
246 preposition = "from"
247 + counter_str = ""
248 else:
249 action_desc = "Installing"
250 preposition = "to"
251 + counter_str = "(%s of %s) " % \
252 + (colorize("MERGE_LIST_PROGRESS", str(pkg_count.curval)),
253 + colorize("MERGE_LIST_PROGRESS", str(pkg_count.maxval)))
254
255 - msg = "%s %s" % (action_desc, colorize("GOOD", pkg.cpv))
256 + msg = "%s %s%s" % \
257 + (action_desc,
258 + counter_str,
259 + colorize("GOOD", pkg.cpv))
260
261 if pkg.root != "/":
262 msg += " %s %s" % (preposition, pkg.root)
263 @@ -10014,7 +10021,7 @@
264
265 class _iface_class(SlotObject):
266 __slots__ = ("dblinkEbuildPhase", "dblinkDisplayMerge",
267 - "dblinkElog", "fetch", "register", "schedule",
268 + "dblinkElog", "dblinkEmergeLog", "fetch", "register", "schedule",
269 "scheduleSetup", "scheduleUnpack", "scheduleYield",
270 "unregister")
271
272 @@ -10143,6 +10150,7 @@
273 dblinkEbuildPhase=self._dblink_ebuild_phase,
274 dblinkDisplayMerge=self._dblink_display_merge,
275 dblinkElog=self._dblink_elog,
276 + dblinkEmergeLog=self._dblink_emerge_log,
277 fetch=fetch_iface, register=self._register,
278 schedule=self._schedule_wait,
279 scheduleSetup=self._schedule_setup,
280 @@ -10454,6 +10462,9 @@
281 if log_file is not None:
282 log_file.close()
283
284 + def _dblink_emerge_log(self, msg):
285 + self._logger.log(msg)
286 +
287 def _dblink_display_merge(self, pkg_dblink, msg, level=0, noiselevel=0):
288 log_path = pkg_dblink.settings.get("PORTAGE_LOG_FILE")
289 background = self._background
290
291 Modified: main/branches/prefix/pym/portage/dbapi/vartree.py
292 ===================================================================
293 --- main/branches/prefix/pym/portage/dbapi/vartree.py 2009-03-29 04:09:11 UTC (rev 13242)
294 +++ main/branches/prefix/pym/portage/dbapi/vartree.py 2009-03-29 07:48:52 UTC (rev 13243)
295 @@ -3623,6 +3623,14 @@
296 if var_name == 'SLOT':
297 slot = val
298
299 + if not slot.strip():
300 + slot = self.settings.get(var_name, '')
301 + if not slot.strip():
302 + showMessage("!!! SLOT is undefined\n",
303 + level=logging.ERROR, noiselevel=-1)
304 + return 1
305 + write_atomic(os.path.join(inforoot, var_name), slot + '\n')
306 +
307 if val != self.settings.get(var_name, ''):
308 self._eqawarn('preinst',
309 ["QA Notice: Expected %s='%s', got '%s'\n" % \
310 @@ -3638,10 +3646,12 @@
311 for v in self.vartree.dbapi.cp_list(self.mysplit[0]):
312 otherversions.append(v.split("/")[1])
313
314 + cp = self.mysplit[0]
315 + slot_atom = "%s:%s" % (cp, slot)
316 +
317 # filter any old-style virtual matches
318 - slot_matches = [cpv for cpv in self.vartree.dbapi.match(
319 - "%s:%s" % (cpv_getkey(self.mycpv), slot)) \
320 - if cpv_getkey(cpv) == cpv_getkey(self.mycpv)]
321 + slot_matches = [cpv for cpv in self.vartree.dbapi.match(slot_atom) \
322 + if cpv_getkey(cpv) == cp]
323
324 if self.mycpv not in slot_matches and \
325 self.vartree.dbapi.cpv_exists(self.mycpv):
326 @@ -4002,7 +4012,17 @@
327 match_from_list(PORTAGE_PACKAGE_ATOM, [self.mycpv]):
328 reinstall_self = True
329
330 + if scheduler is None:
331 + def emerge_log(msg):
332 + pass
333 + else:
334 + emerge_log = scheduler.dblinkEmergeLog
335 +
336 autoclean = self.settings.get("AUTOCLEAN", "yes") == "yes"
337 +
338 + if autoclean:
339 + emerge_log(" >>> AUTOCLEAN: %s" % (slot_atom,))
340 +
341 others_in_slot.append(self) # self has just been merged
342 for dblnk in list(others_in_slot):
343 if dblnk is self:
344 @@ -4010,10 +4030,17 @@
345 if not (autoclean or dblnk.mycpv == self.mycpv or reinstall_self):
346 continue
347 showMessage(">>> Safely unmerging already-installed instance...\n")
348 + emerge_log(" === Unmerging... (%s)" % (dblnk.mycpv,))
349 others_in_slot.remove(dblnk) # dblnk will unmerge itself now
350 dblnk._linkmap_broken = self._linkmap_broken
351 - dblnk.unmerge(trimworld=0, ldpath_mtimes=prev_mtimes,
352 - others_in_slot=others_in_slot)
353 + unmerge_rval = dblnk.unmerge(trimworld=0,
354 + ldpath_mtimes=prev_mtimes, others_in_slot=others_in_slot)
355 +
356 + if unmerge_rval == os.EX_OK:
357 + emerge_log(" >>> unmerge success: %s" % (dblnk.mycpv,))
358 + else:
359 + emerge_log(" !!! unmerge FAILURE: %s" % (dblnk.mycpv,))
360 +
361 # TODO: Check status and abort if necessary.
362 dblnk.delete()
363 showMessage(">>> Original instance of package unmerged safely.\n")