biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / graphics / graphviz / default.nix
bloba13fd158b9b5472dc37c96ad8a83c0aeaf7e6ccd
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , autoreconfHook
5 , pkg-config
6 , cairo
7 , expat
8 , flex
9 , fontconfig
10 , gd
11 , gts
12 , libjpeg
13 , libpng
14 , libtool
15 , pango
16 , bash
17 , bison
18 , xorg
19 , ApplicationServices
20 , Foundation
21 , python3
22 , withXorg ? true
24 # for passthru.tests
25 , exiv2
26 , fltk
27 , graphicsmagick
30 let
31   inherit (lib) optional optionals optionalString;
33 stdenv.mkDerivation rec {
34   pname = "graphviz";
35   version = "12.1.1";
37   src = fetchFromGitLab {
38     owner = "graphviz";
39     repo = "graphviz";
40     rev = version;
41     hash = "sha256-r4V0iX+7169QG7nW2RjoUfrDh11zm6zdvtGt4E91kIE=";
42   };
44   nativeBuildInputs = [
45     autoreconfHook
46     pkg-config
47     python3
48     bison
49     flex
50   ];
52   buildInputs = [
53     libpng
54     libjpeg
55     expat
56     fontconfig
57     gd
58     gts
59     pango
60     bash
61   ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ])
62   ++ optionals stdenv.hostPlatform.isDarwin [ ApplicationServices Foundation ];
64   hardeningDisable = [ "fortify" ];
66   configureFlags = [
67     "--with-ltdl-lib=${libtool.lib}/lib"
68     "--with-ltdl-include=${libtool}/include"
69   ] ++ optional (xorg == null) "--without-x";
71   enableParallelBuilding = true;
73   CPPFLAGS = optionalString (withXorg && stdenv.hostPlatform.isDarwin)
74     "-I${cairo.dev}/include/cairo";
76   doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs
78   preAutoreconf = ''
79     ./autogen.sh
80   '';
82   postFixup = optionalString withXorg ''
83     substituteInPlace $out/bin/vimdot \
84       --replace '"/usr/bin/vi"' '"$(command -v vi)"' \
85       --replace '"/usr/bin/vim"' '"$(command -v vim)"' \
86       --replace /usr/bin/vimdot $out/bin/vimdot \
87   '';
89   passthru.tests = {
90     inherit (python3.pkgs)
91       graphviz
92       pydot
93       pygraphviz
94       xdot
95     ;
96     inherit
97       exiv2
98       fltk
99       graphicsmagick
100     ;
101   };
103   meta = with lib; {
104     homepage = "https://graphviz.org";
105     description = "Graph visualization tools";
106     license = licenses.epl10;
107     platforms = platforms.unix;
108     maintainers = with maintainers; [ bjornfor raskin ];
109   };