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,),