nixpkgs/pkgs/tools/graphics/graphviz/default.nix
Peter Simons 3d4068b11a graphviz: patch broken cdt.h header file
The cdt.h header duplicates the signatures of standard library functions
memcmp() and strcpy(), but those signatures don't match the real thing when
building with a C++ compiler, because they lack the no-throw declaration glibc
has. Simply dropping those redundant prototypes remedies the issue.
2012-11-11 20:16:21 +01:00

55 lines
1.7 KiB
Nix

{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
, yacc, libtool, fontconfig, pango, gd, xlibs, gts
}:
stdenv.mkDerivation rec {
name = "graphviz-2.28.0";
src = fetchurl {
url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
sha256 = "0xpwg99cd8sp0c6r8klsmc66h1pday64kmnr4v6f9jkqqmrpkank";
};
buildInputs =
[ pkgconfig libpng libjpeg expat libXaw yacc libtool fontconfig
pango gd gts
] ++ stdenv.lib.optionals (xlibs != null) [ xlibs.xlibs xlibs.libXrender ];
patches = [ ./fix-broken-memcp-signature.patch ];
configureFlags =
[ "--with-pngincludedir=${libpng}/include"
"--with-pnglibdir=${libpng}/lib"
"--with-jpegincludedir=${libjpeg}/include"
"--with-jpeglibdir=${libjpeg}/lib"
"--with-expatincludedir=${expat}/include"
"--with-expatlibdir=${expat}/lib"
]
++ stdenv.lib.optional (xlibs == null) "--without-x";
preBuild = ''
sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile
'';
postInstall = ''
sed -i 's|`which lefty`|"'$out'/bin/lefty"|' $out/bin/dotty
'';
meta = {
homepage = "http://www.graphviz.org/";
description = "Open source graph visualization software";
longDescription = ''
Graphviz is open source graph visualization software. Graph
visualization is a way of representing structural information as
diagrams of abstract graphs and networks. It has important
applications in networking, bioinformatics, software engineering,
database and web design, machine learning, and in visual
interfaces for other technical domains.
'';
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.simons ];
};
}