commit: c35f39af1ae591c9df50da52e83067428a10f80a
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 17 08:55:22 2020 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 17 09:37:45 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c35f39af
process: Provide libc fallback for sethostname() on PyPy
Reviewed-by: Zac Medico <zmedico <AT> gentoo.org>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
lib/portage/process.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/portage/process.py b/lib/portage/process.py
index 79052b608..ceb454030 100644
--- a/lib/portage/process.py
+++ b/lib/portage/process.py
@@ -715,7 +715,14 @@ def _exec(binary, mycommand, opt_name, fd_pipes,
if unshare_net:
# use 'localhost' to
avoid hostname resolution problems
try:
-
socket.sethostname('localhost')
+ # pypy3 does
not implement socket.sethostname()
+ new_hostname =
b'localhost'
+ if
hasattr(socket, 'sethostname'):
+
socket.sethostname(new_hostname)
+ else:
+ if
libc.sethostname(new_hostname, len(new_hostname)) != 0:
+
errno_value = ctypes.get_errno()
+
raise OSError(errno_value, os.strerror(errno_value))
except Exception as e:
writemsg("Unable to set hostname: %s (for FEATURES=\"network-sandbox\")\n" % (
e,),