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 +}
