From 8df1d400e39963cdee9d17fe0cff02f8d5e08fff29322b9c3c66690f82e582c5 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 8 May 2007 23:03:38 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/graphviz?expand=0&rev=4 --- aliasing-fixes.diff | 122 ----- fix-pkgIndex.diff | 10 - graphviz-2.11-php_check.patch | 11 + graphviz-2.12.tar.bz2 | 3 + graphviz-2.6.tar.bz2 | 3 - graphviz-aliasing-fixes.patch | 108 ++++ ....diff => graphviz-config-file-option.patch | 0 graphviz-fix-pkgIndex.patch | 17 + graphviz-fix_manpages.patch | 51 ++ graphviz-fix_swig_template.patch | 8 +- graphviz-gv_aliasing.patch | 20 + graphviz-no_libtool_patching.patch | 11 + graphviz-strcmp_fix.patch | 11 + graphviz.changes | 76 +++ graphviz.spec | 501 +++++++++++++++--- 15 files changed, 754 insertions(+), 198 deletions(-) delete mode 100644 aliasing-fixes.diff delete mode 100644 fix-pkgIndex.diff create mode 100644 graphviz-2.11-php_check.patch create mode 100644 graphviz-2.12.tar.bz2 delete mode 100644 graphviz-2.6.tar.bz2 create mode 100644 graphviz-aliasing-fixes.patch rename config-file-option.diff => graphviz-config-file-option.patch (100%) create mode 100644 graphviz-fix-pkgIndex.patch create mode 100644 graphviz-fix_manpages.patch create mode 100644 graphviz-gv_aliasing.patch create mode 100644 graphviz-no_libtool_patching.patch create mode 100644 graphviz-strcmp_fix.patch diff --git a/aliasing-fixes.diff b/aliasing-fixes.diff deleted file mode 100644 index e3c8f3e..0000000 --- a/aliasing-fixes.diff +++ /dev/null @@ -1,122 +0,0 @@ -Index: graphviz-2.6/lib/agraph/edge.c -=================================================================== ---- graphviz-2.6.orig/lib/agraph/edge.c -+++ graphviz-2.6/lib/agraph/edge.c -@@ -153,25 +153,29 @@ static Agedge_t *agfindedge_by_id(Agnode - - void agedgesetop(Agraph_t * g, Agedge_t * e, int ins) - { -- Dtlink_t **seq_set, **id_set; -+ union { -+ Dtlink_t **dtlink; -+ Agedge_t **agedge; -+ } seq_set; -+ Dtlink_t **id_set; - Agnode_t *n; /* node where is referenced */ - - if (AGTYPE(e) == AGOUTEDGE) { - n = AGOUT2IN(e)->node; -- seq_set = (Dtlink_t **) & (n->out); -+ seq_set.agedge = & (n->out); - id_set = &(n->outid); - } else { - n = AGIN2OUT(e)->node; -- seq_set = (Dtlink_t **) & (n->in); -+ seq_set.agedge = & (n->in); - id_set = &(n->inid); - } - -- dtrestore(g->e_seq, *seq_set); -+ dtrestore(g->e_seq, *seq_set.dtlink); - if (ins) - dtinsert(g->e_seq, e); - else - dtdelete(g->e_seq, e); -- *seq_set = dtextract(g->e_seq); -+ *seq_set.dtlink = dtextract(g->e_seq); - - dtrestore(g->e_id, *id_set); - if (ins) -Index: graphviz-2.6/lib/agraph/flatten.c -=================================================================== ---- graphviz-2.6.orig/lib/agraph/flatten.c -+++ graphviz-2.6/lib/agraph/flatten.c -@@ -30,8 +30,14 @@ void agflatten_elist(Dict_t * d, Dtlink_ - - void agflatten_edges(Agraph_t * g, Agnode_t * n) - { -- agflatten_elist(g->e_seq, (Dtlink_t **) & (n->out)); -- agflatten_elist(g->e_seq, (Dtlink_t **) & (n->in)); -+ union { -+ Dtlink_t **dtlink; -+ Agedge_t **agedge; -+ } out, in; -+ out.agedge = & (n->out); -+ in.agedge = & (n->in); -+ agflatten_elist(g->e_seq, out.dtlink); -+ agflatten_elist(g->e_seq, in.dtlink); - } - - void agflatten(Agraph_t * g, int flag) -Index: graphviz-2.6/lib/gd/fontwheeltest.c -=================================================================== ---- graphviz-2.6.orig/lib/gd/fontwheeltest.c -+++ graphviz-2.6/lib/gd/fontwheeltest.c -@@ -21,7 +21,10 @@ void - dowheel (gdImagePtr im, int color, char *fontfile, int fontsize, - double angle, int x, int y, int offset, char *string) - { -- int brect[8]; -+ union { -+ int coords[8]; -+ gdPoint points[4]; -+ } brect; - FILE *err; - double curangrads, curang, x0, y0; - char *cp; -@@ -40,16 +43,16 @@ dowheel (gdImagePtr im, int color, char - - /* The case of newlines is taken care of in the gdImageStringTTF call */ - #if defined(OLDER_GD) -- cp = gdImageStringTTF (im, brect, color, fontfile, fontsize, -+ cp = gdImageStringTTF (im, brect.coords, color, fontfile, fontsize, - curangrads, x0, y0, string); - #else -- cp = gdImageStringFT (im, brect, color, fontfile, fontsize, -+ cp = gdImageStringFT (im, brect.coords, color, fontfile, fontsize, - curangrads, x0, y0, string); - #endif - if (cp) - doerr (err, cp); - -- gdImagePolygon (im, (gdPointPtr)brect, 4, color); -+ gdImagePolygon (im, brect.points, 4, color); - } - - fclose (err); -Index: graphviz-2.6/tclpkg/tcldot/tcldot.c -=================================================================== ---- graphviz-2.6.orig/tclpkg/tcldot/tcldot.c -+++ graphviz-2.6/tclpkg/tcldot/tcldot.c -@@ -1232,6 +1232,8 @@ static int graphcmd(ClientData clientDat - return TCL_OK; - - } else if ((c == 'w') && (strncmp(argv[1], "write", length) == 0)) { -+ void *aliasing_dummy; -+ - g = g->root; - if (argc < 3) { - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], -@@ -1258,9 +1260,11 @@ static int graphcmd(ClientData clientDat - gvc->job->output_lang = - gvrender_select(gvc->job, gvc->job->output_langname); - -+ aliasing_dummy = gvc->job->output_file; - if (Tcl_GetOpenFile (interp, argv[2], 1, 1, -- (ClientData *) &(gvc->job->output_file)) != TCL_OK) -+ (ClientData *) &aliasing_dummy) != TCL_OK) - return TCL_ERROR; -+ gvc->job->output_file = aliasing_dummy; - - /* make sure that layout is done - unless canonical output */ - if ((!GD_drawing(g) || argc > 4) diff --git a/fix-pkgIndex.diff b/fix-pkgIndex.diff deleted file mode 100644 index 4d55d72..0000000 --- a/fix-pkgIndex.diff +++ /dev/null @@ -1,10 +0,0 @@ -Index: graphviz-2.2/mkpkgindex.sh -=================================================================== ---- graphviz-2.2.orig/tclpkg/mkpkgindex.sh -+++ graphviz-2.2/tclpkg/mkpkgindex.sh -@@ -11,4 +11,4 @@ case "$1" in - echo " package require Tk 8.3" >>pkgIndex.tcl - ;; - esac --echo " load [file join \$dir $lib] $2\"" >>pkgIndex.tcl -+echo " load $lib $2\"" >>pkgIndex.tcl diff --git a/graphviz-2.11-php_check.patch b/graphviz-2.11-php_check.patch new file mode 100644 index 0000000..b8c75fe --- /dev/null +++ b/graphviz-2.11-php_check.patch @@ -0,0 +1,11 @@ +--- configure.ac ++++ configure.ac +@@ -628,7 +628,7 @@ + AC_ARG_ENABLE(php, + [AC_HELP_STRING([--disable-php], [don't support php language bindings])]) + if test "x$enable_php" != "xno"; then +-if test `$SWIG -help 2>&1 | $GREP -c '\-php *- Generate'` = 0; then ++if test `$SWIG -help 2>&1 | $GREP -c '\-php[[5 ]]*- Generate'` = 0; then + PHP= + AC_MSG_WARN([swig does not support php. The PHP packages will not be built]) + else diff --git a/graphviz-2.12.tar.bz2 b/graphviz-2.12.tar.bz2 new file mode 100644 index 0000000..8ad7a76 --- /dev/null +++ b/graphviz-2.12.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81010d45d29ec177ae1b2dc75b7489f3968748664d1e84b077b7922fb5b98e91 +size 3847126 diff --git a/graphviz-2.6.tar.bz2 b/graphviz-2.6.tar.bz2 deleted file mode 100644 index b02f17f..0000000 --- a/graphviz-2.6.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:618ed9e9ad5762f24d42692c21d91cfcb13004dc35325f699efb9dbd2a0741a6 -size 3444862 diff --git a/graphviz-aliasing-fixes.patch b/graphviz-aliasing-fixes.patch new file mode 100644 index 0000000..3dce721 --- /dev/null +++ b/graphviz-aliasing-fixes.patch @@ -0,0 +1,108 @@ +--- lib/agraph/edge.c ++++ lib/agraph/edge.c +@@ -149,28 +149,29 @@ + + void agedgesetop(Agraph_t * g, Agedge_t * e, int ins) + { +- Dtlink_t **seq_set, **id_set; ++ union { ++ Dtlink_t **dtlink; ++ Agedge_t **agedge; ++ } seq_set; ++ Dtlink_t **id_set; + Agnode_t *n; /* node where is referenced */ +- Agedge_t **tmp; + + if (AGTYPE(e) == AGOUTEDGE) { + n = AGOUT2IN(e)->node; +- tmp = &(n->out); /* avoiding - "dereferencing type-punned pointer will break strict-aliasing rules" */ +- seq_set = (Dtlink_t **)tmp; ++ seq_set.agedge = &(n->out); + id_set = &(n->outid); + } else { + n = AGIN2OUT(e)->node; +- tmp = &(n->in); +- seq_set = (Dtlink_t **)tmp; ++ seq_set.agedge = &(n->in); + id_set = &(n->inid); + } + +- dtrestore(g->e_seq, *seq_set); ++ dtrestore(g->e_seq, *seq_set.dtlink); + if (ins) + dtinsert(g->e_seq, e); + else + dtdelete(g->e_seq, e); +- *seq_set = dtextract(g->e_seq); ++ *seq_set.dtlink = dtextract(g->e_seq); + + dtrestore(g->e_id, *id_set); + if (ins) +--- lib/agraph/flatten.c ++++ lib/agraph/flatten.c +@@ -26,13 +26,17 @@ + + void agflatten_edges(Agraph_t * g, Agnode_t * n) + { +- Agedge_t **tmp; + +- tmp = &(n->out); /* avoiding - "dereferencing type-punned pointer will break strict-aliasing rules" */ ++ union { ++ Dtlink_t **dtlink; ++ Agedge_t **agedge; ++ } out, in; ++ ++ out.agedge = & (n->out); ++ in.agedge = & (n->in); ++ agflatten_elist(g->e_seq, out.dtlink); ++ agflatten_elist(g->e_seq, in.dtlink); + +- agflatten_elist(g->e_seq, (Dtlink_t **) tmp); +- tmp = &(n->in); +- agflatten_elist(g->e_seq, (Dtlink_t **) tmp); + } + + void agflatten(Agraph_t * g, int flag) +--- lib/gd/fontwheeltest.c ++++ lib/gd/fontwheeltest.c +@@ -21,8 +21,10 @@ + dowheel (gdImagePtr im, int color, char *fontfile, int fontsize, + double angle, int x, int y, int offset, char *string) + { +- int brect[8]; +- gdPoint points[4]; ++ union { ++ int coords[8]; ++ gdPoint points[4]; ++ } brect; + int i; + FILE *err; + double curangrads, curang, x0, y0; +@@ -42,24 +44,16 @@ + + /* The case of newlines is taken care of in the gdImageStringTTF call */ + #if defined(OLDER_GD) +- cp = gdImageStringTTF (im, brect, color, fontfile, fontsize, ++ cp = gdImageStringTTF (im, brect.coords, color, fontfile, fontsize, + curangrads, x0, y0, string); + #else +- cp = gdImageStringFT (im, brect, color, fontfile, fontsize, ++ cp = gdImageStringFT (im, brect.coords, color, fontfile, fontsize, + curangrads, x0, y0, string); + #endif + if (cp) + doerr (err, cp); + +- /* FIXME - this is silly, but if we try to cast int[] to gdPointPtr +- * we get a "warning: dereferencing type-punned pointer will break strict -aliasing rules" from gcc +- * The proper fix probably requires an API change to use gdPoint[] in gdImageString* +- */ +- for (i = 0; i < 4; i++) { +- points[i].x = brect[2*i]; +- points[i].y = brect[2*i + 1]; +- } +- gdImagePolygon (im, points, 4, color); ++ gdImagePolygon (im, brect.points, 4, color); + } + + fclose (err); diff --git a/config-file-option.diff b/graphviz-config-file-option.patch similarity index 100% rename from config-file-option.diff rename to graphviz-config-file-option.patch diff --git a/graphviz-fix-pkgIndex.patch b/graphviz-fix-pkgIndex.patch new file mode 100644 index 0000000..5392631 --- /dev/null +++ b/graphviz-fix-pkgIndex.patch @@ -0,0 +1,17 @@ +--- tclpkg/mkpkgindex.sh ++++ tclpkg/mkpkgindex.sh +@@ -4,7 +4,7 @@ + # $2 = Name of extension + # $3 = Version of extension + +-lib=`sed -n "/library_names/s/^[^']*'\([^ ']*\).*$/\1/p" $1` ++lib=`sed -n "/dlname/s/^[^']*'\([^ ']*\).*$/\1/p" $1` + if [ -z "$lib" ] + then + libBaseName=`basename $1 .la` +@@ -22,4 +22,4 @@ + echo " package require Tk 8.3" >>pkgIndex.tcl + ;; + esac +-echo " load [file join \$dir tcl $lib] $2\"" >>pkgIndex.tcl ++echo " load $lib $2\"" >>pkgIndex.tcl diff --git a/graphviz-fix_manpages.patch b/graphviz-fix_manpages.patch new file mode 100644 index 0000000..aa378a7 --- /dev/null +++ b/graphviz-fix_manpages.patch @@ -0,0 +1,51 @@ +--- tclpkg/gv/gv_doc_langs.tcl ++++ tclpkg/gv/gv_doc_langs.tcl +@@ -155,7 +155,7 @@ + } + SYNOPSIS { + {#!/usr/bin/lua} +- {lib=loadlib('/usr/lib/graphviz/lua/libgv_lua.so','Gv_Init')} ++ {lib=loadlib('@LIB_DIR@/graphviz/lua/libgv_lua.so','Gv_Init')} + {assert(lib)()} + } + USAGE { +@@ -236,7 +236,7 @@ + } + SYNOPSIS { + {#!/usr/bin/perl} +- {use lib "/usr/lib/graphviz/perl"} ++ {use lib "@LIB_DIR@/graphviz/perl"} + {use gv;} + } + USAGE { +@@ -320,7 +320,7 @@ + SYNOPSIS { + {#!/usr/bin/python} + {import sys} +- {sys.path.append('/usr/lib/graphviz/python')} ++ {sys.path.append('@LIB_DIR@/graphviz/python')} + {import gv} + } + USAGE { +@@ -361,7 +361,7 @@ + Gv. ( {, } {);} + } + SYNOPSIS { +- {export RUBYLIB=/usr/lib/graphviz/ruby} ++ {export RUBYLIB=@LIB_DIR@/graphviz/ruby} + {} + {#!/usr/bin/ruby} + {require 'gv'} +@@ -405,10 +405,10 @@ + } + SYNOPSIS { + {#!/usr/bin/tclsh} +- {load /usr/lib/graphviz/tcl/gv.so} ++ {package require gv} + } + USAGE { +- {Requires tcl7.6 or later.} ++ {Requires tcl8.3 or later.} + } + } + } diff --git a/graphviz-fix_swig_template.patch b/graphviz-fix_swig_template.patch index 0d8d015..b96bd69 100644 --- a/graphviz-fix_swig_template.patch +++ b/graphviz-fix_swig_template.patch @@ -1,8 +1,8 @@ --- tclpkg/gv/gv.i +++ tclpkg/gv/gv.i -@@ -17,6 +17,134 @@ - %module gv - %{ +@@ -24,6 +24,134 @@ + #undef PACKAGE_NAME + #include "gvc.h" + +/* new graph objects */ @@ -134,4 +134,4 @@ + %} - /* new graph objects */ + %inline %{ diff --git a/graphviz-gv_aliasing.patch b/graphviz-gv_aliasing.patch new file mode 100644 index 0000000..5fcca31 --- /dev/null +++ b/graphviz-gv_aliasing.patch @@ -0,0 +1,20 @@ +--- tclpkg/gv/Makefile.am 2007/02/01 12:47:35 1.1 ++++ tclpkg/gv/Makefile.am 2007/05/08 09:25:17 +@@ -56,6 +56,8 @@ + LUA_hdr = + nodist_libgv_lua_la_SOURCES = gv_lua.cpp $(LUA_hdr) + libgv_lua_la_SOURCES = $(BASESOURCES) ++#libgv_lua_la_CFLAGS = -fno-strict-aliasing ++libgv_lua_la_CXXFLAGS = -fno-strict-aliasing + libgv_lua_la_LIBADD = $(BASELIBS) @LUA_LIBS@ + libgv_lua_la_LDFLAGS = + gv_lua.cpp $(LUA_hdr): gv.i +@@ -74,6 +76,8 @@ + PERL_hdr = gv.pm + nodist_libgv_perl_la_SOURCES = gv_perl.cpp $(PERL_hdr) + libgv_perl_la_SOURCES = $(BASESOURCES) ++#libgv_perl_la_CFLAGS = -fno-strict-aliasing ++libgv_perl_la_CXXFLAGS = -fno-strict-aliasing + libgv_perl_la_LIBADD = $(BASELIBS) @PERL_LIBS@ + libgv_perl_la_LDFLAGS = + gv_perl.cpp $(PERL_hdr): gv.i diff --git a/graphviz-no_libtool_patching.patch b/graphviz-no_libtool_patching.patch new file mode 100644 index 0000000..c4991ec --- /dev/null +++ b/graphviz-no_libtool_patching.patch @@ -0,0 +1,11 @@ +--- autogen.sh ++++ autogen.sh +@@ -9,8 +9,6 @@ + #create an empty config/config.rpath else iconf configure test generates a warning + touch config/config.rpath + +-patch -N -p0 pencolor != DEFAULT_COLOR) { ++ if (strcmp(cp->pencolor, DEFAULT_COLOR)) { + dia_fputs(" \n"); + dia_printf(" \n", + dia_resolve_color(cp->pencolor)); diff --git a/graphviz.changes b/graphviz.changes index 69b5809..9bce1e0 100644 --- a/graphviz.changes +++ b/graphviz.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Tue May 8 12:11:16 CEST 2007 - pth@suse.de + +- Update to 2.12 + - PostScript output had an extraneous '%' character on the first line, + which would cause printing to fail. + - Text handling, during both sizing and layout, incorrectly handled + empty lines such as label="\nabc". + - HTML-like tables had been changed to use too much vertical space, + to possibly use the wrong font in calculating the height of a line, + and to use the wrong offset when moving the baseline from one line to + the next. + - dot - New pango+cairo renderer plugin (was in separate graphviz-cairo tree). + -- -Tpng now uses cairo (-Tpng:gd for old gd based renderer) + -- -Tpdf now available + -- -Tps:cairo now available (-Tps is a direct ps renderer not based on + cairo) + -- -Tsvg:cairo now available (-Tsvg is a direct svg renderer not based + on cairo) + -- -Txlib now available -- "dot -Tx11 foo.dot" watches foo.dot with + inotify and updates + -- -Tgtk now available -- eventually to provide a graph editing capability + - not fully working + -- -Tswf "Flash" now available using the ming library. Currently has + incomplete font support and not yet in Fedora rpms because ming not + yet available as rpm. + - remove hard gd dependencies from dot. gd renderers now provided + as optional plugin. Deprecated, but required for -Tjpg, -Tgif and -Tvrml. + - gvpr - Add kindOf function, plus functions to set and get default values + - dot - Implement esep attribute to allow graph to specify room + around nodes for spline routing. + - neato - add vpsc library and DIGCOLA + - neato - add IPSEPCOLA additions from Tim Dwyer + - move: -Tps, -Tfig, -Tsvg, -Timap/ismap/cmap/cmapx, -Tdot/xdot, + from codegens to a "core" plugin. + - dot - new usershape plugin mechanism potentially supporting + a wider range of input shape format -> output format combinations. + display on changes + - dot - new -O switch to automatically generate output file + names based on the input filename and the -T value. + e.g. "dot -Tpng -O *.dot" + Also works for case of multiple graphs in a single input file. + - add support for "Brewer" color nameset + - move reusable .so libraries to $PREFIX/lib per frequent request + from Debian community. Plugin .so's remain in $PREFIX/lib/graphviz. + - (POTENTIAL INCOMPATIBILITY) The default input scaling, in the + absence of a "-s" switch, has been changed from inches to points. + The new behavior of "neato" is equivalent to "neato -s72". + The old behavior can be restored with "neato -s1". + The purpose of this change is to avoid a Frequently-Made-Mistake + when using "neato -n" to process a previously generated layout. + Previously it was necessary to use "neato -n -s72", but with this + change the default matches dot's output and the "-s72" is not required. + - Added pseudo layout engines: "dot -Knop" and dot -Knop1" equivalent + to "neato -n" + - Added pseodo layout engine: "dot -Knop2" equivalent to "neato -n2" + - Add support for color namespaces; add Brewer color data + - Add support for simulated duplex edges using parallel edges: + head arrow takes first color, tail arrow takes second color. + - Add a small pad region around graph renderings to allow for finite + penwidths at the drawing edges + - Add protonode(g) and E=protoedge(g) functions to simplify language + bindings. + - Add special purpose code to deal with html labels from language + bindings. + +- Split off language support into subpackages. +- build php,ruby,C#,python,guile and java support in addition to tcl +- swig >= 1.3.21 differentiates between php4 and php5, so adapt + configure test. +- Don't move tcl libraries to _libdir but instead add the graphviz + sublibrary paths via /etc/ld.so.conf.d +- Use SONAMEs to generate pkgIndex.tcl. That way tcl can actually + load the libraries via 'package require' +- Don't compare pointer with string literal. + ------------------------------------------------------------------- Thu May 3 18:44:39 CEST 2007 - prusnak@suse.cz diff --git a/graphviz.spec b/graphviz.spec index 1cc6b52..c90c3f8 100644 --- a/graphviz.spec +++ b/graphviz.spec @@ -1,5 +1,5 @@ # -# spec file for package graphviz (Version 2.6) +# spec file for package graphviz (Version 2.12) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,19 +11,31 @@ # norootforbuild Name: graphviz -BuildRequires: bison freetype2-devel gcc-c++ libexpat-devel libjpeg-devel libpng-devel libstdc++-devel pkgconfig swig tk-devel xorg-x11-devel -Version: 2.6 -Release: 67 +BuildRequires: libexpat-devel libjpeg-devel libpng-devel zlib-devel +BuildRequires: freetype2-devel >= 2 gcc-c++ ksh libstdc++-devel +BuildRequires: bison flex glib2-devel m4 perl python-devel swig tk-devel >= 8.3 xorg-x11-devel +BuildRequires: php5-devel ruby-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libXpm-devel +BuildRequires: xorg-x11-libX11-devel xorg-x11-libXext-devel xorg-x11-libXmu-devel xorg-x11-libXt-devel +BuildRequires: cairo-devel gcc-java gmp-devel guile-devel libgcj-devel lua-devel mono-core ocaml pango-devel +BuildRequires: libgnomeui-devel php5-devel +Version: 2.12 +Release: 1 Autoreqprov: on Summary: Graph Visualization Tools Group: Productivity/Graphics/Visualization/Graph Source: http://www.graphviz.org/pub/graphviz/ARCHIVE/%{name}-%{version}.tar.bz2 -Patch0: fix-pkgIndex.diff -Patch1: aliasing-fixes.diff -Patch2: config-file-option.diff +Patch0: graphviz-fix-pkgIndex.patch +Patch1: graphviz-aliasing-fixes.patch +Patch2: graphviz-config-file-option.patch Patch3: graphviz-fix_swig_template.patch Patch4: graphviz-neato_splines.patch Patch5: graphviz-new_X_paths.patch +Patch7: graphviz-strcmp_fix.patch +# This fix will be in 2.13 +Patch8: graphviz-2.11-php_check.patch +Patch9: graphviz-no_libtool_patching.patch +Patch10: graphviz-fix_manpages.patch +Patch11: graphviz-gv_aliasing.patch URL: http://www.graphviz.org/ License: IBM Public License Prefix: /usr @@ -36,6 +48,208 @@ of graphs (as in nodes and edges, not as in bar charts). +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package gd +Group: Productivity/Graphics/Visualization/Graph +Summary: Graphviz plugin for renderers based on gd +Requires: graphviz = %{version}-%{release} gd + +%description gd +Graphviz plugin for renderers based on gd + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package guile +Group: Productivity/Graphics/Visualization/Graph +Summary: Graph Visualization Tools +Requires: graphviz = %{version}-%{release} guile + +%description guile +A collection of tools and tcl packages for the manipulation and layout +of graphs (as in nodes and edges, not as in bar charts). + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package java +Group: Productivity/Graphics/Visualization/Graph +Summary: Graph Visualization Tools +Requires: graphviz = %{version}-%{release} java + +%description java +A collection of tools and tcl packages for the manipulation and layout +of graphs (as in nodes and edges, not as in bar charts). + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package lua +Group: Productivity/Graphics/Visualization/Graph +Summary: Lua extension for graphviz +Requires: graphviz = %{version}-%{release} lua + +%description lua +Lua extension for graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package ocaml +Group: Productivity/Graphics/Visualization/Graph +Summary: OCAML extension for graphviz +Requires: graphviz = %{version}-%{release} ocaml + +%description ocaml +OCAML extension for graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package perl +Group: Productivity/Graphics/Visualization/Graph +Summary: Perl extension for Graphviz +Requires: graphviz = %{version}-%{release} perl + +%description perl +Perl extension for Graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package php +Group: Productivity/Graphics/Visualization/Graph +Summary: PHP Extension for Graphviz +Requires: graphviz = %{version}-%{release} php5 + +%description php +PHP Extension for Graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package python +Group: Productivity/Graphics/Visualization/Graph +Summary: Python Extension for Graphviz +Requires: graphviz = %{version}-%{release} python + +%description python +Python Extension for Graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package ruby +Group: Productivity/Graphics/Visualization/Graph +Summary: Ruby Extension for Graphviz +Requires: graphviz = %{version}-%{release} ruby + +%description ruby +Ruby Extension for Graphviz + + + +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package sharp +Group: Productivity/Graphics/Visualization/Graph +Summary: C# Extension for Graphviz +Requires: graphviz = %{version}-%{release} mono-core + +%description sharp +C# extension for graphviz + + + Authors: -------- David Dobkin @@ -49,6 +263,7 @@ Authors: %package tcl Group: Development/Libraries/Tcl Summary: Tcl extension tools for graphviz +Requires: graphviz = %{version}-%{release} tcl >= 8.3 tk %description tcl The graphviz-tcl package contains the various tcl packages (extensions) @@ -70,7 +285,7 @@ Authors: Group: Development/Libraries/C and C++ Summary: Graphiviz development package Requires: %{name} = %{version} -Requires: glibc-devel tcl-devel fontconfig-devel libexpat-devel freetype2-devel +Requires: glibc-devel tcl-devel fontconfig-devel expat freetype2-devel Requires: libjpeg-devel libpng-devel zlib-devel libtool perl Requires: libstdc++-devel tk-devel @@ -80,6 +295,25 @@ programs that use the graphviz libraries including man3 pages. +Authors: +-------- + David Dobkin + John Ellson + Emden Gansner + Eleftherios Koutsofios + Stephen North + Kiem-Phong Vo + Gordon Woodhull + +%package doc +Group: Productivity/Graphics/Visualization/Graph +Summary: Documentation for graphviz + +%description doc +Provides some additional PDF and HTML documentation for graphviz. + + + Authors: -------- David Dobkin @@ -92,22 +326,25 @@ Authors: %prep %setup -q -%patch -p1 -%patch1 -p1 +%patch +%patch1 #%patch2 -p1 %patch3 %patch4 -%if %{suse_version} > 1010 -%patch5 -%endif -# Force rebuild -#rm -f tclpkg/gv/gv_perl.cpp +#%if %{suse_version} > 1010 +#%patch5 +#%endif +%patch7 +%patch8 +%patch9 +%patch10 +%patch11 +# Fix path in generated man pages +sed -e 's$@LIB_DIR@$%{_libdir}$g' tclpkg/gv/gv_doc_langs.tcl >tclpkg/gv/gv_doc_langs.tcl.new && mv tclpkg/gv/gv_doc_langs.tcl.new tclpkg/gv/gv_doc_langs.tcl %build ./autogen.sh -#perl -pi -e 's#lib/tkConfig.sh#%{_lib}/tkConfig.sh#g' \ -# -e 's#lib/tclConfig#%{_lib}/tclConfig#g' \ -# configure.in configure +touch tclpkg/gv/gv.i WARN_FLAGS="-W -Wall -Wno-unused-parameter -Wno-unknown-pragmas -Wstrict-prototypes -Wpointer-arith" CFLAGS="$RPM_OPT_FLAGS $WARN_FLAGS" %ifarch %ix86 x86_64 @@ -116,7 +353,8 @@ CFLAGS="$CFLAGS -ffast-math" CC=gcc RANLIB=: export CC RANLIB -CFLAGS="$CFLAGS" \ +export CFLAGS="$CFLAGS" +export CPPFLAGS="%optflags" ./configure \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ @@ -126,74 +364,219 @@ CFLAGS="$CFLAGS" \ --mandir=%{_mandir} \ --with-x \ --with-mylibgd \ - --disable-dependency-tracking -make DESTDIR=$RPM_BUILD_ROOT + --disable-static \ + --disable-dependency-tracking \ + --with-ipsepcola \ + --without-ming \ + --disable-io +make DESTDIR=%buildroot %install -make install DESTDIR=$RPM_BUILD_ROOT -#rm -rf $RPM_BUILD_ROOT/usr/%{_lib}/pkgconfig # ? -mkdir -p $RPM_BUILD_ROOT/%{_docdir} -mv $RPM_BUILD_ROOT/usr/share/graphviz/doc $RPM_BUILD_ROOT/%{_docdir}/%{name} -mkdir -p $RPM_BUILD_ROOT/usr/share/tcl/graphviz -mv $RPM_BUILD_ROOT/usr/%_lib/graphviz/pkgIndex.tcl \ - $RPM_BUILD_ROOT/usr/share/tcl/graphviz -mv $RPM_BUILD_ROOT/%{_libdir}/%{name}/*tcl*.so* \ - $RPM_BUILD_ROOT/%{_libdir}/%{name}/*tk*.so* \ - $RPM_BUILD_ROOT/%{_libdir} -#dot -c -C$RPM_BUILD_ROOT/usr/lib/graphviz/config -mkdir -p $RPM_BUILD_ROOT/usr/lib/graphviz -touch $RPM_BUILD_ROOT/usr/lib/graphviz/config +make install \ + DESTDIR=%{buildroot} \ + docdir=%{buildroot}%{_docdir}/%{name} \ + pkgconfigdir=%{_libdir}/pkgconfig +find ${RPM_BUILD_ROOT} -type f -name "*.la" -exec rm -f {} ';' +#rm -rf %{buildroot}/usr/%{_lib}/pkgconfig # ? +mkdir -p %{buildroot}/%{_docdir} +mkdir -p %{buildroot}%{_datadir}/%{name} +mkdir -p %{buildroot}%{_datadir}/tcl/%{name} +mv %buildroot/%{_libdir}/%{name}/pkgIndex.tcl %{buildroot}%{_datadir}/tcl/%{name}/ +chmod -x %{buildroot}%{_datadir}/%{name}/lefty/* +cp -a %{buildroot}%{_datadir}/%{name}/doc __doc +rm -rf %{buildroot}%{_datadir}/%{name}/doc +mkdir -p %{buildroot}/usr/lib/graphviz +touch %{buildroot}/usr/lib/graphviz/config +mkdir -p %{buildroot}/etc/ld.so.conf.d/ +cat <%{buildroot}/etc/ld.so.conf.d/%{name}.conf +%{_libdir}/%{name} +%{_libdir}/%{name}/sharp +%{_libdir}/%{name}/java +%{_libdir}/%{name}/perl +%{_libdir}/%{name}/php +%{_libdir}/%{name}/ocaml +%{_libdir}/%{name}/python +%{_libdir}/%{name}/lua +%{_libdir}/%{name}/tcl +%{_libdir}/%{name}/guile +%{_libdir}/%{name}/ruby +EOF +#Correct the path to the shared library +for manfile in $(find %{buildroot} -name \*.man); do + sed -e 's$/usr/lib/graphviz$%{_libdir}/%{name}$g' $manfile > ${manfile}.new && mv ${manfile}.new ${manfile} +done +mv %{buildroot}%{_libdir}/%{name}/tcl/gv_tcl.man %{buildroot}%{_mandir}/mann/gv_tcl.n +mv %{buildroot}%{_libdir}/%{name}/perl/gv_perl.man %{buildroot}%{_mandir}/man3/gv_perl.3pm %post +# run "dot -c" to generate plugin config in %{_libdir}/graphviz/config %{_bindir}/dot -c +%run_ldconfig +# if there is no dot after everything else is done, the remove config + +%postun +if ! test -x $RPM_INSTALL_PREFIX0/bin/dot; then rm -f $RPM_INSTALL_PREFIX0/%{_lib}/graphviz/config; fi %files %defattr(-,root,root) #%doc %{_docdir}/graphviz/ %doc doc/FAQ.html AUTHORS COPYING README NEWS ChangeLog -%doc doc/dotguide.pdf doc/dottyguide.pdf doc/leftyguide.pdf doc/neatoguide.pdf doc/Dot.ref doc/FAQ.html doc/latex_suggestions.txt %attr(755,root,root) %{_bindir}/* %dir %{_datadir}/%{name} %{_datadir}/%{name}/lefty %{_datadir}/%{name}/graphs %{_mandir}/man1/*.1* %dir %{_libdir}/%{name} -%{_libdir}/%{name}/libagraph.so* -%{_libdir}/%{name}/libcdt.so* -%{_libdir}/%{name}/libexpr.so* -%{_libdir}/%{name}/libgraph.so* -%{_libdir}/%{name}/libpack.so* -%{_libdir}/%{name}/libpathplan.so* -%{_libdir}/%{name}/libgvgd.so* -%{_libdir}/%{name}/libgv_perl.so* -%{_libdir}/%{name}/libgvc.so* -%{_libdir}/%{name}/libgvplugin_dot_layout.so* -%{_libdir}/%{name}/libgvplugin_neato_layout.so* -%{_libdir}/%{name}/libgvplugin_usershape_gd.so* -%{_libdir}/%{name}/libgvc_builtins.so* -%{_libdir}/libgv_tcl.so* -%dir /usr/lib/graphviz +%dir %{_prefix}/lib/%{name} +%{_libdir}/*.so.* +%{_libdir}/graphviz/*.so.* +/etc/ld.so.conf.d/graphviz.conf %ghost /usr/lib/graphviz/config +%exclude %{_libdir}/graphviz/*/* +%exclude %{_libdir}/graphviz/libgvplugin_gd.* + +%files gd +%defattr(-,root,root) +%{_libdir}/graphviz/libgvplugin_gd.so.* + +%post gd +%{_bindir}/dot -c + +%postun gd +if ! test -x $RPM_INSTALL_PREFIX0/bin/dot; then rm -f $RPM_INSTALL_PREFIX0/%{_lib}/graphviz/config; fi + +%files guile +%defattr(-,root,root,-) +%{_libdir}/graphviz/guile + +%files java +%defattr(-,root,root,-) +%{_libdir}/graphviz/java + +%files sharp +%defattr(-,root,root) +%{_libdir}/graphviz/sharp + +%files lua +%defattr(-,root,root,-) +%{_libdir}/graphviz/lua + +%files ocaml +%defattr(-,root,root,-) +%{_libdir}/graphviz/ocaml + +%files perl +%defattr(-,root,root,-) +%{_libdir}/graphviz/perl +%doc %{_mandir}/man3/*.3pm* + +%files php +%defattr(-,root,root,-) +%{_libdir}/graphviz/php + +%files python +%defattr(-,root,root,-) +%{_libdir}/graphviz/python + +%files ruby +%defattr(-,root,root,-) +%{_libdir}/graphviz/ruby %files tcl %defattr(-,root,root) -%{_libdir}/libgdtclft.so* -%{_libdir}/libtcldot.so* -%{_libdir}/libtclplan.so* -%{_libdir}/libtkspline.so* %dir %{_datadir}/tcl/%{name} +%{_libdir}/graphviz/tcl %{_datadir}/tcl/%{name}/pkgIndex.tcl -%{_datadir}/%{name}/demo -%{_mandir}/mann/*.n* +%{_datadir}/graphviz/demo +%doc %{_mandir}/mann/*.n* %files devel %defattr(-,root,root) -%{_includedir}/%{name} -%{_libdir}/%{name}/*.*a +%{_includedir}/graphviz +%{_libdir}/*.so %{_libdir}/pkgconfig/*.pc -%{_mandir}/man3/*.3* +%{_mandir}/man3/*.3.gz +%exclude %{_libdir}/graphviz/*/* +%exclude %{_libdir}/graphviz/libgvplugin* +%exclude %{_libdir}/graphviz/*.so + +%files doc +%defattr(-,root,root,-) +%doc __doc/* %changelog +* Tue May 08 2007 - pth@suse.de +- Update to 2.12 + - PostScript output had an extraneous '%%' character on the first line, + which would cause printing to fail. + - Text handling, during both sizing and layout, incorrectly handled + empty lines such as label="\nabc". + - HTML-like tables had been changed to use too much vertical space, + to possibly use the wrong font in calculating the height of a line, + and to use the wrong offset when moving the baseline from one line to + the next. + - dot - New pango+cairo renderer plugin (was in separate graphviz-cairo tree). + -- -Tpng now uses cairo (-Tpng:gd for old gd based renderer) + -- -Tpdf now available + -- -Tps:cairo now available (-Tps is a direct ps renderer not based on + cairo) + -- -Tsvg:cairo now available (-Tsvg is a direct svg renderer not based + on cairo) + -- -Txlib now available -- "dot -Tx11 foo.dot" watches foo.dot with + inotify and updates + -- -Tgtk now available -- eventually to provide a graph editing capability + - not fully working + -- -Tswf "Flash" now available using the ming library. Currently has + incomplete font support and not yet in Fedora rpms because ming not + yet available as rpm. + - remove hard gd dependencies from dot. gd renderers now provided + as optional plugin. Deprecated, but required for -Tjpg, -Tgif and -Tvrml. + - gvpr - Add kindOf function, plus functions to set and get default values + - dot - Implement esep attribute to allow graph to specify room + around nodes for spline routing. + - neato - add vpsc library and DIGCOLA + - neato - add IPSEPCOLA additions from Tim Dwyer + - move: -Tps, -Tfig, -Tsvg, -Timap/ismap/cmap/cmapx, -Tdot/xdot, + from codegens to a "core" plugin. + - dot - new usershape plugin mechanism potentially supporting + a wider range of input shape format -> output format combinations. + display on changes + - dot - new -O switch to automatically generate output file + names based on the input filename and the -T value. + e.g. "dot -Tpng -O *.dot" + Also works for case of multiple graphs in a single input file. + - add support for "Brewer" color nameset + - move reusable .so libraries to $PREFIX/lib per frequent request + from Debian community. Plugin .so's remain in $PREFIX/lib/graphviz. + - (POTENTIAL INCOMPATIBILITY) The default input scaling, in the + absence of a "-s" switch, has been changed from inches to points. + The new behavior of "neato" is equivalent to "neato -s72". + The old behavior can be restored with "neato -s1". + The purpose of this change is to avoid a Frequently-Made-Mistake + when using "neato -n" to process a previously generated layout. + Previously it was necessary to use "neato -n -s72", but with this + change the default matches dot's output and the "-s72" is not required. + - Added pseudo layout engines: "dot -Knop" and dot -Knop1" equivalent + to "neato -n" + - Added pseodo layout engine: "dot -Knop2" equivalent to "neato -n2" + - Add support for color namespaces; add Brewer color data + - Add support for simulated duplex edges using parallel edges: + head arrow takes first color, tail arrow takes second color. + - Add a small pad region around graph renderings to allow for finite + penwidths at the drawing edges + - Add protonode(g) and E=protoedge(g) functions to simplify language + bindings. + - Add special purpose code to deal with html labels from language + bindings. +- Split off language support into subpackages. +- build php,ruby,C#,python,guile and java support in addition to tcl +- swig >= 1.3.21 differentiates between php4 and php5, so adapt + configure test. +- Don't move tcl libraries to _libdir but instead add the graphviz + sublibrary paths via /etc/ld.so.conf.d +- Use SONAMEs to generate pkgIndex.tcl. That way tcl can actually + load the libraries via 'package require' +- Don't compare pointer with string literal. * Thu May 03 2007 - prusnak@suse.cz - changed expat to libexpat-devel in [Build]Requires * Thu Mar 29 2007 - aj@suse.de