in order to protect against uninstallation of required libraries.
* Add license visibility filtering (GLEP 23)
* Add support for generic package sets (also see RELEASE-NOTES)
+* Add --accept-properties option for emerge which allows you to use
+ --accept-properties=-interactive in order to temporarily exclude
+ interactive updates.
portage-2.1.6
-------------
"RDEPEND.implicit":"RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND assignment",
"RDEPEND.suspect":"RDEPEND contains a package that usually only belongs in DEPEND.",
"RESTRICT.invalid":"This ebuild contains invalid RESTRICT values.",
- "digestentry.unused":"Some files listed in the Manifest aren't referenced in SRC_URI",
+ "digest.assumed":"Existing digest must be assumed correct (Package level only)",
+ "digest.missing":"Some files listed in SRC_URI aren't referenced in the Manifest",
+ "digest.unused":"Some files listed in the Manifest aren't referenced in SRC_URI",
"ebuild.nostable":"There are no ebuilds that are marked as stable for your ARCH",
"ebuild.allmasked":"All ebuilds are masked for this package (Package level only)",
"ebuild.majorsyn":"This ebuild has a major syntax error that may cause the ebuild to fail partially or fully",
"changelog.ebuildadded",
"changelog.missing",
"changelog.notadded",
-"digestentry.unused",
+"digest.assumed",
+"digest.unused",
"ebuild.notadded",
"ebuild.nostable",
"ebuild.allmasked",
myfiles_all = set(myfiles_all)
for entry in mydigests:
if entry not in myfiles_all:
- stats["digestentry.unused"] += 1
- fails["digestentry.unused"].append(checkdir+"::"+entry)
+ stats["digest.unused"] += 1
+ fails["digest.unused"].append(checkdir+"::"+entry)
+ for entry in myfiles_all:
+ if entry not in mydigests:
+ stats["digest.missing"] += 1
+ fails["digest.missing"].append(checkdir+"::"+entry)
del myfiles_all
if os.path.exists(checkdir+"/files"):
stats[m+".syntax"] += 1
fails[m+".syntax"].append(catpkg+".ebuild "+m+": "+b)
- badlicsyntax = len([x for x in type_list if x == "LICENSE"])
- badprovsyntax = len([x for x in type_list if x == "PROVIDE"])
+ badlicsyntax = len([z for z in type_list if z == "LICENSE"])
+ badprovsyntax = len([z for z in type_list if z == "PROVIDE"])
baddepsyntax = len(type_list) != badlicsyntax + badprovsyntax
badlicsyntax = badlicsyntax > 0
badprovsyntax = badprovsyntax > 0
RESUMECOMMAND="@PORTAGE_WGET@ -c -t 5 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
# Default user options
-FEATURES="assume-digests distlocks fixpackages parallel-fetch protect-owned
+FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned
sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
# Ignore file collisions in /lib/modules since files inside this directory
the \fB\-\-jobs\fR and \fB\-\-load\-average\fR options. If you would like to
generate and distribute cache for use by others, use \fBegencache\fR(1).
.TP
-.BR "\-\-resume"
+.BR "\-\-resume" (\fB\-r\fR)
Resumes the most recent merge list that has been aborted due to an error.
Please note that this operation will only return an error on failure. If there
is nothing for portage to do, then portage will exit with a message and a
Displays the version number of \fBemerge\fR.
.SH "OPTIONS"
.TP
+.BR \-\-accept\-properties=ACCEPT_PROPERTIES
+This option temporarily overrides the \fBACCEPT_PROPERTIES\fR
+variable. The \fBACCEPT_PROPERTIES\fR variable is incremental,
+which means that the specified setting is appended to the
+existing value from your configuration. The special \fB-*\fR
+token can be used to discard the existing configuration
+value and start fresh. See the \fBMASKED PACKAGES\fR section
+and \fBmake.conf\fR(5) for more information about
+ACCEPT_PROPERTIES. A typical usage example for this option
+would be to use \fI\-\-accept\-properties=-interactive\fR to
+temporarily mask interactive packages. With default
+configuration, this would result in an effective
+\fBACCEPT_PROPERTIES\fR value of "* -interactive".
+.TP
.BR "\-\-alphabetical "
When displaying USE and other flag output, combines the enabled and
disabled lists into one list and sorts the whole list alphabetically.
\fBACCEPT_PROPERTIES\fR environment variable to allow or disallow the emerging
of a package masked by \fBPROPERTIES\fR. See \fBmake.conf\fR(5) for information
about \fBACCEPT_PROPERTIES\fR, and see \fBportage\fR(5) for information about
-\fI/etc/portage/package.properties\fR.
+\fI/etc/portage/package.properties\fR. Use the \fB\-\-accept\-properties\fR
+option to temporarily override \fBACCEPT_PROPERTIES\fR.
.SH "CONFIGURATION FILES"
Portage has a special feature called "config file protection". The purpose of
this feature is to prevent new package installs from clobbering existing
.TP
\fBACCEPT_PROPERTIES\fR = \fI[space delimited list of properties]\fR
This variable is used to mask packages based on PROPERTIES restrictions.
-See \fBebuild\fR(5) for more information about PROPERTIES.
+This varable can be temporarily overridden using the the
+\fB\-\-accept\-properties\fR option of \fBemerge\fR(1).
+See \fBebuild\fR(5) for more information about PROPERTIES.
.br
Defaults to the value of *.
.TP
portage feature called \fImultilib\-strict\fR. It will prevent emerge
from putting 64bit libraries into anything other than (/usr)/lib64.
.TP
+.B news
+Enable GLEP 42 new support. See
+\fIhttp://www.gentoo.org/proj/en/glep/glep-0042.html\fR.
+.TP
.B noauto
When utilizing \fBebuild\fR(1), only run the function requested.
.TP
.B digest.assumed
Existing digest must be assumed correct (Package level only)
.TP
+.B digest.missing
+Some files listed in SRC_URI aren't referenced in the Manifest
+.TP
+.B digest.unused
+Some files listed in the Manifest aren't referenced in SRC_URI
+.TP
.B ebuild.allmasked
All ebuilds are masked for this package (Package level only)
.TP
writemsg_level(">>> Setting --jobs=1 due " + \
"to the above interactive package(s)\n",
level=logging.INFO, noiselevel=-1)
-
+ writemsg_level(">>> In order to temporarily mask " + \
+ "interactive updates, you may\n" + \
+ ">>> specify --accept-properties=-interactive\n",
+ level=logging.INFO, noiselevel=-1)
self._status_display.quiet = \
not background or \
("--quiet" in self.myopts and \
mtimedb["resume"]["mergelist"].remove(list(pkg))
mtimedb.commit()
portage.run_exitfuncs()
- mynewargv = [sys.argv[0], "--resume"]
+ # Don't trust sys.argv[0] here because eselect-python may modify it.
+ emerge_binary = os.path.join(portage.const.PORTAGE_BIN_PATH, 'emerge')
+ mynewargv = [emerge_binary, "--resume"]
resume_opts = self.myopts.copy()
# For automatic resume, we need to prevent
# any of bad_resume_opts from leaking in
print(" "+turquoise("emerge")+" < "+turquoise("--sync")+" | "+turquoise("--metadata")+" | "+turquoise("--info")+" >")
print(" "+turquoise("emerge")+" "+turquoise("--resume")+" [ "+green("--pretend")+" | "+green("--ask")+" | "+green("--skipfirst")+" ]")
print(" "+turquoise("emerge")+" "+turquoise("--help")+" [ "+green("--verbose")+" ] ")
- print(bold("Options:")+" "+green("-")+"["+green("abBcCdDefgGhjkKlnNoOpqPsStuvV")+"]")
+ print(bold("Options:")+" "+green("-")+"["+green("abBcCdDefgGhjkKlnNoOpPqrsStuvV")+"]")
print(" [ " + green("--color")+" < " + turquoise("y") + " | "+ turquoise("n")+" > ] [ "+green("--columns")+" ]")
print(" [ "+green("--complete-graph")+" ] [ "+green("--deep")+" ]")
print(" [ "+green("--jobs") + " " + turquoise("JOBS")+" ] [ "+green("--keep-going")+" ] [ " + green("--load-average")+" " + turquoise("LOAD") + " ]")
for line in wrap(desc, desc_width):
print(desc_indent + line)
print()
- print(" "+green("--resume"))
+ print(" "+green("--resume")+" ("+green("-r")+" short option)")
print(" Resumes the most recent merge list that has been aborted due to an")
print(" error. Please note that this operation will only return an error")
print(" on failure. If there is nothing for portage to do, then portage")
print(" "+bold("emerge info")+" for more advanced information.")
print()
print(turquoise("Options:"))
+ print(" "+green("--accept-properties=ACCEPT_PROPERTIES"))
+ desc = "This option temporarily overrides the ACCEPT_PROPERTIES " + \
+ "variable. The ACCEPT_PROPERTIES variable is incremental, " + \
+ "which means that the specified setting is appended to the " + \
+ "existing value from your configuration. The special -* " + \
+ "token can be used to discard the existing configuration " + \
+ "value and start fresh. See the MASKED PACKAGES section " + \
+ "and make.conf(5) for more information about " + \
+ "ACCEPT_PROPERTIES. A typical usage example for this option " + \
+ "would be to use --accept-properties=-interactive to " + \
+ "temporarily mask interactive packages. With default " + \
+ "configuration, this would result in an effective " + \
+ "ACCEPT_PROPERTIES value of \"* -interactive\"."
+ for line in wrap(desc, desc_width):
+ print(desc_indent + line)
+ print()
print(" "+green("--alphabetical"))
print(" When displaying USE and other flag output, combines the enabled")
print(" and disabled flags into a single list and sorts it alphabetically.")
"o":"--onlydeps", "O":"--nodeps",
"p":"--pretend", "P":"--prune",
"q":"--quiet",
+"r":"--resume",
"s":"--search", "S":"--searchdesc",
"t":"--tree",
"u":"--update",
longopt_aliases = {"--cols":"--columns", "--skip-first":"--skipfirst"}
argument_options = {
+ "--accept-properties": {
+ "help":"temporarily override ACCEPT_PROPERTIES",
+ "action":"store"
+ },
"--config-root": {
"help":"specify the location for portage configuration files",
"action":"store"
os.environ["PORTAGE_CONFIGROOT"] = myopts["--config-root"]
if "--root" in myopts:
os.environ["ROOT"] = myopts["--root"]
+ if "--accept-properties" in myopts:
+ os.environ["ACCEPT_PROPERTIES"] = myopts["--accept-properties"]
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)
return False
if pkgsettings._getMissingKeywords(pkg.cpv, pkg.metadata):
return False
+ try:
+ if pkgsettings._getMissingProperties(pkg.cpv, pkg.metadata):
+ return False
+ except portage.exception.InvalidDependString:
+ return False
if pkgsettings._getMaskAtom(pkg.cpv, pkg.metadata):
return False
if pkgsettings._getProfileMaskAtom(pkg.cpv, pkg.metadata):
try:
if pkgsettings._getMissingLicenses(pkg.cpv, pkg.metadata):
return False
- if pkgsettings._getMissingProperties(pkg.cpv, pkg.metadata):
- return False
except portage.exception.InvalidDependString:
return False
return True
-