]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-134632: Fix `build-details.json` to use `INCLUDEPY` path (#134633)
authorMichał Górny <mgorny@gentoo.org>
Tue, 17 Jun 2025 08:05:04 +0000 (10:05 +0200)
committerGitHub <noreply@github.com>
Tue, 17 Jun 2025 08:05:04 +0000 (08:05 +0000)
* gh-134632: Fix `build-details.json` to use `INCLUDEPY` path

Fix ``build-details.json`` generation to use ``INCLUDEPY``, in order to
reference the ``pythonX.Y`` subdirectory of the include directory, as
required in :pep:`739`, instead of the top-level include directory.

* test_build_details: Add tests for the c_api section

* test_build_details: Expect pkgconfig for CPython unconditionally

Lib/test/test_build_details.py
Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst [new file with mode: 0644]
Tools/build/generate-build-details.py

index 05ce163a33788134d5efdf2d1027dad9728d9632..33ade161fb5058cb3476618d5e639d57517ab496 100644 (file)
@@ -123,6 +123,13 @@ class CPythonBuildDetailsTests(unittest.TestCase, FormatTestsBase):
 
         self.assertEqual(os.path.realpath(value), os.path.realpath(sys.executable))
 
+    @needs_installed_python
+    def test_c_api(self):
+        value = self.key('c_api')
+        self.assertTrue(os.path.exists(os.path.join(value['headers'], 'Python.h')))
+        version = sysconfig.get_config_var('VERSION')
+        self.assertTrue(os.path.exists(os.path.join(value['pkgconfig_path'], f'python-{version}.pc')))
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst b/Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst
new file mode 100644 (file)
index 0000000..f41c874
--- /dev/null
@@ -0,0 +1,3 @@
+Fixed ``build-details.json`` generation to use ``INCLUDEPY``, in order to
+reference the ``pythonX.Y`` subdirectory of the include directory, as
+required in :pep:`739`, instead of the top-level include directory.
index 87e262065ec87b1a3038903502fc6af7f3e8bf88..8cd23e2f54f5296089f3c931962ff188c007a1f2 100644 (file)
@@ -75,7 +75,7 @@ def generate_data(schema_version: str) -> collections.defaultdict[str, Any]:
     PY3LIBRARY = sysconfig.get_config_var('PY3LIBRARY')
     LIBPYTHON = sysconfig.get_config_var('LIBPYTHON')
     LIBPC = sysconfig.get_config_var('LIBPC')
-    INCLUDEDIR = sysconfig.get_config_var('INCLUDEDIR')
+    INCLUDEPY = sysconfig.get_config_var('INCLUDEPY')
 
     if os.name == 'posix':
         # On POSIX, LIBRARY is always the static library, while LDLIBRARY is the
@@ -123,7 +123,7 @@ def generate_data(schema_version: str) -> collections.defaultdict[str, Any]:
     if has_static_library:
         data['libpython']['static'] = os.path.join(LIBDIR, LIBRARY)
 
-    data['c_api']['headers'] = INCLUDEDIR
+    data['c_api']['headers'] = INCLUDEPY
     if LIBPC:
         data['c_api']['pkgconfig_path'] = LIBPC