From f02df8c21f6d9f4bf53a74842f1f3b4b75ea2fa6 Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 17 Jul 2025 14:59:53 +0800 Subject: [PATCH 1/4] gmsh: remove redundant enableParalleBuilding --- pkgs/by-name/gm/gmsh/package.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/by-name/gm/gmsh/package.nix b/pkgs/by-name/gm/gmsh/package.nix index d0be8fc8fc50..271950d1a087 100644 --- a/pkgs/by-name/gm/gmsh/package.nix +++ b/pkgs/by-name/gm/gmsh/package.nix @@ -57,8 +57,6 @@ stdenv.mkDerivation rec { ++ lib.optional stdenv.cc.isClang llvmPackages.openmp ++ lib.optional enablePython python; - enableParallelBuilding = true; - patches = [ (fetchpatch { url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/7d5094fb0a5245cb435afd3f3e8c35e2ecfe70fd.patch"; From 485fd2c0fa4842974b9fff1d6c5a68fec9b80e3b Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 17 Jul 2025 15:11:54 +0800 Subject: [PATCH 2/4] python3Packages.gmsh: use python3Packages --- pkgs/by-name/gm/gmsh/package.nix | 29 ++++++++++++++++------------- pkgs/top-level/python-packages.nix | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/gm/gmsh/package.nix b/pkgs/by-name/gm/gmsh/package.nix index 271950d1a087..2f5793d4b950 100644 --- a/pkgs/by-name/gm/gmsh/package.nix +++ b/pkgs/by-name/gm/gmsh/package.nix @@ -16,12 +16,11 @@ xorg, opencascade-occt, llvmPackages, - python ? null, + python3Packages, enablePython ? false, }: assert (!blas.isILP64) && (!lapack.isILP64); -assert enablePython -> (python != null); stdenv.mkDerivation rec { pname = "gmsh"; @@ -32,6 +31,14 @@ stdenv.mkDerivation rec { hash = "sha256-d5chRfQxcmAm1QWWpqRPs8HJXCElUhjWaVWAa4btvo0="; }; + nativeBuildInputs = [ + cmake + gfortran + ] + ++ lib.optional ( + enablePython && stdenv.buildPlatform == stdenv.hostPlatform + ) python3Packages.pythonImportsCheckHook; + buildInputs = [ blas lapack @@ -54,8 +61,7 @@ stdenv.mkDerivation rec { xorg.libSM xorg.libICE ] - ++ lib.optional stdenv.cc.isClang llvmPackages.openmp - ++ lib.optional enablePython python; + ++ lib.optional stdenv.cc.isClang llvmPackages.openmp; patches = [ (fetchpatch { @@ -76,18 +82,15 @@ stdenv.mkDerivation rec { "-DENABLE_OPENMP=ON" ]; - nativeBuildInputs = [ - cmake - gfortran - ]; + doCheck = true; - postFixup = lib.optionalString enablePython '' - mkdir -p $out/lib/python${python.pythonVersion}/site-packages - mv $out/lib/gmsh.py $out/lib/python${python.pythonVersion}/site-packages - mv $out/lib/*.dist-info $out/lib/python${python.pythonVersion}/site-packages + postInstall = lib.optionalString enablePython '' + mkdir -p $out/${python3Packages.python.sitePackages} + mv $out/lib/gmsh.py $out/${python3Packages.python.sitePackages} + mv $out/lib/*.dist-info $out/${python3Packages.python.sitePackages} ''; - doCheck = true; + pythonImportsCheck = [ "gmsh" ]; meta = { description = "Three-dimensional finite element mesh generator"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2c6e5180a9ce..4703e4493143 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5885,7 +5885,7 @@ self: super: with self; { gmsh = toPythonModule ( pkgs.gmsh.override { - inherit (self) python; + python3Packages = self; enablePython = true; } ); From 02e8e98152361c02cbbf0a9562f176b1626f2d6e Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 17 Jul 2025 16:06:47 +0800 Subject: [PATCH 3/4] gmsh: add desktopItem --- pkgs/by-name/gm/gmsh/package.nix | 46 +++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/gm/gmsh/package.nix b/pkgs/by-name/gm/gmsh/package.nix index 2f5793d4b950..098cf4e51eaf 100644 --- a/pkgs/by-name/gm/gmsh/package.nix +++ b/pkgs/by-name/gm/gmsh/package.nix @@ -3,6 +3,8 @@ stdenv, fetchurl, fetchpatch, + makeDesktopItem, + copyDesktopItems, cmake, blas, lapack, @@ -22,12 +24,12 @@ assert (!blas.isILP64) && (!lapack.isILP64); -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gmsh"; version = "4.13.1"; src = fetchurl { - url = "https://gmsh.info/src/gmsh-${version}-source.tgz"; + url = "https://gmsh.info/src/gmsh-${finalAttrs.version}-source.tgz"; hash = "sha256-d5chRfQxcmAm1QWWpqRPs8HJXCElUhjWaVWAa4btvo0="; }; @@ -37,7 +39,8 @@ stdenv.mkDerivation rec { ] ++ lib.optional ( enablePython && stdenv.buildPlatform == stdenv.hostPlatform - ) python3Packages.pythonImportsCheckHook; + ) python3Packages.pythonImportsCheckHook + ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems; buildInputs = [ blas @@ -84,11 +87,36 @@ stdenv.mkDerivation rec { doCheck = true; - postInstall = lib.optionalString enablePython '' - mkdir -p $out/${python3Packages.python.sitePackages} - mv $out/lib/gmsh.py $out/${python3Packages.python.sitePackages} - mv $out/lib/*.dist-info $out/${python3Packages.python.sitePackages} - ''; + desktopItems = [ + (makeDesktopItem { + name = "gmsh"; + exec = "gmsh"; + comment = finalAttrs.meta.description; + desktopName = "Gmsh"; + genericName = "3D Mesh Generator"; + categories = [ + "Science" + "Math" + ]; + icon = "gmsh"; + }) + ]; + + postInstall = + let + logo = fetchurl { + url = "https://salsa.debian.org/science-team/gmsh/-/raw/d2d8b4e3488c7b0f51879f809f624b537b4bd28f/debian/gmsh.svg"; + hash = "sha256-p69Cju3bn1ShWmESOSOmJj0x3IYDGI9oD25SFTh2GLo="; + }; + in + lib.optionalString stdenv.hostPlatform.isLinux '' + install -Dm644 ${logo} $out/share/icons/hicolor/scalable/apps/gmsh.svg + '' + + lib.optionalString enablePython '' + mkdir -p $out/${python3Packages.python.sitePackages} + mv $out/lib/gmsh.py $out/${python3Packages.python.sitePackages} + mv $out/lib/*.dist-info $out/${python3Packages.python.sitePackages} + ''; pythonImportsCheck = [ "gmsh" ]; @@ -98,4 +126,4 @@ stdenv.mkDerivation rec { homepage = "https://gmsh.info/"; license = lib.licenses.gpl2Plus; }; -} +}) From 2de67f8be5de0e25ddb2c2b0ab7aa2f50205da2d Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 17 Jul 2025 14:58:56 +0800 Subject: [PATCH 4/4] gmsh: 4.13.1 -> 4.14.0 changelog: https://gitlab.onelab.info/gmsh/gmsh/-/releases/gmsh_4_14_0#changelog --- pkgs/by-name/gm/gmsh/package.nix | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/gm/gmsh/package.nix b/pkgs/by-name/gm/gmsh/package.nix index 098cf4e51eaf..c2b341e5f15e 100644 --- a/pkgs/by-name/gm/gmsh/package.nix +++ b/pkgs/by-name/gm/gmsh/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchurl, - fetchpatch, makeDesktopItem, copyDesktopItems, cmake, @@ -26,11 +25,11 @@ assert (!blas.isILP64) && (!lapack.isILP64); stdenv.mkDerivation (finalAttrs: { pname = "gmsh"; - version = "4.13.1"; + version = "4.14.0"; src = fetchurl { url = "https://gmsh.info/src/gmsh-${finalAttrs.version}-source.tgz"; - hash = "sha256-d5chRfQxcmAm1QWWpqRPs8HJXCElUhjWaVWAa4btvo0="; + hash = "sha256-2019ogYumkNWqCCDITirmfl69jiL/rIVmaLq37C3aig="; }; nativeBuildInputs = [ @@ -66,18 +65,6 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional stdenv.cc.isClang llvmPackages.openmp; - patches = [ - (fetchpatch { - url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/7d5094fb0a5245cb435afd3f3e8c35e2ecfe70fd.patch"; - hash = "sha256-3atm1NGsMI4KEct2xakRG6EasRpF6YRI4raoVYxBV4g="; - }) - ]; - - postPatch = '' - substituteInPlace api/gmsh.py \ - --replace-fail 'find_library("gmsh")' \"$out/lib/libgmsh${stdenv.hostPlatform.extensions.sharedLibrary}\" - ''; - # N.B. the shared object is used by bindings cmakeFlags = [ "-DENABLE_BUILD_SHARED=ON" @@ -124,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Three-dimensional finite element mesh generator"; mainProgram = "gmsh"; homepage = "https://gmsh.info/"; + changelog = "https://gitlab.onelab.info/gmsh/gmsh/-/releases/gmsh_${lib.concatStringsSep "_" (lib.versions.splitVersion finalAttrs.version)}#changelog"; license = lib.licenses.gpl2Plus; }; })