This variable specifies a command that filters build log output to a log file. The plan is to extend this to support a separate filter for tty output in the future.
Previous versions of these patches were affected by bug 716636 which was due to unsafe remove_reader and remove_writer calls in finally clauses of the PipeLogger _io_loop coroutine. The remove_reader and remove_writer calls are now skipped if the corresponding file object has already been closed (which is normal if the coroutine has been cancelled). Since this kind of bug is not easy to reproduce, currently Rick Farina <zeroch...@gentoo.org> is testing the patches in order to verify that they do not trigger emerge hangs like bug 716636. Bug: https://bugs.gentoo.org/709746 Bug: https://bugs.gentoo.org/716636 Zac Medico (2): PipeLogger: non-blocking write to pipe (bug 709746) Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746) lib/_emerge/AbstractEbuildProcess.py | 3 +- lib/_emerge/BinpkgFetcher.py | 3 +- lib/_emerge/EbuildFetcher.py | 3 +- lib/_emerge/EbuildPhase.py | 47 ++++++-- lib/_emerge/SpawnProcess.py | 58 +++++++--- lib/portage/dbapi/_MergeProcess.py | 3 +- .../ebuild/_config/special_env_vars.py | 8 +- lib/portage/tests/process/test_PipeLogger.py | 58 ++++++++++ lib/portage/util/_async/BuildLogger.py | 109 ++++++++++++++++++ lib/portage/util/_async/PipeLogger.py | 73 +++++++++--- lib/portage/util/_async/SchedulerInterface.py | 32 ++++- man/make.conf.5 | 7 +- 12 files changed, 358 insertions(+), 46 deletions(-) create mode 100644 lib/portage/tests/process/test_PipeLogger.py create mode 100644 lib/portage/util/_async/BuildLogger.py -- 2.25.3