Index: general/genutils/graphviz.xml
===================================================================
--- general/genutils/graphviz.xml	(revision 672221988a3ef7139b9824126caef3adbb847e47)
+++ general/genutils/graphviz.xml	(revision 672221988a3ef7139b9824126caef3adbb847e47)
@@ -0,0 +1,598 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+  <!ENTITY % general-entities SYSTEM "../../general.ent">
+  %general-entities;
+
+  <!ENTITY graphviz-download-http "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-&graphviz-version;.tar.gz">
+  <!ENTITY graphviz-download-ftp  " ">
+  <!ENTITY graphviz-md5sum        "ca921b4a9bcd86da4a1092bb17a57d83">
+  <!ENTITY graphviz-size          "4.2 MB">
+  <!ENTITY graphviz-buildsize     "114 MB">
+  <!ENTITY graphviz-time          "2.1 SBU">
+]>
+
+<sect1 id="graphviz" xreflabel="Graphviz-&graphviz-version;">
+  <?dbhtml filename="graphviz.html"?>
+
+  <sect1info>
+    <othername>$LastChangedBy$</othername>
+    <date>$Date$</date>
+    <keywordset>
+      <keyword role="package">graphviz-&graphviz-version;.tar</keyword>
+      <keyword role="ftpdir">graphviz</keyword>
+    </keywordset>
+  </sect1info>
+
+  <title>Graphviz-&graphviz-version;</title>
+
+  <indexterm zone="graphviz">
+    <primary sortas="a-Graphviz">Graphviz</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title>Introduction to Graphviz</title>
+
+    <para>The <application>Graphviz</application> package contains graph
+    visualization software. Graph visualization is a way of representing
+    structural information as diagrams of abstract graphs and networks.
+    <application>Graphviz</application> has several main graph layout
+    programs. It also has web and interactive graphical interfaces, auxiliary
+    tools, libraries, and language bindings.</para>
+
+    <para>The <application>Graphviz</application> layout programs take
+    descriptions of graphs in a simple text language, and creates diagrams in
+    several useful formats such as images and SVG for web pages, Postscript for
+    inclusion in PDF or other documents, or as objects displayed in an
+    interactive graph browser. (Graphviz also supports GXL, an XML dialect.) In
+    practice, graphs are usually generated from external data sources, but they
+    can also be created and edited manually, either as raw text files or within
+    a graphical editor. (Graphviz was not intended to be a
+    <application>Visio</application> replacement, so it would probably be
+    frustrating to try to use it that way.)</para>
+
+    <para>This package is useful for automatic graph drawing which has many
+    important applications in software engineering, database and web design,
+    networking, and in visual interfaces for many other domains. Graphviz has
+    many useful features for concrete diagrams, such as options for colors,
+    fonts, tabular node layouts, line styles, hyperlinks, and custom
+    shapes.</para>
+
+    <bridgehead renderas="sect3">Package Information</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>Download (HTTP): <ulink url="&graphviz-download-http;"/></para>
+      </listitem>
+      <listitem>
+        <para>Download (FTP): <ulink url="&graphviz-download-ftp;"/></para>
+      </listitem>
+      <listitem>
+        <para>Download MD5 sum: &graphviz-md5sum;</para>
+      </listitem>
+      <listitem>
+        <para>Download size: &graphviz-size;</para>
+      </listitem>
+      <listitem>
+        <para>Estimated disk space required: &graphviz-buildsize;</para>
+      </listitem>
+      <listitem>
+        <para>Estimated build time: &graphviz-time;</para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">Graphviz Dependencies</bridgehead>
+
+    <bridgehead renderas="sect4">Optional</bridgehead>
+    <para role="optional"><xref linkend="x-window-system"/>,
+    <xref linkend="pkgconfig"/>,
+    <xref linkend="expat"/>,
+    <xref linkend="libpng"/>,
+    <xref linkend="libjpeg"/>,
+    <xref linkend="freetype2"/>,
+    <xref linkend="fontconfig"/>,
+    <xref linkend="tcl"/>,
+    <xref linkend="tk"/>, and
+    <ulink url="http://www.perens.com/FreeSoftware/ElectricFence/">Electric Fence</ulink>
+    <!-- Commenting this out for now until an updated version of the
+         GD library becomes available. Graphviz uses its internal copy for now
+    <ulink url="http://www.boutell.com/gd/">GD Library</ulink>, --></para>
+
+    <bridgehead renderas="sect4">Optional
+    (to Build Language Bindings)</bridgehead>
+    <para role="optional"><ulink url="http://www.swig.org/">SWIG</ulink>
+    (<application>SWIG</application> must be installed or no bindings will be
+    built),
+    <xref linkend="guile"/>,
+    <xref linkend="jdk"/>,
+    <xref linkend="php"/>,
+    <xref linkend="python"/>,
+    <xref linkend="ruby"/>,
+    <xref linkend="tcl"/>,
+    C# (<ulink url="http://www.southern-storm.com.au/portable_net.html">DotGNU Portable.NET</ulink>
+    or <ulink url="http://www.mono-project.com/Main_Page">Mono</ulink>),
+    <ulink url="http://www.iolanguage.com/about/">Io</ulink>,
+    <ulink url="http://www.lua.org/">Lua</ulink>, and
+    <ulink url="http://caml.inria.fr/ocaml/index.en.html">Objective Caml</ulink></para>
+
+    <para condition="html" role="usernotes">User Notes:
+    <ulink url="&blfs-wiki;/graphviz"/></para>
+
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of Graphviz</title>
+
+    <para>Install <application>Graphviz</application> by running the following
+    commands:</para>
+
+<screen><userinput>./configure --prefix=/usr &amp;&amp;
+make</userinput></screen>
+
+    <para>This package does not come with a test suite.</para>
+
+    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
+
+<screen role="root"><userinput>make install</userinput></screen>
+
+    <para>If desired, create a symbolic link in the system documents directory
+    to the documentation installed in
+    <filename class='directory'>/usr/share/graphviz/doc</filename> using the
+    following command as the <systemitem class="username">root</systemitem>
+    user:</para>
+
+<screen role="root"><userinput>ln -v -s /usr/share/graphviz/doc \
+         /usr/share/doc/graphviz-&graphviz-version;</userinput></screen>
+
+  </sect2>
+
+  <sect2 role="configuration">
+    <title>Configuring Graphviz</title>
+
+    <sect3 id="graphviz-config">
+      <title>Config Files</title>
+      <para><filename>/usr/lib/graphviz/config</filename></para>
+
+      <indexterm zone="graphviz graphviz-config">
+        <primary sortas="e-usr-share-graphviz-config">/usr/share/graphviz/config</primary>
+      </indexterm>
+
+    </sect3>
+
+    <sect3><title>Configuration Information</title>
+
+      <para>There are no specific configuration requirements for
+      <application>Graphviz</application>. You may consider installing the
+      additional plugins and tools available from the download page at
+      <ulink url="http://www.graphviz.org/Download_source.php"/> for additional
+      capabilities. If additional plugins are installed, you can run
+      <command>dot_static -c</command> (as the
+      <systemitem class="username">root</systemitem> user) to update the
+      <filename>config</filename> file in
+      <filename class='directory'>/usr/lib/graphviz</filename>.</para>
+
+    </sect3>
+
+  </sect2>
+
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <segmentedlist>
+      <segtitle>Installed Programs</segtitle>
+      <segtitle>Installed Libraries</segtitle>
+      <segtitle>Installed Directories</segtitle>
+
+      <seglistitem>
+        <seg>acyclic, bcomps, ccomps, circo, dijkstra, dot, dot2gxl,
+        dot_static, dotty, fdp, gc, gvcolor, gvpack, gvpr, gxl2dot, lefty,
+        lneato, nop, prune, sccmap, tred, twopi and unflatten</seg>
+        <seg>libagraph.{so,a}, libcdt.{so,a}, libexpr.{so,a}, libgraph.{so,a},
+        libpack.{so,a}, libpathplan.{so,a}, additional support libraries
+        and language bindings</seg>
+        <seg>/usr/include/graphviz, /usr/lib/graphviz and
+        /usr/share/graphviz</seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <variablelist>
+      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+      <?dbfo list-presentation="list"?>
+      <?dbhtml list-presentation="table"?>
+
+      <varlistentry id="acyclic">
+        <term><command>acyclic</command></term>
+        <listitem>
+          <para>is a filter that takes a directed graph as input and outputs a
+          copy of the graph with sufficient edges reversed to make the graph
+          acyclic. The reversed edge inherits all of the attributes of the
+          original edge.</para>
+          <indexterm zone="graphviz acyclic">
+            <primary sortas="b-acyclic">acyclic</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="bcomps">
+        <term><command>bcomps</command></term>
+        <listitem>
+          <para>decomposes graphs into their biconnected components, printing
+          the components to standard output.</para>
+          <indexterm zone="graphviz bcomps">
+            <primary sortas="b-bcomps">bcomps</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="ccomps">
+        <term><command>ccomps</command></term>
+        <listitem>
+          <para>decomposes graphs into their connected components, printing the
+          components to standard output.</para>
+          <indexterm zone="graphviz ccomps">
+            <primary sortas="b-ccomps">ccomps</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="circo">
+        <term><command>circo</command></term>
+        <listitem>
+          <para>draws graphs using a circular layout. The tool identifies
+          biconnected components and draws the nodes of the component on a
+          circle. The block-cutpoint tree is then laid out using a recursive
+          radial algorithm. Edge crossings within a circle are minimized by
+          placing as many edges on the circle's perimeter as possible. In
+          particular, if the component is outerplanar, the component will have
+          a planar layout.</para>
+          <indexterm zone="graphviz circo">
+            <primary sortas="b-circo">circo</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="dijkstra">
+        <term><command>dijkstra</command></term>
+        <listitem>
+          <para>reads a stream of graphs and for each computes the distance of
+          every node from sourcenode.</para>
+          <indexterm zone="graphviz dijkstra">
+            <primary sortas="b-dijkstra">dijkstra</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="dot">
+        <term><command>dot</command></term>
+        <listitem>
+          <para>draws directed graphs. It works well on DAGs and other graphs
+          that can be drawn as hierarchies. It reads attributed graph files and
+          writes drawings. By default, the output format dot is the input file
+          with layout coordinates appended.</para>
+          <indexterm zone="graphviz dot">
+            <primary sortas="b-dot">dot</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="dot2gxl">
+        <term><command>dot2gxl</command></term>
+        <listitem>
+          <para>converts between graphs represented in GXL and in the DOT
+          language. Unless a conversion type is specified using a flag,
+          <command>gxl2dot</command> will deduce the type of conversion from
+          the suffix of the input file, a
+          <filename class='extension'>.dot</filename> suffix causing a
+          conversion from DOT to GXL, and a
+          <filename class='extension'>.gxl</filename> suffix causing a
+          conversion from GXL to DOT.</para>
+          <indexterm zone="graphviz dot2gxl">
+            <primary sortas="b-dot2gxl">dot2gxl</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="dot_static">
+        <term><command>dot_static</command></term>
+        <listitem>
+          <para>is a version of <command>dot</command>that has all the
+          <application>Graphviz</application> libraries compiled
+          statically.</para>
+          <indexterm zone="graphviz dot_static">
+            <primary sortas="b-dot_static">dot_static</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="dotty">
+        <term><command>dotty</command></term>
+        <listitem>
+          <para>is a graph editor for the X Window System. It may be run as a
+          standalone editor, or as a front end for applications that use
+          graphs. It can control multiple windows viewing different
+          graphs.</para>
+          <indexterm zone="graphviz dotty">
+            <primary sortas="b-dotty">dotty</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="fdp">
+        <term><command>fdp</command></term>
+        <listitem>
+          <para>draws undirected graphs using a <quote>spring</quote> model. It
+          relies on a force-directed approach in the spirit of Fruchterman and
+          Reingold.</para>
+          <indexterm zone="graphviz fdp">
+            <primary sortas="b-fdp">fdp</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gc-graphviz">
+        <term><command>gc</command></term>
+        <listitem>
+          <para>is a graph analogue to <command>wc</command> in that it prints
+          to standard output the number of nodes, edges, connected components
+          or clusters contained in the input files. It also prints a total
+          count for all graphs if more than one graph is given.</para>
+          <indexterm zone="graphviz gc-graphviz">
+            <primary sortas="b-gc">gc</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gvcolor">
+        <term><command>gvcolor</command></term>
+        <listitem>
+          <para>is a filter that sets node colors from initial seed values.
+          Colors flow along edges from tail to head, and are averaged (as HSB
+          vectors) at nodes.  The graph must already have  been  processed by
+          <command>dot</command>.</para>
+          <indexterm zone="graphviz gvcolor">
+            <primary sortas="b-gvcolor">gvcolor</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gvpack">
+        <term><command>gvpack</command></term>
+        <listitem>
+          <para>reads in a stream of graphs, combines the graphs into a single
+          layout, and produces a single graph serving as the union of the input
+          graphs. The input graphs must be in <command>dot</command> format, and
+          must have all necessary layout information.</para>
+          <indexterm zone="graphviz gvpack">
+            <primary sortas="b-gvpack">gvpack</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gvpr">
+        <term><command>gvpr</command></term>
+        <listitem>
+          <para>is a graph stream editor inspired by <command>awk</command>. It
+          copies input graphs to its output, possibly transforming their
+          structure and attributes, creating new graphs, or printing arbitrary
+          information.</para>
+          <indexterm zone="graphviz gvpr">
+            <primary sortas="b-gvpr">gvpr</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gxl2dot">
+        <term><command>gxl2dot</command></term>
+        <listitem>
+          <para>converts between graphs represented in GXL and in the DOT
+          language. Unless a conversion type is specified using a flag,
+          <command>gxl2dot</command> will deduce the type of conversion from
+          the suffix of the input file, a
+          <filename class='extension'>.dot</filename> suffix causing a
+          conversion from DOT to GXL, and a
+          <filename class='extension'>.gxl</filename> suffix causing a
+          conversion from GXL to DOT.</para>
+          <indexterm zone="graphviz gxl2dot">
+            <primary sortas="b-gxl2dot">gxl2dot</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="lefty">
+        <term><command>lefty</command></term>
+        <listitem>
+          <para>is a two-view graphics editor for technical pictures.</para>
+          <indexterm zone="graphviz lefty">
+            <primary sortas="b-lefty">lefty</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="lneato">
+        <term><command>lneato</command></term>
+        <listitem>
+          <para>is a graph editor for the X Window System. It may be run as a
+          standalone editor, or as a front end for applications that use
+          graphs. It can control multiple windows viewing different
+          graphs.</para>
+          <indexterm zone="graphviz lneato">
+            <primary sortas="b-lneato">lneato</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="nop">
+        <term><command>nop</command></term>
+        <listitem>
+          <para>reads a stream of graphs and prints each in pretty-printed
+          (canonical) format on stdout. If no files are given, it reads from
+          stdin.</para>
+          <indexterm zone="graphviz nop">
+            <primary sortas="b-nop">nop</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="prune">
+        <term><command>prune</command></term>
+        <listitem>
+          <para>reads directed graphs in the same format used by
+          <command>dot</command> and removes subgraphs rooted at nodes
+          specified on the command line via options. These nodes themselves
+          will not be removed, but can be given attributes so that they can be
+          easily located by a graph stream editor such as
+          <command>gpr</command>. <command>prune</command> correctly handles
+          cycles, loops and multi-edges.</para>
+          <indexterm zone="graphviz prune">
+            <primary sortas="b-prune">prune</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="sccmap">
+        <term><command>sccmap</command></term>
+        <listitem>
+          <para>decomposes digraphs into strongly connected components and an
+          auxiliary map of the relationship between components. In this map,
+          each component is collapsed into a node. The resulting graphs are
+          printed to standard out. The number of nodes, edges and strongly
+          connected components are printed to standard error.
+          <command>sccmap</command> is a way of partitioning large graphs into
+          more manageable pieces.</para>
+          <indexterm zone="graphviz sccmap">
+            <primary sortas="b-sccmap">sccmap</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="tred">
+        <term><command>tred</command></term>
+        <listitem>
+          <para>computes the transitive reduction of directed graphs, and
+          prints the resulting graphs to standard output. This removes edges
+          implied by transitivity. Nodes and subgraphs are not otherwise
+          affected.  The <quote>meaning</quote> and validity of the reduced
+          graphs is application dependent. <command>tred</command> is
+          particularly useful as a preprocessor to <command>dot</command> to
+          reduce clutter in dense layouts.</para>
+          <indexterm zone="graphviz tred">
+            <primary sortas="b-tred">tred</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="twopi">
+        <term><command>twopi</command></term>
+        <listitem>
+          <para>draws graphs using a radial layout. Basically, one node is
+          chosen as the center and put at the origin. The remaining nodes are
+          placed on a sequence of concentric circles centered about the origin,
+          each a fixed radial distance from the previous circle.</para>
+          <indexterm zone="graphviz twopi">
+            <primary sortas="b-twopi">twopk</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="unflatten">
+        <term><command>unflatten</command></term>
+        <listitem>
+          <para>is a preprocessor to <command>dot</command> that is used to
+          improve the aspect ratio of graphs having many leaves or disconnected
+          nodes. The usual layout for such a graph is generally very wide or
+          tall. <command>unflatten</command> inserts invisible edges or adjusts
+          the minlen on edges to improve layout compaction.</para>
+          <indexterm zone="graphviz unflatten">
+            <primary sortas="b-unflatten">unflatten</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libagraph">
+        <term><filename class='libraryfile'>libagraph.{so,a}</filename></term>
+        <listitem>
+          <para>supports graph programming by maintaining graphs in memory and
+          reading and writing graph files. Graphs, nodes and edges may be
+          attributed with programmer-defined records and string name-value
+          pairs. Graphs are composed of nodes, edges, and nested subgraphs.
+          Internally, <filename class='libraryfile'>libagraph</filename>
+          depends extensively on
+          <filename class='libraryfile'>libcdt</filename> (formerly
+          <filename class='libraryfile'>libdict</filename>) for set
+          representation.</para>
+          <indexterm zone="graphviz libagraph">
+            <primary sortas="c-libagraph">libagraph.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libcdt">
+        <term><filename class='libraryfile'>libcdt.{so,a}</filename></term>
+        <listitem>
+          <para>manages run-time dictionaries using standard container data
+          types: unordered set/multiset, ordered set/multiset, list, stack,
+          and queue.</para>
+          <indexterm zone="graphviz libcdt">
+            <primary sortas="c-libcdt">libcdt.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libexpr">
+        <term><filename class='libraryfile'>libexpr.{so,a}</filename></term>
+        <listitem>
+          <para>is a C-like expression library.</para>
+          <indexterm zone="graphviz libexpr">
+            <primary sortas="c-libexpr">libexpr.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libgraph">
+        <term><filename class='libraryfile'>libgraph.{so,a}</filename></term>
+        <listitem>
+          <para>maintains directed and undirected attributed graphs in memory
+          and reads and writes graph files. Graphs are composed of nodes,
+          edges, and nested subgraphs. A subgraph may contain any nodes and
+          edges of its parents, and may be passed to any
+          <filename class='libraryfile'>libgraph</filename> function taking a
+          graph pointer, except the three that create new attributes (where a
+          main graph is required).</para>
+          <indexterm zone="graphviz libgraph">
+            <primary sortas="c-libgraph">libgraph.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libpack">
+        <term><filename class='libraryfile'>libpack.{so,a}</filename></term>
+        <listitem>
+          <para>supports the use of connected components in the context of
+          laying out graphs using other <application>Graphviz</application>
+          libraries. One set of functions can be used to take a single graph
+          and break it apart into connected components. A complementary set of
+          functions takes a collection of graphs (not necessarily components of
+          a single graph) which  have been laid out separately, and packs them
+          together moderately tightly. The packing is done using the polyomino
+          algorithm of K. Freivalds et al.</para>
+          <indexterm zone="graphviz libpack">
+            <primary sortas="c-libpack">libpack.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libpathplan">
+        <term><filename class='libraryfile'>libpathplan.{so,a}</filename></term>
+        <listitem>
+          <para>contains functions to find the shortest path between two points
+          in a simple polygon.</para>
+          <indexterm zone="graphviz libpathplan">
+            <primary sortas="c-libpathplan">libpathplan.{so,a}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+
+  </sect2>
+
+</sect1>
