about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libmatheval
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libmatheval')
-rw-r--r--nixpkgs/pkgs/development/libraries/libmatheval/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libmatheval/default.nix b/nixpkgs/pkgs/development/libraries/libmatheval/default.nix
new file mode 100644
index 000000000000..c2084b007a61
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libmatheval/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, pkg-config, guile, flex, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.11";
+  pname = "libmatheval";
+
+  nativeBuildInputs = [ pkg-config flex ];
+  buildInputs = [ guile ];
+
+  src = fetchurl {
+    url = "https://ftp.gnu.org/gnu/libmatheval/${pname}-${version}.tar.gz";
+    sha256 = "474852d6715ddc3b6969e28de5e1a5fbaff9e8ece6aebb9dc1cc63e9e88e89ab";
+  };
+
+  # Patches coming from debian package
+  # https://packages.debian.org/source/sid/libs/libmatheval
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/libm/libmatheval/1.1.11%2Bdfsg-5/debian/patches/002-skip-docs.patch";
+      hash = "sha256-wjz54FKQq7t9Bz0W3EOu+ZPTt8EcfkMotkZKwlWa09o=";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/libm/libmatheval/1.1.11%2Bdfsg-5/debian/patches/003-guile3.0.patch";
+      hash = "sha256-H3E/2m4MfQAbjpXbVFyNhikVifi3spVThzaVU5srmjI=";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/libm/libmatheval/1.1.11%2Bdfsg-5/debian/patches/disable_coth_test.patch";
+      hash = "sha256-9XeMXWDTzELWTPcsjAqOlIzp4qY9yupU+e6r0rJEUS0=";
+    })
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev guile}/include/guile/${guile.effectiveVersion}";
+  env.NIX_LDFLAGS = "-L${guile}/lib -lguile-${guile.effectiveVersion}";
+
+  meta = {
+    description = "A library to parse and evaluate symbolic expressions input as text";
+    longDescription = ''
+      GNU libmatheval is a library (callable from C and Fortran) to parse and evaluate symbolic
+      expressions input as text. It supports expressions in any number of variables of arbitrary
+      names, decimal and symbolic constants, basic unary and binary operators, and elementary
+      mathematical functions. In addition to parsing and evaluation, libmatheval can also compute
+      symbolic derivatives and output expressions to strings.
+    '';
+    homepage = "https://www.gnu.org/software/libmatheval/";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.bzizou ];
+    platforms = lib.platforms.unix;
+  };
+}
+