about summary refs log tree commit diff
path: root/pkgs/applications/science/math
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/science/math')
-rw-r--r--pkgs/applications/science/math/LiE/default.nix1
-rw-r--r--pkgs/applications/science/math/R/default.nix4
-rw-r--r--pkgs/applications/science/math/almonds/default.nix1
-rw-r--r--pkgs/applications/science/math/bcal/default.nix1
-rw-r--r--pkgs/applications/science/math/bliss/default.nix1
-rw-r--r--pkgs/applications/science/math/calc/default.nix1
-rw-r--r--pkgs/applications/science/math/calculix/default.nix1
-rw-r--r--pkgs/applications/science/math/cemu-ti/default.nix1
-rw-r--r--pkgs/applications/science/math/clp/default.nix1
-rw-r--r--pkgs/applications/science/math/ecm/default.nix1
-rw-r--r--pkgs/applications/science/math/eigenmath/default.nix7
-rw-r--r--pkgs/applications/science/math/engauge-digitizer/default.nix1
-rw-r--r--pkgs/applications/science/math/getdp/default.nix5
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix1
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix1
-rw-r--r--pkgs/applications/science/math/jags/default.nix1
-rw-r--r--pkgs/applications/science/math/lp_solve/default.nix1
-rw-r--r--pkgs/applications/science/math/msieve/default.nix12
-rw-r--r--pkgs/applications/science/math/nauty/default.nix8
-rw-r--r--pkgs/applications/science/math/nota/default.nix1
-rw-r--r--pkgs/applications/science/math/palp/default.nix4
-rw-r--r--pkgs/applications/science/math/pcalc/default.nix1
-rw-r--r--pkgs/applications/science/math/perseus/default.nix1
-rw-r--r--pkgs/applications/science/math/programmer-calculator/default.nix1
-rw-r--r--pkgs/applications/science/math/ratpoints/default.nix1
-rw-r--r--pkgs/applications/science/math/ries/default.nix1
-rw-r--r--pkgs/applications/science/math/ripser/default.nix1
-rw-r--r--pkgs/applications/science/math/sage/default.nix10
-rw-r--r--pkgs/applications/science/math/sage/env-locations.nix6
-rw-r--r--pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix6
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix16
-rw-r--r--pkgs/applications/science/math/sage/sage.nix1
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix15
-rw-r--r--pkgs/applications/science/math/scalp/default.nix1
-rw-r--r--pkgs/applications/science/math/singular/default.nix10
-rw-r--r--pkgs/applications/science/math/speedcrunch/default.nix1
-rw-r--r--pkgs/applications/science/math/weka/default.nix1
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix1
-rw-r--r--pkgs/applications/science/math/zegrapher/default.nix1
40 files changed, 78 insertions, 54 deletions
diff --git a/pkgs/applications/science/math/LiE/default.nix b/pkgs/applications/science/math/LiE/default.nix
index d05cc90ca44c..7eb9edbb3b19 100644
--- a/pkgs/applications/science/math/LiE/default.nix
+++ b/pkgs/applications/science/math/LiE/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A Computer algebra package for Lie group computations";
+    mainProgram = "lie";
     homepage = "http://wwwmathlabo.univ-poitiers.fr/~maavl/LiE/";
     license = lib.licenses.lgpl3; # see the website
 
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index f4cc1f1fbfea..acfc38686ea4 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -15,13 +15,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "R";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = let
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-s/V2CsLu6AJqPw7vyyW0dyPZeAOO7o6ER2IJTIYMRSo=";
+    sha256 = "sha256-gIUSMTk7hb84d+6eObKC51Dthkxexgy9aObhOfBSAzA=";
   };
 
   outputs = [ "out" "tex" ];
diff --git a/pkgs/applications/science/math/almonds/default.nix b/pkgs/applications/science/math/almonds/default.nix
index ec3891667c58..2b05b552253d 100644
--- a/pkgs/applications/science/math/almonds/default.nix
+++ b/pkgs/applications/science/math/almonds/default.nix
@@ -19,6 +19,7 @@ with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Terminal Mandelbrot fractal viewer";
+    mainProgram = "almonds";
     homepage = "https://github.com/Tenchi2xh/Almonds";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
diff --git a/pkgs/applications/science/math/bcal/default.nix b/pkgs/applications/science/math/bcal/default.nix
index fdf07a2a3299..9ba028d1cb65 100644
--- a/pkgs/applications/science/math/bcal/default.nix
+++ b/pkgs/applications/science/math/bcal/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Storage conversion and expression calculator";
+    mainProgram = "bcal";
     homepage = "https://github.com/jarun/bcal";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/math/bliss/default.nix b/pkgs/applications/science/math/bliss/default.nix
index 4fccc3a46403..33969c705d05 100644
--- a/pkgs/applications/science/math/bliss/default.nix
+++ b/pkgs/applications/science/math/bliss/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
+    mainProgram = "bliss";
     homepage = "http://www.tcs.hut.fi/Software/bliss/";
     license = licenses.lgpl3;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index 0f8982eac5b9..699f3d25caf7 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.isthe.com/chongo/tech/comp/calc/";
     description = "C-style arbitrary precision calculator";
+    mainProgram = "calc";
     changelog = "https://github.com/lcn2/calc/blob/v${finalAttrs.version}/CHANGES";
     # The licensing situation depends on readline (see section 3 of the LGPL)
     # If linked against readline then GPLv2 otherwise LGPLv2.1
diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix
index 7a89fdd73c84..8af2ea9f4bce 100644
--- a/pkgs/applications/science/math/calculix/default.nix
+++ b/pkgs/applications/science/math/calculix/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.calculix.de/";
     description = "Three-dimensional structural finite element program";
+    mainProgram = "ccx";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/math/cemu-ti/default.nix b/pkgs/applications/science/math/cemu-ti/default.nix
index 2f2440eacfed..c8d5bea6f602 100644
--- a/pkgs/applications/science/math/cemu-ti/default.nix
+++ b/pkgs/applications/science/math/cemu-ti/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features";
+    mainProgram = "CEmu";
     homepage = "https://ce-programming.github.io/CEmu";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ luc65r ];
diff --git a/pkgs/applications/science/math/clp/default.nix b/pkgs/applications/science/math/clp/default.nix
index 4cfff4702e69..06032b4a3182 100644
--- a/pkgs/applications/science/math/clp/default.nix
+++ b/pkgs/applications/science/math/clp/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.epl20;
     homepage = "https://github.com/coin-or/Clp";
     description = "An open-source linear programming solver written in C++";
+    mainProgram = "clp";
     platforms = platforms.darwin ++ platforms.linux;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/applications/science/math/ecm/default.nix b/pkgs/applications/science/math/ecm/default.nix
index c59b1a8729a2..222db0e98e6a 100644
--- a/pkgs/applications/science/math/ecm/default.nix
+++ b/pkgs/applications/science/math/ecm/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Elliptic Curve Method for Integer Factorization";
+    mainProgram = "ecm";
     license = lib.licenses.gpl2Plus;
     homepage = "http://ecm.gforge.inria.fr/";
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/pkgs/applications/science/math/eigenmath/default.nix b/pkgs/applications/science/math/eigenmath/default.nix
index 674a5ea0d973..358e491b2f4a 100644
--- a/pkgs/applications/science/math/eigenmath/default.nix
+++ b/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "unstable-2024-03-11";
+  version = "unstable-2024-03-20";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "dfa24af6c747e1c90d79a462c2a5a0716b3a1dc0";
-    hash = "sha256-kgC+E/ecgl27Hs+qCyqg8CjbEyB91AgN397DST/dPMI=";
+    rev = "262a6525225be7bcef52c3072b1061db3c238055";
+    hash = "sha256-QH8mLlcCOuq77vLer8RsSnD9VeJu9kAVv2qWAH3ky6I=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     description = "Computer algebra system written in C";
+    mainProgram = "eigenmath";
     homepage = "https://georgeweigt.github.io";
     license = licenses.bsd2;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/applications/science/math/engauge-digitizer/default.nix b/pkgs/applications/science/math/engauge-digitizer/default.nix
index 4c26dc2887c8..95306a0820fa 100644
--- a/pkgs/applications/science/math/engauge-digitizer/default.nix
+++ b/pkgs/applications/science/math/engauge-digitizer/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Engauge Digitizer is a tool for recovering graph data from an image file";
+    mainProgram = "engauge";
     homepage = "https://markummitchell.github.io/engauge-digitizer";
     license = with licenses; [ gpl2Only ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/math/getdp/default.nix b/pkgs/applications/science/math/getdp/default.nix
index b5f4263c793d..d28f59e4be2f 100644
--- a/pkgs/applications/science/math/getdp/default.nix
+++ b/pkgs/applications/science/math/getdp/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "getdp";
-  version = "3.5.0";
+  version = "3.6.0";
   src = fetchurl {
     url = "http://getdp.info/src/getdp-${version}-source.tgz";
-    sha256 = "sha256-C/dsSe+puIQBpFfBL3qr2XWXrUnvYy0/uTCKqOpDe9w=";
+    sha256 = "sha256-N1cb72W77Dr+TzeHpLgv5FuFb+SJqyGcfn+kOfEvZgA=";
   };
 
   inherit (petsc) mpiSupport;
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A General Environment for the Treatment of Discrete Problems";
+    mainProgram = "getdp";
     longDescription = ''
       GetDP is a free finite element solver using mixed elements to discretize
       de Rham-type complexes in one, two and three dimensions.  The main
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index b4e8c6fb23db..d2ebba75638b 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://raffalli.eu/~christophe/glsurf/";
     description = "A program to draw implicit surfaces and curves";
+    mainProgram = "glsurf";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 62a0c3c405df..669d3a3ab8f1 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A three-dimensional finite element mesh generator";
+    mainProgram = "gmsh";
     homepage = "https://gmsh.info/";
     license = lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/applications/science/math/jags/default.nix b/pkgs/applications/science/math/jags/default.nix
index 087807013694..50d7df24417a 100644
--- a/pkgs/applications/science/math/jags/default.nix
+++ b/pkgs/applications/science/math/jags/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Just Another Gibbs Sampler";
+    mainProgram = "jags";
     license = licenses.gpl2;
     homepage = "http://mcmc-jags.sourceforge.net";
     maintainers = [ maintainers.andres ];
diff --git a/pkgs/applications/science/math/lp_solve/default.nix b/pkgs/applications/science/math/lp_solve/default.nix
index ee54def6eb97..fdabc8896a58 100644
--- a/pkgs/applications/science/math/lp_solve/default.nix
+++ b/pkgs/applications/science/math/lp_solve/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Mixed Integer Linear Programming (MILP) solver";
+    mainProgram = "lp_solve";
     homepage = "https://lpsolve.sourceforge.net";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ smironov ];
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
index 6456608e7dbc..1de6d416a0e6 100644
--- a/pkgs/applications/science/math/msieve/default.nix
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -1,12 +1,13 @@
-{ lib, stdenv, fetchurl, zlib, gmp, ecm }:
+{ lib, stdenv, fetchsvn, zlib, gmp, ecm }:
 
 stdenv.mkDerivation rec {
   pname = "msieve";
-  version = "1.53";
+  version = "r1050";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/msieve/msieve/Msieve%20v${version}/msieve${lib.replaceStrings ["."] [""] version}_src.tar.gz";
-    sha256 = "1d1vv7j4rh3nnxsmvafi73qy7lw7n3akjlm5pjl3m936yapvmz65";
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/msieve/code/trunk";
+    rev = "1050";
+    hash = "sha256-cn6OhE4zhrpB7BFrRdOnucjATbfo5mLkK7O0Usx1quE=";
   };
 
   buildInputs = [ zlib gmp ecm ];
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A C library implementing a suite of algorithms to factor large integers";
+    mainProgram = "msieve";
     license = lib.licenses.publicDomain;
     homepage = "http://msieve.sourceforge.net/";
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index ef8c041039b1..c1feeffdcb6d 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -4,11 +4,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nauty";
-  version = "2.7r4";
+  version = "2.8.8";
 
   src = fetchurl {
-    url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] [""] version}.tar.gz";
-    sha256 = "sha256-uBDIWm/imfO0yfJKr5KcrH+VRsLzXCDh3Qrbx0CISKY=";
+    url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] ["_"] version}.tar.gz";
+    sha256 = "sha256-FZ0hVoEKa7JAQQzWHrZBrdhQiNnxXIiM2qN7hoH5Kc4=";
   };
 
   outputs = [ "out" "dev" ];
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     # I'm not sure if the filename will remain the same for future changelog or
     # if it will track changes to minor releases. Lets see. Better than nothing
     # in any case.
-    changelog = "https://pallini.di.uniroma1.it/changes24-27.txt";
+    changelog = "https://pallini.di.uniroma1.it/changes24-28.txt";
     homepage = "https://pallini.di.uniroma1.it/";
   };
 }
diff --git a/pkgs/applications/science/math/nota/default.nix b/pkgs/applications/science/math/nota/default.nix
index 897785ef6e8b..810d7d6d72bc 100644
--- a/pkgs/applications/science/math/nota/default.nix
+++ b/pkgs/applications/science/math/nota/default.nix
@@ -37,4 +37,5 @@ mkDerivation rec {
   homepage = "https://kary.us/nota";
   license = lib.licenses.mpl20;
   maintainers = with lib.maintainers; [ dtzWill ];
+  mainProgram = "nota";
 }
diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
index ffe17bc3dec2..2fe77aa14a65 100644
--- a/pkgs/applications/science/math/palp/default.nix
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -10,11 +10,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "palp";
-  version = "2.20";
+  version = "2.21";
 
   src = fetchurl {
     url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/${pname}-${version}.tar.gz";
-    sha256 = "1q1cl3vpdir16szy0jcadysydcrjp48hqxyx42kr8g9digkqjgkj";
+    sha256 = "sha256-fkp78hmZioRMC8zgoXbknQdDy0tQWg4ZUym/LsGW3dc=";
   };
 
   hardeningDisable = [
diff --git a/pkgs/applications/science/math/pcalc/default.nix b/pkgs/applications/science/math/pcalc/default.nix
index 97888b712eb1..64ab5acebed2 100644
--- a/pkgs/applications/science/math/pcalc/default.nix
+++ b/pkgs/applications/science/math/pcalc/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://vapier.github.io/pcalc/";
     description = "Programmer's calculator";
+    mainProgram = "pcalc";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ftrvxmtrx ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/math/perseus/default.nix b/pkgs/applications/science/math/perseus/default.nix
index bbfc8aed4428..9a37eeac66da 100644
--- a/pkgs/applications/science/math/perseus/default.nix
+++ b/pkgs/applications/science/math/perseus/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "The Persistent Homology Software";
+    mainProgram = "perseus";
     longDescription = ''
       Persistent homology - or simply, persistence - is an algebraic
       topological invariant of a filtered cell complex. Perseus
diff --git a/pkgs/applications/science/math/programmer-calculator/default.nix b/pkgs/applications/science/math/programmer-calculator/default.nix
index ee48a1d0f1a3..9cb220ceca6a 100644
--- a/pkgs/applications/science/math/programmer-calculator/default.nix
+++ b/pkgs/applications/science/math/programmer-calculator/default.nix
@@ -21,6 +21,7 @@ gccStdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A terminal calculator for programmers";
+    mainProgram = "pcalc";
     longDescription = ''
       Terminal calculator made for programmers working with multiple number
       representations, sizes, and overall close to the bits
diff --git a/pkgs/applications/science/math/ratpoints/default.nix b/pkgs/applications/science/math/ratpoints/default.nix
index 42e6b7d00a5e..69b972fe9790 100644
--- a/pkgs/applications/science/math/ratpoints/default.nix
+++ b/pkgs/applications/science/math/ratpoints/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A program to find rational points on hyperelliptic curves";
+    mainProgram = "ratpoints";
     license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/science/math/ries/default.nix b/pkgs/applications/science/math/ries/default.nix
index eb759723256d..5c0626913e3c 100644
--- a/pkgs/applications/science/math/ries/default.nix
+++ b/pkgs/applications/science/math/ries/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mrob.com/pub/ries/";
     description = "Tool to produce a list of equations that approximately solve to a given number";
+    mainProgram = "ries";
     platforms = platforms.all;
     maintainers = with maintainers; [ symphorien ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/math/ripser/default.nix b/pkgs/applications/science/math/ripser/default.nix
index 50ccee58f503..83cf6bc51aa4 100644
--- a/pkgs/applications/science/math/ripser/default.nix
+++ b/pkgs/applications/science/math/ripser/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A lean C++ code for the computation of Vietoris–Rips persistence barcodes";
+    mainProgram = "ripser";
     homepage = "https://github.com/Ripser/ripser";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [erikryb];
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 765c691c9555..6624dcc36528 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -15,7 +15,7 @@ let
     pkgs = pkgs.python3.pkgs.overrideScope (self: super: {
       # `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
       sagelib = self.callPackage ./sagelib.nix {
-        inherit flint arb;
+        inherit flint3;
         inherit sage-src env-locations singular;
         inherit (maxima) lisp-compiler;
         linbox = pkgs.linbox.override { withSage = true; };
@@ -73,7 +73,7 @@ let
     sagelib = python3.pkgs.sagelib;
     sage-docbuild = python3.pkgs.sage-docbuild;
     inherit env-locations;
-    inherit python3 singular palp flint pythonEnv maxima;
+    inherit python3 singular palp flint3 pythonEnv maxima;
     pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
   };
 
@@ -125,9 +125,7 @@ let
     ignoreCollisions = true;
   } // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
 
-  arb = pkgs.arb.override { inherit flint; };
-
-  singular = pkgs.singular.override { inherit flint; };
+  singular = pkgs.singular.override { inherit flint3; };
 
   maxima = pkgs.maxima-ecl.override {
     lisp-compiler = pkgs.ecl.override {
@@ -149,7 +147,7 @@ let
   # openblas instead of openblasCompat. Apparently other packages somehow use flints
   # blas when it is available. Alternative would be to override flint to use
   # openblasCompat.
-  flint = pkgs.flint.override { withBlas = false; };
+  flint3 = pkgs.flint3.override { withBlas = false; };
 
   # Multiple palp dimensions need to be available and sage expects them all to be
   # in the same folder.
diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix
index 39d358a1f9a8..1ca0f471a7ee 100644
--- a/pkgs/applications/science/math/sage/env-locations.nix
+++ b/pkgs/applications/science/math/sage/env-locations.nix
@@ -3,7 +3,6 @@
 , pari
 , singular
 , maxima
-, conway_polynomials
 , graphs
 , elliptic_curves
 , polytopes_db
@@ -27,16 +26,13 @@ writeTextFile rec {
     export GPDOCDIR="${pari}/share/pari/doc"
     export SINGULARPATH='${singular}/share/singular'
     export SINGULAR_SO='${singular}/lib/libSingular.so'
-    export GAP_SO='${gap}/lib/libgap.so'
     export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
     export MAXIMA_FAS='${maxima}/lib/maxima/${maxima.version}/binary-ecl/maxima.fas'
     export MAXIMA_PREFIX="${maxima}"
-    export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
     export GRAPHS_DATA_DIR='${graphs}/share/graphs'
     export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
     export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
-    export GAP_LIB_DIR='${gap}/lib/gap'
-    export GAP_SHARE_DIR='${gap}/share/gap'
+    export GAP_ROOT_PATHS='${gap}/lib/gap;${gap}/share/gap'
     export ECLDIR='${maxima.lisp-compiler}/lib/${maxima.lisp-compiler.pname}-${maxima.lisp-compiler.version}/'
     export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
     export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
diff --git a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
index fb8c3ec8a204..b45998bbcb86 100644
--- a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
+++ b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
@@ -4,6 +4,7 @@
 , jupyter-sphinx
 , sphinx
 , sphinx-copybutton
+, sphinx-inline-tabs
 }:
 
 buildPythonPackage rec {
@@ -15,6 +16,7 @@ buildPythonPackage rec {
     jupyter-sphinx
     sphinx
     sphinx-copybutton
+    sphinx-inline-tabs
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index 4c22470de910..4f179ea3a42b 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -42,7 +42,7 @@
 , flintqs
 , blas
 , lapack
-, flint
+, flint3
 , gmp
 , mpfr
 , zlib
@@ -155,7 +155,7 @@ writeTextFile rec {
     # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
     export LDFLAGS='${
       lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
-        flint
+        flint3
         gap
         glpk
         gmp
@@ -174,7 +174,7 @@ writeTextFile rec {
         singular
         gmp.dev
         glpk
-        flint
+        flint3
         gap
         mpfr.dev
       ])
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index a77565e4072a..11bcc9ee3d5a 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,14 +10,14 @@
 # all get the same sources with the same patches applied.
 
 stdenv.mkDerivation rec {
-  version = "10.2";
+  version = "10.3";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-VXnPdJhtw5Y/anecrVpevJDCyBVfnjksyuuZslNipm4=";
+    hash = "sha256-OHtMv8t0RrP6R8XIREU+C1vpazeQLWa75wx9Mv6BN1U=";
   };
 
   # contains essential files (e.g., setup.cfg) generated by the bootstrap script.
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   configure-src = fetchurl {
     # the hash below is the tagged commit's _parent_. it can also be found by looking for
     # the "configure" asset at https://github.com/sagemath/sage/releases/tag/${version}
-    url = "mirror://sageupstream/configure/configure-b2813506039143e6f0abe859ab67a343abf72c2e.tar.gz";
-    sha256 = "sha256-a1v0XyoKI+zO6Sjm8DzEwItRHbIgRDbpj4UfwVH+/hw=";
+    url = "mirror://sageupstream/configure/configure-ab1a517b64b02bf15bbcb8d7c2d4d643bd5eff9b.tar.gz";
+    hash = "sha256-pe9AxTM+gFSR4/eVfUzay+4bwjoubbYeDPc+avKjlaw=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -62,11 +62,11 @@ stdenv.mkDerivation rec {
   # should come from or be proposed to upstream. This list will probably never
   # be empty since dependencies update all the time.
   packageUpgradePatches = [
-    # https://github.com/sagemath/sage/pull/37123, to land in 10.3.beta7
+    # https://github.com/sagemath/sage/pull/37492
     (fetchpatch {
-      name = "scipy-1.12-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/54eec464e9fdf18b411d9148aecb918178e95909.diff";
-      sha256 = "sha256-9wyNrcSfF6mYFTIV4ev2OdD7igb0AeyZZYWSc/+JrIU=";
+      name = "singular-4.3.2p14-upgrade.patch";
+      url = "https://github.com/sagemath/sage/commit/a0c56816b051e97da44ac0a4e4d4f6915cf7fa0f.diff";
+      sha256 = "sha256-WGMmPeBoj2LUC+2qxWuaJL89QUuGt6axGvxWkpM9LYg=";
     })
   ];
 
diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix
index 227e4bbdbfdb..81b55e841d24 100644
--- a/pkgs/applications/science/math/sage/sage.nix
+++ b/pkgs/applications/science/math/sage/sage.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
+    mainProgram = "sage";
     homepage = "https://www.sagemath.org";
     license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 5a1f4ee473c9..b67b74e3a0f2 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -10,7 +10,6 @@
 , iml
 , libpng
 , readline
-, arb
 , blas
 , boost
 , brial
@@ -18,7 +17,7 @@
 , eclib
 , ecm
 , fflas-ffpack
-, flint
+, flint3
 , gap
 , giac
 , givaro
@@ -45,6 +44,7 @@
 , singular
 , sqlite
 , symmetrica
+, conway-polynomials
 , cvxopt
 , cypari2
 , cysignals
@@ -92,6 +92,7 @@ buildPythonPackage rec {
   version = src.version;
   pname = "sagelib";
   src = sage-src;
+  pyproject = true;
 
   nativeBuildInputs = [
     iml
@@ -112,7 +113,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     # native dependencies (TODO: determine which ones need to be propagated)
-    arb
     blas
     boost
     brial
@@ -120,7 +120,7 @@ buildPythonPackage rec {
     eclib
     ecm
     fflas-ffpack
-    flint
+    flint3
     gap
     giac
     givaro
@@ -149,6 +149,7 @@ buildPythonPackage rec {
     symmetrica
 
     # from src/sage/setup.cfg and requirements.txt
+    conway-polynomials
     cvxopt
     cypari2
     cysignals
@@ -202,11 +203,7 @@ buildPythonPackage rec {
     mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
     mkdir -p "var/lib/sage/installed"
 
-    # version lower bounds are useful, but upper bounds are a hassle because
-    # Sage tests already catch any relevant API breakage.
-    # according to the discussion at https://trac.sagemath.org/ticket/33520,
-    # upper bounds will be less noisy starting from Sage 9.6.
-    sed -i 's/, <[^, ]*//' build/pkgs/*/install-requires.txt
+    sed -i "/sage-conf/d" src/{setup.cfg,pyproject.toml,requirements.txt}
 
     cd build/pkgs/sagelib/src
   '';
diff --git a/pkgs/applications/science/math/scalp/default.nix b/pkgs/applications/science/math/scalp/default.nix
index 4145407d7aaa..fc230a11966f 100644
--- a/pkgs/applications/science/math/scalp/default.nix
+++ b/pkgs/applications/science/math/scalp/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Scalable Linear Programming Library";
+    mainProgram = "scalp";
     homepage = "https://digidev.digi.e-technik.uni-kassel.de/scalp/";
     license = licenses.lgpl3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index f77bd5a92243..a6c64066d88e 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -5,7 +5,7 @@
 , sharutils
 , file
 , getconf
-, flint
+, flint3
 , ntl
 , cddlib
 , gfan
@@ -18,13 +18,13 @@
 # want it to match the upstream format because sage depends on it.
 , texinfo4
 , texliveSmall
-, enableDocs ? !stdenv.isDarwin
+, enableDocs ? true
 , enableGfanlib ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "singular";
-  version = "4.3.2p2";
+  version = "4.3.2p16";
 
   # since the tarball does not contain tests, we fetch from GitHub.
   src = fetchFromGitHub {
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     # if a release is tagged (which sometimes does not happen), it will
     # be in the format below.
     rev = "Release-${lib.replaceStrings ["."] ["-"] version}";
-    sha256 = "sha256-dtZmN8xUCZ9eSgmtBxqfJeWsM4W5Baq7xWXuNAxNLjA=";
+    sha256 = "sha256-5JZgI5lnfX4JlBSEAL7Wv6uao/57GBaMqwgslJt9Bjk=";
 
     # the repository's .gitattributes file contains the lines "/Tst/
     # export-ignore" and "/doc/ export-ignore" so some directories are
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     ncurses
     readline
     ntl
-    flint
+    flint3
     lrcalc
     gfan
   ] ++ lib.optionals enableGfanlib [
diff --git a/pkgs/applications/science/math/speedcrunch/default.nix b/pkgs/applications/science/math/speedcrunch/default.nix
index 98bc6b031f19..a77474b86ffa 100644
--- a/pkgs/applications/science/math/speedcrunch/default.nix
+++ b/pkgs/applications/science/math/speedcrunch/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
     homepage    = "http://speedcrunch.org";
     license     = licenses.gpl2Plus;
     description = "A fast power user calculator";
+    mainProgram = "speedcrunch";
     longDescription = ''
       SpeedCrunch is a fast, high precision and powerful desktop calculator.
       Among its distinctive features are a scrollable display, up to 50 decimal
diff --git a/pkgs/applications/science/math/weka/default.nix b/pkgs/applications/science/math/weka/default.nix
index 004060f832c2..6f907ba9c0c3 100644
--- a/pkgs/applications/science/math/weka/default.nix
+++ b/pkgs/applications/science/math/weka/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.cs.waikato.ac.nz/ml/weka/";
     description = "Collection of machine learning algorithms for data mining tasks";
+    mainProgram = "weka";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.mimame ];
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 057a11fa3cdd..4d2815d12997 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation (finalAttrs:{
 
   meta = with lib; {
     description = "Cross platform GUI for the computer algebra system Maxima";
+    mainProgram = "wxmaxima";
     license = licenses.gpl2;
     homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/applications/science/math/zegrapher/default.nix b/pkgs/applications/science/math/zegrapher/default.nix
index 32633eb8015d..2beaf5757a55 100644
--- a/pkgs/applications/science/math/zegrapher/default.nix
+++ b/pkgs/applications/science/math/zegrapher/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zegrapher.com/";
     description = "An open source math plotter";
+    mainProgram = "ZeGrapher";
     longDescription = ''
       An open source, free and easy to use math plotter. It can plot functions,
       sequences, parametric equations and data on the plane.