1. Introduction 1.1. Project/Component Working Name: graphviz 2.20.2 1.2. Name of Document Author/Supplier: Dermot McCluskey 1.3. Date of This Document: 30/07/08 1.3.1. Date this project was conceived: 03/06/08 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: robert.odea@sun.com 1.4.4. The name of your business unit: New Solaris Group/Desktop 1.5. Email Aliases: 1.5.1. Responsible Manager: tom.garland@sun.com 1.5.2. Responsible Engineer: dermot.mccluskey@sun.com 1.5.3. Marketing Manager: glynn.foster@sun.com 1.5.4. Interest List: desktop-discuss@opensolaris.org 4. Technical Description: 4.1. Details: Graphviz is an open-source graph visualization application. It includes a set of layout programs and libraries that take text representations of graphs and output them in one of several graphical file formats. It also includes tools for displaying and editing the graphs. It can be used stand-alone, but is typically used by other applications, such as the documentation generator doxygen, where it is used to generate class hierarchy diagrams. Graphviz accepts input in the DOT Language format, a simple plaintext format for representating graphs. A trivial example might be: graph example { a -- b; a -- c; } which represents an undirected graph where object `a' is connected to object `b' and also to object `c'. The main graph-drawing filter program is called `dot', which draws directed graphs (with directional arrows between connected objects). In addition, there are four other graph-drawing programs: neato - filter for drawing undirected graphs twopi - filter for radial layouts of graphs circo - filter for circular layout of graphs fdp - filter for drawing undirected graphs These are all implemented as symlinks to `dot'. Graphviz also provides the following programs for manipulating graphs: acyclic - make directed graph acyclic bcomps - biconnected components filter for graphs ccomps - connected components filter for graphs diffimg - diff two graph images dijkstra - single-source distance filter gxl2dot,dot2gxl - GXL-DOT converters (dot2gxl is a symlink to gxl2dot) dotty - A Customizable Graph Editor gc - count graph components gvcolor - flow colors through a ranked digraph gvpack - merge and pack disjoint graphs gvpr - graph pattern scanning and processing language lefty - A Programmable Graphics Editor lneato - A Customizable Graph Editor nop - pretty-print graph file prune - Prune directed graphs sccmap - extract strongly connected components tred - transitive reduction filter for directed graphs unflatten - improve layout aspect ratio Scripting support is provided for the following languages: Perl Python Tcl (and Tk) Dot uses an extensible plugin mechanism for its output renderers. The file /usr/lib/graphviz/config defines which formats are available. If additional, supported file format libraries are installed, `dot -c` can be run to rebuild the config file to include the new format. This proposal will add graphviz version 2.20.2, the latest stable version. 4.2. Bug/RFE Number(s): None. 4.3. In Scope: See above. 4.4. Out of Scope: See above. 4.5. Interfaces: -------------------------------------------------------------------- Exported Stability Comments -------------------------------------------------------------------- SUNWgraphviz Uncommitted SUNWgraphviz-devel Uncommitted /usr/bin/acyclic Uncommitted Command /usr/bin/bcomps Uncommitted Command /usr/bin/ccomps Uncommitted Command /usr/bin/circo Uncommitted Symlink /usr/bin/diffimg Uncommitted Command /usr/bin/dijkstra Uncommitted Command /usr/bin/dot Uncommitted Command /usr/bin/dot2gxl Uncommitted Symlink /usr/bin/dotty Uncommitted Command /usr/bin/fdp Uncommitted Symlink /usr/bin/gc Uncommitted Command /usr/bin/gvcolor Uncommitted Command /usr/bin/gvpack Uncommitted Command /usr/bin/gvpr Uncommitted Command /usr/bin/gxl2dot Uncommitted Command /usr/bin/lefty Uncommitted Command /usr/bin/lneato Uncommitted Command /usr/bin/neato Uncommitted Symlink /usr/bin/nop Uncommitted Command /usr/bin/prune Uncommitted Command /usr/bin/sccmap Uncommitted Command /usr/bin/tred Uncommitted Command /usr/bin/twopi Uncommitted Symlink /usr/bin/unflatten Uncommitted Command /usr/include/graphviz/ Uncommitted Directory of header files /usr/lib/pkgconfig/libagraph.pc Uncommitted /usr/lib/pkgconfig/libcdt.pc Uncommitted /usr/lib/pkgconfig/libcgraph.pc Uncommitted /usr/lib/pkgconfig/libgraph.pc Uncommitted /usr/lib/pkgconfig/libgvc.pc Uncommitted /usr/lib/pkgconfig/libpathplan.pc Uncommitted /usr/lib/graphviz/config Uncommitted Plugin config file libgraph.so.4 Uncommitted SONAME libcdt.so.4 Uncommitted SONAME libcgraph.so.4 Uncommitted SONAME libgraph.so.4 Uncommitted SONAME libgvc.so.4 Uncommitted SONAME libpathplan.so.4 Uncommitted SONAME /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int/gv.pm Uncommitted Perl extension /usr/lib/python2.4/site-packages/gv.py Uncommitted Python extension /usr/lib/tcl8.4/graphviz/pkgIndex.tcl Uncommitted Tcl extension -------------------------------------------------------------------- Imported Stability Comments -------------------------------------------------------------------- libgd Uncommitted PSARC 2007/166 zlib Uncommitted PSARC 2006/537 libpng Evolving LSARC 2003/568 libjpeg Evolving LSARC 2003/085 Tcl/Tk Uncommitted PSARC 2007/317 libtool Uncommitted (Obsolete) PSARC 2007/557 GNOME Various LSARC 2008/207 Python External PSARC 2005/532 Perl Evolving PSARC 2003/661 freetype External LSARC 2005/397 libexpat Volatile LSARC 2007/378 4.6. Doc Impact: Graphviz includes over 30 community provided man pages covering almost all the commands, libraries and script-language extensions plus an overall introductory man page. The only missing man page is for the diffimg command, for which a Sun provided man page will be written. There are also additional community provided user docs in HTML and PDF and demo programs. 4.7. Admin/Config Impact: "dot -c" may be run (by a user with write permission for /usr/lib/graphviz/config) to re-generate the graphviz plugin configuration file. This would typically be done when new software that provides one of the supported graphical formats is installed. 4.8. HA Impact: None. 4.9. I18N/L10N Impact: The JDS and G11N teams are working together to evaluate and provide I18N/L10N support. 4.10. Packaging & Delivery: Adds two new packages, SUNgraphviz (approx 15 Mb) and SUNWgraphviz-devel (approv 3 Mb). 4.11. Security Impact: None. 4.12. Dependencies: Graphviz depends of the software listed in the Imported Interfaces section. ARC contracts are already in place between the suppliers of freetype and libexpat and other components in JDS. The contract owners have been contacted regarding updating those contracts to include graphviz as a consumer. 5. Reference Documents: http://www.graphviz.org/ The Graphviz homepage PSARC 2007/166 Including LibGD with Solaris PSARC 2006/537 zlib 1.2.3 LSARC 2005/397 FreeType 2.1.10 LSARC 2003/568 update to libpng LSARC 2003/085 libtiff, libjpeg and libpng LSARC 2007/378 update libexpat to 2.0.0 and move to /usr PSARC 2007/317 Tcl/Tk upgrade to 8.4.14 PSARC 2007/557 GNU libtool 1.5.22 LSARC 2008/207 GNOME 2.22 PSARC 2005/532 Python migration from /usr/sfw to /usr and upgrade ... PSARC 2003/661 Update Perl to version 5.8.x http://sac.eng.sun.com/arc/LSARC/2006/202/contracts/LSARC-2004-324-libexpat.txt ARC contract for libexpat http://sac.eng.sun.com/arc/LSARC/2001/384/commit.materials/contract-01 ARC contract for freetype