-
Notifications
You must be signed in to change notification settings - Fork 84
Closed
pypa/setuptools
#3617Description
c7d65dd switched over to pathlib for performing config file checks. Specifically moving from os.path.isfile(...) to pathlib.Path(...).is_file(). The behavior of pathlib seems different than os. Pathlib is propagating permission errors in certain situations where the file doesn't exist or can't be accessed.
It seems like adding error handling in distutils.dist.file_config_files could resolve the issue.
Here's the result of running python -m build with setuptools 65.0.4 (includes the most vendored commit) as the root user in ci.
* Creating venv isolated environment...\n' +
'* Installing packages in isolated environment... (setuptools >= 40.9.0, wheel)\n' +
'* Getting dependencies for sdist...\n' +
'\n' +
'ERROR Backend subprocess exited when trying to invoke get_requires_for_build_sdist',
stderr: 'Traceback (most recent call last):\n' +
' File "/usr/local/lib/python3.9/dist-packages/pep517/in_process/_in_process.py", line 351, in <module>\n' +
' main()\n' +
' File "/usr/local/lib/python3.9/dist-packages/pep517/in_process/_in_process.py", line 333, in main\n' +
" json_out['return_val'] = hook(**hook_input['kwargs'])\n" +
' File "/usr/local/lib/python3.9/dist-packages/pep517/in_process/_in_process.py", line 285, in get_requires_for_build_sdist\n' +
' return hook(config_settings)\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_sdist\n' +
' return self._get_build_requires(config_settings, requirements=[])\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires\n' +
' self.run_setup()\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/build_meta.py", line 335, in run_setup\n' +
' exec(code, locals())\n' +
' File "<string>", line 4, in <module>\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/__init__.py", line 86, in setup\n' +
' _install_setup_requires(attrs)\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/__init__.py", line 78, in _install_setup_requires\n' +
' dist.parse_config_files(ignore_option_errors=True)\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/dist.py", line 862, in parse_config_files\n' +
' self._parse_config_files(filenames=inifiles)\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/dist.py", line 704, in _parse_config_files\n' +
' filenames = self.find_config_files()\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 337, in find_config_files\n' +
' files = [str(path) for path in self._gen_paths() if path.is_file()]\n' +
' File "/tmp/build-env-eq3q247f/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 337, in <listcomp>\n' +
' files = [str(path) for path in self._gen_paths() if path.is_file()]\n' +
' File "/usr/lib/python3.9/pathlib.py", line 1456, in is_file\n' +
' return S_ISREG(self.stat().st_mode)\n' +
' File "/usr/lib/python3.9/pathlib.py", line 1232, in stat\n' +
' return self._accessor.stat(self)\n' +
"PermissionError: [Errno 13] Permission denied: '/root/.pydistutils.cfg'"victoriarouton
Metadata
Metadata
Assignees
Labels
No labels