Index: general/genutils/graphviz.xml
===================================================================
--- general/genutils/graphviz.xml	(revision 6d85d2c1159194b43ad7a77332ea0edaf46501ea)
+++ general/genutils/graphviz.xml	(revision ac4b41a9b9f0f8f7e82c067036734af260a432f1)
@@ -6,9 +6,9 @@
 
   <!ENTITY graphviz-download-http "http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-&graphviz-version;.tar.gz">
-  <!ENTITY graphviz-download-ftp  "&gentoo-ftp-repo;/graphviz-&graphviz-version;.tar.gz">
-  <!ENTITY graphviz-md5sum        "6f45946fa622770c45609778c0a982ee">
-  <!ENTITY graphviz-size          "17 MB">
-  <!ENTITY graphviz-buildsize     "142 MB">
-  <!ENTITY graphviz-time          "1.5 SBU">
+  <!ENTITY graphviz-download-ftp  " ">
+  <!ENTITY graphviz-md5sum        "8d26c1171f30ca3b1dc1b429f7937e58">
+  <!ENTITY graphviz-size          "19 MB">
+  <!ENTITY graphviz-buildsize     "155 MB">
+  <!ENTITY graphviz-time          "2.5 SBU">
 ]>
 
@@ -30,101 +30,105 @@
     <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>
+    <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>
+
+    &lfs70_checked;
 
     <bridgehead renderas="sect3">Package Information</bridgehead>
     <itemizedlist spacing="compact">
       <listitem>
-        <para>Download (HTTP): <ulink url="&graphviz-download-http;"/></para>
+        <para>
+          Download (HTTP): <ulink url="&graphviz-download-http;"/>
+        </para>
       </listitem>
       <listitem>
-        <para>Download (FTP): <ulink url="&graphviz-download-ftp;"/></para>
+        <para>
+          Download (FTP): <ulink url="&graphviz-download-ftp;"/>
+        </para>
       </listitem>
       <listitem>
-        <para>Download MD5 sum: &graphviz-md5sum;</para>
+        <para>
+          Download MD5 sum: &graphviz-md5sum;
+        </para>
       </listitem>
       <listitem>
-        <para>Download size: &graphviz-size;</para>
+        <para>
+          Download size: &graphviz-size;
+        </para>
       </listitem>
       <listitem>
-        <para>Estimated disk space required: &graphviz-buildsize;</para>
+        <para>
+          Estimated disk space required: &graphviz-buildsize;
+        </para>
       </listitem>
       <listitem>
-        <para>Estimated build time: &graphviz-time;</para>
+        <para>
+          Estimated build time: &graphviz-time;
+        </para>
       </listitem>
     </itemizedlist>
 
-    <!-- <bridgehead renderas="sect3">Additional Downloads</bridgehead>
+    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
     <itemizedlist spacing="compact">
       <listitem>
-        <para>Required patch: <ulink
-        url="&patch-root;/graphviz-&graphviz-version;-gd_fixes-1.patch"/></para>
+        <para>
+          Required patch:
+          <ulink url="&patch-root;/graphviz-&graphviz-version;-fix-guile-detection-1.patch"/>
+        </para>
       </listitem>
-    </itemizedlist> -->
+    </itemizedlist>
 
     <bridgehead renderas="sect3">Graphviz Dependencies</bridgehead>
 
+    <bridgehead renderas="sect4">Recommended</bridgehead>
+    <para role="recommended">
+      <xref linkend="expat"/>,
+      <xref linkend="freetype2"/>,
+      <xref linkend="fontconfig"/>,
+      <xref linkend="freeglut"/>,
+      <xref linkend="gdk-pixbuf"/>,
+      <xref linkend="libjpeg"/>,
+      <xref linkend="libpng"/>,
+      <xref linkend="librsvg"/>,
+      <xref linkend="pango"/> and
+      <xref linkend="xorg7-lib"/>
+    </para>
+
     <bridgehead renderas="sect4">Optional</bridgehead>
-    <para role="optional"><!-- <xref linkend="pkgconfig"/>, -->
-    <xref linkend="expat"/>,
-    <xref linkend="freetype2"/>,
-    <xref linkend="fontconfig"/>,
-    <xref linkend="freeglut"/>,
-    <xref linkend="libpng"/>,
-    <xref linkend="x-window-system"/>,
-    <xref linkend="pango"/> (built with <application>cairo</application> support),
-    <xref linkend="gtk2"/>,
-    <xref linkend="libglade"/>,
-    <xref linkend="librsvg"/>,
-    <xref linkend="gs"/>,
-    <xref linkend="tcl"/>,
-    <xref linkend="tk"/>,
-    <ulink url="http://openil.sourceforge.net/projects.php">DevIL</ulink>,
-    <ulink url="http://sourceforge.net/projects/lasi/">libLASi</ulink>,
-    <ulink url="http://www.freedesktop.org/wiki/Software/glitz">glitz</ulink>,
-    <ulink url="http://www.libgd.org/">GD Library</ulink>,
-    <xref linkend="libjpeg"/> (only if using the internal source code copy
-    of the GD Library), and
-    <ulink url="http://www.perens.com/FreeSoftware/ElectricFence/">Electric Fence</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="icedtea6"/><!-- or <xref linkend="jdk"/>-->,
-    <xref linkend="php"/>,
-    <xref linkend="python2"/>,
-    <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.r-project.org/">R</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 role="optional">
+      <ulink url="http://openil.sourceforge.net/projects.php">DevIL</ulink>,
+      <ulink url="http://www.perens.com/FreeSoftware/ElectricFence/">Electric Fence</ulink>,
+      <xref linkend="libglade"/>,
+      <ulink url="http://sourceforge.net/projects/lasi/">libLASi</ulink>,
+      <ulink url="http://www.libgd.org/">GD Library</ulink>,
+      <ulink url="http://www.freedesktop.org/wiki/Software/glitz">glitz</ulink>,
+      <xref linkend="gs"/>,
+      <xref linkend="gtk2"/> and
+      <xref linkend="qt4"/>
+    </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="icedtea6"/>,
+      <ulink url="http://www.iolanguage.com/about/">Io</ulink>,
+      <ulink url="http://www.lua.org/">Lua</ulink>,
+      <ulink url="http://www.mono-project.com/Main_Page">Mono</ulink>,
+      <ulink url="http://caml.inria.fr/ocaml/index.en.html">Objective Caml</ulink>,
+      <xref linkend="php"/>,
+      <xref linkend="python2"/>,
+      <ulink url="http://www.r-project.org/">R</ulink>,
+      <xref linkend="ruby"/>,
+      <xref linkend="tcl"/> and
+      <xref linkend="tk"/>
+    </para>
 
     <para condition="html" role="usernotes">User Notes:
@@ -136,22 +140,33 @@
     <title>Installation of Graphviz</title>
 
-    <para>Install <application>Graphviz</application> by running the following
-    commands:</para>
-
-<screen><userinput>./configure --prefix=/usr &amp;&amp;
+    <para>
+      Install <application>Graphviz</application> by running the following
+      commands:
+    </para>
+
+<screen><userinput>patch -Np1 -i ../graphviz-&graphviz-version;-fix-guile-detection-1.patch &amp;&amp;
+sed -e '/"archdir"/s:$:+" '"$(echo -I/usr/include/ruby-1.9.1/{`uname -m`-linux,ruby/backward,})"'":' \
+    -e '/CONFIG/s:site:vendor:' \
+    -i config/config_ruby.rb &amp;&amp;
+./configure --prefix=/usr CXXFLAGS="-fpermissive" &amp;&amp;
 make</userinput></screen>
 
-    <para>This package does not come with a test suite that provides
-    meaningful results.</para>
-
-    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
+    <para>
+      This package does not come with a test suite that provides meaningful results.
+    </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>
+    <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 \
@@ -173,15 +188,18 @@
     </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>
+      <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 -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>
@@ -198,12 +216,19 @@
 
       <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>
+        <seg>
+          acyclic, bcomps, ccomps, circo, cluster, diffimg, dijkstra,
+          dot, dot2gxl, dot_builtins, dotty, fdp, gc, gml2gv, gv2gxl,
+          gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr,
+          gxl2dot, gxl2gv, lefty, lneato, mm2gv, neato, nop, osage,
+          patchwork, prune, sccmap, sfdp, tred, twopi, unflatten and vimdot
+        </seg>
+        <seg>
+          libcdt.so, libcgraph.so, libgraph.so, libgvc.so, libgvpr.so,
+          libpathplan.so and libxdot.so
+        </seg>
+        <seg>
+          /usr/include/graphviz,
+          /usr/lib/graphviz and
+          /usr/share/graphviz</seg>
       </seglistitem>
     </segmentedlist>
@@ -217,8 +242,9 @@
         <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>
+          <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.
+          </para>
           <indexterm zone="graphviz acyclic">
             <primary sortas="b-acyclic">acyclic</primary>
@@ -230,6 +256,8 @@
         <term><command>bcomps</command></term>
         <listitem>
-          <para>decomposes graphs into their biconnected components, printing
-          the components to standard output.</para>
+          <para>
+            decomposes graphs into their biconnected components, 
+            printing the components to standard output.
+          </para>
           <indexterm zone="graphviz bcomps">
             <primary sortas="b-bcomps">bcomps</primary>
@@ -241,6 +269,8 @@
         <term><command>ccomps</command></term>
         <listitem>
-          <para>decomposes graphs into their connected components, printing the
-          components to standard output.</para>
+          <para>
+            decomposes graphs into their connected components, 
+            printing the components to standard output.
+          </para>
           <indexterm zone="graphviz ccomps">
             <primary sortas="b-ccomps">ccomps</primary>
@@ -252,11 +282,7 @@
         <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>
+          <para>
+            draws graphs using a circular layout.
+          </para>
           <indexterm zone="graphviz circo">
             <primary sortas="b-circo">circo</primary>
@@ -265,9 +291,38 @@
       </varlistentry>
 
+      <varlistentry id="cluster">
+        <term><command>cluster</command></term>
+        <listitem>
+          <para>
+            takes as input a graph in DOT format, finds node clusters
+            and augments the graph with this information.
+          </para>
+          <indexterm zone="graphviz cluster">
+            <primary sortas="b-cluster">cluster</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="diffimg">
+        <term><command>diffimg</command></term>
+        <listitem>
+          <para>
+            generates an image where each pixel is the 
+            difference between the corresponding pixel in 
+            each of the two source images.
+          </para>
+          <indexterm zone="graphviz diffimg">
+            <primary sortas="b-diffimg">diffimg</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>
+          <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>
@@ -279,8 +334,10 @@
         <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>
+          <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>
@@ -292,12 +349,14 @@
         <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>
+          <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>
@@ -306,23 +365,12 @@
       </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>
+          <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>
@@ -334,7 +382,9 @@
         <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>
+          <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>
@@ -346,8 +396,10 @@
         <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>
+          <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>
@@ -356,11 +408,38 @@
       </varlistentry>
 
+      <varlistentry id="gml2gv">
+        <term><command>gml2gv</command></term>
+        <listitem>
+          <para>
+            converts a graph specified in the GML format to 
+            a graph in the GV (formerly DOT) format.
+          </para>
+          <indexterm zone="graphviz gml2gv">
+            <primary sortas="b-gml2gv">gml2gv</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gxl2gv">
+        <term><command>gxl2gv</command></term>
+        <listitem>
+          <para>
+            converts between graphs represented in GXL and in 
+            the GV language.
+          </para>
+          <indexterm zone="graphviz gxl2gv">
+            <primary sortas="b-gxl2gv">gxl2gv</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>
+          <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.
+          </para>
           <indexterm zone="graphviz gvcolor">
             <primary sortas="b-gvcolor">gvcolor</primary>
@@ -369,11 +448,53 @@
       </varlistentry>
 
+      <varlistentry id="gvedit">
+        <term><command>gvedit</command></term>
+        <listitem>
+          <para>
+            provides a simple graph editor and viewer. It allows many 
+            graphs to be viewed at the same time. The text of each
+            graph is displayed in its own text window.
+          </para>
+          <indexterm zone="graphviz gvedit">
+            <primary sortas="b-gvedit">gvedit</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gvgen">
+        <term><command>gvgen</command></term>
+        <listitem>
+          <para>
+            generates a variety of simple, regularly-structured 
+            abstract graphs.
+          </para>
+          <indexterm zone="graphviz gvgen">
+            <primary sortas="b-gvgen">gvgen</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="gvmap">
+        <term><command>gvmap</command></term>
+        <listitem>
+          <para>
+            takes as input a graph in DOT format, finds node 
+            clusters and produces a rendering of the graph as 
+            a geographic-style map, with clusters highlighted,
+            in xdot format.
+          </para>
+          <indexterm zone="graphviz gvmap">
+            <primary sortas="b-gvmap">gvmap</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>
+          <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.
+          </para>
           <indexterm zone="graphviz gvpack">
             <primary sortas="b-gvpack">gvpack</primary>
@@ -385,8 +506,10 @@
         <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>
+          <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>
@@ -398,12 +521,14 @@
         <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>
+          <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>
@@ -415,5 +540,7 @@
         <term><command>lefty</command></term>
         <listitem>
-          <para>is a two-view graphics editor for technical pictures.</para>
+          <para>
+            is a two-view graphics editor for technical pictures.
+          </para>
           <indexterm zone="graphviz lefty">
             <primary sortas="b-lefty">lefty</primary>
@@ -425,8 +552,9 @@
         <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>
+          <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>
@@ -435,10 +563,39 @@
       </varlistentry>
 
+      <varlistentry id="mm2gv">
+        <term><command>mm2gv</command></term>
+        <listitem>
+          <para>
+            converts a sparse matrix of the Matrix Market format
+            to a graph in the GV (formerly DOT) format.
+          </para>
+          <indexterm zone="graphviz mm2gv">
+            <primary sortas="b-mm2gv">mm2gv</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="neato">
+        <term><command>neato</command></term>
+        <listitem>
+          <para>
+            draws undirected graphs using <quote>spring</quote> models. Input 
+            files must be formatted in the <command>dot</command>  attributed
+            graph language. By default, the output of <command>neato</command> 
+            is the input graph with layout coordinates appended.
+          </para>
+          <indexterm zone="graphviz neato">
+            <primary sortas="b-neato">neato</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>
+          <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>
@@ -447,14 +604,38 @@
       </varlistentry>
 
+      <varlistentry id="osage">
+        <term><command>osage</command></term>
+        <listitem>
+          <para>
+            draws clustered graphs. As input, it takes any 
+            graph in the DOT format.
+          </para>
+          <indexterm zone="graphviz osage">
+            <primary sortas="b-osage">osage</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="patchwork">
+        <term><command>patchwork</command></term>
+        <listitem>
+          <para>
+            draws clustered graphs using a squarified treemap layout. 
+            As input, it takes any graph in the DOT format.
+          </para>
+          <indexterm zone="graphviz patchwork">
+            <primary sortas="b-patchwork">patchwork</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>
+          <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.
+          </para>
           <indexterm zone="graphviz prune">
             <primary sortas="b-prune">prune</primary>
@@ -466,11 +647,10 @@
         <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>
+          <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 stdout.
+          </para>
           <indexterm zone="graphviz sccmap">
             <primary sortas="b-sccmap">sccmap</primary>
@@ -479,14 +659,27 @@
       </varlistentry>
 
+      <varlistentry id="sfdp">
+        <term><command>sfdp</command></term>
+        <listitem>
+          <para>
+            draws undirected graphs using the <quote>spring</quote> model, 
+            but it uses a multi-scale approach to produce layouts of large
+            graphs in a reasonably short time.
+          </para>
+          <indexterm zone="graphviz sfdp">
+            <primary sortas="b-sfdp">sfdp</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>
+          <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.
+          </para>
           <indexterm zone="graphviz tred">
             <primary sortas="b-tred">tred</primary>
@@ -498,8 +691,10 @@
         <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>
+          <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">twopi</primary>
@@ -511,9 +706,9 @@
         <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>
+          <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.
+          </para>
           <indexterm zone="graphviz unflatten">
             <primary sortas="b-unflatten">unflatten</primary>
@@ -522,40 +717,42 @@
       </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="vimdot">
+        <term><command>vimdot</command></term>
+        <listitem>
+          <para>
+            is a simple script which launches the <command>gvim</command>
+            or <command>vim</command> editor along with a GUI window 
+            showing the <command>dot</command> output of the edited file.
+          </para>
+          <indexterm zone="graphviz vimdot">
+            <primary sortas="b-vimdot">vimdot</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>
+        <term><filename class='libraryfile'>libcdt.so</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>
+            <primary sortas="c-libcdt">libcdt.so</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libcgraph">
+        <term><filename class='libraryfile'>libcgraph.so</filename></term>
+        <listitem>
+          <para>
+            supports graph programming by maintaining graphs in memory and 
+            reading and writing graph files. Graphs are composed of nodes,
+            edges, and nested subgraphs.
+          </para>
+          <indexterm zone="graphviz libcgraph">
+            <primary sortas="c-libcgraph">libcgraph.so</primary>
           </indexterm>
         </listitem>
@@ -563,32 +760,27 @@
 
       <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>
+        <term><filename class='libraryfile'>libgraph.so</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.
+          </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>
+            <primary sortas="c-libgraph">libgraph.so</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libgvc">
+        <term><filename class='libraryfile'>libgvc.so</filename></term>
+        <listitem>
+          <para>
+            provides a context for applications wishing to manipulate
+            and render graphs. It provides a command line parsing, 
+            common rendering code, and a plugin mechanism for renderers.
+          </para>
+          <indexterm zone="graphviz libgvc">
+            <primary sortas="c-libgvc">libgvc.so</primary>
           </indexterm>
         </listitem>
@@ -596,10 +788,25 @@
 
       <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>
+        <term><filename class='libraryfile'>libpathplan.so</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>
+            <primary sortas="c-libpathplan">libpathplan.so</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libxdot">
+        <term><filename class='libraryfile'>libxdot.so</filename></term>
+        <listitem>
+          <para>
+            provides support for parsing and deparsing graphical 
+            operations specificed by the xdot language.
+          </para>
+          <indexterm zone="graphviz libxdot">
+            <primary sortas="c-libxdot">libxdot.so</primary>
           </indexterm>
         </listitem>
