<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY graphviz-download-http "http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-&graphviz-version;.tar.gz">
  <!ENTITY graphviz-download-ftp  " ">
  <!ENTITY graphviz-md5sum        "5b6a829b2ac94efcd5fa3c223ed6d3ae">
  <!ENTITY graphviz-size          "25 MB">
  <!ENTITY graphviz-buildsize     "350 MB">
  <!ENTITY graphviz-time          "1.6 SBU">
]>

<sect1 id="graphviz" xreflabel="Graphviz-&graphviz-version;">
  <?dbhtml filename="graphviz.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-02-24 00:00:51 -0500 (Tue, 24 Feb 2015) $</date>
  </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>

    &lfs77_checked;

    <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">Recommended</bridgehead>
    <para role="recommended">
      <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">
      <ulink url="http://openil.sourceforge.net/projects.php">DevIL</ulink>,
      <ulink url="http://linux.softpedia.com/get/Programming/Debuggers/Electric-Fence-3305.shtml/">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">
      <xref linkend="swig"/> (<application>SWIG</application> must be
      installed or no bindings will be built),
      <xref linkend="guile"/>,
      <xref linkend="openjdk"/>,
      <ulink url="http://iolanguage.org/">Io</ulink>,
      <xref linkend="lua"/>,
      <ulink url="http://www.mono-project.com/Main_Page">Mono</ulink>,
      <ulink url="http://ocaml.org/">OCaml</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:
      <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>sed "s:ruby-1.9:ruby-2.2:g" -i configure &amp;&amp;
./configure --prefix=/usr &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>

<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="commands">
    <title>Command Explanations</title>

    <para>
      <command>sed "s:ruby-1.9:ruby-2.2:g" -i configure</command>: Use this
      command, if ruby-2.2.0 is installed and you wish
      <application>Graphviz</application> built with support for it.
    </para>

  </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 -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, cluster, diffimg, dijkstra,
          dot, dot2gxl, dot_builtins, dotty, edgepaint, fdp, gc, gml2gv,
          graphml2gv, gv2gml, 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, libgvc.so, libgvpr.so, libpathplan.so,
          libxdot.so, and several plugins in /usr/lib/graphviz.
          There are also several in subdirectories of
          /usr/lib/{lua,perl5,php,python&python2-majorver;,tcl8.6}.
          Unfortunately, some libraries are duplicated.
        </seg>
        <seg>
          /usr/include/graphviz,
          /usr/lib/graphviz,
          /usr/lib/tcl8.6/graphviz, 
          /usr/share/doc/graphviz-&graphviz-version;, 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.
          </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.
          </para>
          <indexterm zone="graphviz circo">
            <primary sortas="b-circo">circo</primary>
          </indexterm>
        </listitem>
      </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>
            (needs <ulink url="http://www.libgd.org/">GD Library</ulink>)
            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>
          <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="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="edgepaint">
        <term><command>edgepaint</command></term>
        <listitem>
          <para>
            edge coloring to disambiguate crossing edges.
          </para>
          <indexterm zone="graphviz edgepaint">
            <primary sortas="b-edgepaint">edgepaint</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="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.
          </para>
          <indexterm zone="graphviz gvcolor">
            <primary sortas="b-gvcolor">gvcolor</primary>
          </indexterm>
        </listitem>
      </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.
          </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="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>
          <indexterm zone="graphviz nop">
            <primary sortas="b-nop">nop</primary>
          </indexterm>
        </listitem>
      </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.
          </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 stdout.
          </para>
          <indexterm zone="graphviz sccmap">
            <primary sortas="b-sccmap">sccmap</primary>
          </indexterm>
        </listitem>
      </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.
          </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">twopi</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.
          </para>
          <indexterm zone="graphviz unflatten">
            <primary sortas="b-unflatten">unflatten</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</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</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>
      </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>
      </varlistentry>

      <varlistentry id="libpathplan">
        <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</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>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
