commit: 54cdf7e6cf9ec2030283ab23d659e10562267c6b
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 13 23:59:43 2020 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Jun 14 00:00:16 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=54cdf7e6
PipeLogger: fix FEATURES=compress-build-logs (bug 709746)
For FEATURES=compress-build-logs, use log_file.write since data written
directly to the file descriptor bypasses compression.
Fixes: 3e46825a0470 ("PipeLogger: non-blocking write to pipe (bug 709746)")
Bug: https://bugs.gentoo.org/709746
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
lib/portage/util/_async/PipeLogger.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lib/portage/util/_async/PipeLogger.py
b/lib/portage/util/_async/PipeLogger.py
index 83669e05e..1776cc860 100644
--- a/lib/portage/util/_async/PipeLogger.py
+++ b/lib/portage/util/_async/PipeLogger.py
@@ -131,6 +131,13 @@ class PipeLogger(AbstractPollTask):
fcntl.F_GETFL)
^ os.O_NONBLOCK)
if log_file is not None:
+ if isinstance(log_file, gzip.GzipFile):
+ # Use log_file.write since data
written directly
+ # to the file descriptor
bypasses compression.
+ log_file.write(buf)
+ log_file.flush()
+ continue
+
write_buf = buf
while write_buf:
try: