Merge pull request #32731 from yegortimoshenko/graphviz/src
graphviz: cleanup, use autoreconfHook, source from GitLab
This commit is contained in:
commit
7c91237239
5 changed files with 66 additions and 187 deletions
|
@ -1,30 +0,0 @@
|
|||
From 2008bf62e13ebe41cdad3e16f8b42f46ae393876 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
|
||||
Date: Tue, 6 Jan 2015 20:39:41 +0100
|
||||
Subject: [PATCH] vimdot: lookup 'vim' in $PATH
|
||||
|
||||
Instead of hardcoding /usr/bin/vim. Needed for NixOS (http://nixos.org), and is
|
||||
probably useful for others too.
|
||||
---
|
||||
plugin/xlib/vimdot.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/plugin/xlib/vimdot.sh b/plugin/xlib/vimdot.sh
|
||||
index 749fe6a..4e6dd4b 100755
|
||||
--- a/plugin/xlib/vimdot.sh
|
||||
+++ b/plugin/xlib/vimdot.sh
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
error() { echo "$0: $*" >&2; exit 1; }
|
||||
|
||||
-editor="/usr/bin/vim"
|
||||
+editor="vim"
|
||||
|
||||
-if ! test -x "$editor"; then error "the \"$editor\" editor not found or not executable"; fi
|
||||
+if ! test -x "$(command -v "$editor")"; then error "the \"$editor\" editor not found or not executable"; fi
|
||||
|
||||
default="noname.gv"
|
||||
|
||||
--
|
||||
2.1.3
|
||||
|
|
@ -1,67 +1,5 @@
|
|||
{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
|
||||
, yacc, libtool, fontconfig, pango, gd, xorg, gts, gettext, cairo
|
||||
, ApplicationServices
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
import ./base.nix {
|
||||
rev = "10c3c34c5198beacfba950764f34960c6884a34f";
|
||||
version = "2.32.0";
|
||||
name = "graphviz-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
|
||||
sha256 = "0ym7lw3xnkcgbk32vfmm3329xymca60gzn90rq6dv8887qqv4lyq";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig libpng libjpeg expat libXaw yacc libtool fontconfig
|
||||
pango gd gts
|
||||
] ++ stdenv.lib.optionals (xorg != null) [ xorg.xlibsWrapper xorg.libXrender ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices gettext ];
|
||||
|
||||
CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo.dev}/include/cairo";
|
||||
|
||||
configureFlags =
|
||||
[ "--with-pngincludedir=${libpng.dev}/include"
|
||||
"--with-pnglibdir=${libpng.out}/lib"
|
||||
"--with-jpegincludedir=${libjpeg.dev}/include"
|
||||
"--with-jpeglibdir=${libjpeg.out}/lib"
|
||||
"--with-expatincludedir=${expat.dev}/include"
|
||||
"--with-expatlibdir=${expat.out}/lib"
|
||||
"--with-ltdl-include=${libtool}/include"
|
||||
"--with-ltdl-lib=${libtool.lib}/lib"
|
||||
"--with-cgraph=no"
|
||||
"--with-sparse=no"
|
||||
]
|
||||
++ stdenv.lib.optional (xorg == null) "--without-x";
|
||||
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
||||
preBuild = ''
|
||||
sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile
|
||||
'';
|
||||
|
||||
# "command -v" is POSIX, "which" is not
|
||||
postInstall = ''
|
||||
sed -i 's|`which lefty`|"'$out'/bin/lefty"|' $out/bin/dotty
|
||||
sed -i 's|which|command -v|' $out/bin/vimdot
|
||||
'';
|
||||
|
||||
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 ++ stdenv.lib.platforms.darwin;
|
||||
maintainers = with stdenv.lib.maintainers; [ bjornfor raskin ];
|
||||
inherit version;
|
||||
branch = "2.32";
|
||||
};
|
||||
sha256 = "18b2wnz6xk8hndy7dlr1vn9vziyryyflh747n9966778gmh8bick";
|
||||
}
|
||||
|
|
59
pkgs/tools/graphics/graphviz/base.nix
Normal file
59
pkgs/tools/graphics/graphviz/base.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ rev, sha256, version }:
|
||||
|
||||
{ stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, cairo, expat, flex
|
||||
, fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango
|
||||
, yacc, xorg ? null, ApplicationServices ? null }:
|
||||
|
||||
assert stdenv.isDarwin -> ApplicationServices != null;
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optional optionals optionalString;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "graphviz-${version}";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "graphviz";
|
||||
repo = "graphviz";
|
||||
inherit sha256 rev;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
|
||||
buildInputs = [
|
||||
libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex pango
|
||||
] ++ optionals (xorg != null) (with xorg; [ libXrender libXaw libXpm ])
|
||||
++ optionals (stdenv.isDarwin) [ ApplicationServices gettext ];
|
||||
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
||||
CPPFLAGS = stdenv.lib.optionalString (xorg != null && stdenv.isDarwin)
|
||||
"-I${cairo.dev}/include/cairo";
|
||||
|
||||
configureFlags = optional (xorg == null) "--without-x";
|
||||
|
||||
postPatch = ''
|
||||
for f in $(find . -name Makefile.in); do
|
||||
substituteInPlace $f --replace "-lstdc++" "-lc++"
|
||||
done
|
||||
'';
|
||||
|
||||
preAutoreconf = "./autogen.sh";
|
||||
|
||||
postFixup = optionalString (xorg != null) ''
|
||||
substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty
|
||||
substituteInPlace $out/bin/vimdot \
|
||||
--replace /usr/bin/vi '$(command -v vi)' \
|
||||
--replace /usr/bin/vim '$(command -v vim)' \
|
||||
--replace /usr/bin/vimdot $out/bin/vimdot \
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://graphviz.org;
|
||||
description = "Graph visualization tools";
|
||||
license = licenses.epl10;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ bjornfor raskin ];
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
From https://lists.debian.org/debian-qa-packages/2014/12/msg00048.html , which
|
||||
seems to come from Ubuntu.
|
||||
|
||||
Subject: Fix format string vulnerability (CVE-2014-9157) in yyerror() routine
|
||||
Origin: https://github.com/ellson/graphviz/commit/99eda421f7ddc27b14e4ac1d2126e5fe41719081
|
||||
Author: Emden R. Gansner
|
||||
|
||||
---
|
||||
lib/cgraph/scan.l | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: b/lib/cgraph/scan.l
|
||||
===================================================================
|
||||
--- a/lib/cgraph/scan.l
|
||||
+++ b/lib/cgraph/scan.l
|
||||
@@ -225,7 +225,7 @@
|
||||
agxbput (&xb, buf);
|
||||
agxbput (&xb, yytext);
|
||||
agxbput (&xb,"'\n");
|
||||
- agerr(AGERR,agxbuse(&xb));
|
||||
+ agerr(AGERR, "%s", agxbuse(&xb));
|
||||
agxbfree(&xb);
|
||||
}
|
||||
/* must be here to see flex's macro defns */
|
|
@ -1,69 +1,5 @@
|
|||
{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat
|
||||
, yacc, libtool, fontconfig, pango, gd, xorg, gts, libdevil, gettext, cairo
|
||||
, flex
|
||||
, ApplicationServices
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
import ./base.nix rec {
|
||||
rev = "stable_release_${version}";
|
||||
version = "2.40.1";
|
||||
name = "graphviz-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz";
|
||||
sha256 = "08d4ygkxz2f553bxj6087da56a23kx1khv0j8ycxa102vvx1hlna";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
||||
patches = [ ];
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex pango
|
||||
] ++ stdenv.lib.optionals (xorg != null)
|
||||
(with xorg; [ xlibsWrapper libXrender libXaw libXpm ])
|
||||
++ stdenv.lib.optionals (stdenv.isDarwin) [ ApplicationServices gettext ];
|
||||
|
||||
CPPFLAGS = stdenv.lib.optionalString (xorg != null && stdenv.isDarwin)
|
||||
"-I${cairo.dev}/include/cairo";
|
||||
|
||||
configureFlags = stdenv.lib.optional (xorg == null) "--without-x";
|
||||
|
||||
postPatch = (stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
for foo in cmd/dot/Makefile.in cmd/edgepaint/Makefile.in \
|
||||
cmd/mingle/Makefile.in plugin/gdiplus/Makefile.in; do
|
||||
substituteInPlace "$foo" --replace "-lstdc++" "-lc++"
|
||||
done
|
||||
'') + ''
|
||||
substituteInPlace "plugin/xlib/vimdot.sh" --replace "/usr/bin/vim" "\$(command -v vim)"
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
sed -e 's@am__append_5 *=.*@am_append_5 =@' -i lib/gvc/Makefile
|
||||
'';
|
||||
|
||||
# "command -v" is POSIX, "which" is not
|
||||
postInstall = stdenv.lib.optionalString (xorg != null) ''
|
||||
sed -i 's|`which lefty`|"'$out'/bin/lefty"|' $out/bin/dotty
|
||||
sed -i 's|which|command -v|' $out/bin/vimdot
|
||||
'';
|
||||
|
||||
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 ++ stdenv.lib.platforms.darwin;
|
||||
maintainers = with stdenv.lib.maintainers; [ bjornfor raskin ];
|
||||
downloadPage = "http://www.graphviz.org/pub/graphviz/ARCHIVE/";
|
||||
inherit version;
|
||||
updateWalker = true;
|
||||
};
|
||||
}
|
||||
sha256 = "1xjqq3g2n6jgwp5xzyvibgrxawlskkpam69fjjz9ksrrjas2qwzj";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue