commit:     f4a4e42c5e50466c17c318341a5e2a875e53104a
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 29 18:10:14 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Sep 30 04:53:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4a4e42c

sci-libs/gmsh: add 4.14.1, fix finding system alglib, add slot op

rm bundled libs to make sure they are not used.

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 sci-libs/gmsh/Manifest                       |   1 +
 sci-libs/gmsh/files/gmsh-4.14.1-alglib.patch |  14 +++
 sci-libs/gmsh/gmsh-4.14.1.ebuild             | 153 +++++++++++++++++++++++++++
 3 files changed, 168 insertions(+)

diff --git a/sci-libs/gmsh/Manifest b/sci-libs/gmsh/Manifest
index 4fcf3284eb81..f3404d2a12fb 100644
--- a/sci-libs/gmsh/Manifest
+++ b/sci-libs/gmsh/Manifest
@@ -1 +1,2 @@
 DIST gmsh-4.14.0-source.tgz 18458158 BLAKE2B 
02af538c094fb7fa1033f3d5821dab3e1554ca10e0bc7a0ab87cca3079e119c5fec149c4af2f4c12d213776f36d8b9734631fd5a3240a9e938c2330dd6bc8989
 SHA512 
130104088e6ba195a4bdc14ef4c79b28872996fa58690161bf304e267d02b21247a3f7865d4c08eadc87cd686657a7fea52379b5ec0a8d67280b237c2a2647bc
+DIST gmsh-4.14.1-source.tgz 18458428 BLAKE2B 
5a38e166b52c68f2880d4d0d649719800844289cf8b2e8377b6579bb1b91e5b1e7c0adfb528371ab92ed761f1a4433ecc73d1220c6e35d8c731b233f36fd6143
 SHA512 
746be1fcbb6b39d1b77df0ee47a3080b34de90f859ca6c31ef7331d7a3d56ec129b35c4383f909dbf47c80199764ea2a2cbffa4f09b018c131f6c97158d05a1c

diff --git a/sci-libs/gmsh/files/gmsh-4.14.1-alglib.patch 
b/sci-libs/gmsh/files/gmsh-4.14.1-alglib.patch
new file mode 100644
index 000000000000..d56215d28ab4
--- /dev/null
+++ b/sci-libs/gmsh/files/gmsh-4.14.1-alglib.patch
@@ -0,0 +1,14 @@
+Partially reverts 
https://gitlab.onelab.info/gmsh/gmsh/-/commit/8becbc0bca57e5f823a36327a400d2d3688b3dba
+which could not possibly have worked with system alglib.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -774,7 +774,7 @@
+ 
+ if(ENABLE_ALGLIB)
+   find_library(ALGLIB_LIB alglib)
+-  find_path(ALGLIB_INC "stdafx.h" PATH_SUFFIXES libalglib)
++  find_path(ALGLIB_INC "stdafx.h" PATH_SUFFIXES alglib)
+   if(ENABLE_SYSTEM_CONTRIB AND ALGLIB_LIB AND ALGLIB_INC)
+     list(APPEND EXTERNAL_LIBRARIES ${ALGLIB_LIB})
+     list(APPEND EXTERNAL_INCLUDES ${ALGLIB_INC})

diff --git a/sci-libs/gmsh/gmsh-4.14.1.ebuild b/sci-libs/gmsh/gmsh-4.14.1.ebuild
new file mode 100644
index 000000000000..eb8200ee4029
--- /dev/null
+++ b/sci-libs/gmsh/gmsh-4.14.1.ebuild
@@ -0,0 +1,153 @@
+# 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 fortran-2 python-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Three-dimensional finite element mesh generator"
+HOMEPAGE="https://gmsh.info https://gitlab.onelab.info/gmsh/gmsh";
+SRC_URI="https://gmsh.info/src/${P}-source.tgz";
+S="${WORKDIR}/${P}-source"
+
+LICENSE="
+       GPL-2+ free-noncomm
+       alglib? ( MIT )
+       gmm? ( LGPL-2.1+ )
+       metis? ( Apache-2.0 )
+       netgen? ( LGPL-2.1+ )
+       voro? ( BSD )
+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+## cgns is not compiling ATM, maybe fix cgns lib first
+IUSE="+alglib +blas cgns eigen examples +gmm gui jpeg med metis mpi mumps 
netgen opencascade petsc pdf png python shared slepc voro zlib"
+
+REQUIRED_USE="
+       ^^ ( blas eigen )
+       mumps? ( blas )
+       slepc? ( petsc )
+       python? ( shared ${PYTHON_REQUIRED_USE} )
+"
+
+RDEPEND="
+       virtual/fortran
+       gui? ( x11-libs/fltk:1=[xft(+)] )
+       alglib? ( sci-libs/alglib:= )
+       blas? (
+               sci-libs/fftw:3.0
+               virtual/blas
+               virtual/lapack
+       )
+       cgns? (
+               sci-libs/cgnslib
+               sci-libs/hdf5:=[mpi=]
+       )
+       eigen? ( dev-cpp/eigen )
+       gmm? ( sci-mathematics/gmm )
+       jpeg? ( media-libs/libjpeg-turbo )
+       med? (
+               sci-libs/hdf5:=[mpi=]
+               sci-libs/med[mpi=]
+       )
+       metis? ( >=sci-libs/metis-5.2.0 )
+       mpi? ( virtual/mpi )
+       mumps? ( sci-libs/mumps[mpi=] )
+       opencascade? ( sci-libs/opencascade:* )
+       pdf? ( app-text/poppler:= )
+       png? ( media-libs/libpng:0 )
+       petsc? ( sci-mathematics/petsc[mpi=] )
+       python? ( ${PYTHON_DEPS} )
+       slepc? ( sci-mathematics/slepc[mpi=] )
+       voro? ( sci-libs/voro++ )
+       zlib? ( sys-libs/zlib )
+"
+
+DEPEND="
+       ${RDEPEND}
+       ${PYTHON_DEPS}
+       virtual/pkgconfig
+       python? ( dev-lang/swig )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.9.5-opencascade.patch
+       "${FILESDIR}"/${PN}-4.11.1-metis-5-2.patch
+       "${FILESDIR}"/${PN}-4.14.1-alglib.patch # downstream; find it in 
include subdir
+)
+
+src_prepare() {
+       # ensure we don't let automagic detect bundled libs
+       # for pkgs supposed to be in system
+       einfo "Cleanup bundled libs:"
+       local contrib
+       for contrib in ALGLIB eigen gmm metis Netgen voro++; do
+               rm -rv contrib/${contrib} || die
+       done
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=( -DENABLE_SYSTEM_CONTRIB="YES" )
+
+       use blas && \
+               mycmakeargs+=( -DCMAKE_Fortran_COMPILER=$(tc-getF77) )
+
+       mycmakeargs+=(
+               -DENABLE_ALGLIB="$(usex alglib)"
+               -DENABLE_BLAS_LAPACK="$(usex blas)"
+               -DENABLE_BUILD_DYNAMIC="$(usex shared)"
+               -DENABLE_CGNS="$(usex cgns)"
+               -DENABLE_EIGEN="$(usex eigen)"
+               -DENABLE_FLTK="$(usex gui)"
+               -DENABLE_GMM="$(usex gmm)"
+               -DENABLE_GRAPHICS="$(usex gui)"
+               -DENABLE_MED="$(usex med)"
+               -DENABLE_MPI="$(usex mpi)"
+               -DENABLE_METIS="$(usex metis)"
+               -DENABLE_MUMPS="$(usex mumps)"
+               -DENABLE_NETGEN="$(usex netgen)"
+               -DENABLE_OCC="$(usex opencascade)"
+               -DENABLE_PETSC="$(usex petsc)"
+               -DENABLE_POPPLER="$(usex pdf)"
+               -DENABLE_SLEPC="$(usex slepc)"
+               -DENABLE_PRIVATE_API="$(usex shared)"
+               -DENABLE_VOROPP="$(usex voro)"
+               -DENABLE_WRAP_PYTHON="$(usex python)"
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       if use examples ; then
+               dodoc -r examples tutorials
+               docompress -x /usr/share/doc/${PF}/{examples,tutorials}
+       fi
+
+       if use python; then
+               python_foreach_impl python_domodule api/gmsh.py
+       fi
+
+       if use gui ; then
+               newicon -s 64 "/${S}/utils/icons/gmsh-no-text.png" gmsh.png
+               make_desktop_entry "/usr/bin/gmsh" "Gmsh ${PV}" "gmsh" 
"Science;Math"
+       fi
+}
+
+pkg_postinst() {
+       if use gui ; then
+               xdg_icon_cache_update
+       fi
+}
+
+pkg_postrm() {
+       if use gui ; then
+               xdg_icon_cache_update
+       fi
+}

Reply via email to