summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-11 00:50:03 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-11 00:50:03 +0000
commit9ed3fd241f19521673106325ac72707b291a5868 (patch)
tree86740dd20c674a7d25f7af9b3c7066ca70f1e0cc /bin/emerge
parente9aff24b881a700257b2056114189755303c908c (diff)
downloadportage-9ed3fd241f19521673106325ac72707b291a5868.tar.gz
portage-9ed3fd241f19521673106325ac72707b291a5868.tar.bz2
portage-9ed3fd241f19521673106325ac72707b291a5868.zip
Tweak --buildpkgonly and fakeroot logic so that --buildpkgonly can be
used by a non-root user to build binary packages with fakeroot. (trunk r9825) svn path=/main/branches/2.1.2/; revision=9826
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge17
1 files changed, 11 insertions, 6 deletions
diff --git a/bin/emerge b/bin/emerge
index d61c473e5..e1ee662b1 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -4921,7 +4921,7 @@ class MergeTask(object):
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"])
@@ -6971,6 +6971,7 @@ def action_build(settings, trees, mtimedb,
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
@@ -7273,7 +7274,7 @@ def action_build(settings, trees, mtimedb,
+ " 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
@@ -7715,13 +7716,17 @@ def emerge_main():
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 \
@@ -7823,14 +7828,14 @@ def emerge_main():
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: