Skip to content

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

Merged
miss-islington merged 1 commit into
python:3.10from
miss-islington:backport-563bd5a-3.10
May 24, 2021
Merged

[3.10] bpo-41282: Fix broken make install (GH-26329)#26336
miss-islington merged 1 commit into
python:3.10from
miss-islington:backport-563bd5a-3.10

Conversation

@miss-islington

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

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor Author

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

@miss-islington

Copy link
Copy Markdown
Contributor Author

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

@miss-islington

Copy link
Copy Markdown
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

5 participants