commit:     e07308387ee69c0126db1ad076773929944ac9a6
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Fri Jul 18 10:50:49 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Aug  1 08:08:06 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0730838

media-gfx/netgen: add 6.2.2505

Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43083
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/netgen/Manifest               |   1 +
 media-gfx/netgen/netgen-6.2.2505.ebuild | 206 ++++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/media-gfx/netgen/Manifest b/media-gfx/netgen/Manifest
index a6b0ad40a8c8..4d11efadf1fc 100644
--- a/media-gfx/netgen/Manifest
+++ b/media-gfx/netgen/Manifest
@@ -1,2 +1,3 @@
 DIST netgen-6.2.2406.tar.gz 3452436 BLAKE2B 
4cb42f20e7627a98e54a9f2e6da5d1b4af174fa7e33c6f72a731b4879c3e4324b20016f1980d2ceb50976fedc2b001a0824e2edd03b03c434c49baa947ded126
 SHA512 
262e57dca39519c797ea58b32eb886d523926aa48979b31df0c61839f9db09eea76346d3519742b7173a78a80335c16960860772646edd20f365dab1e1a6bed8
 DIST netgen-6.2.2501.tar.gz 3328069 BLAKE2B 
68387ffdf3ff4025b8b68377aa5744077a5ab4718e1a9213bd2103e58dce8750355ad7031b8cc533345fa84bfa4b1c96f30f9e1efb977141d97a35f40dbf57a8
 SHA512 
7a39b8bc17216a69239e1f3774793f65e8ac3b1837b0859a730bba8967a4791a76ea5041a94e7de1e1e42f8d12b8ab59dfa06eadcf048f3c99dce57b360faa45
+DIST netgen-6.2.2505.tar.gz 3332150 BLAKE2B 
9f8baa8423c34ee68c2cb77da1918a38c23a34dd61059f912d0bfb832ea9778d3dfa206ac35d39e8bdaad415be40682c4f1b7313c4f1b7ed0b4670a9568bf2b3
 SHA512 
f5274f8b1642109fa79926ce1c761f7d312ed86fc35624884917b7e39937bf8501e40238c7e9a3c7fc6324bfdaa27910c59a927c954d49e8dfc62618704f857f

diff --git a/media-gfx/netgen/netgen-6.2.2505.ebuild 
b/media-gfx/netgen/netgen-6.2.2505.ebuild
new file mode 100644
index 000000000000..c3e674f30a3a
--- /dev/null
+++ b/media-gfx/netgen/netgen-6.2.2505.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+inherit cmake desktop flag-o-matic python-single-r1 xdg
+
+DESCRIPTION="Automatic 3d tetrahedral mesh generator"
+HOMEPAGE="https://ngsolve.org/ https://github.com/NGSolve/netgen";
+SRC_URI="https://github.com/NGSolve/netgen/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="ffmpeg gui jpeg mpi +opencascade python test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+       ${PYTHON_REQUIRED_USE}
+       ffmpeg? ( gui )
+       jpeg? ( gui )
+       python? ( gui )
+"
+
+DEPEND="
+       sys-libs/zlib
+       ffmpeg? ( media-video/ffmpeg:= )
+       gui? (
+               dev-lang/tcl:0/8.6
+               dev-lang/tk:0/8.6
+               media-libs/glu
+               media-libs/libglvnd[X]
+               x11-libs/libX11
+               x11-libs/libXmu
+               x11-libs/libxcb:=
+       )
+       jpeg? ( media-libs/libjpeg-turbo:0= )
+       mpi? (
+               sci-libs/metis
+               virtual/mpi
+       )
+       opencascade? ( sci-libs/opencascade:= )
+       python? (
+               ${PYTHON_DEPS}
+               $(python_gen_cond_dep '
+                       dev-python/pybind11[${PYTHON_USEDEP}]
+                       '
+               )
+               mpi? (
+                       $(python_gen_cond_dep 
'dev-python/mpi4py[${PYTHON_USEDEP}]' )
+               )
+       )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+       sys-apps/lsb-release
+       virtual/pkgconfig
+       gui? ( virtual/imagemagick-tools[png] )
+       test? (
+               <dev-cpp/catch-3:0
+               python? ( $(python_gen_cond_dep '
+                       dev-python/pytest-check[${PYTHON_USEDEP}]
+               ') )
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-6.2.2204-find-Tk-include-directories.patch"
+       "${FILESDIR}/${PN}-6.2.2406-link-against-ffmpeg.patch"
+       "${FILESDIR}/${PN}-6.2.2204-use-system-catch.patch"
+       # "${FILESDIR}/${PN}-6.2.2406-find-libjpeg-turbo-library.patch"
+       "${FILESDIR}/${PN}-6.2.2301-fix-nullptr-deref-in-archive.patch"
+       "${FILESDIR}/${PN}-6.2.2406-encoding_h.patch"
+       "${FILESDIR}/${PN}-6.2.2406-link-against-jpeg.patch"
+       "${FILESDIR}/${PN}-PR202-std_map.patch"
+)
+
+pkg_setup() {
+       if use python; then
+                       python-single-r1_pkg_setup
+
+                       # NOTE This calls find_package(Python3) without 
specifying Interpreter in COMPONENTS.
+                       # Python3_FIND_UNVERSIONED_NAMES=FIRST is thus never 
checked and we search the highest python version first.
+                       pushd "${T}/${EPYTHON}/bin" > /dev/null || die
+                       cp "python-config" "${EPYTHON}-config" || die
+                       chmod +x "${EPYTHON}-config" || die
+                       popd > /dev/null || die
+       fi
+}
+
+src_prepare() {
+       # NOTE: need to manually check and update this string on version bumps!
+       # git ls-remote --tags https://github.com/NGSolve/netgen.git 
refs/tags/v${PV} | cut -c-8
+       # git describe --tags --match "v[0-9]*" --long --dirty
+       # cat <<- EOF > "${S}/version.txt" || die
+       #       v${PV}-0-gd1a9f7ee
+       # EOF
+
+       if use python; then
+               sed \
+                       -e "s/Python3_EXECUTABLE/PYTHON_EXECUTABLE/" \
+                       -i cmake/NetgenConfig.cmake.in || die
+       fi
+
+       rm -r external_dependencies || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               # currently not working in a sandbox, expects netgen to be 
installed
+               # see https://github.com/NGSolve/netgen/issues/132
+               -DBUILD_STUB_FILES=OFF
+               -DENABLE_UNIT_TESTS=$(usex test)
+               -DINSTALL_PROFILES=OFF
+               -DNG_INSTALL_DIR_CMAKE="$(get_libdir)/cmake/${PN}"
+               -DNG_INSTALL_DIR_INCLUDE="include/${PN}"
+               -DNG_INSTALL_DIR_LIB="$(get_libdir)"
+               -DUSE_CCACHE=OFF
+               # doesn't build with this version
+               -DUSE_CGNS=no
+               -DUSE_GUI=$(usex gui)
+               -DUSE_INTERNAL_TCL=OFF
+               -DUSE_JPEG=$(usex jpeg)
+               -DUSE_MPEG=$(usex ffmpeg)
+               # respect users -march= choice
+               -DUSE_NATIVE_ARCH=OFF
+               -DUSE_MPI=$(usex mpi)
+               -DUSE_OCC=$(usex opencascade)
+               -DUSE_PYTHON="$(usex python)"
+               -DUSE_SUPERBUILD=OFF
+
+               -DNETGEN_VERSION_GIT="v${PV}-0-gd1a9f7ee"
+       )
+
+       # no need to set this, if we only build the library
+       if use gui; then
+               mycmakeargs+=(
+                       
-DTK_INCLUDE_PATH="${ESYSROOT}/usr/$(get_libdir)/tk8.6/include"
+               )
+       fi
+
+       if use python; then
+               append-cppflags -DPYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF
+
+               mycmakeargs+=(
+                       -DPREFER_SYSTEM_PYBIND11=ON
+                       # needed, so the value gets passed to 
NetgenConfig.cmake instead of ${T}/pythonX.Y
+                       -DPYTHON_EXECUTABLE="${PYTHON}"
+               )
+       fi
+
+       if use mpi && use python; then
+               mycmakeargs+=( -DUSE_MPI4PY=ON )
+       else
+               mycmakeargs+=( -DUSE_MPI4PY=OFF )
+       fi
+
+       cmake_src_configure
+}
+
+src_test() {
+       DESTDIR="${T}" cmake_build install
+
+       if use python; then
+               local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+               local -x NETGENDIR="${T}/usr/bin"
+               local -x 
PYTHONPATH="${T}$(python_get_sitedir):${T}/usr/$(get_libdir):${BUILD_DIR}/libsrc/core"
+       fi
+
+       CMAKE_SKIP_TESTS=(
+               '^unit_symboltable$'
+               '^pytest$' # floating point errors
+               '^pytest-mpi$' # needs pytest-mpi
+       )
+       cmake_src_test
+
+       rm -r "${T}/usr" || die
+}
+
+src_install() {
+       cmake_src_install
+
+       use python && python_optimize
+
+       local NETGENDIR="/usr/share/${PN}"
+       echo -e "NETGENDIR=${NETGENDIR}" > ./99netgen || die
+       doenvd 99netgen
+
+       if use gui; then
+               mv "${ED}"/usr/bin/{*.tcl,*.ocf} "${ED}${NETGENDIR}" || die
+
+               convert -deconstruct "${S}/windows/${PN}.ico" netgen.png || die
+               newicon -s 32 "${S}/${PN}-2.png" "${PN}.png"
+               newicon -s 16 "${S}/${PN}-3.png" "${PN}.png"
+               make_desktop_entry "${PN}" "Netgen" netgen Graphics
+       fi
+
+       mv "${ED}/usr/share/${PN}/doc/ng4.pdf" "${ED}/usr/share/doc/${PF}" || 
die
+       dosym -r "/usr/share/doc/${PF}/ng4.pdf" "/usr/share/${PN}/doc/ng4.pdf"
+
+       use python || rm -r "${ED}${NETGENDIR}/py_tutorials" || die
+}

Reply via email to