From 1d4e4b48d918bf1dbaa6181223bd03d778ea0724 Mon Sep 17 00:00:00 2001 From: qbisi Date: Wed, 1 Oct 2025 13:33:24 +0800 Subject: [PATCH 1/5] python3Packages.symengine: cleanup --- .../python-modules/symengine/default.nix | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix index 9b5a0b4fd9ec..0033cc62d303 100644 --- a/pkgs/development/python-modules/symengine/default.nix +++ b/pkgs/development/python-modules/symengine/default.nix @@ -3,19 +3,17 @@ buildPythonPackage, fetchFromGitHub, cython, + setuptools, cmake, symengine, pytest, sympy, python, - setuptools, }: buildPythonPackage rec { pname = "symengine"; version = "0.14.1"; - - build-system = [ setuptools ]; pyproject = true; src = fetchFromGitHub { @@ -25,19 +23,24 @@ buildPythonPackage rec { hash = "sha256-adzODm7gAqwAf7qzfRQ1AG8mC3auiXM4OsV/0h+ZmUg="; }; - env = { - SymEngine_DIR = "${symengine}"; - }; - postPatch = '' substituteInPlace setup.py \ --replace-fail "'cython>=0.29.24'" "'cython'" ''; + build-system = [ + cython + setuptools + ]; + dontUseCmakeConfigure = true; + nativeBuildInputs = [ cmake - cython + ]; + + buildInputs = [ + symengine ]; nativeCheckInputs = [ @@ -47,15 +50,17 @@ buildPythonPackage rec { checkPhase = '' runHook preCheck + mkdir empty && cd empty ${python.interpreter} ../bin/test_python.py + runHook postCheck ''; - meta = with lib; { + meta = { description = "Python library providing wrappers to SymEngine"; homepage = "https://github.com/symengine/symengine.py"; - license = licenses.mit; + license = lib.licenses.mit; maintainers = [ ]; }; } From c38618b94327454bb8e28fbe0f92d30aecac4faa Mon Sep 17 00:00:00 2001 From: qbisi Date: Wed, 1 Oct 2025 12:38:30 +0800 Subject: [PATCH 2/5] symengine: modernize --- pkgs/by-name/sy/symengine/package.nix | 39 ++++++++++++--------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/pkgs/by-name/sy/symengine/package.nix b/pkgs/by-name/sy/symengine/package.nix index 5c71dfc1d5cb..8109d41bdb43 100644 --- a/pkgs/by-name/sy/symengine/package.nix +++ b/pkgs/by-name/sy/symengine/package.nix @@ -7,17 +7,17 @@ flint, mpfr, libmpc, - withShared ? true, + withShared ? !stdenv.hostPlatform.isStatic, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "symengine"; version = "0.14.0"; src = fetchFromGitHub { owner = "symengine"; repo = "symengine"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-WriVcYt3fkObR2U4J6a4KGGc2HgyyFyFpdrwxBD+AHA="; }; @@ -31,28 +31,23 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DWITH_FLINT=ON" - "-DINTEGER_CLASS=flint" - "-DWITH_SYMENGINE_THREAD_SAFE=yes" - "-DWITH_MPC=yes" - "-DBUILD_FOR_DISTRIBUTION=yes" - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ - # error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint, ins, not? - "-DBUILD_TESTS=OFF" - ] - ++ lib.optionals withShared [ - "-DBUILD_SHARED_LIBS=ON" + (lib.cmakeBool "WITH_FLINT" true) + (lib.cmakeFeature "INTEGER_CLASS" "flint") + (lib.cmakeBool "WITH_SYMENGINE_THREAD_SAFE" true) + (lib.cmakeBool "WITH_MPC" true) + (lib.cmakeBool "BUILD_FOR_DISTRIBUTION" true) + (lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck) + (lib.cmakeBool "BUILD_SHARED_LIBS" withShared) ]; - doCheck = true; + # error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint, ins, not? + doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64); - meta = with lib; { + meta = { description = "Fast symbolic manipulation library"; homepage = "https://github.com/symengine/symengine"; - platforms = platforms.unix ++ platforms.windows; - license = licenses.bsd3; - maintainers = [ maintainers.costrouc ]; + platforms = with lib.platforms; unix ++ windows; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ costrouc ]; }; - -} +}) From f3ec57b3c7d8621b84a2bc8aee2730e1342bfe53 Mon Sep 17 00:00:00 2001 From: qbisi Date: Wed, 1 Oct 2025 13:03:27 +0800 Subject: [PATCH 3/5] symengine: doCheck on aarch64-darwin --- pkgs/by-name/sy/symengine/package.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/by-name/sy/symengine/package.nix b/pkgs/by-name/sy/symengine/package.nix index 8109d41bdb43..874b57acf1dc 100644 --- a/pkgs/by-name/sy/symengine/package.nix +++ b/pkgs/by-name/sy/symengine/package.nix @@ -40,8 +40,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "BUILD_SHARED_LIBS" withShared) ]; - # error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint, ins, not? - doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64); + doCheck = true; meta = { description = "Fast symbolic manipulation library"; From c54eb8774a046c79d65134613671f1933c5a9d5c Mon Sep 17 00:00:00 2001 From: qbisi Date: Wed, 1 Oct 2025 13:10:02 +0800 Subject: [PATCH 4/5] symengine: split outputs --- pkgs/by-name/sy/symengine/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/sy/symengine/package.nix b/pkgs/by-name/sy/symengine/package.nix index 874b57acf1dc..daab705848d1 100644 --- a/pkgs/by-name/sy/symengine/package.nix +++ b/pkgs/by-name/sy/symengine/package.nix @@ -21,6 +21,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-WriVcYt3fkObR2U4J6a4KGGc2HgyyFyFpdrwxBD+AHA="; }; + outputs = [ + "out" + "dev" + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ From 8fc576329f9bbe0a04937e31a0f9b5945392fd78 Mon Sep 17 00:00:00 2001 From: qbisi Date: Wed, 1 Oct 2025 12:55:59 +0800 Subject: [PATCH 5/5] symengine: fix downstream build with cmake v4 symengine set cmake_minimum_required in SymEngineConfig.cmake module. Upgradding it's minimal required version fix downstream build with cmake v4. --- pkgs/by-name/sy/symengine/package.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/by-name/sy/symengine/package.nix b/pkgs/by-name/sy/symengine/package.nix index daab705848d1..5b55cbe4a867 100644 --- a/pkgs/by-name/sy/symengine/package.nix +++ b/pkgs/by-name/sy/symengine/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch2, cmake, gmp, flint, @@ -26,6 +27,18 @@ stdenv.mkDerivation (finalAttrs: { "dev" ]; + # upgrade supported cmake version in SymEngineConfig.cmake + patches = [ + (fetchpatch2 { + url = "https://github.com/symengine/symengine/commit/c149b874b8ff947e51e8e58670a0d37daf588f86.patch?full_index=1"; + hash = "sha256-LqkJRPdsbE8OE8G6AkpWX9B+GqnOQjUNPHpKKIcCL3Q="; + }) + (fetchpatch2 { + url = "https://github.com/symengine/symengine/commit/186f72e208220efd12362c336a49378076f63f30.patch?full_index=1"; + hash = "sha256-CuQra9K3MTxm8M0bt3LooJz9HgW0/Jy6ydRBCvEgkO4="; + }) + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [