nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 gmp,
6 mpfr,
7 flint,
8 boost,
9 bliss,
10 ppl,
11 singular,
12 cddlib,
13 lrs,
14 nauty,
15 ninja,
16 ant,
17 openjdk,
18 mongoc,
19 perl,
20 perlPackages,
21 makeWrapper,
22}:
23
24# polymake compiles its own version of sympol and atint because we
25# don't have those packages. other missing optional dependencies:
26# javaview, libnormaliz, scip, soplex, jreality.
27
28stdenv.mkDerivation (finalAttrs: {
29 pname = "polymake";
30 version = "4.15";
31
32 src = fetchurl {
33 # "The minimal version is a packager friendly version which omits
34 # the bundled sources of cdd, lrs, libnormaliz, nauty and jReality."
35 url = "https://polymake.org/lib/exe/fetch.php/download/polymake-${finalAttrs.version}-minimal.tar.bz2";
36 sha256 = "sha256-MOCo+JATz3qaRO2Q2y9pxJvxgQUGZMfmvbhhxhCxvbk=";
37 };
38
39 nativeBuildInputs = [
40 makeWrapper
41 ninja
42 ant
43 perl
44 ];
45
46 buildInputs = [
47 perl
48 gmp
49 mpfr
50 flint
51 boost
52 bliss
53 ppl
54 singular
55 cddlib
56 lrs
57 nauty
58 openjdk
59 mongoc
60 ]
61 ++ (with perlPackages; [
62 JSON
63 TermReadLineGnu
64 TermReadKey
65 XMLSAX
66 ]);
67
68 configureFlags = [
69 "--with-mongoc=${mongoc}"
70 ];
71
72 ninjaFlags = [
73 "-C"
74 "build/Opt"
75 ];
76
77 postInstall = ''
78 for i in "$out"/bin/*; do
79 wrapProgram "$i" --prefix PERL5LIB : "$PERL5LIB"
80 done
81 '';
82
83 meta = {
84 description = "Software for research in polyhedral geometry";
85 homepage = "https://www.polymake.org/doku.php";
86 changelog = "https://github.com/polymake/polymake/blob/V${finalAttrs.version}/ChangeLog";
87 license = lib.licenses.gpl2Plus;
88 teams = [ lib.teams.sage ];
89 platforms = lib.platforms.linux;
90 };
91})