From 9abc50053e73dd2b27d997ca332a2e551c42753c Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Sun, 2 Nov 2025 07:27:34 -0600 Subject: [PATCH 1/4] Add conditional for optional dependency gmm which is retired. Update command for icon conversion. --- gmsh.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gmsh.spec b/gmsh.spec index 664da70..adee027 100644 --- a/gmsh.spec +++ b/gmsh.spec @@ -55,7 +55,10 @@ BuildRequires: desktop-file-utils BuildRequires: fltk-devel BuildRequires: gcc-c++ BuildRequires: gcc-gfortran +# gmm is retired in Fedora +%if 0%{?fedora} < 44 BuildRequires: gmm-devel +%endif BuildRequires: gmp-devel BuildRequires: hdf5-devel BuildRequires: libjpeg-turbo-devel @@ -322,7 +325,7 @@ cp -a src/parser/Gmsh.* %{_target_platform}-mpich find %{buildroot} -type f -name libgmsh.a -exec rm -f {} \; # Install icon and .desktop file -convert -scale 128 utils/icons/gmsh.png icon_128x128.png +magick -scale 128 utils/icons/gmsh.png icon_128x128.png install -Dpm 0644 icon_128x128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} From 138bd36c801923e90983642cecb3006c039e5522 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 16 Nov 2025 14:01:30 +0100 Subject: [PATCH 2/4] Update to 4.15.0 --- .gitignore | 1 + gmsh.spec | 31 ++++++++++++++++--------------- gmsh_gmm.patch | 22 ++++++++++++++++++++++ gmsh_install.patch | 6 +++--- gmsh_julia.patch | 6 +++--- gmsh_med.patch | 26 +++++++++++++------------- gmsh_python.patch | 12 ++++++------ gmsh_unbundle_gl2ps.patch | 12 ++++++------ sources | 2 +- 9 files changed, 71 insertions(+), 47 deletions(-) create mode 100644 gmsh_gmm.patch diff --git a/.gitignore b/.gitignore index a7761a7..2d41628 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ /gmsh-4.13.2-source-fedora.tar.xz /gmsh-4.14.0-source-fedora.tar.xz /gmsh-4.14.1-source-fedora.tar.xz +/gmsh-4.15.0-source-fedora.tar.xz diff --git a/gmsh.spec b/gmsh.spec index adee027..1e95216 100644 --- a/gmsh.spec +++ b/gmsh.spec @@ -9,7 +9,7 @@ %endif %bcond_without mpich -%global sover 4.14 +%global sover 4.15 %if 0%{?fedora} >= 33 || 0%{?rhel} >= 9 %bcond_without flexiblas @@ -17,8 +17,8 @@ Name: gmsh Summary: A three-dimensional finite element mesh generator -Version: 4.14.1 -Release: 2%{?dist} +Version: 4.15.0 +Release: 1%{?dist} # MPI not available on i686 ExcludeArch: %{ix86} @@ -41,6 +41,8 @@ Patch2: gmsh_julia.patch Patch3: gmsh_install.patch # Unbundle gl2ps Patch4: gmsh_unbundle_gl2ps.patch +# Make gmm use superlu +Patch5: gmsh_gmm.patch BuildRequires: ann-devel %if %{with flexiblas} @@ -48,7 +50,6 @@ BuildRequires: flexiblas-devel %else BuildRequires: blas-devel, lapack-devel %endif -BuildRequires: eigen3-devel BuildRequires: cgnslib-devel BuildRequires: cmake BuildRequires: desktop-file-utils @@ -72,6 +73,7 @@ BuildRequires: netgen-mesher-devel-private BuildRequires: opencascade-devel BuildRequires: python3-devel BuildRequires: python3-setuptools +BuildRequires: SuperLU-devel BuildRequires: voro++-devel BuildRequires: zlib-devel BuildRequires: texinfo @@ -221,10 +223,12 @@ cp contrib/Netgen/nglib_gmsh.h contrib/Netgen/nglib_gmsh.cpp src/mesh # hxt: see contrib/hxt/CREDITS.txt # kbipack: Source not available on the net anymore # onelab: gmsh internal module +# WinslowUntangler: gmsh internal module (?) ( cd contrib; ls -1 | \ grep -v ^bamg$ | \ + grep -v ^blossom$ | \ grep -v ^DiscreteIntegration$ | \ grep -v ^MeshOptimizer$ | \ grep -v ^HighOrderMeshOptimizer$ | \ @@ -233,6 +237,7 @@ ls -1 | \ grep -v ^kbipack$ | \ grep -v ^onelab$ | \ grep -v ^tinyobjloader$ | \ + grep -v ^WinslowUntangler$ | \ xargs rm -rf ) @@ -247,18 +252,11 @@ gmsh_cmake_args="\ -DENABLE_BUILD_LIB=YES \ -DENABLE_BUILD_SHARED=YES \ -DENABLE_BUILD_DYNAMIC=YES \ - -DENABLE_MPEG_ENCODE=NO \ - -DENABLE_METIS=YES \ - -DENABLE_BLOSSOM=NO \ - -DENABLE_CGNS=YES \ - -DENABLE_MED=YES \ - -DENABLE_EIGEN=YES \ - -DEIGEN_INC=%{_includedir}/eigen3 \ - -DENABLE_OCC=YES" + -DENABLE_MPEG_ENCODE=NO" ### serial version ### %define _vpath_builddir %{_target_platform} -%cmake .. \ +%cmake \ -DENABLE_OPENMP=ON \ $gmsh_cmake_args @@ -269,7 +267,7 @@ gmsh_cmake_args="\ %{_openmpi_load} export CXX=mpicxx %define _vpath_builddir %{_target_platform}-openmpi -%cmake .. \ +%cmake \ -DENABLE_MPI=YES \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ @@ -285,7 +283,7 @@ export CXX=mpicxx %{_mpich_load} export CXX=mpicxx %define _vpath_builddir %{_target_platform}-mpich -%cmake .. \ +%cmake \ -DENABLE_MPI=YES \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ @@ -405,6 +403,9 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/LICENSE.txt %changelog +* Sun Oct 26 2025 Sandro Mani - 4.15.0-1 +- Update to 4.15.0 + * Fri Sep 19 2025 Python Maint - 4.14.1-2 - Rebuilt for Python 3.14.0rc3 bytecode diff --git a/gmsh_gmm.patch b/gmsh_gmm.patch new file mode 100644 index 0000000..271327e --- /dev/null +++ b/gmsh_gmm.patch @@ -0,0 +1,22 @@ +diff -rupN gmsh-4.15.0-source/CMakeLists.txt gmsh-4.15.0-source-new/CMakeLists.txt +--- gmsh-4.15.0-source/CMakeLists.txt 2025-11-16 12:12:00.997452631 +0100 ++++ gmsh-4.15.0-source-new/CMakeLists.txt 2025-11-16 13:18:32.590269286 +0100 +@@ -1271,6 +1271,18 @@ if(HAVE_SOLVER) + if(ENABLE_GMM) # use GMM/MUMPS interface + add_definitions(-DGMM_USES_MUMPS) + endif() ++ else() ++ if(ENABLE_GMM) # use GMM/MUMPS interface ++ add_definitions(-DGMM_USES_SUPERLU -DGMM_NO_SUPERLU_INCLUDE_SUBDIR) ++ find_path(SUPERLU_INC "slu_util.h" PATH_SUFFIXES SuperLU) ++ include_directories(${SUPERLU_INC}) ++ endif() ++ endif() ++ else() ++ if(ENABLE_GMM) # use GMM/MUMPS interface ++ add_definitions(-DGMM_USES_SUPERLU -DGMM_NO_SUPERLU_INCLUDE_SUBDIR) ++ find_path(SUPERLU_INC "slu_util.h" PATH_SUFFIXES SuperLU) ++ include_directories(${SUPERLU_INC}) + endif() + endif() + diff --git a/gmsh_install.patch b/gmsh_install.patch index cd3370c..5e02993 100644 --- a/gmsh_install.patch +++ b/gmsh_install.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source-new/CMakeLists.txt ---- gmsh-4.14.1-source/CMakeLists.txt 2025-09-02 14:32:42.435707935 +0200 -+++ gmsh-4.14.1-source-new/CMakeLists.txt 2025-09-02 14:32:42.439022497 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/CMakeLists.txt gmsh-4.15.0-source-new/CMakeLists.txt +--- gmsh-4.15.0-source/CMakeLists.txt 2025-11-16 12:11:30.706154249 +0100 ++++ gmsh-4.15.0-source-new/CMakeLists.txt 2025-11-16 12:11:30.710717577 +0100 @@ -278,7 +278,7 @@ if(ENABLE_RPATH) # when building, don't use the install RPATH already (but later on when # installing) diff --git a/gmsh_julia.patch b/gmsh_julia.patch index 2b936f7..90c37cf 100644 --- a/gmsh_julia.patch +++ b/gmsh_julia.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source-new/CMakeLists.txt ---- gmsh-4.14.1-source/CMakeLists.txt 2025-09-02 14:32:41.955321611 +0200 -+++ gmsh-4.14.1-source-new/CMakeLists.txt 2025-09-02 14:32:42.213216407 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/CMakeLists.txt gmsh-4.15.0-source-new/CMakeLists.txt +--- gmsh-4.15.0-source/CMakeLists.txt 2025-11-16 12:11:30.209672907 +0100 ++++ gmsh-4.15.0-source-new/CMakeLists.txt 2025-11-16 12:11:30.455854462 +0100 @@ -2041,7 +2041,7 @@ endif() if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) install(FILES ${GMSH_API} DESTINATION ${GMSH_INC}) diff --git a/gmsh_med.patch b/gmsh_med.patch index 9390b3a..696ca1b 100644 --- a/gmsh_med.patch +++ b/gmsh_med.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.14.1-source/src/common/CommandLine.cpp gmsh-4.14.1-source-new/src/common/CommandLine.cpp ---- gmsh-4.14.1-source/src/common/CommandLine.cpp 2025-07-24 12:35:20.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/common/CommandLine.cpp 2025-09-02 14:32:41.960203688 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/src/common/CommandLine.cpp gmsh-4.15.0-source-new/src/common/CommandLine.cpp +--- gmsh-4.15.0-source/src/common/CommandLine.cpp 2025-10-01 16:39:02.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/common/CommandLine.cpp 2025-11-16 12:11:30.214030834 +0100 @@ -42,7 +42,7 @@ #endif @@ -10,10 +10,10 @@ diff -rupN --no-dereference gmsh-4.14.1-source/src/common/CommandLine.cpp gmsh-4 #endif #if defined(HAVE_POST) -diff -rupN --no-dereference gmsh-4.14.1-source/src/fltk/helpWindow.cpp gmsh-4.14.1-source-new/src/fltk/helpWindow.cpp ---- gmsh-4.14.1-source/src/fltk/helpWindow.cpp 2025-09-02 11:38:17.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/fltk/helpWindow.cpp 2025-09-02 14:32:41.960660399 +0200 -@@ -36,7 +36,7 @@ +diff -rupN --no-dereference gmsh-4.15.0-source/src/fltk/helpWindow.cpp gmsh-4.15.0-source-new/src/fltk/helpWindow.cpp +--- gmsh-4.15.0-source/src/fltk/helpWindow.cpp 2025-10-01 16:39:02.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/fltk/helpWindow.cpp 2025-11-16 12:11:30.214367145 +0100 +@@ -37,7 +37,7 @@ #endif #if defined(HAVE_MED) @@ -22,9 +22,9 @@ diff -rupN --no-dereference gmsh-4.14.1-source/src/fltk/helpWindow.cpp gmsh-4.14 #endif static const char *help_link(Fl_Widget *w, const char *uri) -diff -rupN --no-dereference gmsh-4.14.1-source/src/geo/GModelIO_MED.cpp gmsh-4.14.1-source-new/src/geo/GModelIO_MED.cpp ---- gmsh-4.14.1-source/src/geo/GModelIO_MED.cpp 2025-07-24 12:35:20.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/geo/GModelIO_MED.cpp 2025-09-02 14:32:41.960938701 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/src/geo/GModelIO_MED.cpp gmsh-4.15.0-source-new/src/geo/GModelIO_MED.cpp +--- gmsh-4.15.0-source/src/geo/GModelIO_MED.cpp 2025-10-01 16:39:02.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/geo/GModelIO_MED.cpp 2025-11-16 12:11:30.214658519 +0100 @@ -26,7 +26,7 @@ #include "discreteVertex.h" #include "Context.h" @@ -34,9 +34,9 @@ diff -rupN --no-dereference gmsh-4.14.1-source/src/geo/GModelIO_MED.cpp gmsh-4.1 #if(MED_MAJOR_NUM >= 3) // To avoid too many ifdefs below we use defines for the bits of the -diff -rupN --no-dereference gmsh-4.14.1-source/src/post/PViewDataGModelIO_MED.cpp gmsh-4.14.1-source-new/src/post/PViewDataGModelIO_MED.cpp ---- gmsh-4.14.1-source/src/post/PViewDataGModelIO_MED.cpp 2025-07-24 12:35:21.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/post/PViewDataGModelIO_MED.cpp 2025-09-02 14:32:41.961256864 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/src/post/PViewDataGModelIO_MED.cpp gmsh-4.15.0-source-new/src/post/PViewDataGModelIO_MED.cpp +--- gmsh-4.15.0-source/src/post/PViewDataGModelIO_MED.cpp 2025-10-01 16:39:03.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/post/PViewDataGModelIO_MED.cpp 2025-11-16 12:11:30.214886156 +0100 @@ -11,7 +11,7 @@ #if defined(HAVE_MED) diff --git a/gmsh_python.patch b/gmsh_python.patch index 06dcb3a..75cfbb1 100644 --- a/gmsh_python.patch +++ b/gmsh_python.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source-new/CMakeLists.txt ---- gmsh-4.14.1-source/CMakeLists.txt 2025-08-30 13:14:13.000000000 +0200 -+++ gmsh-4.14.1-source-new/CMakeLists.txt 2025-09-02 14:32:41.711919812 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/CMakeLists.txt gmsh-4.15.0-source-new/CMakeLists.txt +--- gmsh-4.15.0-source/CMakeLists.txt 2025-10-25 17:09:26.000000000 +0200 ++++ gmsh-4.15.0-source-new/CMakeLists.txt 2025-11-16 12:11:29.982761471 +0100 @@ -2001,6 +2001,8 @@ else() set(GMSH_INC ${CMAKE_INSTALL_INCLUDEDIR}) endif() @@ -28,9 +28,9 @@ diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source if(ENABLE_PRIVATE_API) install(FILES ${GMSH_PRIVATE_API} DESTINATION ${GMSH_INC}/gmsh) if(HAVE_CONTRIB_EIGEN) # the private API depends on Eigen -diff -rupN --no-dereference gmsh-4.14.1-source/src/common/GmshMessage.cpp gmsh-4.14.1-source-new/src/common/GmshMessage.cpp ---- gmsh-4.14.1-source/src/common/GmshMessage.cpp 2025-08-19 12:22:31.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/common/GmshMessage.cpp 2025-09-02 14:32:41.712447178 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/src/common/GmshMessage.cpp gmsh-4.15.0-source-new/src/common/GmshMessage.cpp +--- gmsh-4.15.0-source/src/common/GmshMessage.cpp 2025-10-01 16:39:02.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/common/GmshMessage.cpp 2025-11-16 12:11:29.983375719 +0100 @@ -177,14 +177,6 @@ void Msg::Initialize(int argc, char **ar if(CTX::instance()->exeFileName.empty() && _commandLineArgs.size()) CTX::instance()->exeFileName = _commandLineArgs[0]; diff --git a/gmsh_unbundle_gl2ps.patch b/gmsh_unbundle_gl2ps.patch index 1c7a5c1..0c0047d 100644 --- a/gmsh_unbundle_gl2ps.patch +++ b/gmsh_unbundle_gl2ps.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source-new/CMakeLists.txt ---- gmsh-4.14.1-source/CMakeLists.txt 2025-09-02 14:32:42.662049508 +0200 -+++ gmsh-4.14.1-source-new/CMakeLists.txt 2025-09-02 14:32:42.665923375 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/CMakeLists.txt gmsh-4.15.0-source-new/CMakeLists.txt +--- gmsh-4.15.0-source/CMakeLists.txt 2025-11-16 12:11:30.943987998 +0100 ++++ gmsh-4.15.0-source-new/CMakeLists.txt 2025-11-16 12:11:30.948218140 +0100 @@ -1728,6 +1728,8 @@ if(NOT ENABLE_BUILD_DYNAMIC AND NOT ENAB endif() endif() @@ -10,9 +10,9 @@ diff -rupN --no-dereference gmsh-4.14.1-source/CMakeLists.txt gmsh-4.14.1-source # Linux-specific linker options if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(HAVE_OCC) -diff -rupN --no-dereference gmsh-4.14.1-source/src/graphics/CMakeLists.txt gmsh-4.14.1-source-new/src/graphics/CMakeLists.txt ---- gmsh-4.14.1-source/src/graphics/CMakeLists.txt 2025-07-24 12:35:21.000000000 +0200 -+++ gmsh-4.14.1-source-new/src/graphics/CMakeLists.txt 2025-09-02 14:32:42.666317929 +0200 +diff -rupN --no-dereference gmsh-4.15.0-source/src/graphics/CMakeLists.txt gmsh-4.15.0-source-new/src/graphics/CMakeLists.txt +--- gmsh-4.15.0-source/src/graphics/CMakeLists.txt 2025-10-01 16:39:02.000000000 +0200 ++++ gmsh-4.15.0-source-new/src/graphics/CMakeLists.txt 2025-11-16 12:11:30.948782419 +0100 @@ -15,7 +15,6 @@ set(SRC drawScales.cpp drawGraph2d.cpp diff --git a/sources b/sources index b2ba876..753782a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gmsh-4.14.1-source-fedora.tar.xz) = a7f8697af921f8739aa69158581c064c7209daf58c2a48f30950b449edc3cf7c4453a665ab698f10c57211c2baec96544dbc56aee4ac62b8dde1629297b65ce6 +SHA512 (gmsh-4.15.0-source-fedora.tar.xz) = eac4f6e8cd342ec07e1a83cae966d81716e1d158398ed930c82322b61785f8ab38c84ec07efc91f7be523d872e3331e1a64ce81b20a8c899a82107fab9834add From bbe788dd6089ad7a3a39f2f6126bf5b60cf9eba5 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 16 Nov 2025 14:02:28 +0100 Subject: [PATCH 3/4] Drop gmm conditional, gmm has been unretired --- gmsh.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/gmsh.spec b/gmsh.spec index 1e95216..9ea3f57 100644 --- a/gmsh.spec +++ b/gmsh.spec @@ -56,10 +56,7 @@ BuildRequires: desktop-file-utils BuildRequires: fltk-devel BuildRequires: gcc-c++ BuildRequires: gcc-gfortran -# gmm is retired in Fedora -%if 0%{?fedora} < 44 BuildRequires: gmm-devel -%endif BuildRequires: gmp-devel BuildRequires: hdf5-devel BuildRequires: libjpeg-turbo-devel From 8c7372ea35a3f6fb0c09727272cff9fec8642f8d Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Sun, 16 Nov 2025 14:39:50 +0100 Subject: [PATCH 4/4] Fix magick args to generate icon_128x128.png --- gmsh.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gmsh.spec b/gmsh.spec index 9ea3f57..f1597f5 100644 --- a/gmsh.spec +++ b/gmsh.spec @@ -320,7 +320,7 @@ cp -a src/parser/Gmsh.* %{_target_platform}-mpich find %{buildroot} -type f -name libgmsh.a -exec rm -f {} \; # Install icon and .desktop file -magick -scale 128 utils/icons/gmsh.png icon_128x128.png +magick utils/icons/gmsh.png -scale 128 icon_128x128.png install -Dpm 0644 icon_128x128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}