diff options
Diffstat (limited to 'pkgs/development/libraries/glpk/default.nix')
-rw-r--r-- | pkgs/development/libraries/glpk/default.nix | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix index 5b9296608d45..481ae32bdc61 100644 --- a/pkgs/development/libraries/glpk/default.nix +++ b/pkgs/development/libraries/glpk/default.nix @@ -1,5 +1,6 @@ { stdenv , fetchurl +, fetchpatch # Excerpt from glpk's INSTALL file: # This feature allows the exact simplex solver to use the GNU MP # bignum library. If it is disabled, the exact simplex solver uses the @@ -28,6 +29,24 @@ stdenv.mkDerivation rec { "--with-gmp" ]; + patches = [ + # GLPK makes it possible to customize its message printing behaviour. Sage + # does that and needs to differentiate between printing regular messages and + # printing errors. Unfortunately there is no way to tell and glpk upstream + # rejected this patch. All it does is set the variable pointing to the error + # file back to NULL before glpk calls abort(). In sage's case, abort won't + # actually be called because the error handler jumps out of the function. + # This shouldn't affect everybody else, since glpk just calls abort() + # immediately afterwards anyways. + # See the sage trac ticket for more details: + # https://trac.sagemath.org/ticket/20710#comment:18 + (fetchpatch { + name = "error_recovery.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/glpk/patches/error_recovery.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "0z99z9gd31apb6x5n5n26411qzx0ma3s6dnznc4x61x86bhq31qf"; + }) + ]; + doCheck = true; meta = { @@ -43,7 +62,7 @@ stdenv.mkDerivation rec { homepage = http://www.gnu.org/software/glpk/; license = stdenv.lib.licenses.gpl3Plus; - maintainers = with stdenv.lib.maintainers; [ bjg ]; + maintainers = with stdenv.lib.maintainers; [ bjg timokau ]; platforms = stdenv.lib.platforms.all; }; } |