Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.10] bpo-41282: Fix broken make install (GH-26329) #26336

Merged
merged 1 commit into from
May 24, 2021

Conversation

miss-islington
Copy link
Contributor

@miss-islington miss-islington commented May 24, 2021

A previous commit broke a check in sysconfig when building cpython itself.
This caused builds of the standard library modules to search a wrong
location (the installed location rather than the source directory) for
header files with the net effect that a make install
incorrectly caused all extension modules to be rebuilt again and
with incorrect include file paths.

When building Python, we need two distinct "include" directories:

  • source .h files
  • install target for .h files

Note that this doesn't matter except when building Python from source.

Historically:

  • source .h files were in the distutils scheme under 'include'
  • the install directory was in the distutils.command.install scheme
    under 'headers'

GH-24549 merged these; sysconfig is now the single source of truth and
distutils is derived from it.

This commit introduces a "secret" scheme path, 'headers', which contains
the install target. It is only present when building Python.
The distutils code uses it if present, and falls back to 'include'.

Co-authored-by: Ned Deily nad@python.org
(cherry picked from commit 563bd5a)

Co-authored-by: Petr Viktorin encukou@gmail.com

https://bugs.python.org/issue41282

Automerge-Triggered-By: GH:ned-deily

A previous commit broke a check in sysconfig when building cpython itself.
This caused builds of the standard library modules to search a wrong
location (the installed location rather than the source directory) for
header files with the net effect that a ``make install``
incorrectly caused all extension modules to be rebuilt again and
with incorrect include file paths.

When building Python, we need two distinct "include" directories:
- source .h files
- install target for .h files

Note that this doesn't matter except when building Python from source.

Historically:
- source .h files were in the distutils scheme under 'include'
- the install directory was in the distutils.command.install scheme
    under 'headers'

pythonGH-24549 merged these; sysconfig is now the single source of truth and
distutils is derived from it.

This commit introduces a "secret" scheme path, 'headers', which contains
the install target. It is only present when building Python.
The distutils code uses it if present, and falls back to 'include'.

Co-authored-by: Ned Deily <nad@python.org>
(cherry picked from commit 563bd5a)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
@miss-islington
Copy link
Contributor Author

@encukou and @ned-deily: Status check is done, and it's a success ✅ .

@miss-islington
Copy link
Contributor Author

@encukou and @ned-deily: Status check is done, and it's a success ✅ .

@miss-islington
Copy link
Contributor Author

@encukou and @ned-deily: Status check is done, and it's a success ✅ .

@miss-islington miss-islington merged commit 1c454eb into python:3.10 May 24, 2021
@miss-islington miss-islington deleted the backport-563bd5a-3.10 branch May 24, 2021 23:13
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.

5 participants