diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix index 32e4d81acec..72827112c50 100644 --- a/pkgs/applications/science/math/pari/default.nix +++ b/pkgs/applications/science/math/pari/default.nix @@ -1,20 +1,37 @@ -{ stdenv, fetchurl -, gmp, readline, libX11, tex, perl +{ stdenv +, fetchurl +, fetchpatch +, gmp +, readline +, libX11 +, tex +, perl , withThread ? true, libpthreadstubs }: assert withThread -> libpthreadstubs != null; stdenv.mkDerivation rec { - - name = "pari-${version}"; + pname = "pari"; version = "2.11.1"; src = fetchurl { - url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz"; + url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz"; sha256 = "1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"; }; + patches = [ + # Fix a off-by-one bug that can potentially lead to segfaults (accepted upstream) + # https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2117 + # https://trac.sagemath.org/ticket/27335 + (fetchpatch { + name = "fix-off-by-one-error.patch"; + # only relevant parts of https://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=pari.git;a=patch;h=aa1ee6e0898d177e6bcf49237d82c804bc410985 + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pari/patches/red_montgomery.patch?id=bbea55c96e1f05302b3c7f593cf64492497047c5"; + sha256 = "0vqkmhgv9splsdswp6zjnkj50z76rc1m6k9iy3cf9dxwqw3h3nr6"; + }) + ]; + buildInputs = [ gmp readline @@ -70,7 +87,7 @@ stdenv.mkDerivation rec { homepage = http://pari.math.u-bordeaux.fr; downloadPage = http://pari.math.u-bordeaux.fr/download.html; license = licenses.gpl2Plus; - maintainers = with maintainers; [ ertes raskin AndersonTorres ]; + maintainers = with maintainers; [ ertes raskin AndersonTorres timokau ]; platforms = platforms.linux ++ platforms.darwin; updateWalker = true; };