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 |