about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gsl
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gsl')
-rw-r--r--nixpkgs/pkgs/development/libraries/gsl/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/gsl/gsl-1_16.nix43
2 files changed, 77 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gsl/default.nix b/nixpkgs/pkgs/development/libraries/gsl/default.nix
new file mode 100644
index 000000000000..4a9208cff32a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gsl/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "gsl-2.6";
+
+  src = fetchurl {
+    url = "mirror://gnu/gsl/${name}.tar.gz";
+    sha256 = "1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp";
+  };
+
+  # do not let -march=skylake to enable FMA (https://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html)
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isx86_64 "-mno-fma";
+
+  # https://lists.gnu.org/archive/html/bug-gsl/2015-11/msg00012.html
+  doCheck = stdenv.hostPlatform.system != "i686-linux" && stdenv.hostPlatform.system != "aarch64-linux";
+
+  meta = {
+    description = "The GNU Scientific Library, a large numerical library";
+    homepage = "https://www.gnu.org/software/gsl/";
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    longDescription = ''
+      The GNU Scientific Library (GSL) is a numerical library for C
+      and C++ programmers.  It is free software under the GNU General
+      Public License.
+
+      The library provides a wide range of mathematical routines such
+      as random number generators, special functions and least-squares
+      fitting.  There are over 1000 functions in total with an
+      extensive test suite.
+    '';
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gsl/gsl-1_16.nix b/nixpkgs/pkgs/development/libraries/gsl/gsl-1_16.nix
new file mode 100644
index 000000000000..9a31563c6cca
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gsl/gsl-1_16.nix
@@ -0,0 +1,43 @@
+{ fetchurl, fetchpatch, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "gsl-1.16";
+
+  src = fetchurl {
+    url = "mirror://gnu/gsl/${name}.tar.gz";
+    sha256 = "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k";
+  };
+
+  # do not let -march=skylake to enable FMA (https://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html)
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isx86_64 "-mno-fma";
+
+  patches = [
+    (fetchpatch {
+      name = "bug-39055.patch";
+      url = "https://git.savannah.gnu.org/cgit/gsl.git/patch/?id=9cc12d";
+      sha256 = "1bmrmihi28cly9g9pq54kkix2jy59y7cd7h5fw4v1c7h5rc2qvs8";
+    })
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "The GNU Scientific Library, a large numerical library";
+    homepage = "https://www.gnu.org/software/gsl/";
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    longDescription = ''
+      The GNU Scientific Library (GSL) is a numerical library for C
+      and C++ programmers.  It is free software under the GNU General
+      Public License.
+
+      The library provides a wide range of mathematical routines such
+      as random number generators, special functions and least-squares
+      fitting.  There are over 1000 functions in total with an
+      extensive test suite.
+    '';
+    platforms = stdenv.lib.platforms.unix;
+    # Failing "eigen" tests on aarch64.
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}