diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-04-22 10:56:01 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-04-22 10:56:01 -0700 |
commit | b93b24f9fa1b2761aa0768274bd93ade9b526961 (patch) | |
tree | dfe3d7409184b6c140ded3dba3d4460b9be25312 /pym/portage/package | |
parent | e706a3dbc922130fe52a6513e9b91af7afc843aa (diff) | |
download | portage-b93b24f9fa1b2761aa0768274bd93ade9b526961.tar.gz portage-b93b24f9fa1b2761aa0768274bd93ade9b526961.tar.bz2 portage-b93b24f9fa1b2761aa0768274bd93ade9b526961.zip |
Add ${T}/build.log symlink to PORT_LOGDIR.
This will fix bug #412865. This makes it easier on people who
`emerge foo`, do stuff, `emerge foo`, do stuff, etc... to have
the same path to the log in between runs.
Diffstat (limited to 'pym/portage/package')
-rw-r--r-- | pym/portage/package/ebuild/prepare_build_dirs.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/pym/portage/package/ebuild/prepare_build_dirs.py b/pym/portage/package/ebuild/prepare_build_dirs.py index 50b14ec91..b8fbdc5cf 100644 --- a/pym/portage/package/ebuild/prepare_build_dirs.py +++ b/pym/portage/package/ebuild/prepare_build_dirs.py @@ -346,13 +346,31 @@ def _prepare_workdir(mysettings): writemsg(_unicode_decode("!!! %s: %s\n") % (_("Permission Denied"), log_subdir), noiselevel=-1) + tmpdir_log_path = os.path.join( + mysettings["T"], "build.log%s" % compress_log_ext) if not logdir_subdir_ok: # NOTE: When sesandbox is enabled, the local SELinux security policies # may not allow output to be piped out of the sesandbox domain. The # current policy will allow it to work when a pty is available, but # not through a normal pipe. See bug #162404. - mysettings["PORTAGE_LOG_FILE"] = os.path.join( - mysettings["T"], "build.log%s" % compress_log_ext) + mysettings["PORTAGE_LOG_FILE"] = tmpdir_log_path + else: + # Create a symlink from tmpdir_log_path to PORTAGE_LOG_FILE, as + # requested in bug #412865. + make_new_symlink = False + try: + target = os.readlink(tmpdir_log_path) + except OSError: + make_new_symlink = True + else: + if target != mysettings["PORTAGE_LOG_FILE"]: + make_new_symlink = True + if make_new_symlink: + try: + os.unlink(tmpdir_log_path) + except OSError: + pass + os.symlink(mysettings["PORTAGE_LOG_FILE"], tmpdir_log_path) def _ensure_log_subdirs(logdir, subdir): """ |