1 |
Author: grobian |
2 |
Date: 2009-10-07 19:12:18 +0000 (Wed, 07 Oct 2009) |
3 |
New Revision: 14512 |
4 |
|
5 |
Modified: |
6 |
main/branches/prefix/NEWS |
7 |
main/branches/prefix/bin/repoman |
8 |
main/branches/prefix/cnf/make.globals |
9 |
main/branches/prefix/man/emerge.1 |
10 |
main/branches/prefix/man/make.conf.5 |
11 |
main/branches/prefix/man/repoman.1 |
12 |
main/branches/prefix/pym/_emerge/Scheduler.py |
13 |
main/branches/prefix/pym/_emerge/help.py |
14 |
main/branches/prefix/pym/_emerge/main.py |
15 |
main/branches/prefix/pym/_emerge/visible.py |
16 |
Log: |
17 |
Merged from trunk -r14497:14507 |
18 |
|
19 |
| 14498 | Enable FEATURES=news by default and document it. | |
20 |
| zmedico | | |
21 |
|
22 |
| 14499 | When restarting emerge, don't trust sys.argv[0] since | |
23 |
| zmedico | eselect-python may modify it. | |
24 |
|
25 |
| 14500 | Add a 'digest.missing' check, for cases like mythtv where | |
26 |
| zmedico | the eclass has modified the SRC_URI and now the Manifest has | |
27 |
| | missing digests. Thanks to Brian Harring for the suggestion. | |
28 |
|
29 |
| 14501 | Add a new --accept-properties option so that users can | |
30 |
| zmedico | temporarily override ACCEPT_PROPERTIES on the commandline, | |
31 |
| | without relying on emerge's legacy behavior of allowing | |
32 |
| | variables to leak in from the calling environment. A typical | |
33 |
| | usage example for this option would be to use | |
34 |
| | --accept-properties=-interactive to temporarily mask | |
35 |
| | interactive packages. With default configuration, this would | |
36 |
| | result in an effective ACCEPT_PROPERTIES value of "* | |
37 |
| | -interactive". | |
38 |
|
39 |
| 14502 | Add a note about --accept-properties and exclusion of | |
40 |
| zmedico | interactive updates. | |
41 |
|
42 |
| 14504 | Bug #287870 - Add -r option as short version of --resume. | |
43 |
| zmedico | | |
44 |
|
45 |
| 14505 | Fix collision in variable name 'x'. | |
46 |
| zmedico | | |
47 |
|
48 |
| 14506 | Exempt installed packages from PROPERTIES masking since the | |
49 |
| zmedico | user is likely to temporarily alter ACCEPT_PROPERIES in | |
50 |
| | order to avoid interactive updates and we don't want this to | |
51 |
| | distort resolver choices or trigger warning messages about | |
52 |
| | installed packages being masked. | |
53 |
|
54 |
| 14507 | Bug #265267 - When disabling --jobs due to interactive | |
55 |
| zmedico | package(s), hint about --accept-properties=-interactive | |
56 |
| | option. | |
57 |
|
58 |
|
59 |
Modified: main/branches/prefix/NEWS |
60 |
=================================================================== |
61 |
--- main/branches/prefix/NEWS 2009-10-07 19:09:55 UTC (rev 14511) |
62 |
+++ main/branches/prefix/NEWS 2009-10-07 19:12:18 UTC (rev 14512) |
63 |
@@ -7,6 +7,9 @@ |
64 |
in order to protect against uninstallation of required libraries. |
65 |
* Add license visibility filtering (GLEP 23) |
66 |
* Add support for generic package sets (also see RELEASE-NOTES) |
67 |
+* Add --accept-properties option for emerge which allows you to use |
68 |
+ --accept-properties=-interactive in order to temporarily exclude |
69 |
+ interactive updates. |
70 |
|
71 |
portage-2.1.6 |
72 |
------------- |
73 |
|
74 |
Modified: main/branches/prefix/bin/repoman |
75 |
=================================================================== |
76 |
--- main/branches/prefix/bin/repoman 2009-10-07 19:09:55 UTC (rev 14511) |
77 |
+++ main/branches/prefix/bin/repoman 2009-10-07 19:12:18 UTC (rev 14512) |
78 |
@@ -312,7 +312,9 @@ |
79 |
"RDEPEND.implicit":"RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND assignment", |
80 |
"RDEPEND.suspect":"RDEPEND contains a package that usually only belongs in DEPEND.", |
81 |
"RESTRICT.invalid":"This ebuild contains invalid RESTRICT values.", |
82 |
- "digestentry.unused":"Some files listed in the Manifest aren't referenced in SRC_URI", |
83 |
+ "digest.assumed":"Existing digest must be assumed correct (Package level only)", |
84 |
+ "digest.missing":"Some files listed in SRC_URI aren't referenced in the Manifest", |
85 |
+ "digest.unused":"Some files listed in the Manifest aren't referenced in SRC_URI", |
86 |
"ebuild.nostable":"There are no ebuilds that are marked as stable for your ARCH", |
87 |
"ebuild.allmasked":"All ebuilds are masked for this package (Package level only)", |
88 |
"ebuild.majorsyn":"This ebuild has a major syntax error that may cause the ebuild to fail partially or fully", |
89 |
@@ -335,7 +337,8 @@ |
90 |
"changelog.ebuildadded", |
91 |
"changelog.missing", |
92 |
"changelog.notadded", |
93 |
-"digestentry.unused", |
94 |
+"digest.assumed", |
95 |
+"digest.unused", |
96 |
"ebuild.notadded", |
97 |
"ebuild.nostable", |
98 |
"ebuild.allmasked", |
99 |
@@ -1094,8 +1097,12 @@ |
100 |
myfiles_all = set(myfiles_all) |
101 |
for entry in mydigests: |
102 |
if entry not in myfiles_all: |
103 |
- stats["digestentry.unused"] += 1 |
104 |
- fails["digestentry.unused"].append(checkdir+"::"+entry) |
105 |
+ stats["digest.unused"] += 1 |
106 |
+ fails["digest.unused"].append(checkdir+"::"+entry) |
107 |
+ for entry in myfiles_all: |
108 |
+ if entry not in mydigests: |
109 |
+ stats["digest.missing"] += 1 |
110 |
+ fails["digest.missing"].append(checkdir+"::"+entry) |
111 |
del myfiles_all |
112 |
|
113 |
if os.path.exists(checkdir+"/files"): |
114 |
@@ -1496,8 +1503,8 @@ |
115 |
stats[m+".syntax"] += 1 |
116 |
fails[m+".syntax"].append(catpkg+".ebuild "+m+": "+b) |
117 |
|
118 |
- badlicsyntax = len([x for x in type_list if x == "LICENSE"]) |
119 |
- badprovsyntax = len([x for x in type_list if x == "PROVIDE"]) |
120 |
+ badlicsyntax = len([z for z in type_list if z == "LICENSE"]) |
121 |
+ badprovsyntax = len([z for z in type_list if z == "PROVIDE"]) |
122 |
baddepsyntax = len(type_list) != badlicsyntax + badprovsyntax |
123 |
badlicsyntax = badlicsyntax > 0 |
124 |
badprovsyntax = badprovsyntax > 0 |
125 |
|
126 |
Modified: main/branches/prefix/cnf/make.globals |
127 |
=================================================================== |
128 |
--- main/branches/prefix/cnf/make.globals 2009-10-07 19:09:55 UTC (rev 14511) |
129 |
+++ main/branches/prefix/cnf/make.globals 2009-10-07 19:12:18 UTC (rev 14512) |
130 |
@@ -41,7 +41,7 @@ |
131 |
RESUMECOMMAND="@PORTAGE_WGET@ -c -t 5 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\"" |
132 |
|
133 |
# Default user options |
134 |
-FEATURES="assume-digests distlocks fixpackages parallel-fetch protect-owned |
135 |
+FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned |
136 |
sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" |
137 |
|
138 |
# Ignore file collisions in /lib/modules since files inside this directory |
139 |
|
140 |
Modified: main/branches/prefix/man/emerge.1 |
141 |
=================================================================== |
142 |
--- main/branches/prefix/man/emerge.1 2009-10-07 19:09:55 UTC (rev 14511) |
143 |
+++ main/branches/prefix/man/emerge.1 2009-10-07 19:12:18 UTC (rev 14512) |
144 |
@@ -182,7 +182,7 @@ |
145 |
the \fB\-\-jobs\fR and \fB\-\-load\-average\fR options. If you would like to |
146 |
generate and distribute cache for use by others, use \fBegencache\fR(1). |
147 |
.TP |
148 |
-.BR "\-\-resume" |
149 |
+.BR "\-\-resume" (\fB\-r\fR) |
150 |
Resumes the most recent merge list that has been aborted due to an error. |
151 |
Please note that this operation will only return an error on failure. If there |
152 |
is nothing for portage to do, then portage will exit with a message and a |
153 |
@@ -234,6 +234,20 @@ |
154 |
Displays the version number of \fBemerge\fR. |
155 |
.SH "OPTIONS" |
156 |
.TP |
157 |
+.BR \-\-accept\-properties=ACCEPT_PROPERTIES |
158 |
+This option temporarily overrides the \fBACCEPT_PROPERTIES\fR |
159 |
+variable. The \fBACCEPT_PROPERTIES\fR variable is incremental, |
160 |
+which means that the specified setting is appended to the |
161 |
+existing value from your configuration. The special \fB-*\fR |
162 |
+token can be used to discard the existing configuration |
163 |
+value and start fresh. See the \fBMASKED PACKAGES\fR section |
164 |
+and \fBmake.conf\fR(5) for more information about |
165 |
+ACCEPT_PROPERTIES. A typical usage example for this option |
166 |
+would be to use \fI\-\-accept\-properties=-interactive\fR to |
167 |
+temporarily mask interactive packages. With default |
168 |
+configuration, this would result in an effective |
169 |
+\fBACCEPT_PROPERTIES\fR value of "* -interactive". |
170 |
+.TP |
171 |
.BR "\-\-alphabetical " |
172 |
When displaying USE and other flag output, combines the enabled and |
173 |
disabled lists into one list and sorts the whole list alphabetically. |
174 |
@@ -667,7 +681,8 @@ |
175 |
\fBACCEPT_PROPERTIES\fR environment variable to allow or disallow the emerging |
176 |
of a package masked by \fBPROPERTIES\fR. See \fBmake.conf\fR(5) for information |
177 |
about \fBACCEPT_PROPERTIES\fR, and see \fBportage\fR(5) for information about |
178 |
-\fI/etc/portage/package.properties\fR. |
179 |
+\fI/etc/portage/package.properties\fR. Use the \fB\-\-accept\-properties\fR |
180 |
+option to temporarily override \fBACCEPT_PROPERTIES\fR. |
181 |
.SH "CONFIGURATION FILES" |
182 |
Portage has a special feature called "config file protection". The purpose of |
183 |
this feature is to prevent new package installs from clobbering existing |
184 |
|
185 |
Modified: main/branches/prefix/man/make.conf.5 |
186 |
=================================================================== |
187 |
--- main/branches/prefix/man/make.conf.5 2009-10-07 19:09:55 UTC (rev 14511) |
188 |
+++ main/branches/prefix/man/make.conf.5 2009-10-07 19:12:18 UTC (rev 14512) |
189 |
@@ -43,7 +43,9 @@ |
190 |
.TP |
191 |
\fBACCEPT_PROPERTIES\fR = \fI[space delimited list of properties]\fR |
192 |
This variable is used to mask packages based on PROPERTIES restrictions. |
193 |
-See \fBebuild\fR(5) for more information about PROPERTIES. |
194 |
+This varable can be temporarily overridden using the the |
195 |
+\fB\-\-accept\-properties\fR option of \fBemerge\fR(1). |
196 |
+See \fBebuild\fR(5) for more information about PROPERTIES. |
197 |
.br |
198 |
Defaults to the value of *. |
199 |
.TP |
200 |
@@ -266,6 +268,10 @@ |
201 |
portage feature called \fImultilib\-strict\fR. It will prevent emerge |
202 |
from putting 64bit libraries into anything other than (/usr)/lib64. |
203 |
.TP |
204 |
+.B news |
205 |
+Enable GLEP 42 new support. See |
206 |
+\fIhttp://www.gentoo.org/proj/en/glep/glep-0042.html\fR. |
207 |
+.TP |
208 |
.B noauto |
209 |
When utilizing \fBebuild\fR(1), only run the function requested. |
210 |
.TP |
211 |
|
212 |
Modified: main/branches/prefix/man/repoman.1 |
213 |
=================================================================== |
214 |
--- main/branches/prefix/man/repoman.1 2009-10-07 19:09:55 UTC (rev 14511) |
215 |
+++ main/branches/prefix/man/repoman.1 2009-10-07 19:12:18 UTC (rev 14512) |
216 |
@@ -216,6 +216,12 @@ |
217 |
.B digest.assumed |
218 |
Existing digest must be assumed correct (Package level only) |
219 |
.TP |
220 |
+.B digest.missing |
221 |
+Some files listed in SRC_URI aren't referenced in the Manifest |
222 |
+.TP |
223 |
+.B digest.unused |
224 |
+Some files listed in the Manifest aren't referenced in SRC_URI |
225 |
+.TP |
226 |
.B ebuild.allmasked |
227 |
All ebuilds are masked for this package (Package level only) |
228 |
.TP |
229 |
|
230 |
Modified: main/branches/prefix/pym/_emerge/Scheduler.py |
231 |
=================================================================== |
232 |
--- main/branches/prefix/pym/_emerge/Scheduler.py 2009-10-07 19:09:55 UTC (rev 14511) |
233 |
+++ main/branches/prefix/pym/_emerge/Scheduler.py 2009-10-07 19:12:18 UTC (rev 14512) |
234 |
@@ -309,7 +309,10 @@ |
235 |
writemsg_level(">>> Setting --jobs=1 due " + \ |
236 |
"to the above interactive package(s)\n", |
237 |
level=logging.INFO, noiselevel=-1) |
238 |
- |
239 |
+ writemsg_level(">>> In order to temporarily mask " + \ |
240 |
+ "interactive updates, you may\n" + \ |
241 |
+ ">>> specify --accept-properties=-interactive\n", |
242 |
+ level=logging.INFO, noiselevel=-1) |
243 |
self._status_display.quiet = \ |
244 |
not background or \ |
245 |
("--quiet" in self.myopts and \ |
246 |
@@ -753,7 +756,9 @@ |
247 |
mtimedb["resume"]["mergelist"].remove(list(pkg)) |
248 |
mtimedb.commit() |
249 |
portage.run_exitfuncs() |
250 |
- mynewargv = [sys.argv[0], "--resume"] |
251 |
+ # Don't trust sys.argv[0] here because eselect-python may modify it. |
252 |
+ emerge_binary = os.path.join(portage.const.PORTAGE_BIN_PATH, 'emerge') |
253 |
+ mynewargv = [emerge_binary, "--resume"] |
254 |
resume_opts = self.myopts.copy() |
255 |
# For automatic resume, we need to prevent |
256 |
# any of bad_resume_opts from leaking in |
257 |
|
258 |
Modified: main/branches/prefix/pym/_emerge/help.py |
259 |
=================================================================== |
260 |
--- main/branches/prefix/pym/_emerge/help.py 2009-10-07 19:09:55 UTC (rev 14511) |
261 |
+++ main/branches/prefix/pym/_emerge/help.py 2009-10-07 19:12:18 UTC (rev 14512) |
262 |
@@ -14,7 +14,7 @@ |
263 |
print(" "+turquoise("emerge")+" < "+turquoise("--sync")+" | "+turquoise("--metadata")+" | "+turquoise("--info")+" >") |
264 |
print(" "+turquoise("emerge")+" "+turquoise("--resume")+" [ "+green("--pretend")+" | "+green("--ask")+" | "+green("--skipfirst")+" ]") |
265 |
print(" "+turquoise("emerge")+" "+turquoise("--help")+" [ "+green("--verbose")+" ] ") |
266 |
- print(bold("Options:")+" "+green("-")+"["+green("abBcCdDefgGhjkKlnNoOpqPsStuvV")+"]") |
267 |
+ print(bold("Options:")+" "+green("-")+"["+green("abBcCdDefgGhjkKlnNoOpPqrsStuvV")+"]") |
268 |
print(" [ " + green("--color")+" < " + turquoise("y") + " | "+ turquoise("n")+" > ] [ "+green("--columns")+" ]") |
269 |
print(" [ "+green("--complete-graph")+" ] [ "+green("--deep")+" ]") |
270 |
print(" [ "+green("--jobs") + " " + turquoise("JOBS")+" ] [ "+green("--keep-going")+" ] [ " + green("--load-average")+" " + turquoise("LOAD") + " ]") |
271 |
@@ -161,7 +161,7 @@ |
272 |
for line in wrap(desc, desc_width): |
273 |
print(desc_indent + line) |
274 |
print() |
275 |
- print(" "+green("--resume")) |
276 |
+ print(" "+green("--resume")+" ("+green("-r")+" short option)") |
277 |
print(" Resumes the most recent merge list that has been aborted due to an") |
278 |
print(" error. Please note that this operation will only return an error") |
279 |
print(" on failure. If there is nothing for portage to do, then portage") |
280 |
@@ -232,6 +232,22 @@ |
281 |
print(" "+bold("emerge info")+" for more advanced information.") |
282 |
print() |
283 |
print(turquoise("Options:")) |
284 |
+ print(" "+green("--accept-properties=ACCEPT_PROPERTIES")) |
285 |
+ desc = "This option temporarily overrides the ACCEPT_PROPERTIES " + \ |
286 |
+ "variable. The ACCEPT_PROPERTIES variable is incremental, " + \ |
287 |
+ "which means that the specified setting is appended to the " + \ |
288 |
+ "existing value from your configuration. The special -* " + \ |
289 |
+ "token can be used to discard the existing configuration " + \ |
290 |
+ "value and start fresh. See the MASKED PACKAGES section " + \ |
291 |
+ "and make.conf(5) for more information about " + \ |
292 |
+ "ACCEPT_PROPERTIES. A typical usage example for this option " + \ |
293 |
+ "would be to use --accept-properties=-interactive to " + \ |
294 |
+ "temporarily mask interactive packages. With default " + \ |
295 |
+ "configuration, this would result in an effective " + \ |
296 |
+ "ACCEPT_PROPERTIES value of \"* -interactive\"." |
297 |
+ for line in wrap(desc, desc_width): |
298 |
+ print(desc_indent + line) |
299 |
+ print() |
300 |
print(" "+green("--alphabetical")) |
301 |
print(" When displaying USE and other flag output, combines the enabled") |
302 |
print(" and disabled flags into a single list and sorts it alphabetically.") |
303 |
|
304 |
Modified: main/branches/prefix/pym/_emerge/main.py |
305 |
=================================================================== |
306 |
--- main/branches/prefix/pym/_emerge/main.py 2009-10-07 19:09:55 UTC (rev 14511) |
307 |
+++ main/branches/prefix/pym/_emerge/main.py 2009-10-07 19:12:18 UTC (rev 14512) |
308 |
@@ -84,6 +84,7 @@ |
309 |
"o":"--onlydeps", "O":"--nodeps", |
310 |
"p":"--pretend", "P":"--prune", |
311 |
"q":"--quiet", |
312 |
+"r":"--resume", |
313 |
"s":"--search", "S":"--searchdesc", |
314 |
"t":"--tree", |
315 |
"u":"--update", |
316 |
@@ -499,6 +500,10 @@ |
317 |
|
318 |
longopt_aliases = {"--cols":"--columns", "--skip-first":"--skipfirst"} |
319 |
argument_options = { |
320 |
+ "--accept-properties": { |
321 |
+ "help":"temporarily override ACCEPT_PROPERTIES", |
322 |
+ "action":"store" |
323 |
+ }, |
324 |
"--config-root": { |
325 |
"help":"specify the location for portage configuration files", |
326 |
"action":"store" |
327 |
@@ -1048,6 +1053,8 @@ |
328 |
os.environ["PORTAGE_CONFIGROOT"] = myopts["--config-root"] |
329 |
if "--root" in myopts: |
330 |
os.environ["ROOT"] = myopts["--root"] |
331 |
+ if "--accept-properties" in myopts: |
332 |
+ os.environ["ACCEPT_PROPERTIES"] = myopts["--accept-properties"] |
333 |
|
334 |
# Portage needs to ensure a sane umask for the files it creates. |
335 |
os.umask(0o22) |
336 |
|
337 |
Modified: main/branches/prefix/pym/_emerge/visible.py |
338 |
=================================================================== |
339 |
--- main/branches/prefix/pym/_emerge/visible.py 2009-10-07 19:09:55 UTC (rev 14511) |
340 |
+++ main/branches/prefix/pym/_emerge/visible.py 2009-10-07 19:12:18 UTC (rev 14512) |
341 |
@@ -33,6 +33,11 @@ |
342 |
return False |
343 |
if pkgsettings._getMissingKeywords(pkg.cpv, pkg.metadata): |
344 |
return False |
345 |
+ try: |
346 |
+ if pkgsettings._getMissingProperties(pkg.cpv, pkg.metadata): |
347 |
+ return False |
348 |
+ except portage.exception.InvalidDependString: |
349 |
+ return False |
350 |
if pkgsettings._getMaskAtom(pkg.cpv, pkg.metadata): |
351 |
return False |
352 |
if pkgsettings._getProfileMaskAtom(pkg.cpv, pkg.metadata): |
353 |
@@ -40,9 +45,6 @@ |
354 |
try: |
355 |
if pkgsettings._getMissingLicenses(pkg.cpv, pkg.metadata): |
356 |
return False |
357 |
- if pkgsettings._getMissingProperties(pkg.cpv, pkg.metadata): |
358 |
- return False |
359 |
except portage.exception.InvalidDependString: |
360 |
return False |
361 |
return True |
362 |
- |