diff options
Diffstat (limited to 'pkgs/development/python-modules/graph-tool/default.nix')
-rw-r--r-- | pkgs/development/python-modules/graph-tool/default.nix | 93 |
1 files changed, 62 insertions, 31 deletions
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix index 61545e3a2ec9..ff0ab4f62787 100644 --- a/pkgs/development/python-modules/graph-tool/default.nix +++ b/pkgs/development/python-modules/graph-tool/default.nix @@ -1,53 +1,76 @@ -{ buildPythonPackage -, lib -, fetchurl +{ + buildPythonPackage, + lib, + fetchurl, + stdenv, -, autoreconfHook -, boost -, cairomm -, cgal -, expat -, gmp -, gobject-introspection -, gtk3 -, matplotlib -, mpfr -, numpy -, pkg-config -, pycairo -, pygobject3 -, python -, scipy -, sparsehash + autoreconfHook, + boost185, + cairomm, + cgal, + expat, + gmp, + gobject-introspection, + gtk3, + llvmPackages, + matplotlib, + mpfr, + numpy, + pkg-config, + pycairo, + pygobject3, + python, + scipy, + sparsehash, + gitUpdater, }: +let + # graph-tool doesn't build against boost181 on Darwin + boost = boost185.override { + enablePython = true; + inherit python; + }; +in buildPythonPackage rec { pname = "graph-tool"; + version = "2.78"; format = "other"; - version = "2.45"; src = fetchurl { url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2"; - hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg="; + hash = "sha256-gG9TWKRJISOowRIXI1/ROTIwrVwhxFtMOextXqN6KiU="; }; + # Remove error messages about tput during build process without adding ncurses, + # and replace unavailable git commit hash and date. + postPatch = '' + substituteInPlace configure.ac \ + --replace-fail 'tput setaf $1' : \ + --replace-fail 'tput sgr0' : \ + --replace-fail \ + "\"esyscmd(git show | head -n 1 | sed 's/commit //' | grep -o -e '.\{8\}' | head -n 1 |tr -d '\n')\"" \ + '["(nixpkgs-${version})"]' \ + --replace-fail \ + "\"esyscmd(git log -1 | head -n 3 | grep 'Date:' | sed s/'Date: '// | tr -d '\n')\"" \ + '["(unavailable)"]' + ''; + configureFlags = [ "--with-python-module-path=$(out)/${python.sitePackages}" "--with-boost-libdir=${boost}/lib" - "--with-expat=${expat}" "--with-cgal=${cgal}" - "--enable-openmp" ]; enableParallelBuilding = true; - nativeBuildInputs = [ + build-system = [ autoreconfHook pkg-config ]; - # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation - propagatedBuildInputs = [ + # https://graph-tool.skewed.de/installation.html#manual-compilation + dependencies = [ boost cairomm cgal @@ -62,12 +85,20 @@ buildPythonPackage rec { pygobject3 scipy sparsehash - ]; + ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; + + pythonImportsCheck = [ "graph_tool" ]; + + passthru.updateScript = gitUpdater { + url = "https://git.skewed.de/count0/graph-tool"; + rev-prefix = "release-"; + }; - meta = with lib; { + meta = { description = "Python module for manipulation and statistical analysis of graphs"; homepage = "https://graph-tool.skewed.de"; - license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ]; + changelog = "https://git.skewed.de/count0/graph-tool/commits/release-${version}"; + license = lib.licenses.lgpl3Plus; + maintainers = [ lib.maintainers.mjoerg ]; }; } |