commit:     9fbc8ca585a3eeb87a1777ba7b4e4f98b2a4e9eb
Author:     David Roman <davidroman96 <AT> gmail <DOT> com>
AuthorDate: Mon Jul  8 12:21:11 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jul  8 14:26:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9fbc8ca5

dev-python/pybind11: add patch for gcc14

Signed-off-by: David Roman <davidroman96 <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37484
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../pybind11/files/pybind11-2.13.1-gcc14-fix.patch | 23 +++++++
 dev-python/pybind11/pybind11-2.13.1-r1.ebuild      | 76 ++++++++++++++++++++++
 2 files changed, 99 insertions(+)

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.w...@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
+}

Reply via email to