commit: cd44fea4c8c8154fee74bcc37529c0d5c2e9d789 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sat May 26 05:46:36 2018 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sat May 26 06:07:55 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=cd44fea4
prepare_build_dirs: convert PermissionError to PermissionDenied (bug 656542) This supresses display of a big PermissionError traceback for bin/ebuild, like in https://bugs.gentoo.org/656542#c0, and also suppresses additional messages that may occur when the unhandled PermissionError prevents bin/ebuild from cleanly closing the asyncio event loop. Bug: https://bugs.gentoo.org/656542 pym/portage/package/ebuild/prepare_build_dirs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pym/portage/package/ebuild/prepare_build_dirs.py b/pym/portage/package/ebuild/prepare_build_dirs.py index 21e2aa87c..e53ccd0fb 100644 --- a/pym/portage/package/ebuild/prepare_build_dirs.py +++ b/pym/portage/package/ebuild/prepare_build_dirs.py @@ -19,6 +19,7 @@ from portage.localization import _ from portage.output import colorize from portage.util import apply_recursive_permissions, \ apply_secpass_permissions, ensure_dirs, normalize_path, writemsg +from portage.util.install_mask import _raise_exc from portage.const import EPREFIX def prepare_build_dirs(myroot=None, settings=None, cleanup=False): @@ -50,7 +51,9 @@ def prepare_build_dirs(myroot=None, settings=None, cleanup=False): clean_dir, noiselevel=-1) return 1 else: - raise + # Wrap with PermissionDenied if appropriate, so that callers + # display a short error message without a traceback. + _raise_exc(oe) def makedirs(dir_path): try:
