summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Roman <davidroman96@gmail.com>2024-07-08 14:21:11 +0200
committerSam James <sam@gentoo.org>2024-07-08 15:26:24 +0100
commit9fbc8ca585a3eeb87a1777ba7b4e4f98b2a4e9eb (patch)
treed00f612c2282ddba1a406a73aa9b9230404a0013 /dev-python/pybind11
parentsys-apps/selinux-python: fix sepolgen.conf install (diff)
downloadgentoo-9fbc8ca585a3eeb87a1777ba7b4e4f98b2a4e9eb.tar.gz
gentoo-9fbc8ca585a3eeb87a1777ba7b4e4f98b2a4e9eb.tar.bz2
gentoo-9fbc8ca585a3eeb87a1777ba7b4e4f98b2a4e9eb.zip
dev-python/pybind11: add patch for gcc14
Signed-off-by: David Roman <davidroman96@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/37484 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-python/pybind11')
-rw-r--r--dev-python/pybind11/files/pybind11-2.13.1-gcc14-fix.patch23
-rw-r--r--dev-python/pybind11/pybind11-2.13.1-r1.ebuild76
2 files changed, 99 insertions, 0 deletions
diff --git a/dev-python/pybind11/files/pybind11-2.13.1-gcc14-fix.patch b/dev-python/pybind11/files/pybind11-2.13.1-gcc14-fix.patch
new file mode 100644
index 000000000000..878ede4a14f6
--- /dev/null
+++ b/dev-python/pybind11/files/pybind11-2.13.1-gcc14-fix.patch
@@ -0,0 +1,23 @@
+Patch source: https://github.com/pybind/pybind11/commit/51c2aa16de5b50fe4be6a0016d6090d4a831899e
+From 51c2aa16de5b50fe4be6a0016d6090d4a831899e Mon Sep 17 00:00:00 2001
+From: wenqing <wenqing.wang@ufz.de>
+Date: Fri, 28 Jun 2024 16:12:32 +0200
+Subject: [PATCH] Fixed a compilation error with gcc 14 (#5208)
+
+---
+ include/pybind11/typing.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/pybind11/typing.h b/include/pybind11/typing.h
+index c8ba18d499..b0feb9464a 100644
+--- a/include/pybind11/typing.h
++++ b/include/pybind11/typing.h
+@@ -14,6 +14,8 @@
+ #include "cast.h"
+ #include "pytypes.h"
+
++#include <algorithm>
++
+ PYBIND11_NAMESPACE_BEGIN(PYBIND11_NAMESPACE)
+ PYBIND11_NAMESPACE_BEGIN(typing)
+
diff --git a/dev-python/pybind11/pybind11-2.13.1-r1.ebuild b/dev-python/pybind11/pybind11-2.13.1-r1.ebuild
new file mode 100644
index 000000000000..75b8a7930304
--- /dev/null
+++ b/dev-python/pybind11/pybind11-2.13.1-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..13} pypy3 )
+
+inherit cmake distutils-r1
+
+DESCRIPTION="AST-based Python refactoring library"
+HOMEPAGE="
+ https://pybind11.readthedocs.io/en/stable/
+ https://github.com/pybind/pybind11/
+ https://pypi.org/project/pybind11/
+"
+SRC_URI="
+ https://github.com/pybind/pybind11/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-cpp/eigen:3
+"
+BDEPEND="
+ test? (
+ <dev-cpp/catch-3:0
+ >=dev-cpp/catch-2.13.9:0
+ dev-libs/boost
+ )
+"
+
+PATCHES=( "${FILESDIR}/${P}-gcc14-fix.patch" )
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ cmake_src_prepare
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local mycmakeargs=(
+ # disable forced lto
+ -DHAS_FLTO=OFF
+ # https://github.com/pybind/pybind11/issues/5087
+ -DPYBIND11_FINDPYTHON=OFF
+ -DPYBIND11_INSTALL=ON
+ -DPYBIND11_TEST=$(usex test)
+ )
+ cmake_src_configure
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ # Compilation only does anything for tests
+ use test && cmake_src_compile
+}
+
+python_test() {
+ cmake_build cpptest test_cmake_build
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ cd "${BUILD_DIR}/tests" || die
+ epytest "${S}/tests"
+}
+
+python_install() {
+ distutils-r1_python_install
+ cmake_src_install
+}