portage.portdb.freeze()
# Kill noauto as it will break merges otherwise.
-while 'noauto' in portage.features:
- del portage.features[portage.features.index('noauto')]
+while 'noauto' in portage.settings.features:
+ portage.settings.features.remove('noauto')
#number of ebuilds merged
merged=0
# Always create packages if FEATURES=buildpkg
# Imply --buildpkg if --buildpkgonly
-if ("buildpkg" in portage.features) or ("--buildpkgonly" in myopts):
+if ("buildpkg" in portage.settings.features) or ("--buildpkgonly" in myopts):
if "--buildpkg" not in myopts:
myopts.append("--buildpkg")
myaction = "search"
# Always try and fetch binary packages if FEATURES=getbinpkg
-if ("getbinpkg" in portage.features):
+if ("getbinpkg" in portage.settings.features):
myopts.append("--getbinpkg")
if "--skipfirst" in myopts and "--resume" not in myopts:
portage.settings.backup_changes("PORTAGE_DEBUG")
portage.debug=1
portage.settings.lock()
- if "python-trace" in portage.features:
+ if "python-trace" in portage.settings.features:
import portage_debug
portage_debug.set_trace(True)
EMERGE_WARNING_DELAY = string.atoi("0"+portage.settings["EMERGE_WARNING_DELAY"])
def emergelog(mystr,short_msg=None):
- if "notitles" not in portage.features:
+ if "notitles" not in portage.settings.features:
if short_msg:
xtermTitle(short_msg)
else:
"""This gets out final log message in before we quit."""
if "--pretend" not in myopts:
emergelog(" *** terminating.")
- if "notitles" not in portage.features:
+ if "notitles" not in portage.settings.features:
xtermTitleReset()
portage.atexit_register(emergeexit)
os.execv(mynewargv[0], mynewargv)
if ("--pretend" not in myopts) and ("--fetchonly" not in myopts) and ("--fetch-all-uri" not in myopts):
- if "noclean" not in portage.features:
+ if "noclean" not in portage.settings.features:
short_msg = "emerge: (%s of %s) %s Clean Post" % \
(mergecount, len(mymergelist), x[pkgindex])
emergelog(" === (%s of %s) Post-Build Cleaning (%s::%s)" % \
output=commands.getstatusoutput("distcc --version")
if not output[0]:
print str(string.split(output[1],"\n",1)[0]),
- if "distcc" in portage.features:
+ if "distcc" in portage.settings.features:
print "[enabled]"
else:
print "[disabled]"
output=commands.getstatusoutput("ccache -V")
if not output[0]:
print str(string.split(output[1],"\n",1)[0]),
- if "ccache" in portage.features:
+ if "ccache" in portage.settings.features:
print "[enabled]"
else:
print "[disabled]"
myreporoot=None
if os.path.isdir("CVS"):
repoman_settings["PORTDIR_OVERLAY"]=""
- if "cvs" not in portage.features:
+ if "cvs" not in repoman_settings.features:
print
print
print red('!!! You do not have ')+bold('FEATURES="cvs" ')+red("enabled...")
else:
stats["digest.partial"] += 1
fails["digest.partial"].append(y+"::"+myf)
- elif "assume-digests" not in portage.features:
+ elif "assume-digests" not in repoman_settings.features:
if os.path.exists(myff):
if not portage_checksum.verify_all(myff, mydigests[myf]):
stats["digest.fail"] += 1
sys.exit(1)
# Force an unsigned commit when more than one Manifest needs to be signed.
- if repolevel < 3 and "sign" in portage.features:
+ if repolevel < 3 and "sign" in repoman_settings.features:
if "--pretend" in myoptions:
print "(/usr/bin/cvs -q commit -F "+commitmessagefile+")"
else:
need_commit = True
signed = False
- if "sign" in portage.features:
+ if "sign" in repoman_settings.features:
signed = True
try:
if repolevel==3: # In a package dir
return rlist
starttime=long(time.time())
-features=[]
def tokenize(mystring):
"""breaks a string like 'foo? (bar) oni? (blah (blah))'
env=mysettings.environ()
keywords["opt_name"]="[%s]" % mysettings["PF"]
+ features = mysettings.features
# XXX: Negative RESTRICT word
droppriv=(droppriv and ("userpriv" in features) and not \
(("nouserpriv" in string.split(mysettings["RESTRICT"])) or \
def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",use_locks=1, try_mirrors=1):
"fetch files. Will use digest file if available."
+ features = mysettings.features
# 'nomirror' is bad/negative logic. You Restrict mirroring, not no-mirroring.
if ("mirror" in mysettings["RESTRICT"].split()) or \
("nomirror" in mysettings["RESTRICT"].split()):
# parse actionmap to spawn ebuild with the appropriate args
def spawnebuild(mydo,actionmap,mysettings,debug,alwaysdep=0,logfile=None):
- if alwaysdep or ("noauto" not in features):
+ if alwaysdep or "noauto" not in mysettings.features:
# process dependency first
if "dep" in actionmap[mydo].keys():
retval=spawnebuild(actionmap[mydo]["dep"],actionmap,mysettings,debug,alwaysdep=alwaysdep,logfile=logfile)
filemode = 060
modemask = 02
for myfeature, kwargs in features_dirs.iteritems():
- if myfeature in features:
+ if myfeature in mysettings.features:
basedir = mysettings[kwargs["basedir_var"]]
if basedir == "":
basedir = kwargs["default_dir"]
raise portage_exception.OperationNotPermitted(
"Failed to apply recursive permissions for the portage group.")
except portage_exception.PortageException, e:
- features.remove(myfeature)
- mysettings["FEATURES"] = " ".join(features)
+ mysettings.features.remove(myfeature)
+ mysettings["FEATURES"] = " ".join(mysettings.features)
writemsg("!!! %s\n" % str(e))
writemsg("!!! Failed resetting perms on %s='%s'\n" % (kwargs["basedir_var"], basedir))
writemsg("!!! Disabled FEATURES='%s'\n" % myfeature)
def doebuild(myebuild,mydo,myroot,mysettings,debug=0,listonly=0,fetchonly=0,cleanup=0,dbkey=None,use_cache=1,fetchall=0,tree=None):
global db, actionmap_deps
-
+ features = mysettings.features
if not tree:
dump_traceback("Warning: tree not specified to doebuild")
tree = "porttree"
otherversions.append(v.split("/")[1])
# check for package collisions
- if "collision-protect" in features:
+ if "collision-protect" in self.settings.features:
myfilelist = listdir(srcroot, recursive=1, filesonly=1, followSymlinks=False)
# the linkcheck only works if we are in srcroot
# We gotta do the brute force updates for these now.
if settings["PORTAGE_CALLER"] == "fixpackages" or \
- "fixpackages" in features:
+ "fixpackages" in settings.features:
db["/"]["bintree"].update_ents(myupd)
else:
do_upgrade_packagesmessage = 1
except (IOError, OSError):
mtimedb = {"updates":{}, "version":"", "starttime":0}
-features=settings["FEATURES"].split()
db["/"].addLazySingleton("porttree", portagetree, "/")
db["/"].addLazyItem("bintree", LazyBintreeItem("/"))
groups = settings["ACCEPT_KEYWORDS"].split() # DEPRECATED (no longer used)
archlist = settings.archlist() # DEPRECATED (no longer used)
+features = settings.features # DEPRECATED (no longer used)
# Clear the cache
dircache={}