[32049] trunk/doc-new

simon at macports.org simon at macports.org
Fri Dec 14 07:04:55 PST 2007


Revision: 32049
          http://trac.macosforge.org/projects/macports/changeset/32049
Author:   simon at macports.org
Date:     2007-12-14 07:04:49 -0800 (Fri, 14 Dec 2007)

Log Message:
-----------
doc-new: Removed .7 from the portfile-* xml files.

Modified Paths:
--------------
    trunk/doc-new/guide/xml/portfileref.xml
    trunk/doc-new/man/xml/portfile.7.xml

Added Paths:
-----------
    trunk/doc-new/guide/xml/portfile-keywords.xml
    trunk/doc-new/guide/xml/portfile-phase.xml
    trunk/doc-new/guide/xml/portfile-startupitem.xml
    trunk/doc-new/guide/xml/portfile-tcl.xml
    trunk/doc-new/guide/xml/portfile-variables.xml

Removed Paths:
-------------
    trunk/doc-new/guide/xml/portfile-keywords.7.xml
    trunk/doc-new/guide/xml/portfile-phase.7.xml
    trunk/doc-new/guide/xml/portfile-startupitem.7.xml
    trunk/doc-new/guide/xml/portfile-tcl.7.xml
    trunk/doc-new/guide/xml/portfile-variables.7.xml

Deleted: trunk/doc-new/guide/xml/portfile-keywords.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-keywords.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-keywords.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,640 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<section id="reference.keywords">
-  <title>Global Keywords</title>
-
-  <para>MacPorts keywords are used to specify required or optional items
-  within a Portfile, or to override default options used by MacPorts base for
-  individual ports. Keywords are to be used within the "global" and "variant"
-  sections of Portfiles, and not within optional port phase
-  declarations.</para>
-
-  <para>The global keywords listed below specify information for ports as a
-  whole, whereas the keywords listed under a port phase specify information to
-  be used during a particular installation phase.</para>
-
-  <section id="reference.keywords.general">
-    <title>General</title>
-
-    <para>The list of global keywords.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>PortSystem</term>
-
-        <listitem>
-          <para>The top line of every Portfile; it must be followed by a blank
-          line. It defines which version of the Portfile interpreter will be
-          used.</para>
-
-          <programlisting>PortSystem          1.0
-
-</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>name</term>
-
-        <listitem>
-          <para>The name of the Port; it should be lowercase to prevent
-          uninstallation problems due to a macports base bug.</para>
-
-          <programlisting>name                foo</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>version</term>
-
-        <listitem>
-          <para>The version of the ported software.</para>
-
-          <programlisting>version             1.23.45</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>revision</term>
-
-        <listitem>
-          <para>Optional keyword (default is 0) that is used to track port
-          revisions. It should not be incremented for port revisions unless it
-          would benefit users to upgrade an installed port, and cleared when
-          the port is updated to a newer version.</para>
-
-          <para>It should be used if a bug in the Portfile was found and all
-          installations of this port have to be updated. If the change only
-          affects new installations, there is no need to increase it.</para>
-
-          <programlisting>revision            1</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>epoch</term>
-
-        <listitem>
-          <para>An optional keyword (default value is 0) that may be used when
-          ports are updated to a version that is numerically less than the
-          previous version. For example 1.10 -&gt; 1.2 or 20070928 -&gt; 1.0.
-          An epoch ensures that port version comparisons work correctly in
-          these cases. Often the epoch is formatted like a date, but it can
-          simply be a number such as 1.</para>
-
-          <programlisting>epoch               20080924</programlisting>
-
-          <programlisting>epoch               1</programlisting>
-
-          <note>
-            <para>If an epoch is used it must must never be decreased or reset
-            to zero, because this would always cause a port version comparison
-            to be incorrect after a port upgrade.</para>
-          </note>
-
-          <para>An epoch is not needed for most ports, and good use of a
-          port's version can make using an epoch unnecessary even for
-          application distributions without official version numbers. For
-          example, if an application version 1.5 is superseded by a snapshot
-          release 20081022, the new release could be given version number
-          1.5.20081022, rather than 20081022, so the newer release will have a
-          numericaly greater value.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>categories</term>
-
-        <listitem>
-          <para>The category under which the ported software falls. The first
-          category should be the same as the directory within which the
-          Portfile is stored; secondary and tertiary categories may be
-          selected.</para>
-
-          <programlisting>categories          net security</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>maintainers</term>
-
-        <listitem>
-          <para>A port's maintainer is a person or persons who take
-          responsibility for keeping the port up-to-date, and the maintainer
-          keyword lists maintainer email addresses(s). However, many
-          maintainers wish to hide these addresses from spambots; to do so
-          follow these conventions:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>For addresses in domain @macports.org, simply omit the
-              domain name.</para>
-            </listitem>
-
-            <listitem>
-              <para>For addresses in other domains, say
-              <email>account at example.org</email>, use the convention
-              example.org:account to specify the address.</para>
-            </listitem>
-          </itemizedlist>
-
-          <para>In the example below, the maintainer email addresses
-          <email>jdoe at macports.org</email> and
-          <email>julesverne at example.org</email> are hidden using these
-          conventions.</para>
-
-          <programlisting>maintainers         jdoe \
-                    example.org:julesverne</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>description</term>
-
-        <listitem>
-          <para>A one-sentence description of the ported software.</para>
-
-          <programlisting>description         A classic shooter arcade game.</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>long_description</term>
-
-        <listitem>
-          <para>A long description of the ported software. Break long lines
-          with escaped newlines.</para>
-
-          <programlisting>long_description    A classic shooter arcade game derived from \
-                    the game alien-munchers.  Not suitable for \
-                    children under two years old.</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>homepage</term>
-
-        <listitem>
-          <para>Port application's homepage.</para>
-
-          <programlisting>homepage            http://www.example.org/apps</programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>platforms</term>
-
-        <listitem>
-          <para>The platforms on which the port has been tested.</para>
-
-          <programlisting>platforms           darwin freebsd</programlisting>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.keywords.dependencies">
-    <title>Dependencies</title>
-
-    <para>Free and open source software is highly modular, and MacPorts ports
-    often require that other ports be installed beforehand; these
-    prerequisites for a given port are called a port's
-    <quote>dependencies</quote>.</para>
-
-    <para>There are three types of MacPorts dependencies: library, build, and
-    run dependencies. Dependency types are important for proper port upgrade
-    and uninstall behavior. For example, you may not uninstall a port that is
-    a library dependency for another port, though you may remove one with a
-    build dependency; likewise, upgrading a port will upgrade its library and
-    build dependencies also, but not its run dependencies.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>depends_lib</term>
-
-        <term>depends_lib-append</term>
-
-        <term>depends_lib-delete</term>
-
-        <listitem>
-          <para>The list of dependencies to check before phases
-          <option>configure</option>, <option>build</option>,
-          <option>destroot</option>, <option>install</option>, and
-          <option>package</option>. Library dependencies are needed both at
-          build time (for headers and libraries to link against) and at run
-          time.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>depends_build</term>
-
-        <term>depends_build-append</term>
-
-        <term>depends_build-delete</term>
-
-        <listitem>
-          <para>The list of dependencies to check before phases
-          <option>build</option>, <option>destroot</option>,
-          <option>install</option>, and <option>package</option>. Build
-          dependencies are needed when software is compiled, but not needed at
-          all once the software is compiled and installed.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>depends_run</term>
-
-        <term>depends_run-append</term>
-
-        <term>depends_run-delete</term>
-
-        <listitem>
-          <para>The list of dependencies to check before phases
-          <option>destroot</option>, <option>install</option>, and
-          <option>package</option>. Run dependencies are needed when the
-          software is run, but not to compile it.</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <section id="reference.keywords.dependencies.types">
-      <title>Port and Non-Port Dependencies</title>
-
-      <para>Port dependencies should be provided by MacPorts ports whenever
-      possible, however dependencies may be provided by vendor-supplied
-      software when satisfying a dependency by a port is not practical or
-      desirable for a special reason. Dependencies of this type are called
-      non-port dependencies.</para>
-
-      <para>Non-port dependencies should only be used if the application or
-      library can be installed by multiple ports (for example stable and
-      -devel version) or if it can't be installed with Macports.</para>
-
-      <para>Port dependencies, the preferred type, are specified as shown in
-      these examples:</para>
-
-      <programlisting>depends_lib         port:rrdtool port:apache2
-
-depends_build       port:libtool
-
-depends_run         port:apache2 port:php5</programlisting>
-
-      <para>Non-port dependencies are specified as shown in these
-      examples:</para>
-
-      <programlisting>depends_lib         lib:libX11.6:xorg
-
-depends_build       bin:glibtool:libtool
-
-depends_run         path:${prefix}/lib/libltdl.a:libtool</programlisting>
-    </section>
-  </section>
-
-  <section id="reference.keywords.variants">
-    <title>Variants</title>
-
-    <para>MacPorts variants are conditional modifications of port installation
-    behavior that may be invoked by a user at the time of port install.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>variant [requires variant] [conflicts variant] [description
-        description]</term>
-
-        <listitem>
-          <para>The variant declaration may contain any keywords that can be
-          placed in a Portfile's global section. If you wish to execute system
-          (shell) calls or Tcl extensions during the execution of a port
-          phase, you should place those statements within a
-          <literal>variant_isset</literal> conditional within a phase
-          declaration and not within the variant declaration itself.
-          Dependencies and conflicts with other variants in the same port can
-          be expressed with requires and conflicts. See the isset Tcl
-          extension.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: no</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>variant gnome requires glib {
-    configure.args-append   --with-gnome
-    depends_lib-append      port:gnome-session
-}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>default_variants</term>
-
-        <listitem>
-          <para>If variants are defined, then the default_variants value lists
-          which variants are enabled by default. This allows for Portfile
-          modularity and also allows users to suppress default variants if
-          they wish.</para>
-
-          <para>Due to a bug in the current Macports base default_variants
-          shouldn't be used at the moment as they cause problems while
-          upgrading ports.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>default_variants    +ssl +tcpd
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>Default variants may be suppressed by preceding a variant name
-          with a "-" as shown in this example.</para>
-
-          <programlisting><prompt>%%</prompt> <userinput>port install foo -ssl</userinput></programlisting>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>universal_variant</term>
-
-        <listitem>
-          <para>When using MacPorts on Mac OS X, a universal variant is
-          defined by default to configure ports with universal flags. The
-          variant can be overridden if the default code does not work (see the
-          Configure Universal section below), or suppressed if a universal
-          variant is not possible for the port with this keyword.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: yes</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>universal_variant   no</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.keywords.livecheck">
-    <title>Livecheck / Distcheck</title>
-
-    <para>Options livecheck and distcheck are especially useful for port
-    maintainers, but others may also find this information valuable.</para>
-
-    <para>Livecheck checks to see if MacPorts can query the developer's
-    download site to determine if a newer version of the software has become
-    available since the port was installed.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>livecheck.check</term>
-
-        <listitem>
-          <para>Specify what kind of update check to perform.</para>
-
-          <para>Open source mirror site options are to use the project's
-          latest file release from <option>sourceforge</option> or
-          <option>googlecode</option>, or the project's
-          <literal>date_updated</literal> XML tag for
-          <option>freshmeat</option>. These options are automatically used if
-          a matching <varname>${master_sites}</varname> URL is used.</para>
-
-          <para>Generic download site options are to specify a
-          <option>moddate</option> (modification date of a URL resource), a
-          <option>regex</option> (retrieve the version by applying a regex to
-          a URL resource), <option>regexm</option> (retrieve the version by
-          applying a multi-line regex to a URL resource), <option>md5</option>
-          (compares the md5 sum of a URL resource) or <option>none</option>
-          (no check).</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>sourceforge</option> or
-              <option>googlecode</option> if the
-              <varname>${master_sites}</varname> is one of these, else
-              <option>freshmeat</option>.</para>
-            </listitem>
-
-            <listitem>
-              <para>Values: <option>freshmeat</option>
-              <option>sourceforge</option> <option>googlecode</option>
-              <option>moddate</option> <option>regex</option>
-              <option>regexm</option> <option>md5</option>
-              <option>none</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>livecheck.check     regex
-livecheck.url       ${homepage}
-livecheck.regex     "Generally Available (\\d+(?:\\.\\d+)*)"</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.name</term>
-
-        <listitem>
-          <para>Name of the project for live checks. Is only used with
-          freshmeat, sourceforge, and googlecode livechecks.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${name}</varname> or the sourceforge,
-              freshmeat or googlecode project name if it can be guessed from
-              <varname>${master_sites}</varname>.</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.name      hibernate</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.distname</term>
-
-        <listitem>
-          <para>Name of the file release for sourceforge and googlecode
-          checks. For sourceforge releases use the name of the package
-          release. For googlecode releases use the name of the file download,
-          including extension. You may use this keyword without
-          <code>livecheck.version</code> if you replace the version part of
-          the name with "<literal>(.*)</literal>".</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: sourceforge:
-              <varname>${livecheck.name}</varname>, googlecode: first
-              <varname>${distfiles}</varname> item</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.distname  faad2.src</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.version</term>
-
-        <listitem>
-          <para>Version of the project for a check; used for regex-based
-          checks.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${version}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.version   ${name}-${version}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.url</term>
-
-        <listitem>
-          <para>URL to query for a check.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default:</para>
-
-              <itemizedlist>
-                <listitem>
-                  <para><varname>${homepage}</varname> or the first hit among
-                  the following sites:</para>
-                </listitem>
-
-                <listitem>
-                  <para><literal>http://freshmeat.net/projects-xml/${livecheck.name}/${livecheck.name}.xml</literal></para>
-                </listitem>
-
-                <listitem>
-                  <para><literal>http://sourceforge.net/export/rss2_projfiles.php?project=${livecheck.name}</literal></para>
-                </listitem>
-
-                <listitem>
-                  <para><literal>http://code.google.com/p/${livecheck.name}/downloads/list</literal></para>
-                </listitem>
-              </itemizedlist>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.url       http://ftp.gnu.org/gnu/bison/</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.regex</term>
-
-        <listitem>
-          <para>Regular expression to parse the resource for regex checks. Be
-          sure to use a regular expression grouping around the version
-          component.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.regex     4th-([a-z0-9.]+)-unix${extract.suffix}</programlisting>
-
-              <!-- TODO: add more examples -->
-
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>livecheck.md5</term>
-
-        <listitem>
-          <para>md5 checksum to use for an md5 comparison.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>livecheck.md5       37e6a5b6516a680c7178b72021d3b706</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <para>Distcheck reports whether or not the distfile(s) specified in a
-    Portfile are still available on the developer's download site. Examples
-    are given below.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>distcheck.check</term>
-
-        <listitem>
-          <para>This option can be used to disable distcheck. It specifies
-          what kind of check should be performed on distfiles:
-          <option>moddate</option> (check if the Portfile is older than the
-          distfile) or <option>none</option> (no check).</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>moddate</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>distcheck.check     none</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-</section>
\ No newline at end of file

Copied: trunk/doc-new/guide/xml/portfile-keywords.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-keywords.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-keywords.xml	                        (rev 0)
+++ trunk/doc-new/guide/xml/portfile-keywords.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,640 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="reference.keywords">
+  <title>Global Keywords</title>
+
+  <para>MacPorts keywords are used to specify required or optional items
+  within a Portfile, or to override default options used by MacPorts base for
+  individual ports. Keywords are to be used within the "global" and "variant"
+  sections of Portfiles, and not within optional port phase
+  declarations.</para>
+
+  <para>The global keywords listed below specify information for ports as a
+  whole, whereas the keywords listed under a port phase specify information to
+  be used during a particular installation phase.</para>
+
+  <section id="reference.keywords.general">
+    <title>General</title>
+
+    <para>The list of global keywords.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>PortSystem</term>
+
+        <listitem>
+          <para>The top line of every Portfile; it must be followed by a blank
+          line. It defines which version of the Portfile interpreter will be
+          used.</para>
+
+          <programlisting>PortSystem          1.0
+
+</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>name</term>
+
+        <listitem>
+          <para>The name of the Port; it should be lowercase to prevent
+          uninstallation problems due to a macports base bug.</para>
+
+          <programlisting>name                foo</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>version</term>
+
+        <listitem>
+          <para>The version of the ported software.</para>
+
+          <programlisting>version             1.23.45</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>revision</term>
+
+        <listitem>
+          <para>Optional keyword (default is 0) that is used to track port
+          revisions. It should not be incremented for port revisions unless it
+          would benefit users to upgrade an installed port, and cleared when
+          the port is updated to a newer version.</para>
+
+          <para>It should be used if a bug in the Portfile was found and all
+          installations of this port have to be updated. If the change only
+          affects new installations, there is no need to increase it.</para>
+
+          <programlisting>revision            1</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>epoch</term>
+
+        <listitem>
+          <para>An optional keyword (default value is 0) that may be used when
+          ports are updated to a version that is numerically less than the
+          previous version. For example 1.10 -&gt; 1.2 or 20070928 -&gt; 1.0.
+          An epoch ensures that port version comparisons work correctly in
+          these cases. Often the epoch is formatted like a date, but it can
+          simply be a number such as 1.</para>
+
+          <programlisting>epoch               20080924</programlisting>
+
+          <programlisting>epoch               1</programlisting>
+
+          <note>
+            <para>If an epoch is used it must must never be decreased or reset
+            to zero, because this would always cause a port version comparison
+            to be incorrect after a port upgrade.</para>
+          </note>
+
+          <para>An epoch is not needed for most ports, and good use of a
+          port's version can make using an epoch unnecessary even for
+          application distributions without official version numbers. For
+          example, if an application version 1.5 is superseded by a snapshot
+          release 20081022, the new release could be given version number
+          1.5.20081022, rather than 20081022, so the newer release will have a
+          numericaly greater value.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>categories</term>
+
+        <listitem>
+          <para>The category under which the ported software falls. The first
+          category should be the same as the directory within which the
+          Portfile is stored; secondary and tertiary categories may be
+          selected.</para>
+
+          <programlisting>categories          net security</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>maintainers</term>
+
+        <listitem>
+          <para>A port's maintainer is a person or persons who take
+          responsibility for keeping the port up-to-date, and the maintainer
+          keyword lists maintainer email addresses(s). However, many
+          maintainers wish to hide these addresses from spambots; to do so
+          follow these conventions:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>For addresses in domain @macports.org, simply omit the
+              domain name.</para>
+            </listitem>
+
+            <listitem>
+              <para>For addresses in other domains, say
+              <email>account at example.org</email>, use the convention
+              example.org:account to specify the address.</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>In the example below, the maintainer email addresses
+          <email>jdoe at macports.org</email> and
+          <email>julesverne at example.org</email> are hidden using these
+          conventions.</para>
+
+          <programlisting>maintainers         jdoe \
+                    example.org:julesverne</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>description</term>
+
+        <listitem>
+          <para>A one-sentence description of the ported software.</para>
+
+          <programlisting>description         A classic shooter arcade game.</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>long_description</term>
+
+        <listitem>
+          <para>A long description of the ported software. Break long lines
+          with escaped newlines.</para>
+
+          <programlisting>long_description    A classic shooter arcade game derived from \
+                    the game alien-munchers.  Not suitable for \
+                    children under two years old.</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>homepage</term>
+
+        <listitem>
+          <para>Port application's homepage.</para>
+
+          <programlisting>homepage            http://www.example.org/apps</programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>platforms</term>
+
+        <listitem>
+          <para>The platforms on which the port has been tested.</para>
+
+          <programlisting>platforms           darwin freebsd</programlisting>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.keywords.dependencies">
+    <title>Dependencies</title>
+
+    <para>Free and open source software is highly modular, and MacPorts ports
+    often require that other ports be installed beforehand; these
+    prerequisites for a given port are called a port's
+    <quote>dependencies</quote>.</para>
+
+    <para>There are three types of MacPorts dependencies: library, build, and
+    run dependencies. Dependency types are important for proper port upgrade
+    and uninstall behavior. For example, you may not uninstall a port that is
+    a library dependency for another port, though you may remove one with a
+    build dependency; likewise, upgrading a port will upgrade its library and
+    build dependencies also, but not its run dependencies.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>depends_lib</term>
+
+        <term>depends_lib-append</term>
+
+        <term>depends_lib-delete</term>
+
+        <listitem>
+          <para>The list of dependencies to check before phases
+          <option>configure</option>, <option>build</option>,
+          <option>destroot</option>, <option>install</option>, and
+          <option>package</option>. Library dependencies are needed both at
+          build time (for headers and libraries to link against) and at run
+          time.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>depends_build</term>
+
+        <term>depends_build-append</term>
+
+        <term>depends_build-delete</term>
+
+        <listitem>
+          <para>The list of dependencies to check before phases
+          <option>build</option>, <option>destroot</option>,
+          <option>install</option>, and <option>package</option>. Build
+          dependencies are needed when software is compiled, but not needed at
+          all once the software is compiled and installed.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>depends_run</term>
+
+        <term>depends_run-append</term>
+
+        <term>depends_run-delete</term>
+
+        <listitem>
+          <para>The list of dependencies to check before phases
+          <option>destroot</option>, <option>install</option>, and
+          <option>package</option>. Run dependencies are needed when the
+          software is run, but not to compile it.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <section id="reference.keywords.dependencies.types">
+      <title>Port and Non-Port Dependencies</title>
+
+      <para>Port dependencies should be provided by MacPorts ports whenever
+      possible, however dependencies may be provided by vendor-supplied
+      software when satisfying a dependency by a port is not practical or
+      desirable for a special reason. Dependencies of this type are called
+      non-port dependencies.</para>
+
+      <para>Non-port dependencies should only be used if the application or
+      library can be installed by multiple ports (for example stable and
+      -devel version) or if it can't be installed with Macports.</para>
+
+      <para>Port dependencies, the preferred type, are specified as shown in
+      these examples:</para>
+
+      <programlisting>depends_lib         port:rrdtool port:apache2
+
+depends_build       port:libtool
+
+depends_run         port:apache2 port:php5</programlisting>
+
+      <para>Non-port dependencies are specified as shown in these
+      examples:</para>
+
+      <programlisting>depends_lib         lib:libX11.6:xorg
+
+depends_build       bin:glibtool:libtool
+
+depends_run         path:${prefix}/lib/libltdl.a:libtool</programlisting>
+    </section>
+  </section>
+
+  <section id="reference.keywords.variants">
+    <title>Variants</title>
+
+    <para>MacPorts variants are conditional modifications of port installation
+    behavior that may be invoked by a user at the time of port install.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>variant [requires variant] [conflicts variant] [description
+        description]</term>
+
+        <listitem>
+          <para>The variant declaration may contain any keywords that can be
+          placed in a Portfile's global section. If you wish to execute system
+          (shell) calls or Tcl extensions during the execution of a port
+          phase, you should place those statements within a
+          <literal>variant_isset</literal> conditional within a phase
+          declaration and not within the variant declaration itself.
+          Dependencies and conflicts with other variants in the same port can
+          be expressed with requires and conflicts. See the isset Tcl
+          extension.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: no</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>variant gnome requires glib {
+    configure.args-append   --with-gnome
+    depends_lib-append      port:gnome-session
+}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>default_variants</term>
+
+        <listitem>
+          <para>If variants are defined, then the default_variants value lists
+          which variants are enabled by default. This allows for Portfile
+          modularity and also allows users to suppress default variants if
+          they wish.</para>
+
+          <para>Due to a bug in the current Macports base default_variants
+          shouldn't be used at the moment as they cause problems while
+          upgrading ports.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>default_variants    +ssl +tcpd
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>Default variants may be suppressed by preceding a variant name
+          with a "-" as shown in this example.</para>
+
+          <programlisting><prompt>%%</prompt> <userinput>port install foo -ssl</userinput></programlisting>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>universal_variant</term>
+
+        <listitem>
+          <para>When using MacPorts on Mac OS X, a universal variant is
+          defined by default to configure ports with universal flags. The
+          variant can be overridden if the default code does not work (see the
+          Configure Universal section below), or suppressed if a universal
+          variant is not possible for the port with this keyword.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: yes</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>universal_variant   no</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.keywords.livecheck">
+    <title>Livecheck / Distcheck</title>
+
+    <para>Options livecheck and distcheck are especially useful for port
+    maintainers, but others may also find this information valuable.</para>
+
+    <para>Livecheck checks to see if MacPorts can query the developer's
+    download site to determine if a newer version of the software has become
+    available since the port was installed.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>livecheck.check</term>
+
+        <listitem>
+          <para>Specify what kind of update check to perform.</para>
+
+          <para>Open source mirror site options are to use the project's
+          latest file release from <option>sourceforge</option> or
+          <option>googlecode</option>, or the project's
+          <literal>date_updated</literal> XML tag for
+          <option>freshmeat</option>. These options are automatically used if
+          a matching <varname>${master_sites}</varname> URL is used.</para>
+
+          <para>Generic download site options are to specify a
+          <option>moddate</option> (modification date of a URL resource), a
+          <option>regex</option> (retrieve the version by applying a regex to
+          a URL resource), <option>regexm</option> (retrieve the version by
+          applying a multi-line regex to a URL resource), <option>md5</option>
+          (compares the md5 sum of a URL resource) or <option>none</option>
+          (no check).</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>sourceforge</option> or
+              <option>googlecode</option> if the
+              <varname>${master_sites}</varname> is one of these, else
+              <option>freshmeat</option>.</para>
+            </listitem>
+
+            <listitem>
+              <para>Values: <option>freshmeat</option>
+              <option>sourceforge</option> <option>googlecode</option>
+              <option>moddate</option> <option>regex</option>
+              <option>regexm</option> <option>md5</option>
+              <option>none</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>livecheck.check     regex
+livecheck.url       ${homepage}
+livecheck.regex     "Generally Available (\\d+(?:\\.\\d+)*)"</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.name</term>
+
+        <listitem>
+          <para>Name of the project for live checks. Is only used with
+          freshmeat, sourceforge, and googlecode livechecks.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${name}</varname> or the sourceforge,
+              freshmeat or googlecode project name if it can be guessed from
+              <varname>${master_sites}</varname>.</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.name      hibernate</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.distname</term>
+
+        <listitem>
+          <para>Name of the file release for sourceforge and googlecode
+          checks. For sourceforge releases use the name of the package
+          release. For googlecode releases use the name of the file download,
+          including extension. You may use this keyword without
+          <code>livecheck.version</code> if you replace the version part of
+          the name with "<literal>(.*)</literal>".</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: sourceforge:
+              <varname>${livecheck.name}</varname>, googlecode: first
+              <varname>${distfiles}</varname> item</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.distname  faad2.src</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.version</term>
+
+        <listitem>
+          <para>Version of the project for a check; used for regex-based
+          checks.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${version}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.version   ${name}-${version}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.url</term>
+
+        <listitem>
+          <para>URL to query for a check.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default:</para>
+
+              <itemizedlist>
+                <listitem>
+                  <para><varname>${homepage}</varname> or the first hit among
+                  the following sites:</para>
+                </listitem>
+
+                <listitem>
+                  <para><literal>http://freshmeat.net/projects-xml/${livecheck.name}/${livecheck.name}.xml</literal></para>
+                </listitem>
+
+                <listitem>
+                  <para><literal>http://sourceforge.net/export/rss2_projfiles.php?project=${livecheck.name}</literal></para>
+                </listitem>
+
+                <listitem>
+                  <para><literal>http://code.google.com/p/${livecheck.name}/downloads/list</literal></para>
+                </listitem>
+              </itemizedlist>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.url       http://ftp.gnu.org/gnu/bison/</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.regex</term>
+
+        <listitem>
+          <para>Regular expression to parse the resource for regex checks. Be
+          sure to use a regular expression grouping around the version
+          component.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.regex     4th-([a-z0-9.]+)-unix${extract.suffix}</programlisting>
+
+              <!-- TODO: add more examples -->
+
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>livecheck.md5</term>
+
+        <listitem>
+          <para>md5 checksum to use for an md5 comparison.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>livecheck.md5       37e6a5b6516a680c7178b72021d3b706</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <para>Distcheck reports whether or not the distfile(s) specified in a
+    Portfile are still available on the developer's download site. Examples
+    are given below.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>distcheck.check</term>
+
+        <listitem>
+          <para>This option can be used to disable distcheck. It specifies
+          what kind of check should be performed on distfiles:
+          <option>moddate</option> (check if the Portfile is older than the
+          distfile) or <option>none</option> (no check).</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>moddate</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>distcheck.check     none</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+</section>
\ No newline at end of file

Deleted: trunk/doc-new/guide/xml/portfile-phase.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-phase.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-phase.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,2639 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<section id="reference.phases">
-  <title>Port Phases</title>
-
-  <section id="reference.phases.introduction">
-    <title>Introduction</title>
-
-    <para>A MacPorts port has ten distinct phases. The MacPorts base is set to
-    perform default steps for applications that use the standard
-    <command>configure</command>, <command>make</command>, and <command>make
-    install</command> steps, but for applications that do not conform to this
-    behavior, installation phases may be declared in a Portfile to <link
-    linkend="development.examples.augment">augment</link> or <link
-    linkend="development.examples.override">override</link> the default
-    behavior as described in the <link linkend="development">Portfile
-    Development</link> chapter.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>fetch</term>
-
-        <listitem>
-          <para>Fetch the <varname>${distfiles}</varname> from
-          <varname>${master_sites}</varname> and place it in
-          <filename>${prefix}/var/macports/distfiles/${name}</filename>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>checksum</term>
-
-        <listitem>
-          <para>Compare <varname>${checksums}</varname> specified in a
-          <filename>Portfile</filename> to the checksums of the fetched
-          ${distfiles}.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>extract</term>
-
-        <listitem>
-          <para>Unzip and untar the <varname>${distfiles}</varname> into the
-          path ${prefix}/var/macports/build/..../work</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patch</term>
-
-        <listitem>
-          <para>Apply optional <ulink
-          url="http://en.wikipedia.org/wiki/Patch_(Unix)">patch</ulink> files
-          specified in <varname>${patchfiles}</varname> to modify a port's
-          source code file(s).</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure</term>
-
-        <listitem>
-          <para>Execute the command <command>configure</command> in
-          <varname>${workpath}</varname>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>build</term>
-
-        <listitem>
-          <para>Execute the command <command>make</command> in
-          <varname>${workpath}</varname>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>test</term>
-
-        <listitem>
-          <para>Execute commands to run test suites bundled with a
-          port.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot</term>
-
-        <listitem>
-          <para>Execute the command <command>make install</command>
-          <varname>DESTDIR=${destroot}</varname>in
-          <varname>${workpath}</varname>.</para>
-
-          <para>Understanding the destroot phase is critical to understanding
-          MacPorts, because, unlike some port systems, MacPorts "stages" an
-          installation into an intermediate location —not the final file
-          destination. MacPorts uses the destroot phase to provide:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Port uninstalls - a port's files may be cleanly
-              uninstalled because all files and directories are recorded
-              during install.</para>
-            </listitem>
-
-            <listitem>
-              <para>Multiple port versions may be installed on the same host,
-              since a port's files are not directly inserted into
-              <varname>${prefix}</varname> but rather hard-linked into
-              <varname>${prefix}</varname> from an intermediate location
-              during a later activation phase.</para>
-            </listitem>
-          </itemizedlist>
-
-          <note>
-            <para>The <varname>DESTDIR</varname> variable must be supported in
-            an application's Makefile for the MacPorts destroot phase to work
-            properly. Urge developers to fully support
-            <varname>DESTDIR</varname> in their Makefiles.</para>
-          </note>
-
-          <para>Any empty directories in <varname>${destroot}</varname> upon
-          completion of the destroot phase are removed unless a directory name
-          is placed in the value field of the optional
-          <code>destroot.keepdirs</code> keyword.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>archive</term>
-
-        <listitem>
-          <para>Use tar to create a tarball of a port's destrooted files and
-          copy it to
-          <filename>${prefix}/var/macports/packages/</filename>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>install</term>
-
-        <listitem>
-          <para>Copy a port's destrooted files into
-          <filename>${prefix}/var/macports/software</filename>. See <link
-          linkend="internals.images">Port Images</link> in the <link
-          linkend="internals">MacPorts Internals</link> chapter for
-          details.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>activate</term>
-
-        <listitem>
-          <para>Set <ulink
-          url="http://en.wikipedia.org/wiki/Hard_link">hardlinks</ulink>
-          pointing to <filename>${prefix}/var/macports/software</filename> to
-          point to <varname>${prefix}</varname>.</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.installation">
-    <title>Installation Phase Keywords</title>
-
-    <para>MacPorts keywords are used to specify required or optional items
-    within a Portfile, or to override default options used by MacPorts base
-    for individual ports. Keywords are to be used within the "global" and
-    "variant" sections of Portfiles, and not within optional port phase
-    declarations.</para>
-
-    <para>In other words, port phase keywords are not located within port
-    phase declarations, but rather they <emphasis>refer</emphasis> to port
-    phases and set options for those phases, and they take affect whether or
-    not phase declarations have been explicitly defined in a Portfile.</para>
-
-    <section id="reference.phases.installation.list-modifiers">
-      <title>Keyword List Modifiers (-append / -delete)</title>
-
-      <para>Keyword list modifiers are keywords that end in -append or
-      -delete. Keywords that support list modifiers are identified under
-      appropriate reference sections below. Keyword list modifiers are most
-      frequently used for these three purposes:</para>
-
-      <orderedlist>
-        <listitem>
-          <para>Preserve configure Defaults set by a previously executed
-          Portfile keyword or by MacPorts base</para>
-
-          <para>MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS
-          for all ports using <literal>configure.cflags</literal> and
-          <literal>configure.ldflags</literal>, therefore to keep from
-          overwriting the default compiler flags use
-          <literal>configure.cflags-append</literal> and
-          <literal>configure.ldflags-append</literal>.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><code>configure.cflags-append</code></para>
-            </listitem>
-
-            <listitem>
-              <para><code>configure.ldflags-append</code></para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>Preserve PortGroup Dependencies</para>
-
-          <para>Ports in a PortGroup have default library dependencies set by
-          MacPorts base. Therefore, never use <literal>depends_lib</literal>
-          in ports belonging to a PortGroup or it will overwrite the default
-          library dependencies. Instead, use
-          <literal>depends_lib-append</literal>.</para>
-        </listitem>
-
-        <listitem>
-          <para>Add or Delete Items for Variants</para>
-
-          <para>When a variant requires more or fewer dependencies, distfiles,
-          or patchfiles, when the variant is invoked you want to add or remove
-          items to the appropriate keyword values list set in the global
-          section of the Portfile. Use the appropriate keywords, for
-          example:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><code>depends_lib-append</code> or
-              <code>depends_lib-delete</code></para>
-            </listitem>
-
-            <listitem>
-              <para><code>distfiles-append</code> or
-              <code>distfile-delete</code></para>
-            </listitem>
-
-            <listitem>
-              <para><code>patchfiles-append</code> or
-              <code>patchfiles-delete</code></para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </orderedlist>
-    </section>
-
-    <section id="reference.phases.installation.argument-modifiers">
-      <title>Keyword Argument Modifiers (.pre_args / .post_args)</title>
-
-      <para>Keywords that support pre_args and post_args are used to assemble
-      command strings together in a row, as described in the reference
-      sections below. But it should be noted that all keyword argument
-      modifiers implicitly support keyword list modifiers. For example, the
-      keyword <literal>configure.pre_args</literal> also supports
-      <literal>configure.pre_args-append</literal> and
-      <literal>configure.pre_args-delete</literal>.</para>
-    </section>
-  </section>
-
-  <section id="reference.phases.fetch">
-    <title>Fetch Phase Keywords</title>
-
-    <para>The list of keywords related to the fetch phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>master_sites</term>
-
-        <listitem>
-          <para>A list of URLs from which a port's download file(s) may be
-          retrieved. For multiple master_sites, they are searched in order
-          until a file matching <varname>${distfile}</varname> is
-          found.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: ???</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>master_sites        http://www.example.org/files/ \
-                    http://www.examplemirror.org/example_org/files/
-
-</programlisting>
-
-              <para>You may also use mirror site lists predefined by MacPorts.
-              Here the sourceforge and gnu mirrors are used.</para>
-
-              <programlisting>master_sites        sourceforge gnu
-
-</programlisting>
-
-              <para>When using mirror master_sites, the subdirectory
-              <varname>${name}</varname> is checked on every mirror. If the
-              mirror subdirectory does not match ${name}, then you may specify
-              it using after the mirror separated by a colon.</para>
-
-              <programlisting>master_sites        sourceforge:widget \
-                    gnu:widget
-
-</programlisting>
-
-              <para>For ports that must fetch multiple download files from
-              different locations, you must label the files with tags and
-              match the tags in a distfiles statement. The format is
-              <literal>mirror:subdirectory:tag</literal>.</para>
-
-              <para>In the example below, file_one.tar.gz is fetched from
-              sourceforge mirrors in subdirectory <varname>${name}</varname>;
-              file tagtwo.tar.gz is fetched from the gnu mirrors in
-              subdirectory sources.</para>
-
-              <programlisting>master_sites        sourceforge::tagone \
-                    gnu:sources:tagtwo
-
-distfiles           file_one.tar.gz:tagone \
-                    file_two.tar.gz:tagtwo</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>master_sites.mirror_subdir</term>
-
-        <listitem>
-          <para>Subdirectory to append to all mirror sites for any list
-          specified in <varname>${master_sites}</varname>.</para>
-
-          <!-- TODO: add a better explanation -->
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${name}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>master_sites.mirror_subdir  magic</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patch_sites</term>
-
-        <listitem>
-          <para>A list of sites from which a port's patchfiles may be
-          downloaded, where applicable.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${master_sites}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patch_sites         ftp://ftp.patchcityrepo.com/pub/magic/patches</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patch_sites.mirror_subdir</term>
-
-        <listitem>
-          <para>Subdirectory to append to all mirror sites for any list
-          specified in <varname>${patch_sites}</varname>.</para>
-
-          <!-- TODO: add a better explanation -->
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${name}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patch_sites.mirror_subdir   magic</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>distname</term>
-
-        <listitem>
-          <para>The name of the distribution filename, not including the
-          extract suffix (see below).</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${name}-${version}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>distname            ${name}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>distfiles</term>
-
-        <listitem>
-          <para>The full distribution filename, including the extract suffix.
-          Used to specify non-default distribution filenames; this keyword
-          must be specified (and tags used) when a port has multiple download
-          files (see master_sites).</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default:
-              <varname>${distname}${extract.suffix}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>distfiles           ${name}-dev_src.tgz</programlisting>
-
-              <programlisting>distfiles           file_one.tar.gz:tagone \
-                    file_two.tar.gz:tagtwo</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>dist_subdir</term>
-
-        <listitem>
-          <para>Create a sub-directory in distpath to store all fetched
-          files.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${name}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>dist_subdir         vim${version}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>extract.suffix</term>
-
-        <listitem>
-          <para>This keyword is used to specify the extract suffix
-          type.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <filename>.tar.gz</filename></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>extract.suffix      .tgz</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>extract.mkdir</term>
-
-        <listitem>
-          <para>This keyword is used to specify if the directory
-          <filename>worksrcdir</filename> is part of the distfile or if it
-          should be created automatically and the distfiles should be
-          extracted there instead. This is useful for distfiles with a flat
-          structure which would pollute the <filename>worksrcdir</filename>
-          with lots of files.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>extract.mkdir       yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>use_bzip2</term>
-
-        <listitem>
-          <para>This keyword is for downloads that are tarred and bzipped.
-          When invoked, it automatically sets:</para>
-
-          <literallayout>extract.suffix = .tar.bz
-extract.cmd    = bzip
-
-</literallayout>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>use_bzip2           yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>use_zip</term>
-
-        <listitem>
-          <para>This keyword is for downloads which are zipped. When invoked,
-          it automatically sets:</para>
-
-          <literallayout>extract.suffix    = .zip
-extract.cmd       = unzip
-extract.pre_args  = -q
-extract.post_args = "-d ${portpath}/${workdir}"
-
-</literallayout>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>use_zip             yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>worksrcdir</term>
-
-        <listitem>
-          <para>Sets the path to source directory relative to workpath. It can
-          be used if the extracted source directory has a different name then
-          the distfile.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${distname}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>worksrcdir          ${name}-src-${version}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <section id="reference.phases.fetch.advanced">
-      <title>Advanced Fetch Options</title>
-
-      <para>Some mirrors require special options for a resource to be properly
-      fetched.</para>
-
-      <variablelist>
-        <varlistentry>
-          <term>fetch.user</term>
-
-          <listitem>
-            <para>HTTP or FTP user to fetch the resource.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>fetch.password</term>
-
-          <listitem>
-            <para>HTTP or FTP password to fetch the resource.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>fetch.use_epsv</term>
-
-          <listitem>
-            <para>Whether to use EPSV command for FTP transfers.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <option>yes</option></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>fetch.use_epsv      no</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>fetch.ignore_sslcert</term>
-
-          <listitem>
-            <para>Whether to ignore the host SSL certificate (for
-            HTTPS).</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <option>no</option></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>fetch.ignore_sslcert    yes</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </section>
-
-    <section id="reference.phases.fetch.cvs">
-      <title>Fetch from CVS</title>
-
-      <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used as
-      an alternative method of fetching distribution files using the keywords
-      in this section. However, fetching via CVS may cause non-reproducible
-      builds, so it is strongly discouraged.</para>
-
-      <variablelist>
-        <varlistentry>
-          <term>cvs.root</term>
-
-          <listitem>
-            <para>Specify the url from which to fetch files.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>cvs.root            :pserver:anonymous at cvs.sv.gnu.org:/sources/emacs</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>cvs.tag</term>
-
-          <listitem>
-            <para>Optional for fetching with CVS, this specifies the code
-            revision to checkout.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>cvs.tag             HEAD</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>cvs.date</term>
-
-          <listitem>
-            <para>A date that identifies the CVS code set to checkout.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>cvs.date            "12-April-2007"</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>cvs.module</term>
-
-          <listitem>
-            <para>A CVS module from which to check out the code.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>cvs.module          Sources</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </section>
-
-    <section id="reference.phases.fetch.svn">
-      <title>Fetch from Subversion</title>
-
-      <para><ulink url="http://subversion.tigris.org/">Subversion</ulink> may
-      be used as an alternative method of fetching distribution files using
-      the keywords in this section. However, fetching via Subversion may cause
-      non-reproducible builds, so it is strongly discouraged.</para>
-
-      <variablelist>
-        <varlistentry>
-          <term>svn.url</term>
-
-          <listitem>
-            <para>This specifies the url from which to fetch files.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Examples:</para>
-
-                <programlisting>svn.url             http://www.domain.com/svn-repo/mydirectory</programlisting>
-
-                <programlisting>svn.url             svn://www.domain.com/svn-repo/mydirectory</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>svn.tag</term>
-
-          <listitem>
-            <para>Optional tag for fetching with Subversion, this specifies
-            the code revision to checkout; it corresponds to the -r option in
-            the svn cli.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: none</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>svn.tag             37192</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </section>
-  </section>
-
-  <section id="reference.phases.checksum">
-    <title>Checksum Phase Keywords</title>
-
-    <para>The list of keywords related to the checksum phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>checksums</term>
-
-        <listitem>
-          <para>Checksum(s) of the distribution files. For ports with multiple
-          distribution files, filenames must be included to associate files
-          with their checksums.</para>
-
-          <para>All checksum types (md5, sha1 and rdm160) should be used to
-          ensure the integrity of the distfiles.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: ???</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>checksums           md5 dafa161bc9c61e57636a6085c87c1fe8 \
-                    sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
-                    rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
-
-              <programlisting>checksums           ${distname}${extract.suffix} \
-                        md5 dafa161bc9c61e57636a6085c87c1fe8 \
-                        sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
-                        rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
-                    hobbit.tar.gz \
-                        md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
-                        sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
-                        rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.extract">
-    <title>Extract Phase Keywords</title>
-
-    <para>The list of keywords related to the extract phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>extract.only</term>
-
-        <term>extract.only-append</term>
-
-        <term>extract.only-delete</term>
-
-        <listitem>
-          <para>List of files to extract into
-          <varname>${worksrcpath}</varname>. Only use if default extract
-          behavior is not correct for your port.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${distfiles}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>extract.only        foo.tar.gz</programlisting>
-
-              <programlisting>extract.only-append     bar.tar.gz
-extract.only-delete     foo.tar.gz</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>extract.cmd</term>
-
-        <listitem>
-          <para>Command to perform extraction.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <command>gzip</command></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>extract.cmd         gunzip</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>extract.args</term>
-
-        <term>extract.pre_args</term>
-
-        <term>extract.post_args</term>
-
-        <listitem>
-          <para>Main arguments to extract.cmd; additional arguments passed
-          before and after the main arguments.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${distpath}/${distfile}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>extract.args        ${distpath}/${distfile}
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>The following argument modifiers are available:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><literal>extract.pre_args</literal>, defaults to:
-              <literal>-dc</literal></para>
-            </listitem>
-
-            <listitem>
-              <para><literal>extract.post_args</literal>, defaults to:
-              <literal>"| tar -xf"</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>extract.pre_args    xf
-extract.post_args   "| gnutar –x"</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.patch">
-    <title>Patch Phase Keywords</title>
-
-    <para>The list of keywords related to the patch phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>patch.dir</term>
-
-        <listitem>
-          <para>Specify the base path for patch files.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${worksrcpath}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patch.dir           ${worksrcpath}/util</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patch.cmd</term>
-
-        <listitem>
-          <para>Specify the command to be used for patching files.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <command>patch</command></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patch.cmd           cat</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patchfiles</term>
-
-        <term>patchfiles-append</term>
-
-        <term>patchfiles-delete</term>
-
-        <listitem>
-          <para>Specify patch files to be applied for a port; list modifiers
-          specify patchfiles to be added or removed from a previous patchfile
-          declaration.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patchfiles          patch-Makefile.in \
-                    patch-source.c</programlisting>
-
-              <programlisting>patchfiles-append   patch-configure
-patchfiles-delete   patch-src-Makefile.in</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>patch.args</term>
-
-        <term>patch.pre_args</term>
-
-        <term>patch.post_args</term>
-
-        <listitem>
-          <para>Main arguments to patch.cmd; optional argument modifiers pass
-          arguments before and after the main arguments.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>patch.args          ???
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>The following argument modifiers are available:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><literal>patch.pre_args</literal>, defaults to:
-              <literal>-p0</literal></para>
-            </listitem>
-
-            <listitem>
-              <para><literal>patch.post_args</literal>, defaults to:
-              none</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>patch.pre_args      -p1
-patch.post_args     ???</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.configure">
-    <title>Configure Phase Keywords</title>
-
-    <para>The list of keywords related to the configure phase.</para>
-
-    <para>MacPorts base sets some important default configure options, so
-    should use the -append version of most configure keywords so you don't
-    overwrite them. For example, MacPorts base sets default
-    <literal>configure.cflags</literal> so you should always use
-    <literal>configure.cflags-append</literal> to set additional CFLAGS in
-    Portfiles.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>use_configure</term>
-
-        <listitem>
-          <para>Sets if the configure phase should be run.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>yes</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>use_configure    no</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.env</term>
-
-        <term>configure.env-append</term>
-
-        <term>configure.env-delete</term>
-
-        <listitem>
-          <para>Set environment variables for configure; list modifiers add
-          and delete items from a previous Portfile configure.env keyword, or
-          a default set by MacPorts base. If available, it is encouraged to
-          use the predefined options (like configure.cflags) instead of
-          modifying configure.env directly.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>CFLAGS=-I${prefix}/include
-              LDFLAGS=-L${prefix}/lib</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.env       QTDIR=${prefix}/lib/qt3</programlisting>
-
-              <programlisting>configure.env-append    ABI=32
-configure.env-delete    TCLROOT=${prefix}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.cflags</term>
-
-        <term>configure.cflags-append</term>
-
-        <term>configure.cflags-delete</term>
-
-        <listitem>
-          <para>Set CFLAGS compiler flags; list modifiers add or delete items
-          from a previous Portfile configure.cflags keyword or the default set
-          by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.cflags    -Os -flat_namespace</programlisting>
-
-              <programlisting>configure.cflags-append     "-undefined suppress"
-configure.cflags-delete     -O2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.ldflags</term>
-
-        <term>configure.ldflags-append</term>
-
-        <term>configure.ldflags-delete</term>
-
-        <listitem>
-          <para>Set LDFLAGS compiler flags; list modifiers add or delete items
-          from a previous Portfile configure.ldflags keyword or the default
-          set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-L${prefix}/lib</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.ldflags   "-L${worksrcpath}/zlib -lz"</programlisting>
-
-              <programlisting>configure.ldflags-append    "-L/usr/X11R6/lib -L${worksrcpath}/lib"
-configure.ldflags-delete    -L${prefix}/lib/db44</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.cppflags</term>
-
-        <term>configure.cppflags-append</term>
-
-        <term>configure.cppflags-delete</term>
-
-        <listitem>
-          <para>Set CPPFLAGS to be passed to the C processor; list modifiers
-          add or delete items from a previous Portfile configure.cppflags
-          keyword or the default set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-I${prefix}/include</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.cppflags  -I${worksrcpath}/include</programlisting>
-
-              <programlisting>configure.cppflags-append   "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
-configure.cppflags-delete   -I${prefix}/lib/db44</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.cxxflags</term>
-
-        <term>configure.cxxflags-append</term>
-
-        <term>configure.cxxflags-delete</term>
-
-        <listitem>
-          <para>Set CXXFLAGS to be passed to the C++ processor; list modifiers
-          add or delete items from a previous Portfile configure.cxxflags
-          keyword or the default set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>TODO: add example</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.objcflags</term>
-
-        <term>configure.objcflags-append</term>
-
-        <term>configure.objcflags-delete</term>
-
-        <listitem>
-          <para>TODO: add description</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>TODO: add example</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.classpath</term>
-
-        <term>configure.classpath-append</term>
-
-        <term>configure.classpath-delete</term>
-
-        <listitem>
-          <para>TODO: add description</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: ???</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>TODO: add example</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.macosx_deployment_target</term>
-
-        <term>configure.macosx_deployment_target-append</term>
-
-        <term>configure.macosx_deployment_target-delete</term>
-
-        <listitem>
-          <para>TODO: add description</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: ???</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>TODO: add example</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <!-- fortran compiler options -->
-
-      <varlistentry>
-        <term>configure.fflags</term>
-
-        <term>configure.fflags-append</term>
-
-        <term>configure.fflags-delete</term>
-
-        <listitem>
-          <para>Set FFLAGS to be passed to the Fortran compiler; list
-          modifiers add or delete items from a previous Portfile
-          configure.fflags keyword or the default set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.fflags    -Os</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.fcflags</term>
-
-        <term>configure.fcflags-append</term>
-
-        <term>configure.fcflags-delete</term>
-
-        <listitem>
-          <para>Set FCFLAGS to be passed to the Fortran compiler; list
-          modifiers add or delete items from a previous Portfile
-          configure.fcflags keyword or the default set by MacPorts
-          base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.fcflags   -Os</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.f90flags</term>
-
-        <term>configure.f90flags-append</term>
-
-        <term>configure.f90flags-delete</term>
-
-        <listitem>
-          <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
-          modifiers add or delete items from a previous Portfile
-          configure.f90flags keyword or the default set by MacPorts
-          base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>-O2</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.f90flags  -Os</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <!-- fortran compiler options end -->
-
-      <!-- compiler selection arguments -->
-
-      <varlistentry>
-        <term>configure.cc</term>
-
-        <listitem>
-          <para>Set CC compiler flags for selecting a C compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.cc        ${prefix}/bin/gcc-mp-4.2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.cpp</term>
-
-        <listitem>
-          <para>Set CPP compiler flags for selecting a C preprocessor.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.cpp       /usr/bin/cpp-3.3</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.cxx</term>
-
-        <listitem>
-          <para>Set CXX compiler flags for selecting a C++ compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.cxx       /usr/bin/g++-4.0</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.objc</term>
-
-        <listitem>
-          <para>Set OBJC compiler flags for selecting an Objective-C
-          compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.objc      /usr/bin/gcc-4.0</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.fc</term>
-
-        <listitem>
-          <para>Set FC compiler flags for selecting a Fortran compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.fc        ${prefix}/bin/gfortran-mp-4.2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.f77</term>
-
-        <listitem>
-          <para>Set F77 compiler flags for selecting a Fortran 77
-          compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.f77       ${prefix}/bin/gfortran-mp-4.2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.f90</term>
-
-        <listitem>
-          <para>Set F90 compiler flags for selecting a Fortran 90
-          compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.f90       ${prefix}/bin/gfortran-mp-4.2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.javac</term>
-
-        <listitem>
-          <para>Set JAVAC compiler flags for selecting a Java compiler.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.javac     ${prefix}/bin/jikes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.compiler</term>
-
-        <listitem>
-          <para>Select a compiler suite to fill the compiler environment
-          variables. All variables/tools a compiler suite can provide are set.
-          Manually set variables are not overwritten. Dependencies are not
-          added for you, as they may be just build- or also run-dependencies.
-          Keep in mind that not all compiler suites might be available on your
-          platform: <literal>gcc-3.3</literal> is available on Mac OS X 10.3
-          and 10.4 PowerPC, <literal>gcc-4.0</literal> is available on 10.4
-          and 10.5, <literal>gcc-4.2</literal> is available as preview for
-          10.5.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>gcc-3.3</literal> on Mac OS X
-              10.3</para>
-            </listitem>
-
-            <listitem>
-              <para>Default: <literal>gcc-4.0</literal> on Mac OS X 10.4 and
-              10.5</para>
-            </listitem>
-
-            <listitem>
-              <para>Values: <literal>gcc-3.3</literal>
-              <literal>gcc-4.0</literal> <literal>gcc-4.2</literal>
-              <literal>apple-gcc-3.3</literal>
-              <literal>apple-gcc-4.0</literal>
-              <literal>macports-gcc-3.3</literal>
-              <literal>macports-gcc-3.4</literal>
-              <literal>macports-gcc-4.0</literal>
-              <literal>macports-gcc-4.1</literal>
-              <literal>macports-gcc-4.2</literal>
-              <literal>macports-gcc-4.3</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.compiler  macports-gcc-4.2</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <!-- compiler selection arguments end -->
-
-      <!-- interpreter selection arguments -->
-
-      <varlistentry>
-        <term>configure.perl</term>
-
-        <listitem>
-          <para>Set PERL flag for selecting a Perl interpreter.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.perl      ${prefix}/bin/perl5.8</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.python</term>
-
-        <listitem>
-          <para>Set PYTHON flag for selecting a Python interpreter.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.python    ${prefix}/bin/python3.0</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.ruby</term>
-
-        <listitem>
-          <para>Set RUBY flag for selecting a Ruby interpreter.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.ruby      ${prefix}/bin/ruby</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <!-- interpreter selection arguments end -->
-
-      <!-- other tools selection arguments -->
-
-      <varlistentry>
-        <term>configure.install</term>
-
-        <listitem>
-          <para>Set <literal>INSTALL</literal> flag for selecting an install
-          tool; used for copying files and creating directories.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <filename>/usr/bin/install</filename></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.install   ${prefix}/bin/ginstall</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.awk</term>
-
-        <listitem>
-          <para>Set AWK flag for selecting an awk executable.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.awk       ${prefix}/bin/gawk</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.bison</term>
-
-        <listitem>
-          <para>Set BISON flag for selecting a bison executable, a parser
-          generator.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.bison     /usr/bin/bison</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.pkg_config</term>
-
-        <listitem>
-          <para>Set PKG_CONFIG flag for helping find pkg_config, a tool for
-          retrieving information about installed libraries.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.pkg_config    ${prefix}/bin/pkg-config</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>configure.pkg_config_path</term>
-
-        <listitem>
-          <para>Set PKG_CONFIG_PATH flag for telling pkg_config where to
-          search for information about installed libraries.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>???</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.pkg_config_path   ${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <!-- other tools selection arguments end -->
-
-      <varlistentry>
-        <term>configure.args</term>
-
-        <term>configure.pre_args</term>
-
-        <term>configure.post_args</term>
-
-        <listitem>
-          <para>Main arguments to configure.cmd; optional argument modifiers
-          pass arguments before and after the main arguments.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>configure.args      --bindir=${prefix}/bin
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>The following argument modifiers are available:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><literal>configure.pre_args</literal>, defaults to:
-              <literal>--prefix=${prefix}</literal></para>
-            </listitem>
-
-            <listitem>
-              <para><literal>configure.post_args</literal>, defaults to:
-              none</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>configure.pre_args  --prefix=${prefix}/share/bro
-configure.post_args OPT="-D__DARWIN_UNIX03"</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <section id="reference.phases.configure.universal">
-      <title>Configure Universal</title>
-
-      <para>Universal keywords are used to make a port compile on the Mac OS X
-      platform to run on either PPC or Intel.</para>
-
-      <note>
-        <para>There is a default universal variant made available to all ports
-        by MacPorts base, so redefining universal keywords should only be done
-        to make a given port compile if the default options fail to do
-        so.</para>
-      </note>
-
-      <variablelist>
-        <varlistentry>
-          <term>configure.universal_args</term>
-
-          <listitem>
-            <para>Arguments used in the configure script to build the port
-            universal.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default:
-                <literal>--disable-dependency-tracking</literal></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>configure.universal_cflags</term>
-
-          <listitem>
-            <para>Arguments appended to the configure script to build the port
-            universal.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <literal>-sysroot
-                /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
-                ppc</literal></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>configure.universal_cppflags</term>
-
-          <listitem>
-            <para>Additional flags to put in the CPPFLAGS environment variable
-            when invoking the configure script.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <literal>???</literal></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>configure.universal_cxxflags</term>
-
-          <listitem>
-            <para>Additional flags to put in the CXXFLAGS environment variable
-            when invoking the configure script.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <literal>-isysroot
-                /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
-                ppc</literal></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>configure.universal_ldflags</term>
-
-          <listitem>
-            <para>Additional flags to put in the LDFLAGS environment variable
-            when invoking the configure script.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <literal>-arch i386 -arch ppc</literal></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>TODO: add example</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </section>
-
-    <section id="reference.phases.configure.automake-autoconf">
-      <title>Automake and Autoconf</title>
-
-      <para>The list of configure keywords available for ports that need
-      automake and/or autoconf.</para>
-
-      <variablelist>
-        <varlistentry>
-          <term>use_automake</term>
-
-          <listitem>
-            <para>Whether or not to use automake.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <option>no</option></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>use_automake        yes</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>automake.env</term>
-
-          <listitem>
-            <para>Environment variables to pass to automake.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>automake.env        CFLAGS=-I${prefix}/include</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>automake.args</term>
-
-          <listitem>
-            <para>Arguments to pass to automake.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>automake.args       --foreign</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>automake.dir</term>
-
-          <listitem>
-            <para>Directory in which to run
-            <varname>${automake.cmd}</varname>.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <varname>${worksrcpath}</varname></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>automake.dir        ./src</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>use_autoconf</term>
-
-          <listitem>
-            <para>Whether or not to use autoconf.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <option>no</option></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>use_autoconf        yes</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>autoconf.env</term>
-
-          <listitem>
-            <para>Environmental variables to pass to autoconf.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>autoconf.env        CFLAGS=-I${prefix}/include/gtk12</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>autoconf.args</term>
-
-          <listitem>
-            <para>Arguments to pass to autoconf.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: ???</para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>autoconf.args       "-l src/aclocaldir"</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-
-        <varlistentry>
-          <term>autoconf.dir</term>
-
-          <listitem>
-            <para>Directory in which to run
-            <varname>${autoconf.cmd}</varname>.</para>
-
-            <itemizedlist>
-              <listitem>
-                <para>Default: <varname>${worksrcpath}</varname></para>
-              </listitem>
-
-              <listitem>
-                <para>Example:</para>
-
-                <programlisting>autoconf.dir        src</programlisting>
-              </listitem>
-            </itemizedlist>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </section>
-  </section>
-
-  <section id="reference.phases.build">
-    <title>Build Phase Keywords</title>
-
-    <para>The list of keywords related to the build phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>build.cmd</term>
-
-        <listitem>
-          <para>Make command to run in <varname>${worksrcdir}</varname>. Only
-          use it if you can't use <literal>build.type</literal>.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <command>make</command></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>build.cmd           pbxbuild</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>build.type</term>
-
-        <listitem>
-          <para>Defines which "make" is required. Sets
-          <varname>${build.cmd}</varname> to either "gnumake" or "bsdmake"
-          accordingly.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>gnu</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Values: <option>gnu</option> <option>bsd</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>build.type          bsd</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>build.args</term>
-
-        <term>build.pre_args</term>
-
-        <term>build.post_args</term>
-
-        <listitem>
-          <para>Main arguments to <varname>${build.cmd}</varname>; optional
-          argument modifiers pass arguments before and after the main
-          arguments.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>build.args          -DNOWARN
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>The following argument modifiers are available:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><literal>build.pre_args</literal>, defaults to:
-              <varname>${build.target.current}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para><literal>build.post_args</literal>, defaults to:
-              none</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>build.pre_args      -project AudioSlicer.xcode
-build.post_args     CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>build.target</term>
-
-        <term>build.target-append</term>
-
-        <term>build.target-delete</term>
-
-        <listitem>
-          <para>Build target to pass to <varname>${build.cmd}</varname>; list
-          modifiers add or delete items from a previous Portfile build.target
-          keyword or the default set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>all</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>build.target        all-src</programlisting>
-
-              <programlisting>build.target-append     doc extra
-build.target-delete     compat</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>use_parallel_build</term>
-
-        <listitem>
-          <para>This keyword is for specifying whether or not it is safe for a
-          port to use multiple cpus or multiple cores in parallel during its
-          build phase. If a port is declared to be builadble this way, the
-          option <option>-j N</option> may be passed to the
-          <command>make</command> command if parallel builds are enabled
-          system-wide. This can be obtained by setting
-          <varname>buildmakejobs</varname> in
-          <filename>macports.conf</filename>. The integer <option>N</option>
-          refers to the number of parallel build threads.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>use_parallel_build  yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.test">
-    <title>Test Phase Keywords</title>
-
-    <para>The list of keywords related to the test phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>test.run</term>
-
-        <listitem>
-          <para>Enable running test suites bundled with a port.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>test.run            yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>test.cmd</term>
-
-        <listitem>
-          <para>Test command to run relative to
-          <varname>${worksrcdir}</varname>.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${build.cmd}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>test.cmd            checks.sh</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>test.target</term>
-
-        <listitem>
-          <para>Test target to pass to <varname>${test.cmd}</varname>.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>test</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>test.target         checks</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.phases.destroot">
-    <title>Destroot Phase Keywords</title>
-
-    <para>The list of keywords related to the destroot phase.</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>destroot.cmd</term>
-
-        <listitem>
-          <para>Install command to run relative to
-          <varname>${worksrcdir}</varname>. Only use it if you can't use
-          <literal>destroot.type</literal>.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${build.cmd}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.cmd        pbxbuild</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.type</term>
-
-        <listitem>
-          <para>Defines which "make" is required. Sets
-          <varname>${destroot.cmd}</varname> to either "gnumake" or "bsdmake"
-          accordingly.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <varname>${build.type}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para>Values: <option>gnu</option> <option>bsd</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.type       bsd</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.args</term>
-
-        <term>destroot.pre_args</term>
-
-        <term>destroot.post_args</term>
-
-        <listitem>
-          <para>Main arguments to <varname>${destroot.cmd}</varname>; optional
-          argument modifiers pass arguments before and after the main
-          arguments.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.args       BINDIR=${prefix}/bin
-
-</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-
-        <listitem>
-          <para>The following argument modifiers are available:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><literal>destroot.pre_args</literal>, defaults to:
-              <varname>${destroot.target}</varname></para>
-            </listitem>
-
-            <listitem>
-              <para><literal>destroot.post_args</literal>, defaults to:
-              none</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>destroot.pre_args   -project AudioSlicer.xcode
-destroot.post_args  INSTDIR=${destroot}${prefix}</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.target</term>
-
-        <term>destroot.target-append</term>
-
-        <term>destroot.target-delete</term>
-
-        <listitem>
-          <para>Install target to pass to <varname>${destroot.cmd}</varname>;
-          list modifiers add or delete items from a previous Portfile
-          destroot.target keyword or the default set by MacPorts base.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>install</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.target     install install-config install-commandmode</programlisting>
-
-              <programlisting>destroot.target-append  install-plugins
-destroot.target-delete  install-commandmode</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.destdir</term>
-
-        <listitem>
-          <para>Arguments passed to <varname>${destroot.cmd}</varname> to
-          install correctly into the destroot.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>DESTDIR=${destroot}</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.destdir    prefix=${destroot}${prefix}</programlisting>
-            </listitem>
-          </itemizedlist>
-
-          <note>
-            <para>If an application's Makefile properly supports the DESTDIR
-            variable, MacPorts will automatically destroot the port properly.
-            A port must destroot properly or the port will not install
-            correctly, upgrade, or uninstall. If not, you may need to set this
-            variable, or even patch the application's Makefile.</para>
-          </note>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.umask</term>
-
-        <listitem>
-          <para>Umask to use during destroot.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <literal>022</literal></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.umask      002</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.keepdirs</term>
-
-        <listitem>
-          <para>A list of directories that should not be removed if empty upon
-          destroot completion.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: ???</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.keepdirs   ${destroot}${prefix}/var/run \
-                    ${destroot}${prefix}/var/log \
-                    ${destroot}${prefix}/var/cache/mrtg</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>destroot.violate_mtree</term>
-
-        <listitem>
-          <para>MacPorts tests for compliance to the common directory
-          structure in <varname>${prefix}</varname>. If a port is not
-          compliant with the standard, set it to <option>yes</option>.</para>
-
-          <para>You can find the macports standard in <link
-          linkend="internals.hierarchy">MacPorts File Hierarchy</link> or in
-          the porthier(7) man page.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>destroot.violate_mtree      yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-</section>

Copied: trunk/doc-new/guide/xml/portfile-phase.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-phase.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-phase.xml	                        (rev 0)
+++ trunk/doc-new/guide/xml/portfile-phase.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,2639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section id="reference.phases">
+  <title>Port Phases</title>
+
+  <section id="reference.phases.introduction">
+    <title>Introduction</title>
+
+    <para>A MacPorts port has ten distinct phases. The MacPorts base is set to
+    perform default steps for applications that use the standard
+    <command>configure</command>, <command>make</command>, and <command>make
+    install</command> steps, but for applications that do not conform to this
+    behavior, installation phases may be declared in a Portfile to <link
+    linkend="development.examples.augment">augment</link> or <link
+    linkend="development.examples.override">override</link> the default
+    behavior as described in the <link linkend="development">Portfile
+    Development</link> chapter.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>fetch</term>
+
+        <listitem>
+          <para>Fetch the <varname>${distfiles}</varname> from
+          <varname>${master_sites}</varname> and place it in
+          <filename>${prefix}/var/macports/distfiles/${name}</filename>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>checksum</term>
+
+        <listitem>
+          <para>Compare <varname>${checksums}</varname> specified in a
+          <filename>Portfile</filename> to the checksums of the fetched
+          ${distfiles}.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>extract</term>
+
+        <listitem>
+          <para>Unzip and untar the <varname>${distfiles}</varname> into the
+          path ${prefix}/var/macports/build/..../work</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patch</term>
+
+        <listitem>
+          <para>Apply optional <ulink
+          url="http://en.wikipedia.org/wiki/Patch_(Unix)">patch</ulink> files
+          specified in <varname>${patchfiles}</varname> to modify a port's
+          source code file(s).</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure</term>
+
+        <listitem>
+          <para>Execute the command <command>configure</command> in
+          <varname>${workpath}</varname>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>build</term>
+
+        <listitem>
+          <para>Execute the command <command>make</command> in
+          <varname>${workpath}</varname>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>test</term>
+
+        <listitem>
+          <para>Execute commands to run test suites bundled with a
+          port.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot</term>
+
+        <listitem>
+          <para>Execute the command <command>make install</command>
+          <varname>DESTDIR=${destroot}</varname>in
+          <varname>${workpath}</varname>.</para>
+
+          <para>Understanding the destroot phase is critical to understanding
+          MacPorts, because, unlike some port systems, MacPorts "stages" an
+          installation into an intermediate location —not the final file
+          destination. MacPorts uses the destroot phase to provide:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Port uninstalls - a port's files may be cleanly
+              uninstalled because all files and directories are recorded
+              during install.</para>
+            </listitem>
+
+            <listitem>
+              <para>Multiple port versions may be installed on the same host,
+              since a port's files are not directly inserted into
+              <varname>${prefix}</varname> but rather hard-linked into
+              <varname>${prefix}</varname> from an intermediate location
+              during a later activation phase.</para>
+            </listitem>
+          </itemizedlist>
+
+          <note>
+            <para>The <varname>DESTDIR</varname> variable must be supported in
+            an application's Makefile for the MacPorts destroot phase to work
+            properly. Urge developers to fully support
+            <varname>DESTDIR</varname> in their Makefiles.</para>
+          </note>
+
+          <para>Any empty directories in <varname>${destroot}</varname> upon
+          completion of the destroot phase are removed unless a directory name
+          is placed in the value field of the optional
+          <code>destroot.keepdirs</code> keyword.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>archive</term>
+
+        <listitem>
+          <para>Use tar to create a tarball of a port's destrooted files and
+          copy it to
+          <filename>${prefix}/var/macports/packages/</filename>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>install</term>
+
+        <listitem>
+          <para>Copy a port's destrooted files into
+          <filename>${prefix}/var/macports/software</filename>. See <link
+          linkend="internals.images">Port Images</link> in the <link
+          linkend="internals">MacPorts Internals</link> chapter for
+          details.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>activate</term>
+
+        <listitem>
+          <para>Set <ulink
+          url="http://en.wikipedia.org/wiki/Hard_link">hardlinks</ulink>
+          pointing to <filename>${prefix}/var/macports/software</filename> to
+          point to <varname>${prefix}</varname>.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.installation">
+    <title>Installation Phase Keywords</title>
+
+    <para>MacPorts keywords are used to specify required or optional items
+    within a Portfile, or to override default options used by MacPorts base
+    for individual ports. Keywords are to be used within the "global" and
+    "variant" sections of Portfiles, and not within optional port phase
+    declarations.</para>
+
+    <para>In other words, port phase keywords are not located within port
+    phase declarations, but rather they <emphasis>refer</emphasis> to port
+    phases and set options for those phases, and they take affect whether or
+    not phase declarations have been explicitly defined in a Portfile.</para>
+
+    <section id="reference.phases.installation.list-modifiers">
+      <title>Keyword List Modifiers (-append / -delete)</title>
+
+      <para>Keyword list modifiers are keywords that end in -append or
+      -delete. Keywords that support list modifiers are identified under
+      appropriate reference sections below. Keyword list modifiers are most
+      frequently used for these three purposes:</para>
+
+      <orderedlist>
+        <listitem>
+          <para>Preserve configure Defaults set by a previously executed
+          Portfile keyword or by MacPorts base</para>
+
+          <para>MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS
+          for all ports using <literal>configure.cflags</literal> and
+          <literal>configure.ldflags</literal>, therefore to keep from
+          overwriting the default compiler flags use
+          <literal>configure.cflags-append</literal> and
+          <literal>configure.ldflags-append</literal>.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><code>configure.cflags-append</code></para>
+            </listitem>
+
+            <listitem>
+              <para><code>configure.ldflags-append</code></para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>Preserve PortGroup Dependencies</para>
+
+          <para>Ports in a PortGroup have default library dependencies set by
+          MacPorts base. Therefore, never use <literal>depends_lib</literal>
+          in ports belonging to a PortGroup or it will overwrite the default
+          library dependencies. Instead, use
+          <literal>depends_lib-append</literal>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Add or Delete Items for Variants</para>
+
+          <para>When a variant requires more or fewer dependencies, distfiles,
+          or patchfiles, when the variant is invoked you want to add or remove
+          items to the appropriate keyword values list set in the global
+          section of the Portfile. Use the appropriate keywords, for
+          example:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><code>depends_lib-append</code> or
+              <code>depends_lib-delete</code></para>
+            </listitem>
+
+            <listitem>
+              <para><code>distfiles-append</code> or
+              <code>distfile-delete</code></para>
+            </listitem>
+
+            <listitem>
+              <para><code>patchfiles-append</code> or
+              <code>patchfiles-delete</code></para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </orderedlist>
+    </section>
+
+    <section id="reference.phases.installation.argument-modifiers">
+      <title>Keyword Argument Modifiers (.pre_args / .post_args)</title>
+
+      <para>Keywords that support pre_args and post_args are used to assemble
+      command strings together in a row, as described in the reference
+      sections below. But it should be noted that all keyword argument
+      modifiers implicitly support keyword list modifiers. For example, the
+      keyword <literal>configure.pre_args</literal> also supports
+      <literal>configure.pre_args-append</literal> and
+      <literal>configure.pre_args-delete</literal>.</para>
+    </section>
+  </section>
+
+  <section id="reference.phases.fetch">
+    <title>Fetch Phase Keywords</title>
+
+    <para>The list of keywords related to the fetch phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>master_sites</term>
+
+        <listitem>
+          <para>A list of URLs from which a port's download file(s) may be
+          retrieved. For multiple master_sites, they are searched in order
+          until a file matching <varname>${distfile}</varname> is
+          found.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: ???</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>master_sites        http://www.example.org/files/ \
+                    http://www.examplemirror.org/example_org/files/
+
+</programlisting>
+
+              <para>You may also use mirror site lists predefined by MacPorts.
+              Here the sourceforge and gnu mirrors are used.</para>
+
+              <programlisting>master_sites        sourceforge gnu
+
+</programlisting>
+
+              <para>When using mirror master_sites, the subdirectory
+              <varname>${name}</varname> is checked on every mirror. If the
+              mirror subdirectory does not match ${name}, then you may specify
+              it using after the mirror separated by a colon.</para>
+
+              <programlisting>master_sites        sourceforge:widget \
+                    gnu:widget
+
+</programlisting>
+
+              <para>For ports that must fetch multiple download files from
+              different locations, you must label the files with tags and
+              match the tags in a distfiles statement. The format is
+              <literal>mirror:subdirectory:tag</literal>.</para>
+
+              <para>In the example below, file_one.tar.gz is fetched from
+              sourceforge mirrors in subdirectory <varname>${name}</varname>;
+              file tagtwo.tar.gz is fetched from the gnu mirrors in
+              subdirectory sources.</para>
+
+              <programlisting>master_sites        sourceforge::tagone \
+                    gnu:sources:tagtwo
+
+distfiles           file_one.tar.gz:tagone \
+                    file_two.tar.gz:tagtwo</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>master_sites.mirror_subdir</term>
+
+        <listitem>
+          <para>Subdirectory to append to all mirror sites for any list
+          specified in <varname>${master_sites}</varname>.</para>
+
+          <!-- TODO: add a better explanation -->
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${name}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>master_sites.mirror_subdir  magic</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patch_sites</term>
+
+        <listitem>
+          <para>A list of sites from which a port's patchfiles may be
+          downloaded, where applicable.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${master_sites}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patch_sites         ftp://ftp.patchcityrepo.com/pub/magic/patches</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patch_sites.mirror_subdir</term>
+
+        <listitem>
+          <para>Subdirectory to append to all mirror sites for any list
+          specified in <varname>${patch_sites}</varname>.</para>
+
+          <!-- TODO: add a better explanation -->
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${name}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patch_sites.mirror_subdir   magic</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>distname</term>
+
+        <listitem>
+          <para>The name of the distribution filename, not including the
+          extract suffix (see below).</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${name}-${version}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>distname            ${name}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>distfiles</term>
+
+        <listitem>
+          <para>The full distribution filename, including the extract suffix.
+          Used to specify non-default distribution filenames; this keyword
+          must be specified (and tags used) when a port has multiple download
+          files (see master_sites).</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default:
+              <varname>${distname}${extract.suffix}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>distfiles           ${name}-dev_src.tgz</programlisting>
+
+              <programlisting>distfiles           file_one.tar.gz:tagone \
+                    file_two.tar.gz:tagtwo</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>dist_subdir</term>
+
+        <listitem>
+          <para>Create a sub-directory in distpath to store all fetched
+          files.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${name}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>dist_subdir         vim${version}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>extract.suffix</term>
+
+        <listitem>
+          <para>This keyword is used to specify the extract suffix
+          type.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <filename>.tar.gz</filename></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>extract.suffix      .tgz</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>extract.mkdir</term>
+
+        <listitem>
+          <para>This keyword is used to specify if the directory
+          <filename>worksrcdir</filename> is part of the distfile or if it
+          should be created automatically and the distfiles should be
+          extracted there instead. This is useful for distfiles with a flat
+          structure which would pollute the <filename>worksrcdir</filename>
+          with lots of files.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>extract.mkdir       yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>use_bzip2</term>
+
+        <listitem>
+          <para>This keyword is for downloads that are tarred and bzipped.
+          When invoked, it automatically sets:</para>
+
+          <literallayout>extract.suffix = .tar.bz
+extract.cmd    = bzip
+
+</literallayout>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>use_bzip2           yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>use_zip</term>
+
+        <listitem>
+          <para>This keyword is for downloads which are zipped. When invoked,
+          it automatically sets:</para>
+
+          <literallayout>extract.suffix    = .zip
+extract.cmd       = unzip
+extract.pre_args  = -q
+extract.post_args = "-d ${portpath}/${workdir}"
+
+</literallayout>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>use_zip             yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>worksrcdir</term>
+
+        <listitem>
+          <para>Sets the path to source directory relative to workpath. It can
+          be used if the extracted source directory has a different name then
+          the distfile.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${distname}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>worksrcdir          ${name}-src-${version}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <section id="reference.phases.fetch.advanced">
+      <title>Advanced Fetch Options</title>
+
+      <para>Some mirrors require special options for a resource to be properly
+      fetched.</para>
+
+      <variablelist>
+        <varlistentry>
+          <term>fetch.user</term>
+
+          <listitem>
+            <para>HTTP or FTP user to fetch the resource.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>fetch.password</term>
+
+          <listitem>
+            <para>HTTP or FTP password to fetch the resource.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>fetch.use_epsv</term>
+
+          <listitem>
+            <para>Whether to use EPSV command for FTP transfers.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <option>yes</option></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>fetch.use_epsv      no</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>fetch.ignore_sslcert</term>
+
+          <listitem>
+            <para>Whether to ignore the host SSL certificate (for
+            HTTPS).</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <option>no</option></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>fetch.ignore_sslcert    yes</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </section>
+
+    <section id="reference.phases.fetch.cvs">
+      <title>Fetch from CVS</title>
+
+      <para><ulink url="http://www.nongnu.org/cvs/">CVS</ulink> may be used as
+      an alternative method of fetching distribution files using the keywords
+      in this section. However, fetching via CVS may cause non-reproducible
+      builds, so it is strongly discouraged.</para>
+
+      <variablelist>
+        <varlistentry>
+          <term>cvs.root</term>
+
+          <listitem>
+            <para>Specify the url from which to fetch files.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>cvs.root            :pserver:anonymous at cvs.sv.gnu.org:/sources/emacs</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>cvs.tag</term>
+
+          <listitem>
+            <para>Optional for fetching with CVS, this specifies the code
+            revision to checkout.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>cvs.tag             HEAD</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>cvs.date</term>
+
+          <listitem>
+            <para>A date that identifies the CVS code set to checkout.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>cvs.date            "12-April-2007"</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>cvs.module</term>
+
+          <listitem>
+            <para>A CVS module from which to check out the code.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>cvs.module          Sources</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </section>
+
+    <section id="reference.phases.fetch.svn">
+      <title>Fetch from Subversion</title>
+
+      <para><ulink url="http://subversion.tigris.org/">Subversion</ulink> may
+      be used as an alternative method of fetching distribution files using
+      the keywords in this section. However, fetching via Subversion may cause
+      non-reproducible builds, so it is strongly discouraged.</para>
+
+      <variablelist>
+        <varlistentry>
+          <term>svn.url</term>
+
+          <listitem>
+            <para>This specifies the url from which to fetch files.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Examples:</para>
+
+                <programlisting>svn.url             http://www.domain.com/svn-repo/mydirectory</programlisting>
+
+                <programlisting>svn.url             svn://www.domain.com/svn-repo/mydirectory</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>svn.tag</term>
+
+          <listitem>
+            <para>Optional tag for fetching with Subversion, this specifies
+            the code revision to checkout; it corresponds to the -r option in
+            the svn cli.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: none</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>svn.tag             37192</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </section>
+  </section>
+
+  <section id="reference.phases.checksum">
+    <title>Checksum Phase Keywords</title>
+
+    <para>The list of keywords related to the checksum phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>checksums</term>
+
+        <listitem>
+          <para>Checksum(s) of the distribution files. For ports with multiple
+          distribution files, filenames must be included to associate files
+          with their checksums.</para>
+
+          <para>All checksum types (md5, sha1 and rdm160) should be used to
+          ensure the integrity of the distfiles.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: ???</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>checksums           md5 dafa161bc9c61e57636a6085c87c1fe8 \
+                    sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
+                    rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23</programlisting>
+
+              <programlisting>checksums           ${distname}${extract.suffix} \
+                        md5 dafa161bc9c61e57636a6085c87c1fe8 \
+                        sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
+                        rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23 \
+                    hobbit.tar.gz \
+                        md5 3b8d02c6cf6239b9bdadbc6543c5a683 \
+                        sha1 27874638b23e66d39ed94fe716ca25c967f6e993 \
+                        rmd160 82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.extract">
+    <title>Extract Phase Keywords</title>
+
+    <para>The list of keywords related to the extract phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>extract.only</term>
+
+        <term>extract.only-append</term>
+
+        <term>extract.only-delete</term>
+
+        <listitem>
+          <para>List of files to extract into
+          <varname>${worksrcpath}</varname>. Only use if default extract
+          behavior is not correct for your port.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${distfiles}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>extract.only        foo.tar.gz</programlisting>
+
+              <programlisting>extract.only-append     bar.tar.gz
+extract.only-delete     foo.tar.gz</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>extract.cmd</term>
+
+        <listitem>
+          <para>Command to perform extraction.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <command>gzip</command></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>extract.cmd         gunzip</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>extract.args</term>
+
+        <term>extract.pre_args</term>
+
+        <term>extract.post_args</term>
+
+        <listitem>
+          <para>Main arguments to extract.cmd; additional arguments passed
+          before and after the main arguments.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${distpath}/${distfile}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>extract.args        ${distpath}/${distfile}
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>The following argument modifiers are available:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><literal>extract.pre_args</literal>, defaults to:
+              <literal>-dc</literal></para>
+            </listitem>
+
+            <listitem>
+              <para><literal>extract.post_args</literal>, defaults to:
+              <literal>"| tar -xf"</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>extract.pre_args    xf
+extract.post_args   "| gnutar –x"</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.patch">
+    <title>Patch Phase Keywords</title>
+
+    <para>The list of keywords related to the patch phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>patch.dir</term>
+
+        <listitem>
+          <para>Specify the base path for patch files.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${worksrcpath}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patch.dir           ${worksrcpath}/util</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patch.cmd</term>
+
+        <listitem>
+          <para>Specify the command to be used for patching files.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <command>patch</command></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patch.cmd           cat</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patchfiles</term>
+
+        <term>patchfiles-append</term>
+
+        <term>patchfiles-delete</term>
+
+        <listitem>
+          <para>Specify patch files to be applied for a port; list modifiers
+          specify patchfiles to be added or removed from a previous patchfile
+          declaration.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patchfiles          patch-Makefile.in \
+                    patch-source.c</programlisting>
+
+              <programlisting>patchfiles-append   patch-configure
+patchfiles-delete   patch-src-Makefile.in</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>patch.args</term>
+
+        <term>patch.pre_args</term>
+
+        <term>patch.post_args</term>
+
+        <listitem>
+          <para>Main arguments to patch.cmd; optional argument modifiers pass
+          arguments before and after the main arguments.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>patch.args          ???
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>The following argument modifiers are available:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><literal>patch.pre_args</literal>, defaults to:
+              <literal>-p0</literal></para>
+            </listitem>
+
+            <listitem>
+              <para><literal>patch.post_args</literal>, defaults to:
+              none</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>patch.pre_args      -p1
+patch.post_args     ???</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.configure">
+    <title>Configure Phase Keywords</title>
+
+    <para>The list of keywords related to the configure phase.</para>
+
+    <para>MacPorts base sets some important default configure options, so
+    should use the -append version of most configure keywords so you don't
+    overwrite them. For example, MacPorts base sets default
+    <literal>configure.cflags</literal> so you should always use
+    <literal>configure.cflags-append</literal> to set additional CFLAGS in
+    Portfiles.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>use_configure</term>
+
+        <listitem>
+          <para>Sets if the configure phase should be run.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>yes</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>use_configure    no</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.env</term>
+
+        <term>configure.env-append</term>
+
+        <term>configure.env-delete</term>
+
+        <listitem>
+          <para>Set environment variables for configure; list modifiers add
+          and delete items from a previous Portfile configure.env keyword, or
+          a default set by MacPorts base. If available, it is encouraged to
+          use the predefined options (like configure.cflags) instead of
+          modifying configure.env directly.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>CFLAGS=-I${prefix}/include
+              LDFLAGS=-L${prefix}/lib</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.env       QTDIR=${prefix}/lib/qt3</programlisting>
+
+              <programlisting>configure.env-append    ABI=32
+configure.env-delete    TCLROOT=${prefix}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.cflags</term>
+
+        <term>configure.cflags-append</term>
+
+        <term>configure.cflags-delete</term>
+
+        <listitem>
+          <para>Set CFLAGS compiler flags; list modifiers add or delete items
+          from a previous Portfile configure.cflags keyword or the default set
+          by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.cflags    -Os -flat_namespace</programlisting>
+
+              <programlisting>configure.cflags-append     "-undefined suppress"
+configure.cflags-delete     -O2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.ldflags</term>
+
+        <term>configure.ldflags-append</term>
+
+        <term>configure.ldflags-delete</term>
+
+        <listitem>
+          <para>Set LDFLAGS compiler flags; list modifiers add or delete items
+          from a previous Portfile configure.ldflags keyword or the default
+          set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-L${prefix}/lib</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.ldflags   "-L${worksrcpath}/zlib -lz"</programlisting>
+
+              <programlisting>configure.ldflags-append    "-L/usr/X11R6/lib -L${worksrcpath}/lib"
+configure.ldflags-delete    -L${prefix}/lib/db44</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.cppflags</term>
+
+        <term>configure.cppflags-append</term>
+
+        <term>configure.cppflags-delete</term>
+
+        <listitem>
+          <para>Set CPPFLAGS to be passed to the C processor; list modifiers
+          add or delete items from a previous Portfile configure.cppflags
+          keyword or the default set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-I${prefix}/include</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.cppflags  -I${worksrcpath}/include</programlisting>
+
+              <programlisting>configure.cppflags-append   "-I/usr/X11R6/lib -I${worksrcpath}/lib -DHAVE_RRD_12X"
+configure.cppflags-delete   -I${prefix}/lib/db44</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.cxxflags</term>
+
+        <term>configure.cxxflags-append</term>
+
+        <term>configure.cxxflags-delete</term>
+
+        <listitem>
+          <para>Set CXXFLAGS to be passed to the C++ processor; list modifiers
+          add or delete items from a previous Portfile configure.cxxflags
+          keyword or the default set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>TODO: add example</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.objcflags</term>
+
+        <term>configure.objcflags-append</term>
+
+        <term>configure.objcflags-delete</term>
+
+        <listitem>
+          <para>TODO: add description</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>TODO: add example</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.classpath</term>
+
+        <term>configure.classpath-append</term>
+
+        <term>configure.classpath-delete</term>
+
+        <listitem>
+          <para>TODO: add description</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: ???</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>TODO: add example</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.macosx_deployment_target</term>
+
+        <term>configure.macosx_deployment_target-append</term>
+
+        <term>configure.macosx_deployment_target-delete</term>
+
+        <listitem>
+          <para>TODO: add description</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: ???</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>TODO: add example</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <!-- fortran compiler options -->
+
+      <varlistentry>
+        <term>configure.fflags</term>
+
+        <term>configure.fflags-append</term>
+
+        <term>configure.fflags-delete</term>
+
+        <listitem>
+          <para>Set FFLAGS to be passed to the Fortran compiler; list
+          modifiers add or delete items from a previous Portfile
+          configure.fflags keyword or the default set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.fflags    -Os</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.fcflags</term>
+
+        <term>configure.fcflags-append</term>
+
+        <term>configure.fcflags-delete</term>
+
+        <listitem>
+          <para>Set FCFLAGS to be passed to the Fortran compiler; list
+          modifiers add or delete items from a previous Portfile
+          configure.fcflags keyword or the default set by MacPorts
+          base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.fcflags   -Os</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.f90flags</term>
+
+        <term>configure.f90flags-append</term>
+
+        <term>configure.f90flags-delete</term>
+
+        <listitem>
+          <para>Set F90FLAGS to be passed to the Fortran 90 compiler; list
+          modifiers add or delete items from a previous Portfile
+          configure.f90flags keyword or the default set by MacPorts
+          base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>-O2</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.f90flags  -Os</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <!-- fortran compiler options end -->
+
+      <!-- compiler selection arguments -->
+
+      <varlistentry>
+        <term>configure.cc</term>
+
+        <listitem>
+          <para>Set CC compiler flags for selecting a C compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.cc        ${prefix}/bin/gcc-mp-4.2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.cpp</term>
+
+        <listitem>
+          <para>Set CPP compiler flags for selecting a C preprocessor.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.cpp       /usr/bin/cpp-3.3</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.cxx</term>
+
+        <listitem>
+          <para>Set CXX compiler flags for selecting a C++ compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.cxx       /usr/bin/g++-4.0</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.objc</term>
+
+        <listitem>
+          <para>Set OBJC compiler flags for selecting an Objective-C
+          compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.objc      /usr/bin/gcc-4.0</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.fc</term>
+
+        <listitem>
+          <para>Set FC compiler flags for selecting a Fortran compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.fc        ${prefix}/bin/gfortran-mp-4.2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.f77</term>
+
+        <listitem>
+          <para>Set F77 compiler flags for selecting a Fortran 77
+          compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.f77       ${prefix}/bin/gfortran-mp-4.2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.f90</term>
+
+        <listitem>
+          <para>Set F90 compiler flags for selecting a Fortran 90
+          compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.f90       ${prefix}/bin/gfortran-mp-4.2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.javac</term>
+
+        <listitem>
+          <para>Set JAVAC compiler flags for selecting a Java compiler.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.javac     ${prefix}/bin/jikes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.compiler</term>
+
+        <listitem>
+          <para>Select a compiler suite to fill the compiler environment
+          variables. All variables/tools a compiler suite can provide are set.
+          Manually set variables are not overwritten. Dependencies are not
+          added for you, as they may be just build- or also run-dependencies.
+          Keep in mind that not all compiler suites might be available on your
+          platform: <literal>gcc-3.3</literal> is available on Mac OS X 10.3
+          and 10.4 PowerPC, <literal>gcc-4.0</literal> is available on 10.4
+          and 10.5, <literal>gcc-4.2</literal> is available as preview for
+          10.5.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>gcc-3.3</literal> on Mac OS X
+              10.3</para>
+            </listitem>
+
+            <listitem>
+              <para>Default: <literal>gcc-4.0</literal> on Mac OS X 10.4 and
+              10.5</para>
+            </listitem>
+
+            <listitem>
+              <para>Values: <literal>gcc-3.3</literal>
+              <literal>gcc-4.0</literal> <literal>gcc-4.2</literal>
+              <literal>apple-gcc-3.3</literal>
+              <literal>apple-gcc-4.0</literal>
+              <literal>macports-gcc-3.3</literal>
+              <literal>macports-gcc-3.4</literal>
+              <literal>macports-gcc-4.0</literal>
+              <literal>macports-gcc-4.1</literal>
+              <literal>macports-gcc-4.2</literal>
+              <literal>macports-gcc-4.3</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.compiler  macports-gcc-4.2</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <!-- compiler selection arguments end -->
+
+      <!-- interpreter selection arguments -->
+
+      <varlistentry>
+        <term>configure.perl</term>
+
+        <listitem>
+          <para>Set PERL flag for selecting a Perl interpreter.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.perl      ${prefix}/bin/perl5.8</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.python</term>
+
+        <listitem>
+          <para>Set PYTHON flag for selecting a Python interpreter.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.python    ${prefix}/bin/python3.0</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.ruby</term>
+
+        <listitem>
+          <para>Set RUBY flag for selecting a Ruby interpreter.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.ruby      ${prefix}/bin/ruby</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <!-- interpreter selection arguments end -->
+
+      <!-- other tools selection arguments -->
+
+      <varlistentry>
+        <term>configure.install</term>
+
+        <listitem>
+          <para>Set <literal>INSTALL</literal> flag for selecting an install
+          tool; used for copying files and creating directories.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <filename>/usr/bin/install</filename></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.install   ${prefix}/bin/ginstall</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.awk</term>
+
+        <listitem>
+          <para>Set AWK flag for selecting an awk executable.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.awk       ${prefix}/bin/gawk</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.bison</term>
+
+        <listitem>
+          <para>Set BISON flag for selecting a bison executable, a parser
+          generator.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.bison     /usr/bin/bison</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.pkg_config</term>
+
+        <listitem>
+          <para>Set PKG_CONFIG flag for helping find pkg_config, a tool for
+          retrieving information about installed libraries.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.pkg_config    ${prefix}/bin/pkg-config</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>configure.pkg_config_path</term>
+
+        <listitem>
+          <para>Set PKG_CONFIG_PATH flag for telling pkg_config where to
+          search for information about installed libraries.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>???</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.pkg_config_path   ${prefix}/lib/pkgconfig:${x11prefix}/lib/pkgconfig</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <!-- other tools selection arguments end -->
+
+      <varlistentry>
+        <term>configure.args</term>
+
+        <term>configure.pre_args</term>
+
+        <term>configure.post_args</term>
+
+        <listitem>
+          <para>Main arguments to configure.cmd; optional argument modifiers
+          pass arguments before and after the main arguments.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>configure.args      --bindir=${prefix}/bin
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>The following argument modifiers are available:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><literal>configure.pre_args</literal>, defaults to:
+              <literal>--prefix=${prefix}</literal></para>
+            </listitem>
+
+            <listitem>
+              <para><literal>configure.post_args</literal>, defaults to:
+              none</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>configure.pre_args  --prefix=${prefix}/share/bro
+configure.post_args OPT="-D__DARWIN_UNIX03"</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <section id="reference.phases.configure.universal">
+      <title>Configure Universal</title>
+
+      <para>Universal keywords are used to make a port compile on the Mac OS X
+      platform to run on either PPC or Intel.</para>
+
+      <note>
+        <para>There is a default universal variant made available to all ports
+        by MacPorts base, so redefining universal keywords should only be done
+        to make a given port compile if the default options fail to do
+        so.</para>
+      </note>
+
+      <variablelist>
+        <varlistentry>
+          <term>configure.universal_args</term>
+
+          <listitem>
+            <para>Arguments used in the configure script to build the port
+            universal.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default:
+                <literal>--disable-dependency-tracking</literal></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>configure.universal_cflags</term>
+
+          <listitem>
+            <para>Arguments appended to the configure script to build the port
+            universal.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <literal>-sysroot
+                /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
+                ppc</literal></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>configure.universal_cppflags</term>
+
+          <listitem>
+            <para>Additional flags to put in the CPPFLAGS environment variable
+            when invoking the configure script.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <literal>???</literal></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>configure.universal_cxxflags</term>
+
+          <listitem>
+            <para>Additional flags to put in the CXXFLAGS environment variable
+            when invoking the configure script.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <literal>-isysroot
+                /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch
+                ppc</literal></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>configure.universal_ldflags</term>
+
+          <listitem>
+            <para>Additional flags to put in the LDFLAGS environment variable
+            when invoking the configure script.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <literal>-arch i386 -arch ppc</literal></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>TODO: add example</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </section>
+
+    <section id="reference.phases.configure.automake-autoconf">
+      <title>Automake and Autoconf</title>
+
+      <para>The list of configure keywords available for ports that need
+      automake and/or autoconf.</para>
+
+      <variablelist>
+        <varlistentry>
+          <term>use_automake</term>
+
+          <listitem>
+            <para>Whether or not to use automake.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <option>no</option></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>use_automake        yes</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>automake.env</term>
+
+          <listitem>
+            <para>Environment variables to pass to automake.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>automake.env        CFLAGS=-I${prefix}/include</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>automake.args</term>
+
+          <listitem>
+            <para>Arguments to pass to automake.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>automake.args       --foreign</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>automake.dir</term>
+
+          <listitem>
+            <para>Directory in which to run
+            <varname>${automake.cmd}</varname>.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <varname>${worksrcpath}</varname></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>automake.dir        ./src</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>use_autoconf</term>
+
+          <listitem>
+            <para>Whether or not to use autoconf.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <option>no</option></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>use_autoconf        yes</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>autoconf.env</term>
+
+          <listitem>
+            <para>Environmental variables to pass to autoconf.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>autoconf.env        CFLAGS=-I${prefix}/include/gtk12</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>autoconf.args</term>
+
+          <listitem>
+            <para>Arguments to pass to autoconf.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: ???</para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>autoconf.args       "-l src/aclocaldir"</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>autoconf.dir</term>
+
+          <listitem>
+            <para>Directory in which to run
+            <varname>${autoconf.cmd}</varname>.</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Default: <varname>${worksrcpath}</varname></para>
+              </listitem>
+
+              <listitem>
+                <para>Example:</para>
+
+                <programlisting>autoconf.dir        src</programlisting>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </section>
+  </section>
+
+  <section id="reference.phases.build">
+    <title>Build Phase Keywords</title>
+
+    <para>The list of keywords related to the build phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>build.cmd</term>
+
+        <listitem>
+          <para>Make command to run in <varname>${worksrcdir}</varname>. Only
+          use it if you can't use <literal>build.type</literal>.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <command>make</command></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>build.cmd           pbxbuild</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>build.type</term>
+
+        <listitem>
+          <para>Defines which "make" is required. Sets
+          <varname>${build.cmd}</varname> to either "gnumake" or "bsdmake"
+          accordingly.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>gnu</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Values: <option>gnu</option> <option>bsd</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>build.type          bsd</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>build.args</term>
+
+        <term>build.pre_args</term>
+
+        <term>build.post_args</term>
+
+        <listitem>
+          <para>Main arguments to <varname>${build.cmd}</varname>; optional
+          argument modifiers pass arguments before and after the main
+          arguments.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>build.args          -DNOWARN
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>The following argument modifiers are available:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><literal>build.pre_args</literal>, defaults to:
+              <varname>${build.target.current}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para><literal>build.post_args</literal>, defaults to:
+              none</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>build.pre_args      -project AudioSlicer.xcode
+build.post_args     CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>build.target</term>
+
+        <term>build.target-append</term>
+
+        <term>build.target-delete</term>
+
+        <listitem>
+          <para>Build target to pass to <varname>${build.cmd}</varname>; list
+          modifiers add or delete items from a previous Portfile build.target
+          keyword or the default set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>all</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>build.target        all-src</programlisting>
+
+              <programlisting>build.target-append     doc extra
+build.target-delete     compat</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>use_parallel_build</term>
+
+        <listitem>
+          <para>This keyword is for specifying whether or not it is safe for a
+          port to use multiple cpus or multiple cores in parallel during its
+          build phase. If a port is declared to be builadble this way, the
+          option <option>-j N</option> may be passed to the
+          <command>make</command> command if parallel builds are enabled
+          system-wide. This can be obtained by setting
+          <varname>buildmakejobs</varname> in
+          <filename>macports.conf</filename>. The integer <option>N</option>
+          refers to the number of parallel build threads.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>use_parallel_build  yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.test">
+    <title>Test Phase Keywords</title>
+
+    <para>The list of keywords related to the test phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>test.run</term>
+
+        <listitem>
+          <para>Enable running test suites bundled with a port.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>test.run            yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>test.cmd</term>
+
+        <listitem>
+          <para>Test command to run relative to
+          <varname>${worksrcdir}</varname>.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${build.cmd}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>test.cmd            checks.sh</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>test.target</term>
+
+        <listitem>
+          <para>Test target to pass to <varname>${test.cmd}</varname>.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>test</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>test.target         checks</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.phases.destroot">
+    <title>Destroot Phase Keywords</title>
+
+    <para>The list of keywords related to the destroot phase.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>destroot.cmd</term>
+
+        <listitem>
+          <para>Install command to run relative to
+          <varname>${worksrcdir}</varname>. Only use it if you can't use
+          <literal>destroot.type</literal>.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${build.cmd}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.cmd        pbxbuild</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.type</term>
+
+        <listitem>
+          <para>Defines which "make" is required. Sets
+          <varname>${destroot.cmd}</varname> to either "gnumake" or "bsdmake"
+          accordingly.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <varname>${build.type}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para>Values: <option>gnu</option> <option>bsd</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.type       bsd</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.args</term>
+
+        <term>destroot.pre_args</term>
+
+        <term>destroot.post_args</term>
+
+        <listitem>
+          <para>Main arguments to <varname>${destroot.cmd}</varname>; optional
+          argument modifiers pass arguments before and after the main
+          arguments.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.args       BINDIR=${prefix}/bin
+
+</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+
+        <listitem>
+          <para>The following argument modifiers are available:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><literal>destroot.pre_args</literal>, defaults to:
+              <varname>${destroot.target}</varname></para>
+            </listitem>
+
+            <listitem>
+              <para><literal>destroot.post_args</literal>, defaults to:
+              none</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>destroot.pre_args   -project AudioSlicer.xcode
+destroot.post_args  INSTDIR=${destroot}${prefix}</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.target</term>
+
+        <term>destroot.target-append</term>
+
+        <term>destroot.target-delete</term>
+
+        <listitem>
+          <para>Install target to pass to <varname>${destroot.cmd}</varname>;
+          list modifiers add or delete items from a previous Portfile
+          destroot.target keyword or the default set by MacPorts base.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>install</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.target     install install-config install-commandmode</programlisting>
+
+              <programlisting>destroot.target-append  install-plugins
+destroot.target-delete  install-commandmode</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.destdir</term>
+
+        <listitem>
+          <para>Arguments passed to <varname>${destroot.cmd}</varname> to
+          install correctly into the destroot.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>DESTDIR=${destroot}</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.destdir    prefix=${destroot}${prefix}</programlisting>
+            </listitem>
+          </itemizedlist>
+
+          <note>
+            <para>If an application's Makefile properly supports the DESTDIR
+            variable, MacPorts will automatically destroot the port properly.
+            A port must destroot properly or the port will not install
+            correctly, upgrade, or uninstall. If not, you may need to set this
+            variable, or even patch the application's Makefile.</para>
+          </note>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.umask</term>
+
+        <listitem>
+          <para>Umask to use during destroot.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <literal>022</literal></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.umask      002</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.keepdirs</term>
+
+        <listitem>
+          <para>A list of directories that should not be removed if empty upon
+          destroot completion.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: ???</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.keepdirs   ${destroot}${prefix}/var/run \
+                    ${destroot}${prefix}/var/log \
+                    ${destroot}${prefix}/var/cache/mrtg</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>destroot.violate_mtree</term>
+
+        <listitem>
+          <para>MacPorts tests for compliance to the common directory
+          structure in <varname>${prefix}</varname>. If a port is not
+          compliant with the standard, set it to <option>yes</option>.</para>
+
+          <para>You can find the macports standard in <link
+          linkend="internals.hierarchy">MacPorts File Hierarchy</link> or in
+          the porthier(7) man page.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>destroot.violate_mtree      yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+</section>

Deleted: trunk/doc-new/guide/xml/portfile-startupitem.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-startupitem.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-startupitem.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,492 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.startupitems">
-  <title>StartupItems</title>
-
-  <para>A StartupItem is a MacPorts facility to run "daemons," a Unix term
-  for programs that run continuously in the background, rather than under
-  the direct control of a user; for example, mail servers, network
-  listeners, etc. Ports that use StartupItem keywords create Mac OS X
-  scripts for <ulink
-  url="http://developer.apple.com/macosx/launchd.html">launchd</ulink>,
-  which is the Apple facility introduced with Mac OS X 10.4 to replace xinetd
-  for starting and managing daemons. To support
-  <command>launchd</command>, a program named <command>daemondo</command>
-  is provided by MacPorts base that serves as an adapter between Mac OS X's
-  <command>launchd</command> and daemons (<quote>executable</quote>
-  StartupItems) or traditional Unix startup scripts that start daemons
-  (<quote>script</quote> StartupItems).</para>
-
-  <para>There are three categories of StartupItem keywords. Those that
-  trigger StartupItem creation and logging, those that specify attributes
-  of <quote>executable</quote> StartupItems, and those that specify
-  attributes of <quote>script</quote> StartupItems.</para>
-
-  <note>
-    <para>The variable <varname>startupitem_type</varname> in
-    <filename>${prefix}/etc/macports/macports.conf</filename> may be set to
-    <option>none</option> to globally override all StartupItem keywords
-    found in Portfiles; this prevents StartupItems from being
-    created.</para>
-  </note>
-
-  <section id="reference.startupitems.attributes">
-    <title>StartupItem Attributes</title>
-
-    <para>The keywords in this section may be used with either
-    <quote>executable</quote> or <quote>script</quote> StartupItems (see
-    below).</para>
-
-    <variablelist>
-      <varlistentry>
-        <term>startupitem.create</term>
-
-        <listitem>
-          <para>Trigger the creation of a StartupItem.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.create      yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.name</term>
-
-        <listitem>
-          <para>Sets the name for the StartupItem.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.name        OpenSSH</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.type</term>
-
-        <!-- TODO: check if this is still up to date -->
-
-        <listitem>
-          <para>Select the type of startupitem to generate. By default, a
-          startupitem will be generated that is of the appropriate type for
-          the OS. For instance, launchd is used on system 10.4, while
-          SystemStarter is used on prior Mac OS X systems. A global default
-          may be specified with the startupitem_type preference in
-          <filename>ports.conf</filename>.
-          </para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Values: <option>SystemStarter</option>
-              <option>launchd</option> <option>default</option>
-              <option>rcNG</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.type        launchd</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.logfile</term>
-
-        <listitem>
-          <para>Path to a logfile for logging events about the lifetime of
-          the StartupItem. Depending on the type of StartupItem, and the
-          manner in which it is started, standard output from the daemon
-          may also be directed to the logfile.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <filename>/dev/null</filename></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.logfile     ${prefix}/var/log/mydaemon.log</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.logevents</term>
-
-        <listitem>
-          <para>Control whether or not to log events to the log file. If
-          logevents is set, events with timestamps are logged to the
-          logfile.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.logevents   yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.netchange</term>
-
-        <listitem>
-          <para>Cause the daemon to be restarted when a change in network
-          state is detected.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.netchange   yes</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.startupitems.executable">
-    <title>Executable StartupItems</title>
-
-    <para>Daemons run continuously, so monitoring the health of daemon
-    processes and restarting them if they die is an important
-    StartupItems' feature. <quote>Executable</quote> StartupItems are
-    preferred over <quote>script</quote> StartupItems because
-    <command>daemondo</command> launches the daemon
-    <emphasis>directly</emphasis>, rather than
-    <emphasis>indirectly</emphasis> via a script, and therefore it
-    automatically knows how to monitor a daemon process and restart it if
-    it dies. Daemons used with <quote>executable</quote> StartupItems may
-    be programs or scripts (shell, perl, python, etc.), but when a script is
-    used the script <emphasis>itself</emphasis> must be the daemon, rather
-    than a script that launches a daemon. <quote>Script</quote> StartupItems
-    are to be used for the latter.</para>
-
-    <note>
-      <para>For a given port, the <quote>executable</quote> StartupItem
-      keyword may not be used with any keywords in the
-      <quote>script</quote> StartupItem category.</para>
-    </note>
-
-    <variablelist>
-      <varlistentry>
-        <term>startupitem.executable</term>
-
-        <listitem>
-          <para>Specifies the name of the daemon to be run in the
-          background. It may have multiple arguments, but they must be
-          appropriate for a call to exec; arbitrary shell code may not be
-          used.</para>
-
-          <itemizedlist>
-            <listitem>
-              <!-- TODO: is the default really no, not none? -->
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.executable  ${prefix}/sbin/vm-pop3d -d 10 -t 600</programlisting>
-            </listitem>
-          </itemizedlist>
-
-          <note>
-            <para>Do not to wrap the value in quotes if passing arguments
-            to the daemon; unlike with<quote>script</quote> StartupItem
-            values, executable StartupItem value elements must be tagged
-            separately as shown in this example .plist file
-            snippet.</para>
-
-            <programlisting><![CDATA[<key>ProgramArguments</key>
-<array>
-        <string>/opt/local/bin/daemondo</string>
-        <string>--label=vm-pop3d</string>
-        <string>--start-cmd</string>
-        <string>/opt/local/sbin/vm-pop3d</string>
-        <string>-d</string>
-        <string>10</string>
-        <string>-t</string>
-        <string>600</string>
-        <string>;</string>
-</array>]]></programlisting>
-            <!-- TODO: what is the meaning of this snippet here? -->
-          </note>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.startupitems.script">
-    <title>Script StartupItems</title>
-
-    <para>StartupItems of type <quote>script</quote> use
-    <command>daemondo</command> to launch a daemon
-    <emphasis>indirectly</emphasis> via a startup script. A typical
-    snippet of a startup script that may be used with a
-    <quote>script</quote> StartupItem is shown below. Notice that the
-    script is not a daemon; rather the script indirectly launches the
-    vm-pop3d daemon.</para>
-
-    <programlisting>#!/bin/sh
-
-case "$1" in
-    start)
-        echo -n "Starting vm-pop3d: "
-        /opt/local/sbin/vm-pop3d -d 10 -t 600
-
-[... trimmed ...]</programlisting>
-
-    <para>But if a script itself is a daemon, use the
-    <quote>executable</quote> StartupItem type since that way it will be
-    launched directly and its health tracked automatically. When using
-    <quote>script</quote> StartupItems, the
-    <code>startupitem.pidfile</code> keyword must be used if you want
-    <command>daemondo</command> to monitor a daemon process and restart it
-    if it dies.</para>
-
-    <note>
-      <para>For a given port, StartupItem keywords in category
-      <quote>script</quote> may not be used with an
-      <quote>executable</quote> StartupItem keyword.</para>
-    </note>
-
-    <variablelist>
-      <varlistentry>
-        <term>startupitem.start</term>
-
-        <term>startupitem.stop</term>
-
-        <term>startupitem.restart</term>
-
-        <listitem>
-          <para>Specify a shell script to start, stop, and restart the daemon.
-          In the absence of <code>startupitem.restart</code>, the daemon will
-          be restarted by taking the stop action, followed by the start
-          action.</para>
-
-          <itemizedlist>
-            <listitem>
-              <para>Default: none</para>
-            </listitem>
-
-            <listitem>
-              <para>Examples:</para>
-
-              <programlisting>startupitem.start       "${prefix}/share/mysql/mysql.server start"
-startupitem.stop        "${prefix}/share/mysql/mysql.server stop"
-startupitem.restart     "${prefix}/share/mysql/mysql.server restart"</programlisting>
-            </listitem>
-          </itemizedlist>
-
-          <note>
-            <para>Wrap the stop, start, and restart values in quotes so
-            they will be placed in the wrapper as a single command.</para>
-          </note>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.init</term>
-
-        <listitem>
-          <para>Shell code that will be executed prior to any of the
-          options <code>startupitem.start</code>,
-          <code>startupitem.stop</code> and
-          <code>startupitem.restart</code>.</para>
-
-          <itemizedlist>
-
-            <listitem>
-              <!-- TODO: is the default really no, not none? -->
-              <para>Default: <option>no</option></para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.init        BIN=${prefix}/sbin/bacula-fd</programlisting>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>startupitem.pidfile</term>
-
-        <listitem>
-          <para>This keyword must be defined properly for
-          <command>daemondo</command> to be able to monitor daemons
-          launched via <quote>script</quote> StartupItems and restart them
-          if they die. It specifies two things: a process id (PID) file
-          handling method, and a pidfile name and path.</para>
-
-          <itemizedlist>
-            <listitem>
-              <!-- TODO: this is the default value described in the old
-              portfile.7 man page -->
-              <para>Default: <literal>none
-              ${prefix}/var/run/${name}.pid</literal></para>
-              <!-- TODO: clarify the default value -->
-              <para>Default: [none] |
-              [<filename>${prefix}/var/run/${name}.pid</filename>]</para>
-            </listitem>
-
-            <listitem>
-              <!-- TODO: clarify this -->
-              <para>Values [none auto manual clean]
-              [<replaceable>/path/to/pidfile</replaceable>]</para>
-            </listitem>
-
-            <listitem>
-              <para>Example:</para>
-
-              <programlisting>startupitem.pidfile     auto ${prefix}/var/run/${name}.pidfile</programlisting>
-
-              <!-- TODO: add more examples here -->
-
-            </listitem>
-          </itemizedlist>
-
-          <para>PID file handling options:</para>
-
-          <itemizedlist>
-            <listitem>
-              <para><option>none</option> - daemondo will not create or
-              track a PID file, so it won't know when a daemon
-              dies.</para>
-            </listitem>
-
-            <listitem>
-              <para><option>auto</option> - The started process is
-              expected to create a PID file that contains the PID of the
-              running daemon; daemondo then reads the PID from the file
-              and tracks the process. The started process must delete the
-              PID file if this is necessary.</para>
-            </listitem>
-
-            <listitem>
-              <para><option>clean</option> - The started process is
-              expected to create a PID file that contains the PID of the
-              running daemon; daemondo then reads the PID from the file
-              and tracks the process, and deletes the PID file if it
-              detects the daemon has died.</para>
-            </listitem>
-
-            <listitem>
-              <para><option>manual</option> - This option should only be
-              used if an <quote>executable</quote> StartupItem could be
-              used (daemondo launches a daemon directly)
-              <emphasis>and</emphasis> a port author wants a PID file
-              written for some special use. A PID file is not needed to
-              detect process death for daemons launched directly by
-              daemondo. As with executable StartupItems, daemondo remembers
-              the PID of the launched process and tracks it
-              automatically.</para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
-
-  <section id="reference.startupitems.launchd">
-    <title>Loading / Unloading StartupItems into launchd</title>
-
-    <para>A port with a StartupItem places a link to a .plist file for the
-    port's daemon within <filename>/Library/LaunchDaemons/</filename>. A
-    .plist file is an XML file; MacPorts installs .plist files tagged as
-    <quote>disabled</quote> for the sake of security. You may enable a
-    startup script (tag the.plist file as <quote>enabled</quote>) and load
-    it into <command>launchd</command> with a single command as
-    shown.</para>
-
-    <programlisting><prompt>%%</prompt> <userinput>sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
-
-    <para>You may stop a running startup script, disable it (tag the.plist
-    file as <quote>disabled</quote>), and unload it from
-    <command>launchd</command> with a single command as shown.</para>
-
-    <programlisting><prompt>%%</prompt> <userinput>sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
-  </section>
-
-  <section id="reference.startupitems.internals">
-    <title>StartupItem Internals</title>
-
-    <para>During port installation a MacPorts StartupItem creates a .plist
-    file in <filename>${prefix}/etc/LaunchDaemons/</filename>, and places
-    a symbolic link to the .plist file within
-    <filename>/Library/LaunchDaemons/</filename>.</para>
-
-    <para>For example, the StartupItem for the mysql5 port is
-    <filename>org.macports.mysql5.plist</filename>, and it is linked as
-    shown.</para>
-
-    <programlisting><prompt>%%</prompt> <userinput>ls -l /Library/LaunchDaemons</userinput></programlisting>
-
-    <screen>org.macports.mysql5.plist -&gt;
-     /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist</screen>
-
-    <para>For <quote>script</quote> StartupItems, in addition to a .plist
-    file, a wrapper is also created.<programlisting><prompt>%%</prompt> <userinput>ls -l /opt/local/etc/LaunchDaemons/org.macports.mysql5/</userinput></programlisting><screen>-rwxr-xr-x   2 root  wheel  475 Aug  2 14:16 mysql5.wrapper
--rw-r--r--   2 root  wheel  975 Aug  2 14:16 org.macports.mysql5.plist</screen>The
-    wrapper manipulates the script as specified in the startupitem.start
-    and startupitem.stop keywords. An example wrapper script snippet is
-    shown below.</para>
-
-    <programlisting>#!/bin/sh
-
-# MacPorts generated daemondo support script
-
-# Start
-Start()
-{
-    /opt/local/share/mysql5/mysql/mysql.server start
-}
-
-# Stop
-Stop()
-{
-    /opt/local/share/mysql5/mysql/mysql.server stop
-}
-
-[... trimmed ...]</programlisting>
-  </section>
-</section>

Copied: trunk/doc-new/guide/xml/portfile-startupitem.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-startupitem.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-startupitem.xml	                        (rev 0)
+++ trunk/doc-new/guide/xml/portfile-startupitem.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,492 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.startupitems">
+  <title>StartupItems</title>
+
+  <para>A StartupItem is a MacPorts facility to run "daemons," a Unix term
+  for programs that run continuously in the background, rather than under
+  the direct control of a user; for example, mail servers, network
+  listeners, etc. Ports that use StartupItem keywords create Mac OS X
+  scripts for <ulink
+  url="http://developer.apple.com/macosx/launchd.html">launchd</ulink>,
+  which is the Apple facility introduced with Mac OS X 10.4 to replace xinetd
+  for starting and managing daemons. To support
+  <command>launchd</command>, a program named <command>daemondo</command>
+  is provided by MacPorts base that serves as an adapter between Mac OS X's
+  <command>launchd</command> and daemons (<quote>executable</quote>
+  StartupItems) or traditional Unix startup scripts that start daemons
+  (<quote>script</quote> StartupItems).</para>
+
+  <para>There are three categories of StartupItem keywords. Those that
+  trigger StartupItem creation and logging, those that specify attributes
+  of <quote>executable</quote> StartupItems, and those that specify
+  attributes of <quote>script</quote> StartupItems.</para>
+
+  <note>
+    <para>The variable <varname>startupitem_type</varname> in
+    <filename>${prefix}/etc/macports/macports.conf</filename> may be set to
+    <option>none</option> to globally override all StartupItem keywords
+    found in Portfiles; this prevents StartupItems from being
+    created.</para>
+  </note>
+
+  <section id="reference.startupitems.attributes">
+    <title>StartupItem Attributes</title>
+
+    <para>The keywords in this section may be used with either
+    <quote>executable</quote> or <quote>script</quote> StartupItems (see
+    below).</para>
+
+    <variablelist>
+      <varlistentry>
+        <term>startupitem.create</term>
+
+        <listitem>
+          <para>Trigger the creation of a StartupItem.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.create      yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.name</term>
+
+        <listitem>
+          <para>Sets the name for the StartupItem.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.name        OpenSSH</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.type</term>
+
+        <!-- TODO: check if this is still up to date -->
+
+        <listitem>
+          <para>Select the type of startupitem to generate. By default, a
+          startupitem will be generated that is of the appropriate type for
+          the OS. For instance, launchd is used on system 10.4, while
+          SystemStarter is used on prior Mac OS X systems. A global default
+          may be specified with the startupitem_type preference in
+          <filename>ports.conf</filename>.
+          </para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Values: <option>SystemStarter</option>
+              <option>launchd</option> <option>default</option>
+              <option>rcNG</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.type        launchd</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.logfile</term>
+
+        <listitem>
+          <para>Path to a logfile for logging events about the lifetime of
+          the StartupItem. Depending on the type of StartupItem, and the
+          manner in which it is started, standard output from the daemon
+          may also be directed to the logfile.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <filename>/dev/null</filename></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.logfile     ${prefix}/var/log/mydaemon.log</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.logevents</term>
+
+        <listitem>
+          <para>Control whether or not to log events to the log file. If
+          logevents is set, events with timestamps are logged to the
+          logfile.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.logevents   yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.netchange</term>
+
+        <listitem>
+          <para>Cause the daemon to be restarted when a change in network
+          state is detected.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.netchange   yes</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.startupitems.executable">
+    <title>Executable StartupItems</title>
+
+    <para>Daemons run continuously, so monitoring the health of daemon
+    processes and restarting them if they die is an important
+    StartupItems' feature. <quote>Executable</quote> StartupItems are
+    preferred over <quote>script</quote> StartupItems because
+    <command>daemondo</command> launches the daemon
+    <emphasis>directly</emphasis>, rather than
+    <emphasis>indirectly</emphasis> via a script, and therefore it
+    automatically knows how to monitor a daemon process and restart it if
+    it dies. Daemons used with <quote>executable</quote> StartupItems may
+    be programs or scripts (shell, perl, python, etc.), but when a script is
+    used the script <emphasis>itself</emphasis> must be the daemon, rather
+    than a script that launches a daemon. <quote>Script</quote> StartupItems
+    are to be used for the latter.</para>
+
+    <note>
+      <para>For a given port, the <quote>executable</quote> StartupItem
+      keyword may not be used with any keywords in the
+      <quote>script</quote> StartupItem category.</para>
+    </note>
+
+    <variablelist>
+      <varlistentry>
+        <term>startupitem.executable</term>
+
+        <listitem>
+          <para>Specifies the name of the daemon to be run in the
+          background. It may have multiple arguments, but they must be
+          appropriate for a call to exec; arbitrary shell code may not be
+          used.</para>
+
+          <itemizedlist>
+            <listitem>
+              <!-- TODO: is the default really no, not none? -->
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.executable  ${prefix}/sbin/vm-pop3d -d 10 -t 600</programlisting>
+            </listitem>
+          </itemizedlist>
+
+          <note>
+            <para>Do not to wrap the value in quotes if passing arguments
+            to the daemon; unlike with<quote>script</quote> StartupItem
+            values, executable StartupItem value elements must be tagged
+            separately as shown in this example .plist file
+            snippet.</para>
+
+            <programlisting><![CDATA[<key>ProgramArguments</key>
+<array>
+        <string>/opt/local/bin/daemondo</string>
+        <string>--label=vm-pop3d</string>
+        <string>--start-cmd</string>
+        <string>/opt/local/sbin/vm-pop3d</string>
+        <string>-d</string>
+        <string>10</string>
+        <string>-t</string>
+        <string>600</string>
+        <string>;</string>
+</array>]]></programlisting>
+            <!-- TODO: what is the meaning of this snippet here? -->
+          </note>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.startupitems.script">
+    <title>Script StartupItems</title>
+
+    <para>StartupItems of type <quote>script</quote> use
+    <command>daemondo</command> to launch a daemon
+    <emphasis>indirectly</emphasis> via a startup script. A typical
+    snippet of a startup script that may be used with a
+    <quote>script</quote> StartupItem is shown below. Notice that the
+    script is not a daemon; rather the script indirectly launches the
+    vm-pop3d daemon.</para>
+
+    <programlisting>#!/bin/sh
+
+case "$1" in
+    start)
+        echo -n "Starting vm-pop3d: "
+        /opt/local/sbin/vm-pop3d -d 10 -t 600
+
+[... trimmed ...]</programlisting>
+
+    <para>But if a script itself is a daemon, use the
+    <quote>executable</quote> StartupItem type since that way it will be
+    launched directly and its health tracked automatically. When using
+    <quote>script</quote> StartupItems, the
+    <code>startupitem.pidfile</code> keyword must be used if you want
+    <command>daemondo</command> to monitor a daemon process and restart it
+    if it dies.</para>
+
+    <note>
+      <para>For a given port, StartupItem keywords in category
+      <quote>script</quote> may not be used with an
+      <quote>executable</quote> StartupItem keyword.</para>
+    </note>
+
+    <variablelist>
+      <varlistentry>
+        <term>startupitem.start</term>
+
+        <term>startupitem.stop</term>
+
+        <term>startupitem.restart</term>
+
+        <listitem>
+          <para>Specify a shell script to start, stop, and restart the daemon.
+          In the absence of <code>startupitem.restart</code>, the daemon will
+          be restarted by taking the stop action, followed by the start
+          action.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Default: none</para>
+            </listitem>
+
+            <listitem>
+              <para>Examples:</para>
+
+              <programlisting>startupitem.start       "${prefix}/share/mysql/mysql.server start"
+startupitem.stop        "${prefix}/share/mysql/mysql.server stop"
+startupitem.restart     "${prefix}/share/mysql/mysql.server restart"</programlisting>
+            </listitem>
+          </itemizedlist>
+
+          <note>
+            <para>Wrap the stop, start, and restart values in quotes so
+            they will be placed in the wrapper as a single command.</para>
+          </note>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.init</term>
+
+        <listitem>
+          <para>Shell code that will be executed prior to any of the
+          options <code>startupitem.start</code>,
+          <code>startupitem.stop</code> and
+          <code>startupitem.restart</code>.</para>
+
+          <itemizedlist>
+
+            <listitem>
+              <!-- TODO: is the default really no, not none? -->
+              <para>Default: <option>no</option></para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.init        BIN=${prefix}/sbin/bacula-fd</programlisting>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>startupitem.pidfile</term>
+
+        <listitem>
+          <para>This keyword must be defined properly for
+          <command>daemondo</command> to be able to monitor daemons
+          launched via <quote>script</quote> StartupItems and restart them
+          if they die. It specifies two things: a process id (PID) file
+          handling method, and a pidfile name and path.</para>
+
+          <itemizedlist>
+            <listitem>
+              <!-- TODO: this is the default value described in the old
+              portfile.7 man page -->
+              <para>Default: <literal>none
+              ${prefix}/var/run/${name}.pid</literal></para>
+              <!-- TODO: clarify the default value -->
+              <para>Default: [none] |
+              [<filename>${prefix}/var/run/${name}.pid</filename>]</para>
+            </listitem>
+
+            <listitem>
+              <!-- TODO: clarify this -->
+              <para>Values [none auto manual clean]
+              [<replaceable>/path/to/pidfile</replaceable>]</para>
+            </listitem>
+
+            <listitem>
+              <para>Example:</para>
+
+              <programlisting>startupitem.pidfile     auto ${prefix}/var/run/${name}.pidfile</programlisting>
+
+              <!-- TODO: add more examples here -->
+
+            </listitem>
+          </itemizedlist>
+
+          <para>PID file handling options:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para><option>none</option> - daemondo will not create or
+              track a PID file, so it won't know when a daemon
+              dies.</para>
+            </listitem>
+
+            <listitem>
+              <para><option>auto</option> - The started process is
+              expected to create a PID file that contains the PID of the
+              running daemon; daemondo then reads the PID from the file
+              and tracks the process. The started process must delete the
+              PID file if this is necessary.</para>
+            </listitem>
+
+            <listitem>
+              <para><option>clean</option> - The started process is
+              expected to create a PID file that contains the PID of the
+              running daemon; daemondo then reads the PID from the file
+              and tracks the process, and deletes the PID file if it
+              detects the daemon has died.</para>
+            </listitem>
+
+            <listitem>
+              <para><option>manual</option> - This option should only be
+              used if an <quote>executable</quote> StartupItem could be
+              used (daemondo launches a daemon directly)
+              <emphasis>and</emphasis> a port author wants a PID file
+              written for some special use. A PID file is not needed to
+              detect process death for daemons launched directly by
+              daemondo. As with executable StartupItems, daemondo remembers
+              the PID of the launched process and tracks it
+              automatically.</para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+
+  <section id="reference.startupitems.launchd">
+    <title>Loading / Unloading StartupItems into launchd</title>
+
+    <para>A port with a StartupItem places a link to a .plist file for the
+    port's daemon within <filename>/Library/LaunchDaemons/</filename>. A
+    .plist file is an XML file; MacPorts installs .plist files tagged as
+    <quote>disabled</quote> for the sake of security. You may enable a
+    startup script (tag the.plist file as <quote>enabled</quote>) and load
+    it into <command>launchd</command> with a single command as
+    shown.</para>
+
+    <programlisting><prompt>%%</prompt> <userinput>sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
+
+    <para>You may stop a running startup script, disable it (tag the.plist
+    file as <quote>disabled</quote>), and unload it from
+    <command>launchd</command> with a single command as shown.</para>
+
+    <programlisting><prompt>%%</prompt> <userinput>sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist</userinput></programlisting>
+  </section>
+
+  <section id="reference.startupitems.internals">
+    <title>StartupItem Internals</title>
+
+    <para>During port installation a MacPorts StartupItem creates a .plist
+    file in <filename>${prefix}/etc/LaunchDaemons/</filename>, and places
+    a symbolic link to the .plist file within
+    <filename>/Library/LaunchDaemons/</filename>.</para>
+
+    <para>For example, the StartupItem for the mysql5 port is
+    <filename>org.macports.mysql5.plist</filename>, and it is linked as
+    shown.</para>
+
+    <programlisting><prompt>%%</prompt> <userinput>ls -l /Library/LaunchDaemons</userinput></programlisting>
+
+    <screen>org.macports.mysql5.plist -&gt;
+     /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist</screen>
+
+    <para>For <quote>script</quote> StartupItems, in addition to a .plist
+    file, a wrapper is also created.<programlisting><prompt>%%</prompt> <userinput>ls -l /opt/local/etc/LaunchDaemons/org.macports.mysql5/</userinput></programlisting><screen>-rwxr-xr-x   2 root  wheel  475 Aug  2 14:16 mysql5.wrapper
+-rw-r--r--   2 root  wheel  975 Aug  2 14:16 org.macports.mysql5.plist</screen>The
+    wrapper manipulates the script as specified in the startupitem.start
+    and startupitem.stop keywords. An example wrapper script snippet is
+    shown below.</para>
+
+    <programlisting>#!/bin/sh
+
+# MacPorts generated daemondo support script
+
+# Start
+Start()
+{
+    /opt/local/share/mysql5/mysql/mysql.server start
+}
+
+# Stop
+Stop()
+{
+    /opt/local/share/mysql5/mysql/mysql.server stop
+}
+
+[... trimmed ...]</programlisting>
+  </section>
+</section>

Deleted: trunk/doc-new/guide/xml/portfile-tcl.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-tcl.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-tcl.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,334 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.tcl-extensions">
-  <title>Tcl Extensions</title>
-
-  <para>A MacPorts Portfile is a Tcl script, so it may contain any arbitrary
-  Tcl code you may learn about in a <ulink
-  url="http://tmml.sourceforge.net/doc/tcl/">Tcl reference manual</ulink>.
-  However, few authors will use arbitrary Tcl code; the vast majority will use
-  Tcl extensions that are coded within MacPorts for performing the most common
-  tasks needed for Portfiles. The list below is a list of Tcl extensions
-  provided by MacPorts base.</para>
-
-  <variablelist>
-    <varlistentry>
-      <term>file</term>
-
-      <listitem>
-        <para>Description.</para>
-
-        <variablelist>
-          <varlistentry>
-            <term>file copy</term>
-
-            <listitem>
-              <para></para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>file move</term>
-
-            <listitem>
-              <para></para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>file rename</term>
-
-            <listitem>
-              <para></para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>file delete [-force]</term>
-
-            <listitem>
-              <para></para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>file mkdir</term>
-
-            <listitem>
-              <para></para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>macros</term>
-
-      <listitem>
-        <para>Description.</para>
-
-        <variablelist>
-          <varlistentry>
-            <term>copy</term>
-
-            <listitem>
-              <para>Shorthand alternative to "file copy".</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>move</term>
-
-            <listitem>
-              <para>Shorthand alternative to "file rename".</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term>delete file ...</term>
-
-            <listitem>
-              <para>Deletes each of the given files/directories. Behaves
-              similarly to file delete -force except that file delete
-              -force will fail to delete directories properly on 10.3
-              systems.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term>touch</term>
-
-            <listitem>
-              <para>Mimicks the BSD touch command.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term>ln</term>
-
-            <listitem>
-              <para>Mimickes the BSD ln command.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>xinstall</term>
-
-      <listitem>
-        <para>xinstall copies files and creates directories; it is
-        intended to be compatible with install(1).</para>
-
-        <variablelist>
-          <varlistentry>
-            <term>xinstall [-o <replaceable>owner</replaceable>] [-g
-            <replaceable>group</replaceable>] [-m
-            <replaceable>mode</replaceable>] [<replaceable>file1 file2
-            ...</replaceable>] <replaceable>directory</replaceable></term>
-
-            <listitem>
-              <para>Install the specified file(s) to a destination
-              directory.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>xinstall [-o <replaceable>owner</replaceable>] [-g
-            <replaceable>group</replaceable>] [-m
-            <replaceable>mode</replaceable>] [-W
-            <replaceable>dir</replaceable>] [<replaceable>file1 file2
-            ...</replaceable>] <replaceable>directory</replaceable></term>
-
-            <listitem>
-              <para>Change to <option>dir</option> and install file(s) to
-              a destination directory.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>eval xinstall [-o <replaceable>owner</replaceable>] [-g
-            <replaceable>group</replaceable>] [-m
-            <replaceable>mode</replaceable>] [glob
-            <replaceable>pattern</replaceable>]
-            <replaceable>directory</replaceable></term>
-
-            <listitem>
-              <para>Install the file(s) matching the glob pattern to a
-              destination directory.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>xinstall -d [-o <replaceable>owner</replaceable>] [-g
-            <replaceable>group</replaceable>] [-m
-            <replaceable>mode</replaceable>]
-            <replaceable>directory</replaceable></term>
-
-            <listitem>
-              <para>Create a directory.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <para>Defaults:</para>
-
-        <itemizedlist>
-          <listitem>
-            <para>owner -</para>
-          </listitem>
-
-          <listitem>
-            <para>group -</para>
-          </listitem>
-
-          <listitem>
-            <para>mode -</para>
-          </listitem>
-        </itemizedlist>
-
-        <para>Examples:</para>
-
-        <programlisting>xinstall -m 640 ${worksrcpath}/doc README \
-   ${destroot}${prefix}/share/doc/${name}</programlisting>
-
-        <programlisting>xinstall -m 640 -W ${worksrcpath}/doc README INSTALL COPY \
-   ${destroot}${prefix}/share/doc/${name}</programlisting>
-
-        <programlisting>eval xinstall -m 640 [glob ${worksrcpath}/doc/*] \
-   ${destroot}${prefix}/share/doc/${name}</programlisting>
-
-        <programlisting>xinstall -d ${destroot}${prefix}/share/doc/${name}</programlisting>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>reinplace</term>
-
-      <listitem>
-        <para>Description.</para>
-
-        <para>Examples:</para>
-
-        <programlisting>example 1</programlisting>
-
-        <programlisting>example 2</programlisting>
-
-        <programlisting>example 3</programlisting>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>user/group</term>
-
-      <listitem>
-        <para></para>
-
-        <variablelist>
-          <varlistentry>
-            <term>adduser username [uid=<replaceable>uid</replaceable>]
-            [gid=<replaceable>gid</replaceable>]
-            [passwd=<replaceable>passwd</replaceable>]
-            [realname=<replaceable>realname</replaceable>]
-            [home=<replaceable>home</replaceable>]
-            [shell=<replaceable>shell</replaceable>]</term>
-
-            <listitem>
-              <para>Add a new local user to the system with the specified
-              uid, gid, password, real name, home directory and login
-              shell.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>existsuser <replaceable>username</replaceable></term>
-
-            <listitem>
-              <para>Check if a local user exists.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>nextuid</term>
-
-            <listitem>
-              <para>Returns the highest used uid plus one.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>addgroup <replaceable>group</replaceable>
-            [gid=<replaceable>gid</replaceable>]
-            [passwd=<replaceable>passwd</replaceable>]
-            [realname=<replaceable>realname</replaceable>]
-            [users=<replaceable>users</replaceable>]</term>
-
-            <listitem>
-              <para>Add a new local group to the system, with the
-              specified gid, password, real name, and with a list users as
-              members.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>existsgroup <replaceable>group</replaceable></term>
-
-            <listitem>
-              <para>Check if a local group exists and return the
-              corresponding gid. This can be used with adduser:</para>
-
-              <programlisting>addgroup foo
-adduser foo gid=[existsgroup foo]</programlisting>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-
-        <variablelist>
-          <varlistentry>
-            <term>nextgid</term>
-
-            <listitem>
-              <para>Returns the highest used gid plus one.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>External program execution</term>
-
-      <listitem>
-        <para>Use only when ....</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</section>

Copied: trunk/doc-new/guide/xml/portfile-tcl.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-tcl.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-tcl.xml	                        (rev 0)
+++ trunk/doc-new/guide/xml/portfile-tcl.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.tcl-extensions">
+  <title>Tcl Extensions</title>
+
+  <para>A MacPorts Portfile is a Tcl script, so it may contain any arbitrary
+  Tcl code you may learn about in a <ulink
+  url="http://tmml.sourceforge.net/doc/tcl/">Tcl reference manual</ulink>.
+  However, few authors will use arbitrary Tcl code; the vast majority will use
+  Tcl extensions that are coded within MacPorts for performing the most common
+  tasks needed for Portfiles. The list below is a list of Tcl extensions
+  provided by MacPorts base.</para>
+
+  <variablelist>
+    <varlistentry>
+      <term>file</term>
+
+      <listitem>
+        <para>Description.</para>
+
+        <variablelist>
+          <varlistentry>
+            <term>file copy</term>
+
+            <listitem>
+              <para></para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>file move</term>
+
+            <listitem>
+              <para></para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>file rename</term>
+
+            <listitem>
+              <para></para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>file delete [-force]</term>
+
+            <listitem>
+              <para></para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>file mkdir</term>
+
+            <listitem>
+              <para></para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>macros</term>
+
+      <listitem>
+        <para>Description.</para>
+
+        <variablelist>
+          <varlistentry>
+            <term>copy</term>
+
+            <listitem>
+              <para>Shorthand alternative to "file copy".</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>move</term>
+
+            <listitem>
+              <para>Shorthand alternative to "file rename".</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>delete file ...</term>
+
+            <listitem>
+              <para>Deletes each of the given files/directories. Behaves
+              similarly to file delete -force except that file delete
+              -force will fail to delete directories properly on 10.3
+              systems.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>touch</term>
+
+            <listitem>
+              <para>Mimicks the BSD touch command.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>ln</term>
+
+            <listitem>
+              <para>Mimickes the BSD ln command.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>xinstall</term>
+
+      <listitem>
+        <para>xinstall copies files and creates directories; it is
+        intended to be compatible with install(1).</para>
+
+        <variablelist>
+          <varlistentry>
+            <term>xinstall [-o <replaceable>owner</replaceable>] [-g
+            <replaceable>group</replaceable>] [-m
+            <replaceable>mode</replaceable>] [<replaceable>file1 file2
+            ...</replaceable>] <replaceable>directory</replaceable></term>
+
+            <listitem>
+              <para>Install the specified file(s) to a destination
+              directory.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>xinstall [-o <replaceable>owner</replaceable>] [-g
+            <replaceable>group</replaceable>] [-m
+            <replaceable>mode</replaceable>] [-W
+            <replaceable>dir</replaceable>] [<replaceable>file1 file2
+            ...</replaceable>] <replaceable>directory</replaceable></term>
+
+            <listitem>
+              <para>Change to <option>dir</option> and install file(s) to
+              a destination directory.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>eval xinstall [-o <replaceable>owner</replaceable>] [-g
+            <replaceable>group</replaceable>] [-m
+            <replaceable>mode</replaceable>] [glob
+            <replaceable>pattern</replaceable>]
+            <replaceable>directory</replaceable></term>
+
+            <listitem>
+              <para>Install the file(s) matching the glob pattern to a
+              destination directory.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>xinstall -d [-o <replaceable>owner</replaceable>] [-g
+            <replaceable>group</replaceable>] [-m
+            <replaceable>mode</replaceable>]
+            <replaceable>directory</replaceable></term>
+
+            <listitem>
+              <para>Create a directory.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <para>Defaults:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>owner -</para>
+          </listitem>
+
+          <listitem>
+            <para>group -</para>
+          </listitem>
+
+          <listitem>
+            <para>mode -</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>Examples:</para>
+
+        <programlisting>xinstall -m 640 ${worksrcpath}/doc README \
+   ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+        <programlisting>xinstall -m 640 -W ${worksrcpath}/doc README INSTALL COPY \
+   ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+        <programlisting>eval xinstall -m 640 [glob ${worksrcpath}/doc/*] \
+   ${destroot}${prefix}/share/doc/${name}</programlisting>
+
+        <programlisting>xinstall -d ${destroot}${prefix}/share/doc/${name}</programlisting>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>reinplace</term>
+
+      <listitem>
+        <para>Description.</para>
+
+        <para>Examples:</para>
+
+        <programlisting>example 1</programlisting>
+
+        <programlisting>example 2</programlisting>
+
+        <programlisting>example 3</programlisting>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>user/group</term>
+
+      <listitem>
+        <para></para>
+
+        <variablelist>
+          <varlistentry>
+            <term>adduser username [uid=<replaceable>uid</replaceable>]
+            [gid=<replaceable>gid</replaceable>]
+            [passwd=<replaceable>passwd</replaceable>]
+            [realname=<replaceable>realname</replaceable>]
+            [home=<replaceable>home</replaceable>]
+            [shell=<replaceable>shell</replaceable>]</term>
+
+            <listitem>
+              <para>Add a new local user to the system with the specified
+              uid, gid, password, real name, home directory and login
+              shell.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>existsuser <replaceable>username</replaceable></term>
+
+            <listitem>
+              <para>Check if a local user exists.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>nextuid</term>
+
+            <listitem>
+              <para>Returns the highest used uid plus one.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>addgroup <replaceable>group</replaceable>
+            [gid=<replaceable>gid</replaceable>]
+            [passwd=<replaceable>passwd</replaceable>]
+            [realname=<replaceable>realname</replaceable>]
+            [users=<replaceable>users</replaceable>]</term>
+
+            <listitem>
+              <para>Add a new local group to the system, with the
+              specified gid, password, real name, and with a list users as
+              members.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>existsgroup <replaceable>group</replaceable></term>
+
+            <listitem>
+              <para>Check if a local group exists and return the
+              corresponding gid. This can be used with adduser:</para>
+
+              <programlisting>addgroup foo
+adduser foo gid=[existsgroup foo]</programlisting>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+
+        <variablelist>
+          <varlistentry>
+            <term>nextgid</term>
+
+            <listitem>
+              <para>Returns the highest used gid plus one.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>External program execution</term>
+
+      <listitem>
+        <para>Use only when ....</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</section>

Deleted: trunk/doc-new/guide/xml/portfile-variables.7.xml
===================================================================
--- trunk/doc-new/guide/xml/portfile-variables.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfile-variables.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<section id="reference.variables">
-  <title>Global Variables</title>
-
-  <para>Global variables are variables available to any Portfile. For a list
-  of additional variables available to ports that are assigned to a MacPorts
-  Portgroup, see portgroup(7).</para>
-  <para>All of these variables except <varname>prefix</varname> are
-  read-only!</para>
-
-  <variablelist>
-    <varlistentry>
-      <term>prefix</term>
-
-      <listitem>
-        <para>Installation prefix, set in
-        <filename>${prefix}/etc/macports/macports.conf</filename> —may be
-        overridden on a per port basis. For example, aqua applications are
-        installed in <filename>/Applications/MacPorts</filename>.</para>
-
-        <para>Default: <filename>/opt/local</filename></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>binpath</term>
-
-      <listitem>
-        <para>Default PATH to use in finding executables.</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>libpath</term>
-
-      <listitem>
-        <para>Path to the MacPorts TCL libraries.</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>portpath</term>
-
-      <listitem>
-        <para>Full path to the Portfile location.</para>
-
-        <para>Value: <literal>work</literal></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>filesdir</term>
-
-      <listitem>
-        <para>Path to port files relative to
-        <varname>${portpath}</varname>.</para>
-
-        <para>Value: <literal>files</literal></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>filespath</term>
-
-      <listitem>
-        <para>Path to port files relative to
-        <varname>${portpath}</varname>.</para>
-
-        <para>Value: <varname>${portpath}/${filesdir}</varname></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>workpath</term>
-
-      <listitem>
-        <para>Full path to work directory.</para>
-
-        <!-- TODO: what is ${portbuildpath}? -->
-
-        <para>Value: <varname>${portbuildpath}/work</varname></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>worksrcpath</term>
-
-      <listitem>
-        <para>Full path to extracted source code.</para>
-
-        <para>Value: <varname>${workpath}/${worksrcdir}</varname></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>destroot</term>
-
-      <listitem>
-        <para>Full path into which software will be destrooted.</para>
-
-        <para>Value: <varname>${workpath}/destroot</varname></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>distpath</term>
-
-      <listitem>
-        <para>Location to store downloaded distfiles.</para>
-
-        <!-- TODO: which value have the variables? -->
-
-        <para>Value: <varname>${sysportpath}/distfiles/${dist_subdir}/</varname></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>install.user</term>
-
-      <listitem>
-        <para>The Unix user at the time of port installation.</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>install.group</term>
-
-      <listitem>
-        <para>The Unix group at the time of port installation.</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>os.platform</term>
-
-      <listitem>
-        <para>Identifies platform type (ie "darwin", "freebsd",
-        etc).</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>os.arch</term>
-
-      <listitem>
-        <para>Identifies hardware type (ie "powerpc", "intel").</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>os.version</term>
-
-      <listitem>
-        <para>The version number of the host operating system (ie "8.0" for
-        Darwin 8.0).</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>os.endian</term>
-
-      <listitem>
-        <para>Endianness of the processor (ie "bigEndian").</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>os.major</term>
-
-      <listitem>
-        <para>The major version number of the host operating system (ie "8"
-        for Darwin 8.0).</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term>x11prefix</term>
-
-      <listitem>
-        <para>Absolute path to X11.</para>
-      </listitem>
-    </varlistentry>
-
-  </variablelist>
-</section>

Copied: trunk/doc-new/guide/xml/portfile-variables.xml (from rev 32048, trunk/doc-new/guide/xml/portfile-variables.7.xml)
===================================================================
--- trunk/doc-new/guide/xml/portfile-variables.xml	                        (rev 0)
+++ trunk/doc-new/guide/xml/portfile-variables.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<section id="reference.variables">
+  <title>Global Variables</title>
+
+  <para>Global variables are variables available to any Portfile. For a list
+  of additional variables available to ports that are assigned to a MacPorts
+  Portgroup, see portgroup(7).</para>
+  <para>All of these variables except <varname>prefix</varname> are
+  read-only!</para>
+
+  <variablelist>
+    <varlistentry>
+      <term>prefix</term>
+
+      <listitem>
+        <para>Installation prefix, set in
+        <filename>${prefix}/etc/macports/macports.conf</filename> —may be
+        overridden on a per port basis. For example, aqua applications are
+        installed in <filename>/Applications/MacPorts</filename>.</para>
+
+        <para>Default: <filename>/opt/local</filename></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>binpath</term>
+
+      <listitem>
+        <para>Default PATH to use in finding executables.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>libpath</term>
+
+      <listitem>
+        <para>Path to the MacPorts TCL libraries.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>portpath</term>
+
+      <listitem>
+        <para>Full path to the Portfile location.</para>
+
+        <para>Value: <literal>work</literal></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>filesdir</term>
+
+      <listitem>
+        <para>Path to port files relative to
+        <varname>${portpath}</varname>.</para>
+
+        <para>Value: <literal>files</literal></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>filespath</term>
+
+      <listitem>
+        <para>Path to port files relative to
+        <varname>${portpath}</varname>.</para>
+
+        <para>Value: <varname>${portpath}/${filesdir}</varname></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>workpath</term>
+
+      <listitem>
+        <para>Full path to work directory.</para>
+
+        <!-- TODO: what is ${portbuildpath}? -->
+
+        <para>Value: <varname>${portbuildpath}/work</varname></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>worksrcpath</term>
+
+      <listitem>
+        <para>Full path to extracted source code.</para>
+
+        <para>Value: <varname>${workpath}/${worksrcdir}</varname></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>destroot</term>
+
+      <listitem>
+        <para>Full path into which software will be destrooted.</para>
+
+        <para>Value: <varname>${workpath}/destroot</varname></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>distpath</term>
+
+      <listitem>
+        <para>Location to store downloaded distfiles.</para>
+
+        <!-- TODO: which value have the variables? -->
+
+        <para>Value: <varname>${sysportpath}/distfiles/${dist_subdir}/</varname></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>install.user</term>
+
+      <listitem>
+        <para>The Unix user at the time of port installation.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>install.group</term>
+
+      <listitem>
+        <para>The Unix group at the time of port installation.</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>os.platform</term>
+
+      <listitem>
+        <para>Identifies platform type (ie "darwin", "freebsd",
+        etc).</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>os.arch</term>
+
+      <listitem>
+        <para>Identifies hardware type (ie "powerpc", "intel").</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>os.version</term>
+
+      <listitem>
+        <para>The version number of the host operating system (ie "8.0" for
+        Darwin 8.0).</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>os.endian</term>
+
+      <listitem>
+        <para>Endianness of the processor (ie "bigEndian").</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>os.major</term>
+
+      <listitem>
+        <para>The major version number of the host operating system (ie "8"
+        for Darwin 8.0).</para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
+      <term>x11prefix</term>
+
+      <listitem>
+        <para>Absolute path to X11.</para>
+      </listitem>
+    </varlistentry>
+
+  </variablelist>
+</section>

Modified: trunk/doc-new/guide/xml/portfileref.xml
===================================================================
--- trunk/doc-new/guide/xml/portfileref.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/guide/xml/portfileref.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -8,19 +8,19 @@
   Portfile: port phases, dependencies, StartupItems, variables, keywords, and
   Tcl extensions.</para>
 
-  <xi:include href="portfile-variables.7.xml"
+  <xi:include href="portfile-variables.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="portfile-keywords.7.xml"
+  <xi:include href="portfile-keywords.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="portfile-phase.7.xml"
+  <xi:include href="portfile-phase.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="portfile-startupitem.7.xml"
+  <xi:include href="portfile-startupitem.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="portfile-tcl.7.xml"
+  <xi:include href="portfile-tcl.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
   <section id="reference.portgroup">

Modified: trunk/doc-new/man/xml/portfile.7.xml
===================================================================
--- trunk/doc-new/man/xml/portfile.7.xml	2007-12-14 14:49:31 UTC (rev 32048)
+++ trunk/doc-new/man/xml/portfile.7.xml	2007-12-14 15:04:49 UTC (rev 32049)
@@ -27,19 +27,19 @@
     characteristics for a port.</para>
   </refsection>
 
-  <xi:include href="../tmp/portfile-variables.7.xml"
+  <xi:include href="../tmp/portfile-variables.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="../tmp/portfile-keywords.7.xml"
+  <xi:include href="../tmp/portfile-keywords.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="../tmp/portfile-phase.7.xml"
+  <xi:include href="../tmp/portfile-phase.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="../tmp/portfile-startupitem.7.xml"
+  <xi:include href="../tmp/portfile-startupitem.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-  <xi:include href="../tmp/portfile-tcl.7.xml"
+  <xi:include href="../tmp/portfile-tcl.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
   <refsection>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071214/34c68412/attachment-0001.html


More information about the macports-changes mailing list