From ef840c07ea70f7815d123aff2a85d258e73521bb Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Fri, 12 Jun 2026 14:00:40 -0400 Subject: [PATCH] fix(pybind): pinned pybind to 3.0.0 for ABI compatibility --- meson.build | 2 +- pyproject.toml | 2 +- .../packagefiles/pybind11/LICENSE.build | 19 +++++++++++++++++++ subprojects/packagefiles/pybind11/meson.build | 8 ++++++++ subprojects/pybind11.wrap | 15 +++++---------- utils/wheels/build-wheels-macos_aarch64.sh | 2 +- utils/wheels/installPyEnvVersions.sh | 6 ++++-- 7 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 subprojects/packagefiles/pybind11/LICENSE.build create mode 100644 subprojects/packagefiles/pybind11/meson.build diff --git a/meson.build b/meson.build index 12375e4..60fedf7 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('fourdst', 'cpp', version: 'v0.10.5', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0') +project('fourdst', 'cpp', version: 'v0.10.6', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0') add_project_arguments('-fvisibility=default', language: 'cpp') diff --git a/pyproject.toml b/pyproject.toml index 193a7dc..4de137c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["meson-python>=0.19,<0.20", "meson>=1.9.1,<1.10", "pybind11>=2.10"] +requires = ["meson-python>=0.19,<0.20", "meson>=1.9.1,<1.10", "pybind11==3.0.0"] build-backend = "mesonpy" [project] diff --git a/subprojects/packagefiles/pybind11/LICENSE.build b/subprojects/packagefiles/pybind11/LICENSE.build new file mode 100644 index 0000000..b59833d --- /dev/null +++ b/subprojects/packagefiles/pybind11/LICENSE.build @@ -0,0 +1,19 @@ +Copyright (c) 2021 The Meson development team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/subprojects/packagefiles/pybind11/meson.build b/subprojects/packagefiles/pybind11/meson.build new file mode 100644 index 0000000..cf873c3 --- /dev/null +++ b/subprojects/packagefiles/pybind11/meson.build @@ -0,0 +1,8 @@ +project('pybind11', 'cpp', + version : 'v3.0.0', + license : 'BSD-3-Clause') + +pybind11_incdir = include_directories('include') + +pybind11_dep = declare_dependency( + include_directories : pybind11_incdir) diff --git a/subprojects/pybind11.wrap b/subprojects/pybind11.wrap index b4024bb..7a3d47c 100644 --- a/subprojects/pybind11.wrap +++ b/subprojects/pybind11.wrap @@ -1,13 +1,8 @@ -[wrap-file] -directory = pybind11-2.13.5 -source_url = https://github.com/pybind/pybind11/archive/refs/tags/v2.13.5.tar.gz -source_filename = pybind11-2.13.5.tar.gz -source_hash = b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252 -patch_filename = pybind11_2.13.5-1_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/pybind11_2.13.5-1/get_patch -patch_hash = ecb031b830481560b3d8487ed63ba4f5509a074be42f5d19af64d844c795e15b -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/pybind11_2.13.5-1/pybind11-2.13.5.tar.gz -wrapdb_version = 2.13.5-1 +[wrap-git] +url = https://github.com/pybind/pybind11.git +revision = v3.0.0 +depth = 1 +patch_directory = pybind11 [provide] pybind11 = pybind11_dep diff --git a/utils/wheels/build-wheels-macos_aarch64.sh b/utils/wheels/build-wheels-macos_aarch64.sh index 0ee1087..e1827a0 100755 --- a/utils/wheels/build-wheels-macos_aarch64.sh +++ b/utils/wheels/build-wheels-macos_aarch64.sh @@ -30,7 +30,7 @@ cd "${TMPDIR}/project" export MACOSX_DEPLOYMENT_TARGET=15.0 -PYTHON_VERSIONS=("3.9.23" "3.10.18" "3.11.13" "3.12.11" "3.13.5" "3.13.5t" "3.14.0rc1" "3.14.0rc1t" 'pypy3.10-7.3.19' "pypy3.11-7.3.20") +PYTHON_VERSIONS=("3.9.23" "3.10.18" "3.11.13" "3.12.11" "3.13.5" "3.13.5t" "3.14.0rc1" "3.14.0rc1t" "3.14-dev" "3.14t-dev" ) if ! command -v pyenv &> /dev/null; then echo "Error: pyenv not found. Please install it to manage Python versions." diff --git a/utils/wheels/installPyEnvVersions.sh b/utils/wheels/installPyEnvVersions.sh index f381669..ec2373e 100755 --- a/utils/wheels/installPyEnvVersions.sh +++ b/utils/wheels/installPyEnvVersions.sh @@ -10,5 +10,7 @@ pyenv install -s 3.13.5 pyenv install -s 3.13.5t pyenv install -s 3.14.0rc1 pyenv install -s 3.14.0rc1t -pyenv install -s pypy3.10-7.3.19 -pyenv install -s pypy3.11-7.3.20 +pyenv install -s 3.14-dev +pyenv install -s 3.14t-dev +pyenv install -s 3.15-dev +pyenv install -s 3.15t-dev