diff --git a/.gitignore b/.gitignore index 4994595..2d41628 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,33 @@ /gmsh-4.5.5-source-fedora.tar.xz /gmsh-4.5.6-source-fedora.tar.xz /gmsh-4.6.0-source-fedora.tar.xz +/gmsh-4.7.0-source-fedora.tar.xz +/gmsh-4.7.1-source-fedora.tar.xz +/gmsh-4.8.0-source-fedora.tar.xz +/gmsh-4.8.1-source-fedora.tar.xz +/gmsh-4.8.2-source-fedora.tar.xz +/gmsh-4.8.3-source-fedora.tar.xz +/gmsh-4.8.4-source-fedora.tar.xz +/gmsh-4.9.0-source-fedora.tar.xz +/gmsh-4.9.1-source-fedora.tar.xz +/gmsh-4.9.2-source-fedora.tar.xz +/gmsh-4.9.3-source-fedora.tar.xz +/gmsh-4.9.4-source-fedora.tar.xz +/gmsh-4.9.5-source-fedora.tar.xz +/gmsh-4.10.0-source-fedora.tar.xz +/gmsh-4.10.1-source-fedora.tar.xz +/gmsh-4.10.2-source-fedora.tar.xz +/gmsh-4.10.3-source-fedora.tar.xz +/gmsh-4.10.4-source-fedora.tar.xz +/gmsh-4.10.5-source-fedora.tar.xz +/gmsh-4.11.0-source-fedora.tar.xz +/gmsh-4.11.1-source-fedora.tar.xz +/gmsh-4.12.0-source-fedora.tar.xz +/gmsh-4.12.1-source-fedora.tar.xz +/gmsh-4.12.2-source-fedora.tar.xz +/gmsh-4.13.0-source-fedora.tar.xz +/gmsh-4.13.1-source-fedora.tar.xz +/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/fedoratarball.sh b/fedoratarball.sh index 7dd7998..b42d209 100755 --- a/fedoratarball.sh +++ b/fedoratarball.sh @@ -1,16 +1,14 @@ #!/bin/sh -if [ $# -lt 1 ]; then - echo "Usage: $0 upstream_ver" - exit 1 -fi +ver=`grep Version: gmsh.spec | awk -F " " '{print $2}'` -ver=$1 +echo "This will download and rearchive gmsh version $ver" +read -p "Press any key to Continue..." TMPDIR=`mktemp -d /tmp/gmsh.XXXXXX` pushd "$TMPDIR" -wget http://geuz.org/gmsh/src/gmsh-$ver-source.tgz +curl -LO http://geuz.org/gmsh/src/gmsh-$ver-source.tgz tar xf gmsh-$ver-source.tgz rm -rf contrib/blossom contrib/mpeg_encode diff --git a/gmsh.spec b/gmsh.spec index fceb9d3..f1597f5 100644 --- a/gmsh.spec +++ b/gmsh.spec @@ -1,18 +1,30 @@ +%if 0%{?fedora} >= 40 +%ifarch %{ix86} +%bcond_with openmpi +%else %bcond_without openmpi +%endif +%else +%bcond_without openmpi +%endif %bcond_without mpich -%if 0%{?fedora} >= 33 +%global sover 4.15 + +%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9 %bcond_without flexiblas %endif Name: gmsh Summary: A three-dimensional finite element mesh generator -Version: 4.6.0 -Release: 5%{?dist} +Version: 4.15.0 +Release: 1%{?dist} +# MPI not available on i686 +ExcludeArch: %{ix86} -# gmsh is GPLv2+ with exceptions, see LICENSE.txt +# gmsh is GPL-2.0-or-later WITH Gmsh-exception, see LICENSE.txt # contrib/{DiscreteIntegration, HighOrderMeshOptimizer, MeshOptimizer, onelab} are MIT, see respective README.txt -License: GPLv2+ with exceptions and MIT +License: GPL-2.0-or-later WITH Gmsh-exception AND MIT URL: http://geuz.org/gmsh/ # Download source from http://geuz.org/gmsh/src/%%{name}-%%{version}-source.tgz # Delete contrib/blossom and contrib/mpeg_encode from source archive @@ -21,20 +33,17 @@ Source1: %{name}.desktop # Install onelab.py and gmsh.py into the python site-packages directory Patch0: gmsh_python.patch -# Use c++14 (needed by netgen component) -Patch1: gmsh_c++14.patch # Adapt med.h include path -Patch2: gmsh_med.patch +Patch1: gmsh_med.patch # Install Julia API to share/gmsh -Patch3: gmsh_julia.patch +Patch2: gmsh_julia.patch # Remove odd install of gmsh shared library -Patch4: gmsh_install.patch -# Fix build error caused by include ordering -Patch5: gmsh_build.patch +Patch3: gmsh_install.patch # Unbundle gl2ps -Patch6: gmsh_unbundle_gl2ps.patch +Patch4: gmsh_unbundle_gl2ps.patch +# Make gmm use superlu +Patch5: gmsh_gmm.patch -BuildRequires: alglib-devel BuildRequires: ann-devel %if %{with flexiblas} BuildRequires: flexiblas-devel @@ -53,7 +62,6 @@ BuildRequires: hdf5-devel BuildRequires: libjpeg-turbo-devel BuildRequires: liblbfgs-devel BuildRequires: libpng-devel -BuildRequires: make BuildRequires: mathex-devel BuildRequires: med-devel BuildRequires: mesa-libGLU-devel @@ -61,15 +69,16 @@ BuildRequires: metis-devel 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 # For transforming icon BuildRequires: ImageMagick -# TODO: Unbundle as soon as gmsh starts bundling a more recent version of mmg3d again -# BuildRequires: mmg3d-devel -Provides: bundled(mmg3d) +Provides: bundled(netgen-mesher) = svn469 + Requires: %{name}-common = %{version}-%{release} @@ -106,6 +115,10 @@ Summary: Python3 API for %{name} %{?python_provide:%python_provide python3-%{name}} Obsoletes: python3-%{name}-private +BuildArch: noarch + +Requires: %{name}-libs = %{version}-%{release} + %description -n python3-%{name} Python3 API for %{name}. @@ -198,8 +211,8 @@ Development files for %{name} compiled against mpich. %prep %autosetup -p1 -n %{name}-%{version}-source -# Copy these outside the contrib folder (Patch takes care of including these in the build) -cp contrib/Netgen/nglib_gmsh.h contrib/Netgen/nglib_gmsh.cpp Mesh +# Copy these outside the contrib folder +cp contrib/Netgen/nglib_gmsh.h contrib/Netgen/nglib_gmsh.cpp src/mesh # Bamg: part of freefem++, modified source code # DiscreteIntegration: gmsh internal module @@ -207,64 +220,51 @@ cp contrib/Netgen/nglib_gmsh.h contrib/Netgen/nglib_gmsh.cpp Mesh # hxt: see contrib/hxt/CREDITS.txt # kbipack: Source not available on the net anymore # onelab: gmsh internal module -# mmg: Currently not unbundleable +# WinslowUntangler: gmsh internal module (?) ( cd contrib; ls -1 | \ grep -v ^bamg$ | \ + grep -v ^blossom$ | \ grep -v ^DiscreteIntegration$ | \ - grep -v ^MeshOptimizer | \ + grep -v ^MeshOptimizer$ | \ grep -v ^HighOrderMeshOptimizer$ | \ - grep -v ^QuadTri | \ + grep -v ^QuadTri$ | \ grep -v ^hxt$ | \ grep -v ^kbipack$ | \ grep -v ^onelab$ | \ - grep -v ^mmg$ | \ + grep -v ^tinyobjloader$ | \ + grep -v ^WinslowUntangler$ | \ xargs rm -rf ) -# Convert to utf-8 -for file in tutorial/t12.geo; do - iconv -f ISO-8859-1 -t UTF-8 -o $file.new $file && \ - touch -r $file $file.new && \ - mv $file.new $file -done - %build # mpeg not in fedora due to patent issues # blossoms is nonfree, see contrib/blossoms/README.txt gmsh_cmake_args="\ - %{?with_flexiblas:-DBLAS_LIBRARIES=-lflexiblas} \ + %{?with_flexiblas:-DBLA_VENDOR=FlexiBLAS} \ -DENABLE_SYSTEM_CONTRIB=YES \ -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_OCC=YES" + -DENABLE_MPEG_ENCODE=NO" ### serial version ### -mkdir build-serial -pushd build-serial -LDFLAGS="%{__global_ldflags} -Wl,--as-needed" %cmake .. \ +%define _vpath_builddir %{_target_platform} +%cmake \ -DENABLE_OPENMP=ON \ $gmsh_cmake_args %cmake_build -popd ### openmpi version ### %if %{with openmpi} %{_openmpi_load} export CXX=mpicxx -mkdir build-openmpi -pushd build-openmpi -LDFLAGS="%{__global_ldflags} -Wl,--as-needed" %cmake .. \ +%define _vpath_builddir %{_target_platform}-openmpi +%cmake \ -DENABLE_MPI=YES \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ @@ -272,7 +272,6 @@ LDFLAGS="%{__global_ldflags} -Wl,--as-needed" %cmake .. \ $gmsh_cmake_args %cmake_build -popd %{_openmpi_unload} %endif @@ -280,9 +279,8 @@ popd %if %{with mpich} %{_mpich_load} export CXX=mpicxx -mkdir build-mpich -pushd build-mpich -LDFLAGS="%{__global_ldflags} -Wl,--as-needed" %cmake .. \ +%define _vpath_builddir %{_target_platform}-mpich +%cmake \ -DENABLE_MPI=YES \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ @@ -290,37 +288,39 @@ LDFLAGS="%{__global_ldflags} -Wl,--as-needed" %cmake .. \ $gmsh_cmake_args %cmake_build -popd %{_mpich_unload} %endif # Built html documentation -make -C build-serial/%{__cmake_builddir} html +%cmake_build --target html # Fix to create correct debuginfo -cp -a Parser/Gmsh.* build-serial +cp -a src/parser/Gmsh.* %{_target_platform} %if %{with openmpi} -cp -a Parser/Gmsh.* build-openmpi +cp -a src/parser/Gmsh.* %{_target_platform}-openmpi %endif %if %{with mpich} -cp -a Parser/Gmsh.* build-mpich +cp -a src/parser/Gmsh.* %{_target_platform}-mpich %endif %install %if %{with openmpi} -(cd build-openmpi && %cmake_install) +%define _vpath_builddir %{_target_platform}-openmpi +%cmake_install %endif %if %{with mpich} -(cd build-mpich && %cmake_install) +%define _vpath_builddir %{_target_platform}-mpich +%cmake_install %endif -(cd build-serial && %cmake_install) +%define _vpath_builddir %{_target_platform} +%cmake_install # Remove static libraries 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 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} @@ -342,9 +342,10 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/LICENSE.txt %files doc %license LICENSE.txt -%doc %{_defaultdocdir}/%{name}/tutorial -%doc %{_defaultdocdir}/%{name}/demos +%doc %{_defaultdocdir}/%{name}/tutorials +%doc %{_defaultdocdir}/%{name}/examples %doc %{_defaultdocdir}/%{name}/%{name}.html +%doc %{_defaultdocdir}/%{name}/images/ %files %{_bindir}/%{name} @@ -353,15 +354,17 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/LICENSE.txt %{_includedir}/gmsh.h %{_includedir}/gmshc.h %{_includedir}/gmsh.h_cwrap +%{_includedir}/gmsh.f90 %{_libdir}/libgmsh.so %files libs %license LICENSE.txt -%{_libdir}/libgmsh.so.4.6* +%{_libdir}/libgmsh.so.%{sover}* %files -n python3-%{name} %{python3_sitelib}/gmsh.py %{python3_sitelib}/__pycache__/gmsh.*.pyc +%{python3_sitelib}/gmsh-%{version}*.dist-info/ %if %{with openmpi} %files openmpi @@ -371,11 +374,12 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/LICENSE.txt %{_includedir}/openmpi*/gmsh.h %{_includedir}/openmpi*/gmshc.h %{_includedir}/openmpi*/gmsh.h_cwrap +%{_includedir}/openmpi*/gmsh.f90 %{_libdir}/openmpi/lib/libgmsh.so %files openmpi-libs %license LICENSE.txt -%{_libdir}/openmpi/lib/libgmsh.so.4.6* +%{_libdir}/openmpi/lib/libgmsh.so.%{sover}* %endif %if %{with mpich} @@ -386,15 +390,218 @@ rm -f %{buildroot}%{_defaultdocdir}/%{name}/LICENSE.txt %{_includedir}/mpich*/gmsh.h %{_includedir}/mpich*/gmshc.h %{_includedir}/mpich*/gmsh.h_cwrap +%{_includedir}/mpich*/gmsh.f90 %{_libdir}/mpich/lib/libgmsh.so %files mpich-libs %license LICENSE.txt -%{_libdir}/mpich/lib/libgmsh.so.4.6* +%{_libdir}/mpich/lib/libgmsh.so.%{sover}* %endif %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 + +* Tue Sep 02 2025 Sandro Mani - 4.14.1-1 +- Update to 4.14.1 + +* Fri Aug 15 2025 Python Maint - 4.14.0-4 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Wed Jul 23 2025 Fedora Release Engineering - 4.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jul 17 2025 Sandro Mani - 4.14.0-2 +- Use %%cmake_build instead of make + +* Fri Jul 04 2025 Sandro Mani - 4.14.0-1 +- Update to 4.14.0 + +* Wed Jun 04 2025 Python Maint - 4.13.2-12 +- Rebuilt for Python 3.14 + +* Thu May 29 2025 Richard Shaw - 4.13.2-11 +- Rebuild for opencascade 7.9.1. + +* Wed May 28 2025 Richard Shaw - 4.13.2-10 +- Rebuild for opencascade 7.9.1. + +* Sat May 24 2025 Sandro Mani - 4.13.2-9 +- Add fix for GCC15 build failure + +* Mon Feb 3 2025 Jaroslav Škarvada - 4.13.2-8 +- Rebuild for tcl/tk + +* Tue Jan 28 2025 Sandro Mani - 4.13.2-7 +- Rebuild (cgnslib) + +* Fri Jan 24 2025 Sandro Mani - 4.13.2-6 +- Rebuild (cgnslib) + +* Thu Jan 16 2025 Fedora Release Engineering - 4.13.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Oct 25 2024 Orion Poplawski - 4.13.2-4 +- Rebuild for hdf5 1.14.5 + +* Thu Jul 18 2024 Fedora Release Engineering - 4.13.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jun 09 2024 Python Maint - 4.13.2-2 +- Rebuilt for Python 3.13 + +* Tue Jun 04 2024 Sandro Mani - 4.13.2-1 +- Update to 4.13.2 + +* Sun Jun 02 2024 Richard Shaw - 4.13.1-2 +- Rebuild for opencascade 7.8.1. + +* Wed May 08 2024 Sandro Mani - 4.13.1-1 +- Update to 4.13.1 + +* Tue Apr 09 2024 Benjamin A. Beasley - 4.13.0-3 +- Ensure python3-gmsh depends on gmsh-libs +- Make the python3-gmsh subpackage noarch, since the bindings are pure Python + +* Fri Mar 29 2024 Richard Shaw - 4.13.0-2 +- Rebuild for OpenCascade 7.8.0. + +* Tue Feb 27 2024 Sandro Mani - 4.13.0-1 +- Update to 4.13.0 + +* Tue Jan 23 2024 Sandro Mani - 4.12.2-1 +- Update to 4.12.2 + +* Fri Jan 19 2024 Fedora Release Engineering - 4.12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 14 2024 Sandro Mani - 4.12.1-1 +- Update to 4.12.1 + +* Mon Jan 01 2024 Sandro Mani - 4.12.0-1 +- Update to 4.12.0 + +* Sun Oct 29 2023 Orion Poplawski - 4.11.1-7 +- Rebuild for openmpi 5.0.0, drops i686 and C++ API + +* Wed Jul 19 2023 Fedora Release Engineering - 4.11.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jul 06 2023 Sandro Mani - 4.11.1-5 +- Rebuild (cgnslib) + +* Sat Jun 17 2023 Python Maint - 4.11.1-4 +- Rebuilt for Python 3.12 + +* Thu Jan 19 2023 Fedora Release Engineering - 4.11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jan 14 2023 Richard Shaw - 4.11.1-2 +- Rebuild for opencascade. + +* Wed Dec 21 2022 Sandro Mani - 4.11.1-1 +- Update to 4.11.1 + +* Tue Nov 08 2022 Sandro Mani - 4.11.0-1 +- Update to 4.11.0 + +* Thu Jul 21 2022 Fedora Release Engineering - 4.10.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jul 03 2022 Sandro Mani - 4.10.5-1 +- Update to 4.10.5 + +* Mon Jun 20 2022 Python Maint - 4.10.4-2 +- Rebuilt for Python 3.11 + +* Sun Jun 19 2022 Sandro Mani - 4.10.4-1 +- Update to 4.10.4 + +* Mon Jun 13 2022 Python Maint - 4.10.3-2 +- Rebuilt for Python 3.11 + +* Mon May 30 2022 Sandro Mani - 4.10.3-1 +- Update to 4.10.3 + +* Fri May 13 2022 Sandro Mani - 4.10.2-1 +- Update to 4.10.2 + +* Mon May 09 2022 Sandro Mani - 4.10.1-2 +- Fix removing bundled libraries + +* Tue May 03 2022 Sandro Mani - 4.10.1-1 +- Update to 4.10.1 + +* Tue Apr 26 2022 Sandro Mani - 4.10.0-1 +- Update to 4.10.0 + +* Tue Mar 22 2022 Sandro Mani - 4.9.5-2 +- Rebuild for cgnslib-4.3.0 + +* Mon Feb 21 2022 Richard Shaw - 4.9.5-1 +- Update to 4.9.5. + +* Fri Feb 04 2022 Sandro Mani - 4.9.4-1 +- Update to 4.9.4 + +* Thu Jan 20 2022 Fedora Release Engineering - 4.9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Jan 08 2022 Sandro Mani - 4.9.3-1 +- Update to 4.9.3 + +* Thu Dec 23 2021 Richard Shaw - 4.9.2-1 +- Update to 4.9.2. + +* Sat Dec 18 2021 Richard Shaw - 4.9.1-1 +- Update to 4.9.1. + +* Fri Dec 03 2021 Richard Shaw - 4.9.0-1 +- Update to 4.9.0. + +* Wed Oct 27 2021 Sandro Mani - 4.8.4-6 +- Rebuild (alglib) + +* Thu Jul 22 2021 Fedora Release Engineering - 4.8.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 13 2021 Björn Esser - 4.8.4-4 +- Properly set BLA_VENDOR to FlexiBLAS for cmake >= 3.19 + +* Fri Jun 04 2021 Python Maint - 4.8.4-3 +- Rebuilt for Python 3.10 + +* Thu Apr 29 2021 Sandro Mani - 4.8.4-2 +- Rebuild (cgnslib) + +* Thu Apr 29 2021 Sandro Mani - 4.8.4-1 +- Update to 4.8.4 + +* Tue Apr 06 2021 Sandro Mani - 4.8.3-1 +- Update to 4.8.3 + +* Mon Mar 29 2021 Sandro Mani - 4.8.2-1 +- Update to 4.8.2 + +* Wed Mar 24 2021 Sandro Mani - 4.8.1-1 +- Update to 4.8.1 + +* Tue Mar 02 2021 Sandro Mani - 4.8.0-1 +- Update to 4.8.0 + +* Tue Jan 26 2021 Fedora Release Engineering - 4.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Nov 16 2020 Richard Shaw - 4.7.1-1 +- Update to 4.7.1. + +* Sun Nov 08 2020 Richard Shaw - 4.7.0-1 +- Update to 4.7.0. + * Thu Aug 27 2020 Iñaki Úcar - 4.6.0-5 - https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager diff --git a/gmsh_build.patch b/gmsh_build.patch deleted file mode 100644 index 10e8140..0000000 --- a/gmsh_build.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/Fltk/helpWindow.cpp gmsh-4.6.0-source-new/Fltk/helpWindow.cpp ---- gmsh-4.6.0-source/Fltk/helpWindow.cpp 2020-06-23 09:36:32.877202577 +0200 -+++ gmsh-4.6.0-source-new/Fltk/helpWindow.cpp 2020-06-23 09:36:33.166201093 +0200 -@@ -3,6 +3,12 @@ - // See the LICENSE.txt file for license information. Please report all - // issues on https://gitlab.onelab.info/gmsh/gmsh/issues. - -+#include "GmshConfig.h" -+ -+#if defined(HAVE_MED) -+#include -+#endif -+ - #include - #include - #include -@@ -13,7 +19,6 @@ - #include - #include - #include --#include "GmshConfig.h" - #include "FlGui.h" - #include "inputValue.h" - #include "helpWindow.h" diff --git a/gmsh_c++14.patch b/gmsh_c++14.patch deleted file mode 100644 index 70e2f9b..0000000 --- a/gmsh_c++14.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-new/CMakeLists.txt ---- gmsh-4.6.0-source/CMakeLists.txt 2020-06-23 09:36:32.599204009 +0200 -+++ gmsh-4.6.0-source-new/CMakeLists.txt 2020-06-23 09:36:32.602203993 +0200 -@@ -43,7 +43,7 @@ opt(BUILD_IOS "Enable iOS library target - opt(CGNS "Enable CGNS import/export (experimental)" ${DEFAULT}) - opt(CGNS_CPEX0045 "Enable high-order CGNS import/export following CPEX0045 (experimental)" OFF) - opt(CAIRO "Enable Cairo to render fonts (experimental)" ${DEFAULT}) --opt(CXX11 "Enable C++11" ON) -+opt(CXX14 "Enable C++14" ON) - opt(C99 "Enable C99" ON) - opt(PROFILE "Enable profiling compiler flags" OFF) - opt(DINTEGRATION "Enable discrete integration (needed for levelsets)" ${DEFAULT}) -@@ -337,13 +337,13 @@ if(ENABLE_OPENACC) - endif() - endif() - --if(ENABLE_CXX11) -- # in recent cmake versions we could do e.g. set(CMAKE_CXX_STANDARD 11) -- check_cxx_compiler_flag("-std=c++11" STDCXX11) -- if(STDCXX11) -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -- endif() --endif() -+if(ENABLE_CXX14) -+ check_cxx_compiler_flag("-std=c++14" STDCXX14) -+ if(STDCXX14) -+ set_config_option(HAVE_CXX14 "C++14") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") -+ endif(STDCXX14) -+endif(ENABLE_CXX14) - - if(ENABLE_C99) - # in recent cmake versions we could do e.g. set(CMAKE_C_STANDARD 99) -@@ -1524,10 +1524,10 @@ if(ENABLE_REVOROPT) - get_source_file_property(PROP Plugin/CVTRemesh.cpp COMPILE_FLAGS) - if(PROP) - set_source_files_properties(Plugin/CVTRemesh.cpp PROPERTIES -- COMPILE_FLAGS "${PROP} -std=c++11") -+ COMPILE_FLAGS "${PROP} -std=c++14") - else() - set_source_files_properties(Plugin/CVTRemesh.cpp PROPERTIES -- COMPILE_FLAGS "-std=c++11") -+ COMPILE_FLAGS "-std=c++14") - endif() - else() - message(WARNING "Revoropt requires Eigen3, Mesh, Plugins, ANN and ALGLIB") -@@ -1719,7 +1719,7 @@ if(ENABLE_BUILD_ANDROID) - message(FATAL_ERROR "Cannot compile Gmsh for android without android-cmake") - endif() - add_definitions(-D_GLIBCXX_USE_C99_MATH=1) -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - set(CMAKE_BUILD_TYPE Release) - set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_CURRENT_BINARY_DIR}) - set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/libs/) 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 2cd1be1..5e02993 100644 --- a/gmsh_install.patch +++ b/gmsh_install.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-new/CMakeLists.txt ---- gmsh-4.6.0-source/CMakeLists.txt 2020-06-23 09:36:33.018201852 +0200 -+++ gmsh-4.6.0-source-new/CMakeLists.txt 2020-06-23 09:36:33.020201841 +0200 -@@ -257,7 +257,7 @@ if(ENABLE_RPATH) +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) set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) diff --git a/gmsh_julia.patch b/gmsh_julia.patch index e19a8ec..90c37cf 100644 --- a/gmsh_julia.patch +++ b/gmsh_julia.patch @@ -1,12 +1,12 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-new/CMakeLists.txt ---- gmsh-4.6.0-source/CMakeLists.txt 2020-06-23 09:36:32.743203267 +0200 -+++ gmsh-4.6.0-source-new/CMakeLists.txt 2020-06-23 09:36:32.879202567 +0200 -@@ -1872,7 +1872,7 @@ endif() +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}) install(FILES ${GMSH_PY} DESTINATION ${PYTHON3_SITE_PACKAGES}) - install(FILES ${GMSH_JL} DESTINATION ${GMSH_LIB}) + install(FILES ${GMSH_JL} DESTINATION share/gmsh) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/METADATA DESTINATION + ${PYTHON3_SITE_PACKAGES}/gmsh-${GMSH_PYTHON_VERSION}.dist-info) if(ENABLE_PRIVATE_API) - install(FILES ${GMSH_PRIVATE_API} DESTINATION ${GMSH_INC}/gmsh) - endif() diff --git a/gmsh_med.patch b/gmsh_med.patch index 2632b82..696ca1b 100644 --- a/gmsh_med.patch +++ b/gmsh_med.patch @@ -1,6 +1,6 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/Common/CommandLine.cpp gmsh-4.6.0-source-new/Common/CommandLine.cpp ---- gmsh-4.6.0-source/Common/CommandLine.cpp 2020-06-15 16:04:51.000000000 +0200 -+++ gmsh-4.6.0-source-new/Common/CommandLine.cpp 2020-06-23 09:36:32.745203257 +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.6.0-source/Common/CommandLine.cpp gmsh-4.6.0- #endif #if defined(HAVE_POST) -diff -rupN --no-dereference gmsh-4.6.0-source/Fltk/helpWindow.cpp gmsh-4.6.0-source-new/Fltk/helpWindow.cpp ---- gmsh-4.6.0-source/Fltk/helpWindow.cpp 2020-06-15 16:04:51.000000000 +0200 -+++ gmsh-4.6.0-source-new/Fltk/helpWindow.cpp 2020-06-23 09:36:32.746203252 +0200 -@@ -38,7 +38,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.6.0-source/Fltk/helpWindow.cpp gmsh-4.6.0-sou #endif static const char *help_link(Fl_Widget *w, const char *uri) -diff -rupN --no-dereference gmsh-4.6.0-source/Geo/GModelIO_MED.cpp gmsh-4.6.0-source-new/Geo/GModelIO_MED.cpp ---- gmsh-4.6.0-source/Geo/GModelIO_MED.cpp 2020-06-05 11:56:04.000000000 +0200 -+++ gmsh-4.6.0-source-new/Geo/GModelIO_MED.cpp 2020-06-23 09:36:32.746203252 +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,10 +34,10 @@ diff -rupN --no-dereference gmsh-4.6.0-source/Geo/GModelIO_MED.cpp gmsh-4.6.0-so #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.6.0-source/Post/PViewDataGModelIO.cpp gmsh-4.6.0-source-new/Post/PViewDataGModelIO.cpp ---- gmsh-4.6.0-source/Post/PViewDataGModelIO.cpp 2020-06-05 11:56:06.000000000 +0200 -+++ gmsh-4.6.0-source-new/Post/PViewDataGModelIO.cpp 2020-06-23 09:36:32.746203252 +0200 -@@ -515,7 +515,7 @@ void PViewDataGModel::importLists(int N[ +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 1eb8007..75cfbb1 100644 --- a/gmsh_python.patch +++ b/gmsh_python.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-new/CMakeLists.txt ---- gmsh-4.6.0-source/CMakeLists.txt 2020-06-18 16:15:50.000000000 +0200 -+++ gmsh-4.6.0-source-new/CMakeLists.txt 2020-06-23 09:36:32.464204704 +0200 -@@ -1854,6 +1854,8 @@ else() +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() @@ -9,11 +9,11 @@ diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-n + # mark targets as optional so we can install them separately if needed # (e.g. "make lib" or "make shared" followed by "make install/fast") - install(TARGETS gmsh DESTINATION ${GMSH_BIN} OPTIONAL) -@@ -1865,11 +1867,11 @@ if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_D + install(TARGETS gmsh +@@ -2034,14 +2036,14 @@ if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHAR endif() - if(ENABLE_ONELAB) + if(ENABLE_ONELAB AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/onelab) - install(FILES ${ONELAB_PY} DESTINATION ${GMSH_BIN}) + install(FILES ${ONELAB_PY} DESTINATION ${PYTHON3_SITE_PACKAGES}) endif() @@ -22,21 +22,27 @@ diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-n - install(FILES ${GMSH_PY} DESTINATION ${GMSH_LIB}) + install(FILES ${GMSH_PY} DESTINATION ${PYTHON3_SITE_PACKAGES}) install(FILES ${GMSH_JL} DESTINATION ${GMSH_LIB}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/METADATA DESTINATION +- ${GMSH_LIB}/gmsh-${GMSH_PYTHON_VERSION}.dist-info) ++ ${PYTHON3_SITE_PACKAGES}/gmsh-${GMSH_PYTHON_VERSION}.dist-info) if(ENABLE_PRIVATE_API) install(FILES ${GMSH_PRIVATE_API} DESTINATION ${GMSH_INC}/gmsh) -diff -rupN --no-dereference gmsh-4.6.0-source/Common/GmshMessage.cpp gmsh-4.6.0-source-new/Common/GmshMessage.cpp ---- gmsh-4.6.0-source/Common/GmshMessage.cpp 2020-06-12 19:38:49.000000000 +0200 -+++ gmsh-4.6.0-source-new/Common/GmshMessage.cpp 2020-06-23 09:36:32.464204704 +0200 -@@ -159,12 +159,6 @@ void Msg::Init(int argc, char **argv) - if(CTX::instance()->exeFileName.empty() && argc && argv) - CTX::instance()->exeFileName = argv[0]; + if(HAVE_CONTRIB_EIGEN) # the private API depends on Eigen +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]; -- // add the directory where the binary is installed to the path where Python -- // looks for modules, and to the path for executables (this allows us to find -- // the onelab.py module or subclients automatically) -- addGmshPathToEnvironmentVar("PYTHONPATH"); -- addGmshPathToEnvironmentVar("PATH"); +- if(_env) { +- // add the directory where the binary is installed to the path where Python +- // looks for modules, and to the path for executables (this allows us to +- // find the onelab.py module or subclients automatically) +- addGmshPathToEnvironmentVar("PYTHONPATH"); +- addGmshPathToEnvironmentVar("PATH"); +- } - - InitializeOnelab("Gmsh"); - } - + if(_locale) { + // make sure to use the "C" locale; in particular this ensures that we will + // use a dot for for the decimal separator when writing ASCII mesh files diff --git a/gmsh_unbundle_gl2ps.patch b/gmsh_unbundle_gl2ps.patch index 205213f..0c0047d 100644 --- a/gmsh_unbundle_gl2ps.patch +++ b/gmsh_unbundle_gl2ps.patch @@ -1,22 +1,22 @@ -diff -rupN --no-dereference gmsh-4.6.0-source/CMakeLists.txt gmsh-4.6.0-source-new/CMakeLists.txt ---- gmsh-4.6.0-source/CMakeLists.txt 2020-06-23 09:36:33.165201099 +0200 -+++ gmsh-4.6.0-source-new/CMakeLists.txt 2020-06-23 09:36:33.301200402 +0200 -@@ -1607,6 +1607,8 @@ if(NOT ENABLE_BUILD_DYNAMIC AND NOT ENAB +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() +list(APPEND LINK_LIBRARIES -lgl2ps -lGL) + - # Linux-specific linking + # Linux-specific linker options if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(HAVE_OCC) -diff -rupN --no-dereference gmsh-4.6.0-source/Graphics/CMakeLists.txt gmsh-4.6.0-source-new/Graphics/CMakeLists.txt ---- gmsh-4.6.0-source/Graphics/CMakeLists.txt 2020-03-28 12:28:04.000000000 +0100 -+++ gmsh-4.6.0-source-new/Graphics/CMakeLists.txt 2020-06-23 09:36:33.301200402 +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 - drawGlyph.cpp + drawScales.cpp + drawGraph2d.cpp + drawGlyph.cpp - gl2ps.cpp gl2gif.cpp gl2jpeg.cpp diff --git a/sources b/sources index 28d3122..753782a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gmsh-4.6.0-source-fedora.tar.xz) = e8adf00760a2e93548c937a60130615f7a4195a8c5d6e2d1b9c52383900bc56a8ddabcfda52761d52248c9c49aa6881f71edd87fcda37fe0f017628702329352 +SHA512 (gmsh-4.15.0-source-fedora.tar.xz) = eac4f6e8cd342ec07e1a83cae966d81716e1d158398ed930c82322b61785f8ab38c84ec07efc91f7be523d872e3331e1a64ce81b20a8c899a82107fab9834add