commit:     b452481ecb26980cf3ad67c19ede6296863b10dd
Author:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 16 01:54:15 2025 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Wed Jul 16 01:55:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b452481e

sci-libs/p4est: add 2.8.7

Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>

 sci-libs/p4est/Manifest                            |  1 +
 .../p4est/files/p4est-2.8.7-fix_build_system.patch | 24 +++++++++
 .../p4est/files/p4est-2.8.7-fix_cmake_path.patch   | 49 +++++++++++++++++
 sci-libs/p4est/files/p4est-2.8.7-set_version.patch | 48 +++++++++++++++++
 sci-libs/p4est/p4est-2.8.7.ebuild                  | 63 ++++++++++++++++++++++
 5 files changed, 185 insertions(+)

diff --git a/sci-libs/p4est/Manifest b/sci-libs/p4est/Manifest
index 2881865ca64c..9674c2fdc48a 100644
--- a/sci-libs/p4est/Manifest
+++ b/sci-libs/p4est/Manifest
@@ -1 +1,2 @@
 DIST p4est-2.8.6.tar.gz 4589078 BLAKE2B 
7f868cf38aa4e0abc50b4c1071ca39ada2fa9cc973f31bb0365eb1bf447f9a23fa570ada525b1482cb8120a534582cf978ccae83048d27c439ea07572171e928
 SHA512 
e5892cf153cb4204c2ae3c1389c6a872113b037abda1d0f95df062ad2651a2231b1e3cabdc8e86f3f61ad021274a069acf7ec801281164740a8018ac46b07c96
+DIST p4est-2.8.7.tar.gz 5320783 BLAKE2B 
0a771b2448f1ed999ddab707b255213589ef70cc47f75e5c592504ae8f6bc416f643b2a36b04717b97c178ddcb5c2dc5aae8bf58e49a95b5958ea99c700380d5
 SHA512 
2f132cf2ad296ebf632a699605b05fffc5c3dd9bf80fa280a1dec722f0e8a004bccad6e5b151b46bcafa85c0bbe620b93e407734989be5b504c3dacf863e22fe

diff --git a/sci-libs/p4est/files/p4est-2.8.7-fix_build_system.patch 
b/sci-libs/p4est/files/p4est-2.8.7-fix_build_system.patch
new file mode 100644
index 000000000000..a02b3050c760
--- /dev/null
+++ b/sci-libs/p4est/files/p4est-2.8.7-fix_build_system.patch
@@ -0,0 +1,24 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dbb0be2..6b17ba3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,8 @@ HOMEPAGE_URL https://www.p4est.org/
+ DESCRIPTION "p4est manages a collection---a forest---of octrees in parallel."
+ VERSION ${PROJECT_VERSION})
+ 
++set(CMAKE_POSITION_INDEPENDENT_CODE ON)
++
+ enable_testing()
+ 
+ # --- user options
+@@ -60,7 +62,9 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/ 
${PROJECT_BINARY_DIR}/include/
+   TYPE INCLUDE
+   FILES_MATCHING PATTERN "*.h")
+ 
+-install(TARGETS p4est EXPORT ${PROJECT_NAME}-targets)
++install(TARGETS p4est EXPORT ${PROJECT_NAME}-targets
++  ARCHIVE DESTINATION ${library_reldir}
++  LIBRARY DESTINATION ${library_reldir})
+ 
+ #--- p8est
+ 

diff --git a/sci-libs/p4est/files/p4est-2.8.7-fix_cmake_path.patch 
b/sci-libs/p4est/files/p4est-2.8.7-fix_cmake_path.patch
new file mode 100644
index 000000000000..f310efbd3a83
--- /dev/null
+++ b/sci-libs/p4est/files/p4est-2.8.7-fix_cmake_path.patch
@@ -0,0 +1,49 @@
+diff --git a/cmake/install.cmake b/cmake/install.cmake
+index 7fa3d4c..bf1f210 100644
+--- a/cmake/install.cmake
++++ b/cmake/install.cmake
+@@ -4,7 +4,7 @@ include(CMakePackageConfigHelpers)
+ 
+ configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake
+-INSTALL_DESTINATION cmake
++INSTALL_DESTINATION ${library_reldir}/cmake/P4est
+ )
+ 
+ write_basic_package_version_file(
+@@ -14,13 +14,13 @@ COMPATIBILITY SameMajorVersion
+ 
+ install(EXPORT ${PROJECT_NAME}-targets
+ NAMESPACE ${PROJECT_NAME}::
+-DESTINATION cmake
++DESTINATION ${library_reldir}/cmake/P4est
+ )
+ 
+ install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}ConfigVersion.cmake
+-DESTINATION cmake
++DESTINATION ${library_reldir}/cmake/P4est
+ )
+ 
+ # --- CPack
+diff --git a/cmake/pkgconf.cmake b/cmake/pkgconf.cmake
+index 590d7be..097412e 100644
+--- a/cmake/pkgconf.cmake
++++ b/cmake/pkgconf.cmake
+@@ -8,14 +8,4 @@ set(pc_filename p4est-${git_version}.pc)
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/pkgconf.pc.in ${pc_filename} @ONLY)
+ 
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pc_filename}
+-  DESTINATION lib/pkgconfig)
+-
+-set(pc_target ${pc_filename})
+-set(pc_link ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/p4est.pc)
+-
+-install(CODE "execute_process( \
+-    COMMAND ${CMAKE_COMMAND} -E create_symlink \
+-    ${pc_target} \
+-    ${pc_link}   \
+-    )"
+-  )
++  DESTINATION ${library_reldir}/pkgconfig)

diff --git a/sci-libs/p4est/files/p4est-2.8.7-set_version.patch 
b/sci-libs/p4est/files/p4est-2.8.7-set_version.patch
new file mode 100644
index 000000000000..138a5439518b
--- /dev/null
+++ b/sci-libs/p4est/files/p4est-2.8.7-set_version.patch
@@ -0,0 +1,48 @@
+diff --git a/cmake/git.cmake b/cmake/git.cmake
+index 10e8d14..0ab2893 100644
+--- a/cmake/git.cmake
++++ b/cmake/git.cmake
+@@ -1,39 +1,6 @@
+ # --- extract version from Git
+ 
+-set(PROJECT_MAJOR 0)
+-set(PROJECT_MINOR 0)
+-set(PROJECT_PATCH 0)
+-set(PROJECT_VERSION 0.0.0)
+-find_program(GIT_VERSION_GEN NAMES git-version-gen
+-             PATHS ${CMAKE_CURRENT_SOURCE_DIR}/build-aux NO_DEFAULT_PATH)
+-if(GIT_VERSION_GEN)
+-  execute_process(COMMAND ${GIT_VERSION_GEN} .tarball-version
+-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+-    RESULT_VARIABLE _err
+-    OUTPUT_VARIABLE git_version
+-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+-endif()
+-if(_err EQUAL 0)
+-  if(git_version MATCHES
+-                 "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.].*")
+-    set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+-    set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+-    set(PROJECT_PATCH "${CMAKE_MATCH_3}")
+-    set(PROJECT_VERSION 
${PROJECT_MAJOR}.${PROJECT_MINOR}.${PROJECT_PATCH}.999)
+-  elseif(git_version MATCHES
+-                 "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)")
+-    set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+-    set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+-    set(PROJECT_PATCH "${CMAKE_MATCH_3}")
+-    set(PROJECT_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR}.${PROJECT_PATCH})
+-  elseif(git_version MATCHES
+-                 "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)")
+-    set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+-    set(PROJECT_MINOR "${CMAKE_MATCH_2}")
+-    set(PROJECT_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR})
+-  elseif(git_version MATCHES
+-                 "^(0|[1-9][0-9]*)")
+-    set(PROJECT_MAJOR "${CMAKE_MATCH_1}")
+-    set(PROJECT_VERSION ${PROJECT_MAJOR})
+-  endif()
+-endif()
++set(PROJECT_MAJOR 2)
++set(PROJECT_MINOR 8)
++set(PROJECT_PATCH 7)
++set(PROJECT_VERSION 2.8.7)

diff --git a/sci-libs/p4est/p4est-2.8.7.ebuild 
b/sci-libs/p4est/p4est-2.8.7.ebuild
new file mode 100644
index 000000000000..29de5c7639e7
--- /dev/null
+++ b/sci-libs/p4est/p4est-2.8.7.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Scalable Algorithms for Parallel Adaptive Mesh Refinement on 
Forests of Octrees"
+HOMEPAGE="http://www.p4est.org/";
+
+LIBSC_VERSION="${PV}"
+
+if [[ ${PV} = *9999* ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/cburstedde/${PN}.git";
+       EGIT_BRANCH="develop"
+else
+       SRC_URI="https://github.com/cburstedde/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+
+# TODO petsc
+IUSE="debug doc examples mpi threads +vtk-binary"
+
+RDEPEND="
+       ~sci-libs/libsc-${LIBSC_VERSION}[mpi=,threads=]
+       sys-apps/util-linux
+       virtual/blas
+       virtual/lapack
+       mpi? ( virtual/mpi[romio] )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix_build_system.patch
+       "${FILESDIR}"/${P}-set_version.patch
+       "${FILESDIR}"/${P}-fix_cmake_path.patch
+)
+
+src_configure() {
+       # avoid using debug codepaths that are manually enabled with the
+       # RelWithDebInfo build type
+       local CMAKE_BUILD_TYPE="Release"
+
+       local mycmakeargs=(
+               -DP4EST_ENABLE_MPI="$(usex mpi)"
+               -DP4EST_USE_SYSTEM_SC=yes
+               -Dlibrary_reldir="$(get_libdir)"
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       mkdir -p "${ED}"/usr/share/doc/${PF}
+       mv "${ED}"/usr/share/docs/P4EST/* "${ED}"/usr/share/doc/${PF}/ || die 
"mv failed"
+       rm -r "${ED}"/usr/share/docs || die "rm failed"
+}

Reply via email to