commit: dc01d71c3612542e9796e34e91e78552e8724b89
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 27 04:40:18 2025 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Oct 27 04:40:39 2025 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=dc01d71c
_drop_privs_userfetch: ensure cwd is accessible
The cwd needs to be accessible in order for the multiprocessing
spawn start method to succeed:
File "/usr/lib/python3.14/multiprocessing/spawn.py", line 235, in prepare
os.chdir(data['dir'])
~~~~~~~~^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/root'
Bug: https://bugs.gentoo.org/965138
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
lib/portage/package/ebuild/fetch.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/portage/package/ebuild/fetch.py
b/lib/portage/package/ebuild/fetch.py
index 0ea5f57a92..bee2e10893 100644
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@ -120,6 +120,10 @@ def _drop_privs_userfetch(settings):
os.setuid(int(spawn_kwargs["uid"]))
os.umask(spawn_kwargs["umask"])
portage.data.secpass = 1
+ try:
+ os.chdir(settings.get("HOME", "/"))
+ except Exception:
+ os.chdir("/")
def _spawn_fetch(settings, args, **kwargs):