about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/igraph/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/igraph/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/igraph/default.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/igraph/default.nix b/nixpkgs/pkgs/development/libraries/igraph/default.nix
new file mode 100644
index 000000000000..b98588eb410f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/igraph/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchFromGitHub,
+  pkg-config, autoreconfHook,
+  flex, yacc, zlib, libxml2 }:
+
+stdenv.mkDerivation rec {
+  pname = "igraph";
+  version = "0.8.5";
+
+  src = fetchFromGitHub {
+    owner = "igraph";
+    repo = pname;
+    rev = version;
+    sha256 = "0cb0kp6mpmgz74kbymqw4xxads8ff7jh0n59dsm76xy6nn8hpqcz";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ flex yacc zlib libxml2 ];
+
+  # Normally, igraph wants us to call bootstrap.sh, which will call
+  # tools/getversion.sh. Instead, we're going to put the version directly
+  # where igraph wants, and then let autoreconfHook do the rest of the
+  # bootstrap. ~ C.
+  postPatch = ''
+    echo "${version}" > IGRAPH_VERSION
+  '';
+
+  doCheck = true;
+
+  meta = {
+    description = "The network analysis package";
+    homepage = "https://igraph.org/";
+    license = lib.licenses.gpl2;
+    # NB: Known to fail tests on aarch64.
+    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
+    maintainers = [ lib.maintainers.MostAwesomeDude ];
+  };
+}