try:
catdir_lock = portage_locks.lockdir(catdir)
portage_util.ensure_dirs(catdir,
- uid=portage.portage_uid, gid=portage.portage_gid,
+ gid=portage.portage_gid,
mode=070, mask=0)
builddir_lock = portage_locks.lockdir(
pkgsettings["PORTAGE_BUILDDIR"])
ldpath_mtimes = mtimedb["ldpath"]
favorites=[]
merge_count = 0
+ buildpkgonly = "--buildpkgonly" in myopts
pretend = "--pretend" in myopts
fetchonly = "--fetchonly" in myopts or "--fetch-all-uri" in myopts
ask = "--ask" in myopts
+ " AUTOCLEAN is disabled. This can cause serious"
+ " problems due to overlapping packages.\n")
- if merge_count and not (pretend or fetchonly):
+ if merge_count and not (buildpkgonly or fetchonly or pretend):
post_emerge(settings, mtimedb, retval)
return retval
emergehelp.help(myaction, myopts, output.havecolor)
sys.exit(1)
+ pretend = "--pretend" in myopts
+ fetchonly = "--fetchonly" in myopts or "--fetch-all-uri" in myopts
+ buildpkgonly = "--buildpkgonly" in myopts
+
# check if root user is the current user for the actions where emerge needs this
if portage.secpass < 2:
# We've already allowed "--version" and "--help" above.
if "--pretend" not in myopts and myaction not in ("search","info"):
need_superuser = not \
- ("--fetchonly" in myopts or \
- "--fetch-all-uri" in myopts or \
+ (fetchonly or \
+ (buildpkgonly and secpass >= 1) or \
myaction in ("metadata", "regen") or \
(myaction == "sync" and os.access(settings["PORTDIR"], os.W_OK)))
if portage.secpass < 1 or \
vartree = trees[settings["ROOT"]]["vartree"]
if 1 == unmerge(settings, myopts, vartree, myaction, myfiles,
mtimedb["ldpath"]):
- if "--pretend" not in myopts:
+ if not (buildpkgonly or fetchonly or pretend):
post_emerge(settings, mtimedb, 0)
elif myaction in ("depclean", "prune"):
validate_ebuild_environment(trees)
action_depclean(settings, trees, mtimedb["ldpath"],
myopts, myaction, myfiles, spinner)
- if "--pretend" not in myopts:
+ if not (buildpkgonly or fetchonly or pretend):
post_emerge(settings, mtimedb, 0)
# "update", "system", or just process files:
else:
if not free:
free=((droppriv and "usersandbox" not in features) or \
(not droppriv and "sandbox" not in features and \
- "usersandbox" not in features))
+ "usersandbox" not in features and not fakeroot))
if free or "SANDBOX_ACTIVE" in os.environ:
keywords["opt_name"] += " bash"
vartree = db[myroot]["vartree"]
features = mysettings.features
+ from portage_data import secpass
validcommands = ["help","clean","prerm","postrm","cleanrm","preinst","postinst",
"config","info","setup","depend","fetch","digest",
"sesandbox" in mysettings.features
droppriv = "userpriv" in mysettings.features and \
- "userpriv" not in restrict
+ "userpriv" not in restrict and \
+ secpass >= 2
fakeroot = "fakeroot" in mysettings.features