mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-09 17:03:35 -09:00
package/python-pybind: overwrite 'pybind11/_version.py' with a hard-coded version
Fixes build error with python-pillow since its version bump to 12.0.0
which introduced a dependency to pybind with buildroot commit
5f446a8d6d:
FileNotFoundError: [Errno 2] No such file or directory:
'/home/bernd/buildroot/output/host/lib/python3.13/site-packages/include/pybind11/detail/common.h'
Implement the solution suggested by Vincent Fazio [1]:
Generate `pybind11/_version.py` file with a hard-coded version to avoid
copying pybind11 headers in HOST_DIR.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/13138981946 (TestPythonPybind)
[1] https://lists.busybox.net/pipermail/buildroot/2026-February/796082.html
Cc: Vincent Fazio <vfazio@xes-inc.com>
Cc: James Hilliard <james.hilliard1@gmail.com>
Cc: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Tested-by: Vincent Fazio <vfazio@xes-inc.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
f0d1308529
commit
39b2b6e4a3
@@ -19,9 +19,16 @@ PYTHON_PYBIND_CONF_OPTS = \
|
||||
|
||||
PYTHON_PYBIND_INSTALL_PATH = $(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/pybind11
|
||||
|
||||
# Overwrite 'pybind11/_version.py' with a hard-coded version to replace
|
||||
# 'pybind11/_version.py' installed by default that require
|
||||
# pybind11/detail/common.h header in HOST_DIR.
|
||||
# https://github.com/pybind/pybind11/blob/f5fbe867d2d26e4a0a9177a51f6e568868ad3dc8/pyproject.toml#L93
|
||||
define PYTHON_PYBIND_INSTALL_MODULE
|
||||
mkdir -p $(PYTHON_PYBIND_INSTALL_PATH)
|
||||
cp -dpf $(@D)/pybind11/*.py $(PYTHON_PYBIND_INSTALL_PATH)
|
||||
sed -e 's#@@PYBIND_VERSION@@#$(PYTHON_PYBIND_VERSION)#' \
|
||||
$(PYTHON_PYBIND_PKGDIR)/python-pybind_version.py.in \
|
||||
> $(PYTHON_PYBIND_INSTALL_PATH)/_version.py
|
||||
endef
|
||||
PYTHON_PYBIND_POST_INSTALL_STAGING_HOOKS += PYTHON_PYBIND_INSTALL_MODULE
|
||||
|
||||
|
||||
12
package/python-pybind/python-pybind_version.py.in
Normal file
12
package/python-pybind/python-pybind_version.py.in
Normal file
@@ -0,0 +1,12 @@
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
def _to_int(s: str) -> int | str:
|
||||
try:
|
||||
return int(s)
|
||||
except ValueError:
|
||||
return s
|
||||
|
||||
|
||||
__version__ = "@@PYBIND_VERSION@@"
|
||||
version_info = tuple(_to_int(s) for s in __version__.split("."))
|
||||
Reference in New Issue
Block a user