Skip to content

Merge with distutils#2935

Merged
jaraco merged 14 commits intomainfrom
distutils
Dec 20, 2021
Merged

Merge with distutils#2935
jaraco merged 14 commits intomainfrom
distutils

Conversation

@jaraco
Copy link
Copy Markdown
Member

@jaraco jaraco commented Dec 19, 2021

  • Extract 'incomplete_scheme' as a variable for readability.
  • Extract _pypy_hack method.
  • Honor sysconfig.get_preferred_scheme when selecting install schemes. Fixes upload.py failure in python 2.4 #76.
  • msvc9compiler: Don't raise DistutilsPlatformError on import
  • tests: skip uid/gid using tests under Cygwin
  • CI: add a CI job for testing under Cygwin
  • cygwinccompiler: Split CC env var before passing to subprocess
  • Extract grp/pwd handling to a unix_compat module.

Summary of changes

Closes

Pull Request Checklist

jaraco and others added 14 commits December 17, 2021 09:43
It gets raised when get_build_version() returns a too low version
or when it fails to detect a MSVC version, which for exaple is the
case when CPython is built with gcc/clang.

In theory this module isn't needed on non-MSVC platforms, but setuptools
imports it anyway when monkey patching, which in turn makes setuptools fail.

To work around this only check the version when initialising MSVCCompiler().

This also mirrors the behaviour of the newer MSVCCompiler() (in _msvccompiler)
which also raises DistutilsPlatformError() only on initialisation in case
it can't find the right MSVC.
There is no single user/group with UID/GID=0 under Cygwin unlike Unix.
Skip the tests that assume this for now.
There are some tests skipped because of missing docutils, but
cygwin currently is missing a docutils package for Python 3.9
4113bc3 added support for clang by respecting the CC env variable.
The content of the env var gets passed to check_output() as the compiler
executable. But CC is not just a path to an executable but a command line,
such as "ccache gcc" which makes checkout_output() fail in those cases because
it will try to look for "ccache gcc" in PATH instead of "ccache".

To fix the issue use shlex to parse the command line before passing it to
check_output().
Honor sysconfig.get_preferred_scheme when selecting install schemes.
cygwinccompiler: Split CC env var before passing to subprocess
msvc9compiler: Don't raise DistutilsPlatformError on import
CI: Add a test job for Cygwin
@jaraco jaraco merged commit 8a3d3c4 into main Dec 20, 2021
@jaraco jaraco deleted the distutils branch December 20, 2021 00:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

upload.py failure in python 2.4

2 participants