Gentoo Archives: gentoo-commits

From: "Fabian Groffen (grobian)" <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9583 - in main/branches/prefix: bin cnf man pym/_emerge pym/portage pym/portage/elog
Date: Fri, 28 Mar 2008 21:25:31
Message-Id: E1JfM4l-0004Rd-Ha@stork.gentoo.org
1 Author: grobian
2 Date: 2008-03-28 21:25:26 +0000 (Fri, 28 Mar 2008)
3 New Revision: 9583
4
5 Modified:
6 main/branches/prefix/bin/ebuild.sh
7 main/branches/prefix/bin/emerge-webrsync
8 main/branches/prefix/bin/isolated-functions.sh
9 main/branches/prefix/bin/misc-functions.sh
10 main/branches/prefix/bin/repoman
11 main/branches/prefix/cnf/make.globals
12 main/branches/prefix/man/make.conf.5
13 main/branches/prefix/man/repoman.1
14 main/branches/prefix/pym/_emerge/__init__.py
15 main/branches/prefix/pym/portage/__init__.py
16 main/branches/prefix/pym/portage/elog/mod_mail.py
17 main/branches/prefix/pym/portage/elog/mod_mail_summary.py
18 Log:
19 Merged from trunk 9509:9538
20
21 | 9510 | Support ${HOST} substitution in "From" field. Thanks to |
22 | zmedico | wschlich. |
23
24 | 9511 | Move the default empty compiler flag settings from ebuild.sh |
25 | zmedico | to make.globals (bug #214499). |
26
27 | 9512 | Bug #214879 - In fetch(), only parse the Manifest when |
28 | zmedico | FEATURES=strict is enabled. |
29
30 | 9513 | Make --noreplace take precedence over --newuse, as suggested |
31 | zmedico | by wolf31o2. |
32
33 | 9514 | Fix the noreplace logic to break out of the cpv loop early |
34 | zmedico | since there's no point in examining any lower versions from |
35 | | the same repo. |
36
37 | 9519 | Bug #214879 - Fix FEATURES=-strict behavior so that |
38 | zmedico | distfiles digests are always checked. |
39
40 | 9520 | Bug #212509 - Implement a new --without-mask option that |
41 | zmedico | causes repoman to behave as if there are no package.mask |
42 | | entries. |
43
44 | 9521 | Bug #212509 - Display a note about the --without-mask option |
45 | zmedico | when there are masked packages. |
46
47 | 9522 | Bug #209418 - Add a new KEYWORDS.dropped check that compares |
48 | zmedico | keywords against the keywords of earlier ebuild versions |
49 | | within a slot. |
50
51 | 9523 | Remove redundant info from the KEYWORDS.dropped message. |
52 | zmedico | |
53
54 | 9524 | Bug #213629 - Create an EAPI.incompatible category and use |
55 | zmedico | it in cases where EAPI=0 and a slot atom is encountered. |
56
57 | 9525 | Bug #213629 - Use EAPI.incompatible in cases where EAPI=0 |
58 | zmedico | and a default IUSE is encountered. |
59
60 | 9526 | Bug #213698 - Make FEAUTURES=keepwork and keeptemp preserve |
61 | zmedico | ${T}/environment since it may contain essential state. |
62
63 | 9527 | Make dyn_clean() consistent wrt removal of |
64 | zmedico | ${PORTAGE_BUILDDIR}/image and ${PORTAGE_BUILDDIR}/.installed |
65 | | since otherwise with FEATURES=keepwork dyn_install() will |
66 | | not call src_install() as necessary to repopulate |
67 | | ${PORTAGE_BUILDDIR}/image (resulting in install_qa_check |
68 | | failure due to absence of ${PORTAGE_BUILDDIR}/image). |
69
70 | 9528 | Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS |
71 | zmedico | variable that allows the user to specify tar command options |
72 | | for binary package creation. |
73
74 | 9537 | Disable tarsync when using lzma compression since it doesn't |
75 | zmedico | seem to be supported. |
76
77 | 9538 | * Skip the recusive chown call if it fails on the top level |
78 | zmedico | directory since it's possible that emerge-webrsync is not |
79 | | run by root. * Just chown to portage:portage instead of |
80 | | using PORTAGE_INST_{UID,GID}. Prefix: use PORTAGE_USER and |
81 | | PORTAGE_GROUP instead. |
82
83
84 Modified: main/branches/prefix/bin/ebuild.sh
85 ===================================================================
86 --- main/branches/prefix/bin/ebuild.sh 2008-03-28 21:18:04 UTC (rev 9582)
87 +++ main/branches/prefix/bin/ebuild.sh 2008-03-28 21:25:26 UTC (rev 9583)
88 @@ -273,12 +273,6 @@
89 export DIROPTIONS="-m0755"
90 export MOPREFIX=${PN}
91
92 -# When compiler flags are unset, many packages will substitute their own
93 -# implicit flags. For uniformity, use an empty string as the default.
94 -[ "${CFLAGS-unset}" == "unset" ] && export CFLAGS=""
95 -[ "${CXXFLAGS-unset}" == "unset" ] && export CXXFLAGS=""
96 -[ "${LDFLAGS-unset}" == "unset" ] && export LDFLAGS=""
97 -
98 check_KV() {
99 if [ -z "${KV}" ]; then
100 eerror ""
101 @@ -676,11 +670,9 @@
102 if [ "${newstuff}" == "yes" ]; then
103 # We don't necessarily have privileges to do a full dyn_clean here.
104 rm -rf "${WORKDIR}"
105 - if [ -d "${T}" ] && ! hasq keeptemp ${FEATURES} ; then
106 + if [ -d "${T}" ] && \
107 + ! hasq keeptemp $FEATURES && ! hasq keepwork $FEATURES ; then
108 rm -rf "${T}" && mkdir "${T}"
109 - else
110 - [ -e "${T}/environment" ] && \
111 - mv "${T}/environment" "${T}/environment.keeptemp"
112 fi
113 fi
114 if [ -e "${WORKDIR}" ]; then
115 @@ -717,11 +709,10 @@
116 fi
117
118 rm -rf "${PORTAGE_BUILDDIR}/image" "${PORTAGE_BUILDDIR}/homedir"
119 + rm -f "${PORTAGE_BUILDDIR}/.installed"
120
121 - if ! hasq keeptemp $FEATURES; then
122 + if ! hasq keeptemp $FEATURES && ! hasq keepwork $FEATURES ; then
123 rm -rf "${T}"
124 - else
125 - [ -e "${T}/environment" ] && mv "${T}/environment" "${T}/environment.keeptemp"
126 fi
127
128 if ! hasq keepwork $FEATURES; then
129 @@ -730,7 +721,6 @@
130 rm -rf "${PORTAGE_BUILDDIR}/.unpacked"
131 rm -rf "${PORTAGE_BUILDDIR}/.compiled"
132 rm -rf "${PORTAGE_BUILDDIR}/.tested"
133 - rm -rf "${PORTAGE_BUILDDIR}/.installed"
134 rm -rf "${PORTAGE_BUILDDIR}/.packaged"
135 rm -rf "${PORTAGE_BUILDDIR}/build-info"
136 rm -rf "${WORKDIR}"
137
138 Modified: main/branches/prefix/bin/emerge-webrsync
139 ===================================================================
140 --- main/branches/prefix/bin/emerge-webrsync 2008-03-28 21:18:04 UTC (rev 9582)
141 +++ main/branches/prefix/bin/emerge-webrsync 2008-03-28 21:25:26 UTC (rev 9583)
142 @@ -33,7 +33,7 @@
143 exit 1
144 fi
145 eval $(portageq envvar -v FEATURES FETCHCOMMAND GENTOO_MIRRORS \
146 - PORTAGE_BIN_PATH PORTAGE_GPG_DIR PORTAGE_INST_UID PORTAGE_INST_GID \
147 + PORTAGE_BIN_PATH PORTAGE_GPG_DIR \
148 PORTAGE_NICENESS PORTAGE_RSYNC_EXTRA_OPTS PORTAGE_TMPDIR PORTDIR \
149 http_proxy ftp_proxy EPREFIX)
150 DISTDIR="${PORTAGE_TMPDIR}/emerge-webrsync"
151 @@ -173,7 +173,8 @@
152
153 vecho "Syncing local tree ..."
154
155 - if type -P tarsync &> /dev/null; then
156 + # tarsync-0.2.1 doesn't seem to support lzma compression.
157 + if [ "${file##*.}" != "lzma" ] && type -P tarsync &> /dev/null; then
158 if ! tarsync $(vvecho -v) -s 1 -o portage -g portage -e /distfiles -e /packages -e /local "${file}" "${PORTDIR}"; then
159 eecho "tarsync failed; tarball is corrupt? (${file})"
160 return 1
161 @@ -188,8 +189,9 @@
162 # Free disk space
163 rm -f "${file}"
164
165 - # Make sure user and group file ownership is ${PORTAGE_INST_UID}:${PORTAGE_INST_GID}
166 - chown -R ${PORTAGE_INST_UID:-0}:${PORTAGE_INST_GID:-0} portage
167 + chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} portage &> /dev/null && \
168 + chown -R ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} portage
169 +
170 cd portage
171 rsync -av --progress --stats --delete --delete-after \
172 --exclude='/distfiles' --exclude='/packages' \
173
174 Modified: main/branches/prefix/bin/isolated-functions.sh
175 ===================================================================
176 --- main/branches/prefix/bin/isolated-functions.sh 2008-03-28 21:18:04 UTC (rev 9582)
177 +++ main/branches/prefix/bin/isolated-functions.sh 2008-03-28 21:25:26 UTC (rev 9583)
178 @@ -481,7 +481,7 @@
179 LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
180 NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
181 PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC \
182 - PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR \
183 + PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR \
184 PORTAGE_COLORMAP PORTAGE_CONFIGROOT PORTAGE_DEBUG \
185 PORTAGE_DEPCACHEDIR PORTAGE_GID PORTAGE_INST_GID \
186 PORTAGE_INST_UID PORTAGE_LOG_FILE PORTAGE_MASTER_PID \
187
188 Modified: main/branches/prefix/bin/misc-functions.sh
189 ===================================================================
190 --- main/branches/prefix/bin/misc-functions.sh 2008-03-28 21:18:04 UTC (rev 9582)
191 +++ main/branches/prefix/bin/misc-functions.sh 2008-03-28 21:25:26 UTC (rev 9583)
192 @@ -659,7 +659,8 @@
193 [ -z "${PORTAGE_BINPKG_TMPFILE}" ] && \
194 PORTAGE_BINPKG_TMPFILE="${PKGDIR}/${CATEGORY}/${PF}.tbz2"
195 mkdir -p "${PORTAGE_BINPKG_TMPFILE%/*}" || die "mkdir failed"
196 - tar ${tar_options} -cf - . | bzip2 -f > "${PORTAGE_BINPKG_TMPFILE}" || \
197 + tar $tar_options -cf - $PORTAGE_BINPKG_TAR_OPTS . | \
198 + bzip2 -f > "$PORTAGE_BINPKG_TMPFILE" || \
199 die "Failed to create tarball"
200 cd ..
201 export PYTHONPATH=${PORTAGE_PYM_PATH:-${EPREFIX}/usr/lib/portage/pym}
202
203 Modified: main/branches/prefix/bin/repoman
204 ===================================================================
205 --- main/branches/prefix/bin/repoman 2008-03-28 21:18:04 UTC (rev 9582)
206 +++ main/branches/prefix/bin/repoman 2008-03-28 21:25:26 UTC (rev 9583)
207 @@ -183,9 +183,12 @@
208 parser.add_option('-i', '--ignore-arches', dest='ignore_arches', action='store_true',
209 default=False, help='ignore arch-specific failures (where arch != host)')
210
211 - parser.add_option('-I', '--ignored-masked', dest='ignore_masked', action='store_true',
212 - default=False, help='ignore masked packages (not allowed with commit mode')
213 + parser.add_option('-I', '--ignore-masked', dest='ignore_masked', action='store_true',
214 + default=False, help='ignore masked packages (not allowed with commit mode)')
215
216 + parser.add_option('--without-mask', dest='without_mask', action='store_true',
217 + default=False, help='behave as if no package.mask entries exist')
218 +
219 parser.add_option('--mode', type='choice', dest='mode', choices=modes.keys(),
220 help='specify which mode repoman will run in (default=full)')
221
222 @@ -245,12 +248,14 @@
223 "file.size":"Files in the files directory must be under 20k",
224 "file.name":"File/dir name must be composed of only the following chars: %s " % allowed_filename_chars,
225 "file.UTF8":"File is not UTF8 compliant",
226 + "KEYWORDS.dropped":"Ebuilds that appear to have dropped KEYWORDS for some arch",
227 "KEYWORDS.missing":"Ebuilds that have a missing or empty KEYWORDS variable",
228 "KEYWORDS.stable":"Ebuilds that have been added directly with stable KEYWORDS",
229 "KEYWORDS.stupid":"Ebuilds that use KEYWORDS=-* instead of package.mask",
230 "LICENSE.missing":"Ebuilds that have a missing or empty LICENSE variable",
231 "DESCRIPTION.missing":"Ebuilds that have a missing or empty DESCRIPTION variable",
232 "DESCRIPTION.toolong":"DESCRIPTION is over %d characters" % max_desc_len,
233 + "EAPI.incompatible":"Ebuilds that use features that are only available with a different EAPI",
234 "EAPI.unsupported":"Ebuilds that have an unsupported EAPI version (you must upgrade portage)",
235 "SLOT.missing":"Ebuilds that have a missing or empty SLOT variable",
236 "HOMEPAGE.missing":"Ebuilds that have a missing or empty HOMEPAGE variable",
237 @@ -312,6 +317,7 @@
238 "DEPEND.badindev","RDEPEND.badindev","PDEPEND.badindev",
239 "DEPEND.badmaskedindev","RDEPEND.badmaskedindev","PDEPEND.badmaskedindev",
240 "DESCRIPTION.toolong",
241 +"KEYWORDS.dropped",
242 "KEYWORDS.stupid",
243 "KEYWORDS.missing",
244 "RESTRICT.invalid",
245 @@ -695,6 +701,7 @@
246 new_ebuilds.update(x for x in mynew if x.endswith(".ebuild"))
247 del mycvstree, mynew
248
249 +have_masked = False
250 dofail = 0
251 arch_caches={}
252 arch_xmatch_caches = {}
253 @@ -746,8 +753,20 @@
254 fails["EAPI.unsupported"].append(os.path.join(x, y))
255 continue
256 ebuild_metadata[pf] = myaux
257 - ebuildlist.sort()
258
259 + # Sort ebuilds in ascending order for the KEYWORDS.dropped check.
260 + pkgsplits = {}
261 + for i in xrange(len(ebuildlist)):
262 + ebuild_split = portage.pkgsplit(ebuildlist[i])
263 + pkgsplits[ebuild_split] = ebuildlist[i]
264 + ebuildlist[i] = ebuild_split
265 + ebuildlist.sort(portage.pkgcmp)
266 + for i in xrange(len(ebuildlist)):
267 + ebuildlist[i] = pkgsplits[ebuildlist[i]]
268 + del pkgsplits
269 +
270 + slot_keywords = {}
271 +
272 if len(ebuild_metadata) != len(ebuildlist):
273 # If we can't access all the metadata then it's totally unsafe to
274 # commit since there's no way to generate a correct Manifest.
275 @@ -1005,6 +1024,7 @@
276 continue
277
278 myaux = ebuild_metadata[y]
279 + eapi = myaux["EAPI"]
280
281 # Test for negative logic and bad words in the RESTRICT var.
282 #for x in myaux[allvars.index("RESTRICT")].split():
283 @@ -1066,6 +1086,22 @@
284 x + "/" + y + ".ebuild added with stable keywords: %s" % \
285 " ".join(stable_keywords))
286
287 + ebuild_archs = set(kw.lstrip("~") for kw in keywords \
288 + if not kw.startswith("-"))
289 +
290 + previous_keywords = slot_keywords.get(myaux["SLOT"])
291 + if previous_keywords is None:
292 + slot_keywords[myaux["SLOT"]] = set()
293 + else:
294 + dropped_keywords = previous_keywords.difference(ebuild_archs)
295 + if dropped_keywords:
296 + stats["KEYWORDS.dropped"] += 1
297 + fails["KEYWORDS.dropped"].append(
298 + relative_path + ": %s" % \
299 + " ".join(sorted(dropped_keywords)))
300 +
301 + slot_keywords[myaux["SLOT"]].update(ebuild_archs)
302 +
303 # KEYWORDS="-*" is a stupid replacement for package.mask and screws general KEYWORDS semantics
304 if "-*" in keywords:
305 haskeyword = False
306 @@ -1160,15 +1196,22 @@
307 if myteststr.find(token) != -1:
308 badsyntax.append("'%s' not separated by space" % (token))
309
310 -
311 if mytype in ("DEPEND", "RDEPEND", "PDEPEND"):
312 for token in mydepstr.split():
313 if token in operator_tokens or \
314 token.endswith("?"):
315 continue
316 - if not portage.isvalidatom(token, allow_blockers=True) or \
317 - ":" in token and myaux["EAPI"] == "0":
318 + if not portage.isvalidatom(token, allow_blockers=True):
319 badsyntax.append("'%s' not a valid atom" % token)
320 + else:
321 + atom = token.lstrip("!")
322 + if eapi == "0":
323 + if portage.dep.dep_getslot(atom):
324 + stats['EAPI.incompatible'] += 1
325 + fails['EAPI.incompatible'].append(
326 + (relative_path + ": %s slot dependency" + \
327 + " not supported with EAPI='%s':" + \
328 + " '%s'") % (mytype, eapi, atom))
329
330 type_list.extend([mytype] * (len(badsyntax) - len(type_list)))
331
332 @@ -1198,8 +1241,15 @@
333 for mypos in range(len(myuse)-1,-1,-1):
334 if myuse[mypos] and (myuse[mypos] in luselist[mykey]):
335 del myuse[mypos]
336 - if default_use and myaux["EAPI"] == "0":
337 - myuse += default_use
338 +
339 + if default_use and eapi == "0":
340 + for myflag in default_use:
341 + stats['EAPI.incompatible'] += 1
342 + fails['EAPI.incompatible'].append(
343 + (relative_path + ": IUSE defaults" + \
344 + " not supported with EAPI='%s':" + \
345 + " '%s'") % (eapi, myflag))
346 +
347 for mypos in range(len(myuse)):
348 stats["IUSE.invalid"]=stats["IUSE.invalid"]+1
349 fails["IUSE.invalid"].append(x+"/"+y+".ebuild: %s" % myuse[mypos])
350 @@ -1291,6 +1341,8 @@
351 config_profile_path=profdir,
352 config_incrementals=portage.const.INCREMENTALS,
353 local_config=False)
354 + if options.without_mask:
355 + dep_settings.pmaskdict.clear()
356 arch_caches[prof[0]] = dep_settings
357 while True:
358 try:
359 @@ -1328,6 +1380,7 @@
360 ismasked = os.path.join(catdir, y) not in \
361 portdb.xmatch("list-visible", x)
362 if ismasked:
363 + have_masked = True
364 if options.ignore_masked:
365 continue
366 #we are testing deps for a masked package; give it some lee-way
367 @@ -1453,6 +1506,10 @@
368 mygroups[xs[0]]+=[seperator.join(xs[1:])]
369 return mygroups
370
371 +if have_masked and not (options.without_mask or options.ignore_masked):
372 + print bold("Note: use --without-mask to check " + \
373 + "KEYWORDS on dependencies of masked packages")
374 +
375 if options.mode != 'commit':
376 if dofull:
377 print bold("Note: type \"repoman full\" for a complete listing.")
378
379 Modified: main/branches/prefix/cnf/make.globals
380 ===================================================================
381 --- main/branches/prefix/cnf/make.globals 2008-03-28 21:18:04 UTC (rev 9582)
382 +++ main/branches/prefix/cnf/make.globals 2008-03-28 21:25:26 UTC (rev 9583)
383 @@ -12,6 +12,11 @@
384 # ** USE, CONFIG_*, and FEATURES are incremental **
385 # ***************************************************
386
387 +# When compiler flags are unset, many packages will substitute their own
388 +# implicit flags. For uniformity, use an empty string as the default.
389 +CFLAGS=""
390 +CXXFLAGS=""
391 +LDFLAGS=""
392
393 # Default rsync mirror
394 SYNC="rsync://rsync.gentoo.org/gentoo-portage"
395
396 Modified: main/branches/prefix/man/make.conf.5
397 ===================================================================
398 --- main/branches/prefix/man/make.conf.5 2008-03-28 21:18:04 UTC (rev 9582)
399 +++ main/branches/prefix/man/make.conf.5 2008-03-28 21:25:26 UTC (rev 9583)
400 @@ -272,7 +272,7 @@
401 .TP
402 .B strict
403 Have portage react strongly to conditions that have the potential to be
404 -dangerous (like missing or incorrect digests for ebuilds or distfiles).
405 +dangerous (like missing or incorrect digests for ebuilds).
406 .TP
407 .B stricter
408 Have portage react strongly to conditions that may conflict with system
409 @@ -382,6 +382,10 @@
410 header field is not defined then the client will use it's ${PORTAGE_BINHOST}
411 setting as the base URI.
412 .TP
413 +.B PORTAGE_BINPKG_TAR_OPTS
414 +This variable contains options to be passed to the tar command for creation
415 +of binary packages.
416 +.TP
417 \fBPORTAGE_COMPRESS\fR = \fI"bzip2"\fR
418 This variable contains the command used to compress documentation during the
419 install phase.
420
421 Modified: main/branches/prefix/man/repoman.1
422 ===================================================================
423 --- main/branches/prefix/man/repoman.1 2008-03-28 21:18:04 UTC (rev 9582)
424 +++ main/branches/prefix/man/repoman.1 2008-03-28 21:25:26 UTC (rev 9583)
425 @@ -34,9 +34,15 @@
426 \fB-v\fR, \fB--verbose\fR
427 Displays every package name while checking
428 .TP
429 -\fB-I\fR, \fB--ignore-arches\fR
430 +\fB\-i\fR, \fB\-\-ignore\-arches\fR
431 Ignore arch-specific failures (where arch != host)
432 .TP
433 +\fB\-I\fR, \fB\-\-ignore\-masked\fR
434 +Ignore masked packages (not allowed with commit mode)
435 +.TP
436 +\fB\-\-without\-mask\fR
437 +Behave as if no package.mask entries exist
438 +.TP
439 \fB-m\fR, \fB--commitmsg\fR
440 Adds a commit message via the command line
441 .TP
442 @@ -96,6 +102,9 @@
443 .B DESCRIPTION.missing
444 Ebuilds that have a missing or empty DESCRIPTION variable
445 .TP
446 +.B EAPI.incompatible
447 +Ebuilds that use features that are only available with a different EAPI
448 +.TP
449 .B EAPI.unsupported
450 Ebuilds that have an unsupported EAPI version (you must upgrade portage)
451 .TP
452 @@ -105,6 +114,9 @@
453 .B IUSE.invalid
454 This build has a variable in IUSE that is not in the use.desc or use.local.desc file
455 .TP
456 +.B KEYWORDS.dropped
457 +Ebuilds that appear to have dropped KEYWORDS for some arch
458 +.TP
459 .B KEYWORDS.invalid
460 This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found
461 .TP
462
463 Modified: main/branches/prefix/pym/_emerge/__init__.py
464 ===================================================================
465 --- main/branches/prefix/pym/_emerge/__init__.py 2008-03-28 21:18:04 UTC (rev 9582)
466 +++ main/branches/prefix/pym/_emerge/__init__.py 2008-03-28 21:25:26 UTC (rev 9583)
467 @@ -2599,6 +2599,7 @@
468 usepkgonly = "--usepkgonly" in self.myopts
469 empty = "empty" in self.myparams
470 selective = "selective" in self.myparams
471 + noreplace = "--noreplace" in self.myopts
472 reinstall = False
473 # Behavior of the "selective" parameter depends on
474 # whether or not a package matches an argument atom.
475 @@ -2633,6 +2634,10 @@
476 # descending order
477 cpv_list.reverse()
478 for cpv in cpv_list:
479 + # Make --noreplace take precedence over --newuse.
480 + if not installed and noreplace and \
481 + cpv in vardb.match(atom):
482 + break
483 reinstall_for_flags = None
484 try:
485 metadata = dict(izip(db_keys,
486
487 Modified: main/branches/prefix/pym/portage/__init__.py
488 ===================================================================
489 --- main/branches/prefix/pym/portage/__init__.py 2008-03-28 21:18:04 UTC (rev 9582)
490 +++ main/branches/prefix/pym/portage/__init__.py 2008-03-28 21:25:26 UTC (rev 9583)
491 @@ -883,7 +883,8 @@
492 "PKGUSE", "PKG_LOGDIR", "PKG_TMPDIR",
493 "PORTAGE_ACTUAL_DISTDIR", "PORTAGE_ARCHLIST",
494 "PORTAGE_BASHRC",
495 - "PORTAGE_BINPKG_FILE", "PORTAGE_BINPKG_TMPFILE",
496 + "PORTAGE_BINPKG_FILE", "PORTAGE_BINPKG_TAR_OPTS",
497 + "PORTAGE_BINPKG_TMPFILE",
498 "PORTAGE_BIN_PATH",
499 "PORTAGE_BUILDDIR", "PORTAGE_COLORMAP",
500 "PORTAGE_CONFIGROOT", "PORTAGE_DEBUG", "PORTAGE_DEPCACHEDIR",
501 @@ -3120,7 +3121,7 @@
502 mymirrors += [x.rstrip("/") for x in mysettings["GENTOO_MIRRORS"].split() if x]
503
504 pkgdir = mysettings.get("O")
505 - if pkgdir:
506 + if pkgdir is not None:
507 mydigests = Manifest(
508 pkgdir, mysettings["DISTDIR"]).getTypeDigests("DIST")
509 else:
510 @@ -3766,8 +3767,6 @@
511 """Verifies checksums. Assumes all files have been downloaded.
512 DEPRECATED: this is now only a compability wrapper for
513 portage.manifest.Manifest()."""
514 - if not strict:
515 - return 1
516 pkgdir = mysettings["O"]
517 manifest_path = os.path.join(pkgdir, "Manifest")
518 if not os.path.exists(manifest_path):
519 @@ -3779,15 +3778,16 @@
520 eout = portage.output.EOutput()
521 eout.quiet = mysettings.get("PORTAGE_QUIET", None) == "1"
522 try:
523 - eout.ebegin("checking ebuild checksums ;-)")
524 - mf.checkTypeHashes("EBUILD")
525 - eout.eend(0)
526 - eout.ebegin("checking auxfile checksums ;-)")
527 - mf.checkTypeHashes("AUX")
528 - eout.eend(0)
529 - eout.ebegin("checking miscfile checksums ;-)")
530 - mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
531 - eout.eend(0)
532 + if strict:
533 + eout.ebegin("checking ebuild checksums ;-)")
534 + mf.checkTypeHashes("EBUILD")
535 + eout.eend(0)
536 + eout.ebegin("checking auxfile checksums ;-)")
537 + mf.checkTypeHashes("AUX")
538 + eout.eend(0)
539 + eout.ebegin("checking miscfile checksums ;-)")
540 + mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
541 + eout.eend(0)
542 for f in myfiles:
543 eout.ebegin("checking %s ;-)" % f)
544 mf.checkFileHashes(mf.findFile(f), f)
545 @@ -3814,7 +3814,8 @@
546 if f.endswith(".ebuild") and not mf.hasFile("EBUILD", f):
547 writemsg("!!! A file is not listed in the Manifest: '%s'\n" % \
548 os.path.join(pkgdir, f), noiselevel=-1)
549 - return 0
550 + if strict:
551 + return 0
552 """ epatch will just grab all the patches out of a directory, so we have to
553 make sure there aren't any foreign files that it might grab."""
554 filesdir = os.path.join(pkgdir, "files")
555 @@ -3830,7 +3831,8 @@
556 if file_type != "AUX" and not f.startswith("digest-"):
557 writemsg("!!! A file is not listed in the Manifest: '%s'\n" % \
558 os.path.join(filesdir, f), noiselevel=-1)
559 - return 0
560 + if strict:
561 + return 0
562 return 1
563
564 # parse actionmap to spawn ebuild with the appropriate args
565
566 Modified: main/branches/prefix/pym/portage/elog/mod_mail.py
567 ===================================================================
568 --- main/branches/prefix/pym/portage/elog/mod_mail.py 2008-03-28 21:18:04 UTC (rev 9582)
569 +++ main/branches/prefix/pym/portage/elog/mod_mail.py 2008-03-28 21:25:26 UTC (rev 9583)
570 @@ -14,6 +14,7 @@
571 myrecipient = "root@localhost"
572
573 myfrom = mysettings["PORTAGE_ELOG_MAILFROM"]
574 + myfrom = myfrom.replace("${HOST}", socket.getfqdn())
575 mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"]
576 mysubject = mysubject.replace("${PACKAGE}", key)
577 mysubject = mysubject.replace("${HOST}", socket.getfqdn())
578
579 Modified: main/branches/prefix/pym/portage/elog/mod_mail_summary.py
580 ===================================================================
581 --- main/branches/prefix/pym/portage/elog/mod_mail_summary.py 2008-03-28 21:18:04 UTC (rev 9582)
582 +++ main/branches/prefix/pym/portage/elog/mod_mail_summary.py 2008-03-28 21:25:26 UTC (rev 9583)
583 @@ -39,6 +39,7 @@
584 myrecipient = "root@localhost"
585
586 myfrom = mysettings["PORTAGE_ELOG_MAILFROM"]
587 + myfrom = myfrom.replace("${HOST}", socket.getfqdn())
588 mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"]
589 mysubject = mysubject.replace("${PACKAGE}", count)
590 mysubject = mysubject.replace("${HOST}", socket.getfqdn())
591
592 --
593 gentoo-commits@l.g.o mailing list