)]}'
{
  "commit": "5d072cb2a68506445844112e95b732c4287f39a0",
  "tree": "f1c87e792dd8a25685f8d696b8e9a9fd05e6d892",
  "parents": [
    "7551c28a2500398eb44d55c021144684af6baf29"
  ],
  "author": {
    "name": "Alexandru Ardelean",
    "email": "ardeleanalex@gmail.com",
    "time": "Wed May 27 11:28:58 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 27 11:28:58 2026"
  },
  "message": "cffi: derive Python include dir from PYO3_CROSS_LIB_DIR when cross-compiling (#14904)\n\nWhen cross-compiling, ``cryptography-cffi/build.rs`` queries the host\ninterpreter via ``setuptools.command.build_ext.build_ext.include_dirs``\nand feeds the result into ``cc-rs`` as ``-I /usr/include/python3.X``.\nOn hosts that happen to ship Python development headers for the same\n3.X line as the target (e.g. an Arch Linux build host with Python 3.14\ninstalled), the host headers leak into the cross build and the target\ncompiler aborts with::\n\n    /usr/include/python3.14/pyport.h:429:2: error: #error \"LONG_BIT\n    definition appears wrong for platform (bad gcc/glibc config?).\"\n\n``PYO3_CROSS_LIB_DIR`` is the documented PyO3 cross-compile signal and\npoints at the target\u0027s libpython directory. When it is set, derive the\nmatching Python include dir from it (``\u003cprefix\u003e/include/\u003cpy_ver\u003e``) and\nskip the host setuptools probe entirely. Native builds keep the\nexisting setuptools-based behaviour, so this is a no-op outside of\nPyO3-style cross builds.\n\nThis is consistent with the existing ``PYO3_PYTHON`` handling in the\nsame file: cryptography-cffi already respects PyO3\u0027s cross-compile\nenvironment for picking the interpreter, and this extends that to the\nmatching header directory.\n\nSigned-off-by: Alexandru Ardelean \u003calex@shruggie.ro\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cb4fad3ab4ed5802a4a14c9fc67f27792918632",
      "old_mode": 33188,
      "old_path": "CHANGELOG.rst",
      "new_id": "13f9c523ff7e08b0f06ef9c48070b77765e13d6a",
      "new_mode": 33188,
      "new_path": "CHANGELOG.rst"
    },
    {
      "type": "modify",
      "old_id": "3704edd2d3bfd7cbc42d7aa852eacaa88ac9f41e",
      "old_mode": 33188,
      "old_path": "src/rust/cryptography-cffi/build.rs",
      "new_id": "82bb141a7a5fcf04dbcdbced5606b882fbb528d5",
      "new_mode": 33188,
      "new_path": "src/rust/cryptography-cffi/build.rs"
    }
  ]
}
