diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-04-29 00:40:43 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-04-29 00:40:43 +0000 |
commit | 367042c0eddb16adde0b7b559cde4e8c48d3c3a5 (patch) | |
tree | ab6efd1f39f0b469e3d33e9ef1a46fbada421d04 /pym/portage.py | |
parent | ab46658189ea0daddc6d9da43f312a3df1db2e09 (diff) | |
download | portage-367042c0eddb16adde0b7b559cde4e8c48d3c3a5.tar.gz portage-367042c0eddb16adde0b7b559cde4e8c48d3c3a5.tar.bz2 portage-367042c0eddb16adde0b7b559cde4e8c48d3c3a5.zip |
Catch Permission Denied errors during manifest/digest generation for bug #131073.
svn path=/main/trunk/; revision=3263
Diffstat (limited to 'pym/portage.py')
-rw-r--r-- | pym/portage.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/pym/portage.py b/pym/portage.py index f17bf054c..cf5b700fc 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2710,17 +2710,19 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0, if mydo=="fetch" and listonly: return 0 - if "digest" in features: - #generate digest if it doesn't exist. - if mydo=="digest": - return (not digestgen(aalist, mysettings, overwrite=1, myportdb=mydbapi)) - else: + try: + if mydo == "manifest": + return not digestgen(aalist, mysettings, overwrite=1, + manifestonly=1, myportdb=mydbapi) + elif mydo == "digest": + return not digestgen(aalist, mysettings, overwrite=1, + myportdb=mydbapi) + elif "digest" in mysettings.features: digestgen(aalist, mysettings, overwrite=0, myportdb=mydbapi) - elif mydo=="digest": - #since we are calling "digest" directly, recreate the digest even if it already exists - return (not digestgen(aalist, mysettings, overwrite=1, myportdb=mydbapi)) - if mydo=="manifest": - return (not digestgen(aalist,mysettings,overwrite=1,manifestonly=1, myportdb=mydbapi)) + except portage_exception.PermissionDenied, e: + writemsg("!!! %s\n" % str(e)) + if mydo in ("digest", "manifest"): + return 1 # See above comment about fetching only when needed if not digestcheck(checkme, mysettings, ("strict" in features), |