Index: /trunk/base/Mk/macports.autoconf.mk.in
===================================================================
--- /trunk/base/Mk/macports.autoconf.mk.in	(revision 123001)
+++ /trunk/base/Mk/macports.autoconf.mk.in	(revision 123002)
@@ -71,3 +71,5 @@
 portsdir		= @PORTSDIR@
 
+MACPORTS_VERSION	= @MACPORTS_VERSION@
+
 SILENT			= @
Index: /trunk/base/configure
===================================================================
--- /trunk/base/configure	(revision 123001)
+++ /trunk/base/configure	(revision 123002)
@@ -728,4 +728,5 @@
 MDLS
 MDFIND
+MAN
 MAKE
 LZMA
@@ -5179,4 +5180,44 @@
 
 
+# Extract the first word of "man", so it can be a program name with args.
+set dummy man; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MAN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MAN="$MAN" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MAN="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MAN=$ac_cv_path_MAN
+if test -n "$MAN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAN" >&5
+$as_echo "$MAN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of "mdfind", so it can be a program name with args.
 set dummy mdfind; ac_word=$2
@@ -6061,5 +6102,4 @@
 $as_echo "no" >&6; }
 fi
-
 
 
Index: /trunk/base/configure.ac
===================================================================
--- /trunk/base/configure.ac	(revision 123001)
+++ /trunk/base/configure.ac	(revision 123002)
@@ -146,4 +146,5 @@
 AC_PATH_PROG(LZMA, [lzma], [])
 AC_PATH_PROG(MAKE, [make])
+AC_PATH_PROG(MAN, [man])
 AC_PATH_PROG(MDFIND, [mdfind], [])
 AC_PATH_PROG(MDLS, [mdls], [])
@@ -169,5 +170,4 @@
 
 AC_CHECK_PROG(HAVE_LAUNCHD, [launchd], [yes], [], [/sbin])
-
 
 if test "x$MTREE" = "x"; then
Index: /trunk/base/doc/Makefile.in
===================================================================
--- /trunk/base/doc/Makefile.in	(revision 123001)
+++ /trunk/base/doc/Makefile.in	(revision 123002)
@@ -2,8 +2,43 @@
 VPATH  = @srcdir@
 
-MAN1=		port.1
+# If this is a selfupdate, we never want to run any tools from the target
+# prefix (could be broken or wrong architecture), otherwise try to use the
+# tools from the target prefix for generating man pages if they exist
+ifeq ($(SELFUPDATING),1)
+ASCIIDOC=
+XSLTPROC=
+else
+ASCIIDOC=	$(wildcard ${prefix}/bin/asciidoc)
+XSLTPROC=	$(wildcard ${prefix}/bin/xsltproc)
+endif
+
+ASCIIDOCFLAGS=	-f asciidoc.conf -a manversion=${MACPORTS_VERSION}
+XSLTFLAGS=	-nonet
+
+MAN1=		port.1 \
+		port-activate.1 \
+		port-build.1 \
+		port-checksum.1 \
+		port-configure.1 \
+		port-deactivate.1 \
+		port-destroot.1 \
+		port-edit.1 \
+		port-extract.1 \
+		port-fetch.1 \
+		port-install.1 \
+		port-patch.1 \
+		port-uninstall.1
 MAN5=		macports.conf.5
-MAN7=		portfile.7 portstyle.7 porthier.7 portgroup.7
-CONF=       archive_sites.conf macports.conf pubkeys.conf sources.conf variants.conf
+MAN7=		portfile.7 portstyle.7 porthier.7 portgroup.7 portundocumented.7
+MAN=		${MAN1} ${MAN5} ${MAN7}
+
+# Filter man pages with existing source files
+MANTXT=		$(wildcard ${MAN:%=%.txt})
+# Only those can be transformed into XML
+MANXML=		${MANTXT:.txt=.xml}
+# HTML version for all man pages
+MANHTML=	${MAN:%=%.html}
+
+CONF=       	archive_sites.conf macports.conf pubkeys.conf sources.conf variants.conf
 INSTALLDIR=	${DESTDIR}${prefix}
 TOPSRCDIR=	..
@@ -13,8 +48,26 @@
 endif
 
-all: ${MAN1:.1=.1.gz} ${MAN5:.5=.5.gz} ${MAN7:.7=.7.gz}
+all: man
+
+# Update "include::" dependencies
+.dep: $(wildcard *.txt) asciidoc-deps.tcl
+	$(INTREE_TCLSH) ./asciidoc-deps.tcl *.txt > $@
+
+-include .dep
+
+.PHONY: man xml html
+
+man: ${MAN} ${MAN:%=%.gz}
+
+xml: ${MANXML}
+
+html: ${MANHTML}
 
 clean:
+	rm -f ${MANTXT:%.txt=%.gz}
+	rm -f ${MANTXT:%.txt=%.html}
+	rm -f ${MANTXT:%.txt=%.xml}
 	rm -f *.{1,5,7}.gz
+	rm -f .dep
 
 test:
@@ -32,4 +85,33 @@
 %.7.gz: %.7
 	gzip -c $^ > $@
+
+%: %.soelim
+	ln -f $< $@
+
+%.html: %.soelim
+	ln -sf $(shell basename $$(awk '{print $$2}' < $<)).html $@
+
+# Define these rules only if both asciidoc and xsltproc are available
+ifneq ($(ASCIIDOC)$(XSLTPROC),)
+%: %.xml manpage.xsl
+	$(XSLTPROC) $(XSLTFLAGS) manpage.xsl $<
+
+%.xml: %.txt asciidoc.conf
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.html: %.txt asciidoc.conf
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b xhtml11 $<
+else
+man: ${MAN} ${MAN:%=%.gz}
+	@echo "* Warning: Using pre-generated man pages only."
+	@echo "* asciidoc and xsltproc are required to generate man pages from source."
+
+%.xml %.html: | %.txt
+	@echo "* In order to modify and generate output from these source files,"
+	@echo "* please install asciidoc and xsltproc or use"
+	@echo "*   $(MAKE) ASCIIDOC=.../bin/asciidoc XSLTPROC=../bin/xsltproc"
+	@echo "* with appropriate paths."
+	@exit 1
+endif
 
 install: all
@@ -64,8 +146,6 @@
 	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 644 prefix.mtree "${INSTALLDIR}/share/macports/install/"
 	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 644 macosx.mtree "${INSTALLDIR}/share/macports/install/"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 port.1.gz "${INSTALLDIR}/share/man/man1"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 macports.conf.5.gz "${INSTALLDIR}/share/man/man5"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 portfile.7.gz "${INSTALLDIR}/share/man/man7"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 portstyle.7.gz "${INSTALLDIR}/share/man/man7"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 porthier.7.gz "${INSTALLDIR}/share/man/man7"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 portgroup.7.gz "${INSTALLDIR}/share/man/man7"
+
+	for page in ${MAN1} ${MAN5} ${MAN7}; do \
+		$(INSTALL) -o "${DSTUSR}" -g "${DSTGRP}" -m 444 "$${page}.gz" "${INSTALLDIR}/share/man/man$$(echo $$page | sed -e 's/.*\.//')"; \
+	done
Index: /trunk/base/doc/TODO
===================================================================
--- /trunk/base/doc/TODO	(revision 123002)
+++ /trunk/base/doc/TODO	(revision 123002)
@@ -0,0 +1,8 @@
+TODO:
+
+    - [options="compact"] not supported by docbook for manpage output
+    - split global-options.txt into macro which allows display selection
+
+Missing new man pages:
+
+    - portarchives(7)
Index: /trunk/base/doc/archives.txt
===================================================================
--- /trunk/base/doc/archives.txt	(revision 123002)
+++ /trunk/base/doc/archives.txt	(revision 123002)
@@ -0,0 +1,13 @@
+PORT IMAGES
+-----------
+
+MacPorts has the ability to install multiple versions or different variant
+selections of the same port. The files will be stored in an intermediate
+location as 'archives', which allows to switch between the versions. Only one
+version can be active at a time. On activation, files will be copied to their
+intended place in 'prefix'.
+
+More information on this topic can be found in the
+guide:internals.images[The MacPorts Guide].
+
+To check the current status of a specific port, use *man:port-installed[1]*.
Index: /trunk/base/doc/asciidoc-deps.tcl
===================================================================
--- /trunk/base/doc/asciidoc-deps.tcl	(revision 123002)
+++ /trunk/base/doc/asciidoc-deps.tcl	(revision 123002)
@@ -0,0 +1,35 @@
+#!/usr/bin/env tclsh
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
+
+if {[llength $::argv] == 0} {
+    puts "Usage: ${::argv0} <*.txt>"
+    exit 1
+}
+
+# Dependency storage
+array set deps {}
+
+# Gather includes
+foreach file $::argv {
+    if {![file exists $file]} {
+        continue
+    }
+    set fd [open "$file" r]
+    set cont [read $fd]
+    close $fd
+    set deplst [regexp -all -inline -- {include::([^\[]*)\[\]} $cont]
+    if {[llength $deplst] > 0} {
+        set deps($file) $deplst
+    }
+}
+
+# Output
+foreach {file deplst} [array get deps] {
+    puts -nonewline "[file rootname $file].xml [file rootname $file].html:"
+    foreach {match dep} $deplst {
+        puts -nonewline " $dep"
+    }
+    puts ""
+}
+
+exit 0
Index: /trunk/base/doc/asciidoc.conf
===================================================================
--- /trunk/base/doc/asciidoc.conf	(revision 123002)
+++ /trunk/base/doc/asciidoc.conf	(revision 123002)
@@ -0,0 +1,45 @@
+[attributes]
+mansource=MacPorts
+#manversion is in the Makefile
+manmanual=MacPorts Manual
+guideurl=http://guide.macports.org/
+wikiurl=https://trac.macports.org/wiki/
+
+## man: macro
+#
+# Usage: man:command[manpage-section]
+#
+# Note, {0} is the manpage section, while {target} is the command.
+#
+# Show link as: <command>(<section>); if section is defined, else just show
+# the command.
+
+[macros]
+(?su)[\\]?(?P<name>man):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
+(?su)[\\]?(?P<name>guide):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
+(?su)[\\]?(?P<name>wiki):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
+
+# man: and guide: for docbook
+ifdef::backend-docbook[]
+[man-inlinemacro]
+<citerefentry>
+    <refentrytitle>{target}</refentrytitle>{0?<manvolnum>{0}</manvolnum>}
+</citerefentry>
+[guide-inlinemacro]
+<ulink url="{guideurl}#{target}">{0={guideurl}{target}}</ulink>
+[wiki-inlinemacro]
+<ulink url="{wikiurl}{target}">{0={target}}</ulink>
+endif::backend-docbook[]
+
+# man: and guide: for xhtml11
+ifdef::backend-xhtml11[]
+[man-inlinemacro]
+<a href="{target}{0?.{0}}.html">{target}{0?({0})}</a>
+[guide-inlinemacro]
+<a href="{guideurl}#{target}">{0={guideurl}{target}}</a>
+[wiki-inlinemacro]
+<a href="{wikiurl}{target}">{0={target}}</a>
+endif::backend-xhtml11[]
+
+[paradef-default]
+cmdsynopsis-style=template="verseparagraph"
Index: /trunk/base/doc/global-flags.txt
===================================================================
--- /trunk/base/doc/global-flags.txt	(revision 123002)
+++ /trunk/base/doc/global-flags.txt	(revision 123002)
@@ -0,0 +1,8 @@
+// $Id$
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+
+GLOBAL OPTIONS
+--------------
+
+Please see the section *GLOBAL OPTIONS* in the man:port[1] man page for a
+description of global port options.
Index: /trunk/base/doc/macports.conf.5
===================================================================
--- /trunk/base/doc/macports.conf.5	(revision 123001)
+++ /trunk/base/doc/macports.conf.5	(revision 123002)
@@ -1,318 +1,683 @@
-.\" Copyright (c) 2005 Matt Anton <matt@opendarwin.org>
-.\" Copyright (c) 2007 Juan Manuel Palacios <jmpp@macports.org>
-.\" Copyright (c) 2007-2011 The MacPorts Project
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY Eric Melville AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd May 22, 2007
-.Dt MACPORTS.CONF 5 "MacPorts"
-.Os 
-.Sh NAME
-macports.conf
-.Nd Configuration file of the MacPorts system
-.Sh DESCRIPTION
-.Nm macports.conf
-is the configuration file used to bootstrap the MacPorts system. This file is read by the
-.Nm port
-command and determines how it behaves. Lines beginning with '#' are comments, empty lines are ignored.
-The format is that of a simple key/value space or tab separated pair.
-.Pp
+'\" t
+.TH "MACPORTS\&.CONF" "5" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+macports.conf \- Configuration file of the MacPorts system
+.SH "DESCRIPTION"
+.sp
+\fBmacports\&.conf\fR is the configuration file used to bootstrap the MacPorts system\&. This file is read by the \fBport\fR command and determines how it behaves\&. Lines beginning with \fI#\fR are comments, empty lines are ignored\&. The format is that of a simple key/value space or tab separated pair\&.
+.sp
 The file contains entries of the form:
-.Pp
-.Dl Va "<key> <value>"
-.Pp
-The value of any given key can be referred to by the '${<keyname>}' abstraction, where <keyname> expands
-to the key in question.
-.Pp
-.Sh KEYS
-The following keys are used by
-.Nm port
-itself:
-.Pp
-.Bl -tag -width lc
-.It Va prefix
-Sets the directory where ports are installed. Any path may be used but those with spaces and/or non ascii
-characters should be avoided, as this can break some ports. This key is often referred to as '${prefix}'.
-.br
-.Ic Default:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+<key> <value>
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The value of any given key can be referred to by the \fI${<keyname>}\fR abstraction, where \fI<keyname>\fR expands to the key in question\&.
+.SH "KEYS"
+.sp
+The following keys are used by \fBport\fR itself:
+.PP
+prefix
+.RS 4
+Sets the directory where ports are installed\&. Any path may be used but those with spaces and/or non ascii characters should be avoided, as this can break some ports\&. This key is often referred to as
+\fI${prefix}\fR\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 /opt/local
-.It Va portdbpath
-Directory where MacPorts keeps working data such as downloaded sources, installed ports' receipts
-and the main registry. The same path restrictions apply as for '${prefix}'.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+portdbpath
+.RS 4
+Directory where MacPorts keeps working data such as downloaded sources, installed ports\*(Aq receipts and the main registry\&. The same path restrictions apply as for
+\fI${prefix}\fR\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 ${prefix}/var/macports
-.It Va portdbformat
-Storage type to use for the MacPorts registry. The preferred format is "sqlite", with "flat"
-also available as a legacy format.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+portdbformat
+.RS 4
+Storage type to use for the MacPorts registry\&. The preferred format is "sqlite", with "flat" also available as a legacy format\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 sqlite
-.It Va applications_dir
-Directory containing Applications installed from ports.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+applications_dir
+.RS 4
+Directory containing Applications installed from ports\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 /Applications/MacPorts
-.It Va frameworks_dir
-Directory containing Frameworks installed from ports.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+frameworks_dir
+.RS 4
+Directory containing Frameworks installed from ports\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 ${prefix}/Library/Frameworks
-.It Va sources_conf
-Location of the sources file. This file enables rsync synchronization of the default ports tree with the
-MacPorts rsync server (through the "sync" target of the
-.Nm port
-command) and any other local tree(s) you might have.
-.br
-.Ic Default:
-${prefix}/etc/macports/sources.conf
-.It Va variants_conf
-Location of the optional global variants definition file, listing those that should be used in all installed
-ports if available.
-.br
-.Ic Default:
-${prefix}/etc/macports/variants.conf
-.It Va buildfromsource
-Controls whether ports are built from source or downloaded as pre-built
-archives. Setting to 'always' will never use archives, 'never' will always
-try to use an archive and fail if one is not available. 'ifneeded' will try to
-fetch an archive and fall back to building from source if that isn't possible.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+sources_conf
+.RS 4
+Location of the sources file\&. This file enables rsync synchronization of the default ports tree with the MacPorts rsync server (through the "sync" target of the port command) and any other local tree(s) you might have\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+${prefix}/etc/macports/sources\&.conf
+T}
+.TE
+.sp 1
+.RE
+.PP
+variants_conf
+.RS 4
+Location of the optional global variants definition file, listing those that should be used in all installed ports if available\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+${prefix}/etc/macports/variants\&.conf
+T}
+.TE
+.sp 1
+.RE
+.PP
+buildfromsource
+.RS 4
+Controls whether ports are built from source or downloaded as pre\-built archives\&. Setting to
+\fIalways\fR
+will never use archives,
+\fInever\fR
+will always try to use an archive and fail if one is not available\&.
+\fIifneeded\fR
+will try to fetch an archive and fall back to building from source if that isn\(cqt possible\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 ifneeded
-.It Va portarchivetype
-Format of archives in which to store port images. This controls both the type
-of archive created locally after building from source, and the type to request
-from remote servers. Changing this will not affect the usability of already
-installed archives; they can be of any supported type.
-.br
-Supported types are: tgz, tar, tbz, tbz2, tlz, txz, xar, zip, cpgz, cpio
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+portarchivetype
+.RS 4
+Format of archives in which to store port images\&. This controls both the type of archive cre\- ated locally after building from source, and the type to request from remote servers\&. Changing this will not affect the usability of already installed archives; they can be of any supported type\&.
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBSupported types:\fR
+T}:T{
+tgz, tar, tbz, tbz2, tlz, txz, xar, zip, cpgz, cpio
+T}
+T{
+\fBDefault:\fR
+T}:T{
 tbz2
-.It Va configureccache
-Use ccache (C/C++ compiler cache). Requires that ccache has been installed.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+configureccache
+.RS 4
+Use ccache (C/C++ compiler cache)\&. Requires that ccache has been installed\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 no
-.It Va ccache_dir
+T}
+.TE
+.sp 1
+.RE
+.PP
+ccache_dir
+.RS 4
 Location where ccache stores its files
-.br
-.Ic Default:
-${portdbpath}/build/.ccache
-.It Va ccache_size
-Maximum size ccache may use.
-.br
-Use 'G', 'M', or 'K' suffix for giga-, mega- or kilobytes.
-.br
-.Ic Default:
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+${portdbpath}/build/\&.ccache
+T}
+.TE
+.sp 1
+.RE
+.PP
+ccache_size
+.RS 4
+Maximum size ccache may use\&. Use
+\fIG\fR,
+\fIM\fR, or
+\fIK\fR
+suffix for giga\-, mega\- or kilobytes\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 2G
-.It Va configuredistcc
-Use distcc (distributed compiler). Requires that distcc has been installed.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+configuredistcc
+.RS 4
+Use distcc (distributed compiler)\&. Requires that distcc has been installed\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 no
-.It Va configurepipe
-Use pipes rather than intermediate files when compiling C/C++/etc (gcc -pipe)
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+configurepipe
+.RS 4
+Use pipes rather than intermediate files when compiling C/C++/etc (gcc \-pipe)
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 yes
-.It Va buildnicevalue
-Lowered scheduling priority (0-20) to use for make when building ports
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+buildnicevalue
+.RS 4
+Lowered scheduling priority (0\-20) to use for make when building ports
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 0
-.It Va buildmakejobs
-Number of simultaneous make jobs (commands) to use when building ports. 0 is a
-special value meaning "the number of CPU cores or the number of GB
-of physical memory plus one, whichever is less."
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+buildmakejobs
+.RS 4
+Number of simultaneous make jobs (commands) to use when building ports\&. 0 is a special value meaning "the number of CPU cores or the number of GB of physical memory plus one, whichever is less\&."
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 0
-.It Va portautoclean
-Automatic cleaning of the build directory of a given port after it has been installed.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+portautoclean
+.RS 4
+Automatic cleaning of the build directory of a given port after it has been installed\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 yes
-.It Va keeplogs 
-Keep logs for ports
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+keeplogs
+.RS 4
+Keep logs for ports\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 no
-.It Va build_arch
-The machine architecture to try to build for in normal use
-.br
-Regular architectures include: ppc, i386, ppc64, x86_64
-.br
-.Ic Default (10.6):
+T}
+.TE
+.sp 1
+.RE
+.PP
+build_arch
+.RS 4
+The machine architecture to try to build for in normal use\&.
+.TS
+tab(:);
+lt lt
+lt lt
+lt lt.
+T{
+\fBRegular architectures include:\fR
+T}:T{
+ppc, i386, ppc64, x86_64
+T}
+T{
+\fBDefault (10\&.6):\fR
+T}:T{
 x86_64 or i386 depending on hardware
-.br
-.Ic Default (10.5 and earlier):
+T}
+T{
+\fBDefault (10\&.5 and earlier):\fR
+T}:T{
 i386 or ppc depending on hardware
-.It Va universal_archs
-The machine architectures to use for +universal variant
-(multiple architecture entries should be space separated)
-.br
-Regular architectures include: ppc, i386, ppc64, x86_64
-.br
-.Ic Default (10.6):
+T}
+.TE
+.sp 1
+.RE
+.PP
+universal_archs
+.RS 4
+The machine architectures to use for +universal variant (multiple architecture entries should be space separated)\&.
+.TS
+tab(:);
+lt lt
+lt lt
+lt lt.
+T{
+\fBRegular architectures include:\fR
+T}:T{
+ppc, i386, ppc64, x86_64
+T}
+T{
+\fBDefault (10\&.6):\fR
+T}:T{
 x86_64 i386
-.br
-.Ic Default (10.5 and earlier):
+T}
+T{
+\fBDefault (10\&.5 and earlier):\fR
+T}:T{
 i386 ppc
-.It Va startupitem_type
-Set the default type of startupitems to be generated, overridable by Portfiles that explicitly state a
-startupitem.type key. If set to "default", then a type will be selected that's appropriate to the OS.
-Supported types are: none, SystemStarter, launchd, default, rcNG.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+startupitem_type
+.RS 4
+Set the default type of startupitems to be generated, overridable by Portfiles that explicitly state a startupitem\&.type key\&. If set to "default", then a type will be selected that\(cqs appropriate to the OS\&.
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBSupported types:\fR
+T}:T{
+none, SystemStarter, launchd, default, rcNG\&.
+T}
+T{
+\fBDefault:\fR
+T}:T{
 default
-.It Va startupitem_install
-Option to install symlinks into /Library/LaunchAgents or
-/Library/LaunchDaemons; startupitem_install may be empty, "yes" or "no";
-if the option is NOT "no" then a symlink for the startupitem will be
-created in the appropriate system directory.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+destroot_umask
+.RS 4
+Umask value to use during the destrooting of a port\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+022
+T}
+.TE
+.sp 1
+.RE
+.PP
+rsync_server
+.RS 4
+Default rsync server to connect to when running "selfupdate" through the port com\- mand to update your base MacPorts infrastructure\&. While selfupdate also syncs the ports tree, it uses the settings from ${sources_conf} to do so\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+rsync\&.macports\&.org
+T}
+.TE
+.sp 1
+.RE
+.PP
+rsync_dir
+.RS 4
+Rsync directory from which to pull MacPorts sources from the rsync server\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+release/base/ (which pulls sources for the currently shipping MacPorts release)
+T}
+.TE
+.sp 1
+.RE
+.PP
+rsync_options
+.RS 4
+Default rsync options to use when connecting to the rsync server\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+\-rtzv \-\-delete\-after
+T}
+.TE
+.sp 1
+.RE
+.PP
+binpath
+.RS 4
+Sets the directory search path for locating system executables used by MacPorts\&. This variable should contain the paths for locating utilities such as rsync, tar, cvs and others\&. Don\(cqt change this unless you understand and accept the consequences\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+${prefix}/bin:${prefix}/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+T}
+.TE
+.sp 1
+.RE
+.PP
+extra_env
+.RS 4
+List of extra environment variables MacPorts should keep in the user\(cqs environment when sanitizing it\&. Changing this is unsupported\&.
+.RE
+.PP
+proxy_override_env
+.RS 4
+Proxy support\&. Precedence is: env, macports\&.conf, System Preferences\&. That is, if it\(cqs set in the environment, that will be used instead of anything here or in System Preferences\&. Setting proxy_override_env to yes will cause any proxies set here (or in System Preferences if set there but not here) to override what\(cqs in the environment\&. Note that System Preferences doesn\(cqt have an rsync proxy definition\&. Also note, on 10\&.5, sudo will clear many environment variables including those for proxy support\&. Equivalent environment variables: http_proxy, HTTPS_PROXY, FTP_PROXY, RSYNC_PROXY, NO_PROXY
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 yes
-.It Va destroot_umask
-Umask value to use during the destrooting of a port.
-.br
-.Ic Default:
-022
-.It Va rsync_server
-Default rsync server to connect to when running "selfupdate" through the
-.Nm port
-command to update your base MacPorts infrastructure. While selfupdate also
-syncs the ports tree, it uses the settings from ${sources_conf} to do so.
-.br
-.Ic Default:
-rsync.macports.org
-.It Va rsync_dir
-Rsync directory from which to pull MacPorts sources from the rsync server.
-.br
-.Ic Default:
-release/base/ (which pulls sources for the currently shipping MacPorts release)
-.It Va rsync_options
-Default rsync options to use when connecting to the rsync server.
-.br
-.Ic Default:
--rtzv --delete-after
-.It Va binpath
-Sets the directory search path for locating system executables used by MacPorts. This variable should contain
-the paths for locating utilities such as rsync, tar, cvs and others. Changing this is unsupported; don't do so
-unless you understand and accept the consequences.
-.br
-.Ic Default:
-${prefix}/bin:${prefix}/sbin:/bin:/sbin:/usr/bin:/usr/sbin
-.It Va extra_env
-List of extra environment variables MacPorts should keep in the user's environment when sanitizing it.
-Changing this is unsupported.
-.It Va proxy_override_env
-Proxy support. Precedence is: env, macports.conf, System Preferences.
-That is, if it's set in the environment, that will be used instead of
-anything here or in System Preferences. Setting proxy_override_env to
-yes will cause any proxies set here (or in System Preferences if set
-there but not here) to override what's in the environment. Note that
-System Preferences doesn't have an rsync proxy definition. Also note, on
-10.5, sudo will clear many environment variables including those for
-proxy support. Equivalent environment variables: http_proxy,
-HTTPS_PROXY, FTP_PROXY, RSYNC_PROXY, NO_PROXY
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+proxy_http
+.RS 4
+HTTP proxy
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+proxy_https
+.RS 4
+HTTPS proxy
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+proxy_ftp
+.RS 4
+FTP proxy
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+proxy_rsync
+.RS 4
+rsync proxy
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+proxy_skip
+.RS 4
+Hosts not to go through the proxy (comma\-separated, applies to HTTP, HTTPS and FTP, but not rsync)\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+host_blacklist
+.RS 4
+Space separated list of download hosts that should not be used\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+preferred_hosts
+.RS 4
+Space separated list of download hosts that should be used preferentially\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+none
+T}
+.TE
+.sp 1
+.RE
+.PP
+revupgrade_autorun
+.RS 4
+Controls whether the rev\-upgrade action will be run automatically after upgrading ports\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 yes
-.It Va proxy_http
-HTTP proxy
-.br
-.Ic Default:
-none
-.It Va proxy_https
-HTTPS proxy
-.br
-.Ic Default:
-none
-.It Va proxy_ftp
-FTP proxy
-.br
-.Ic Default:
-none
-.It Va proxy_rsync
-rsync proxy
-.br
-.Ic Default:
-none
-.It Va proxy_skip
-Hosts not to go through the proxy (comma-separated, applies to HTTP,
-HTTPS and FTP, but not rsync):
-.br
-.Ic Default:
-none
-.It Va host_blacklist
-Space separated list of download hosts that should not be used.
-.br
-.Ic Default:
-none
-.It Va preferred_hosts
-Space separated list of download hosts that should be used preferentially.
-.br
-.Ic Default:
-none
-.It Va revupgrade_autorun
-Controls whether the rev-upgrade action will be run automatically after
-upgrading ports.
-.br
-.Ic Default:
-yes
-.It Va revupgrade_mode
-Controls the rev-upgrade functionality which checks for broken linking and can
-rebuild ports to fix it. 'rebuild' means ports will automatically be rebuilt
-when broken linking is detected in their files, while 'report' means broken
-files will be scanned for and reported but the ports will not be rebuilt.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+revupgrade_mode
+.RS 4
+Controls the rev\-upgrade functionality which checks for broken linking and can rebuild ports to fix it\&.
+\fIrebuild\fR
+means ports will automatically be rebuilt when broken linking is detected in their files, while
+\fIreport\fR
+means broken files will be scanned for and reported but the ports will not be rebuilt\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 rebuild
-.It Va default_compiler
-Default value for configure.compiler. This can be a space-separated list. Later
-entries will be used if earlier entries are unavailable or blacklisted by a
-port. Setting this is unsupported.
-.br
-.Ic Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+default_compiler
+.RS 4
+Default value for configure\&.compiler\&. This can be a space\-separated list\&. Later entries will be used if earlier entries are unavailable or blacklisted by a port\&. Setting this is unsupported\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 none (internal list based on Xcode version is normally used)
-.El
-.Sh FILES
-.Bl -tag -width
-.It Va ${prefix}/etc/macports/macports.conf
-Standard system-wide MacPorts configuration file.
-.It Va ~/.macports/macports.conf
-User-specific configuration override. This file, if found, will be used instead of the default file at
-${prefix}/etc/macports/macports.conf.
-.El
-.Sh SEE ALSO
-.Xr port 1 ,
-.Xr portfile 7 ,
-.Xr portgroup 7 ,
-.Xr portstyle 7
-.Xr porthier 7 ,
-.Sh AUTHORS
-.An "Juan Manuel Palacios" Aq jmpp@macports.org
-.An "Matt Anton" Aq matt@opendarwin.org
+T}
+.TE
+.sp 1
+.RE
+.SH "FILES"
+.PP
+${prefix}/etc/macports/macports\&.conf
+.RS 4
+Standard system\-wide MacPorts configuration file\&.
+.RE
+.PP
+~/\&.macports/macports\&.conf
+.RS 4
+User\-specific configuration override\&. This file, if found, will be used instead of the default file at ${prefix}/etc/macports/macports\&.conf\&.
+.RE
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1), \fBportfile\fR(7)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2007\-2011 The MacPorts Project
+Juan Manuel Palacios <jmpp@macports\&.org>
+Matt Anton <matt@opendarwin\&.org>
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/macports.conf.5.txt
===================================================================
--- /trunk/base/doc/macports.conf.5.txt	(revision 123002)
+++ /trunk/base/doc/macports.conf.5.txt	(revision 123002)
@@ -0,0 +1,255 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+macports.conf(5)
+================
+$Id$
+
+NAME
+----
+macports.conf - Configuration file of the MacPorts system
+
+DESCRIPTION
+-----------
+*macports.conf* is the configuration file used to bootstrap the MacPorts
+system. This file is read by the *port* command and determines how it behaves.
+Lines beginning with '#' are comments, empty lines are ignored. The format is
+that of a simple key/value space or tab separated pair.
+
+The file contains entries of the form:
+--------
+<key> <value>
+--------
+
+The value of any given key can be referred to by the '$\{<keyname>\}'
+abstraction, where '<keyname>' expands to the key in question.
+
+KEYS
+----
+// Set default style for second-level labeled lists in this section
+:listdef-labeled2.style: horizontal
+
+The following keys are used by *port* itself:
+
+prefix::
+    Sets the directory where ports are installed. Any path may be used but those
+    with spaces and/or non ascii characters should be avoided, as this can break
+    some ports. This key is often referred to as '$\{prefix\}'.
+    *Default:*;; /opt/local
+
+portdbpath::
+    Directory where MacPorts keeps working data such as downloaded sources,
+    installed ports' receipts and the main registry. The same path restrictions
+    apply as for '$\{prefix\}'.
+    *Default:*;; $\{prefix\}/var/macports
+
+portdbformat::
+    Storage type to use for the MacPorts registry. The preferred format is
+    "sqlite", with "flat" also available as a legacy format.
+    *Default:*;; sqlite
+
+applications_dir::
+    Directory containing Applications installed from ports.
+    *Default:*;; /Applications/MacPorts
+
+frameworks_dir::
+    Directory containing Frameworks installed from ports.
+    *Default:*;; $\{prefix\}/Library/Frameworks
+
+sources_conf::
+    Location of the sources file. This file enables rsync synchronization of the
+    default ports tree with the MacPorts rsync server (through the "sync" target
+    of the port command) and any other local tree(s) you might have.
+    *Default:*;; $\{prefix\}/etc/macports/sources.conf
+
+variants_conf::
+    Location of the optional global variants definition file, listing those that
+    should be used in all installed ports if available.
+    *Default:*;; $\{prefix\}/etc/macports/variants.conf
+
+buildfromsource::
+    Controls whether ports are built from source or downloaded as pre-built
+    archives. Setting to 'always' will never use archives, 'never' will always
+    try to use an archive and fail if one is not available. 'ifneeded' will try
+    to fetch an archive and fall back to building from source if that isn't
+    possible.
+    *Default:*;; ifneeded
+
+portarchivetype::
+    Format of archives in which to store port images. This controls both the
+    type of archive cre- ated locally after building from source, and the type
+    to request from remote servers. Changing this will not affect the usability
+    of already installed archives; they can be of any supported type.
+    *Supported types:*;; tgz, tar, tbz, tbz2, tlz, txz, xar, zip, cpgz, cpio
+    *Default:*;; tbz2
+
+configureccache::
+    Use ccache (C/C++ compiler cache). Requires that ccache has been installed.
+    *Default:*;; no
+
+ccache_dir::
+    Location where ccache stores its files
+    *Default:*;; $\{portdbpath\}/build/.ccache
+
+ccache_size::
+    Maximum size ccache may use. Use 'G', 'M', or 'K' suffix for giga-, mega- or
+    kilobytes.
+    *Default:*;; 2G
+
+configuredistcc::
+    Use distcc (distributed compiler). Requires that distcc has been installed.
+    *Default:*;; no
+
+configurepipe::
+    Use pipes rather than intermediate files when compiling C/C++/etc (gcc
+    -pipe)
+    *Default:*;; yes
+
+buildnicevalue::
+    Lowered scheduling priority (0-20) to use for make when building ports
+    *Default:*;; 0
+
+buildmakejobs::
+    Number of simultaneous make jobs (commands) to use when building ports. 0 is
+    a special value meaning "the number of CPU cores or the number of GB of
+    physical memory plus one, whichever is less."
+    *Default:*;; 0
+
+portautoclean::
+    Automatic cleaning of the build directory of a given port after it has been
+    installed.
+    *Default:*;; yes
+
+keeplogs::
+    Keep logs for ports.
+    *Default:*;; no
+
+build_arch::
+    The machine architecture to try to build for in normal use.
+    *Regular architectures include:*;; ppc, i386, ppc64, x86_64
+    *Default (10.6):*;; x86_64 or i386 depending on hardware
+    *Default (10.5 and earlier):*;; i386 or ppc depending on hardware
+
+universal_archs::
+    The machine architectures to use for +universal variant (multiple
+    architecture entries should be space separated).
+    *Regular architectures include:*;; ppc, i386, ppc64, x86_64
+    *Default (10.6):*;; x86_64 i386
+    *Default (10.5 and earlier):*;; i386 ppc
+
+startupitem_type::
+    Set the default type of startupitems to be generated, overridable by
+    Portfiles that explicitly state a startupitem.type key. If set to "default",
+    then a type will be selected that's appropriate to the OS.
+    *Supported types:*;; none, SystemStarter, launchd, default, rcNG.
+    *Default:*;; default
+
+destroot_umask::
+    Umask value to use during the destrooting of a port.
+    *Default:*;; 022
+
+rsync_server::
+    Default rsync server to connect to when running "selfupdate" through the
+    port com- mand to update your base MacPorts infrastructure. While selfupdate
+    also syncs the ports tree, it uses the settings from $\{sources_conf\} to do
+    so.
+    *Default:*;; rsync.macports.org
+
+rsync_dir::
+    Rsync directory from which to pull MacPorts sources from the rsync server.
+    *Default:*;; release/base/ (which pulls sources for the currently shipping
+    MacPorts release)
+
+rsync_options::
+    Default rsync options to use when connecting to the rsync server.
+    *Default:*;; -rtzv --delete-after
+
+binpath::
+    Sets the directory search path for locating system executables used by
+    MacPorts. This variable should contain the paths for locating utilities such
+    as rsync, tar, cvs and others. Don't change this unless you understand and
+    accept the consequences.
+    *Default:*;; $\{prefix\}/bin:$\{prefix\}/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+
+extra_env::
+    List of extra environment variables MacPorts should keep in the user's
+    environment when sanitizing it. Changing this is unsupported.
+
+proxy_override_env::
+    Proxy support. Precedence is: env, macports.conf, System Preferences. That
+    is, if it's set in the environment, that will be used instead of anything
+    here or in System Preferences. Setting proxy_override_env to yes will cause
+    any proxies set here (or in System Preferences if set there but not here) to
+    override what's in the environment. Note that System Preferences doesn't
+    have an rsync proxy definition. Also note, on 10.5, sudo will clear many
+    environment variables including those for proxy support. Equivalent
+    environment variables: http_proxy, HTTPS_PROXY, FTP_PROXY, RSYNC_PROXY,
+    NO_PROXY
+    *Default:*;; yes
+
+proxy_http::
+    HTTP proxy
+    *Default:*;; none
+
+proxy_https::
+    HTTPS proxy
+    *Default:*;; none
+
+proxy_ftp::
+    FTP proxy
+    *Default:*;; none
+
+proxy_rsync::
+    rsync proxy
+    *Default:*;; none
+
+proxy_skip::
+    Hosts not to go through the proxy (comma-separated, applies to HTTP, HTTPS
+    and FTP, but not rsync).
+    *Default:*;; none
+
+host_blacklist::
+    Space separated list of download hosts that should not be used.
+    *Default:*;; none
+
+preferred_hosts::
+    Space separated list of download hosts that should be used preferentially.
+    *Default:*;; none
+
+revupgrade_autorun::
+    Controls whether the rev-upgrade action will be run automatically after
+    upgrading ports.
+    *Default:*;; yes
+
+revupgrade_mode::
+    Controls the rev-upgrade functionality which checks for broken linking and
+    can rebuild ports to fix it. 'rebuild' means ports will automatically be
+    rebuilt when broken linking is detected in their files, while 'report' means
+    broken files will be scanned for and reported but the ports will not be
+    rebuilt.
+    *Default:*;; rebuild
+
+default_compiler::
+    Default value for configure.compiler. This can be a space-separated list.
+    Later entries will be used if earlier entries are unavailable or blacklisted
+    by a port. Setting this is unsupported.
+    *Default:*;; none (internal list based on Xcode version is normally used)
+
+FILES
+-----
+
+$\{prefix\}/etc/macports/macports.conf::
+    Standard system-wide MacPorts configuration file.
+
+~/.macports/macports.conf::
+    User-specific configuration override. This file, if found, will be used
+    instead of the default file at $\{prefix\}/etc/macports/macports.conf.
+
+SEE ALSO
+--------
+man:port[1], man:portfile[7]
+
+AUTHORS
+-------
+  (C) 2007-2011 The MacPorts Project
+  Juan Manuel Palacios <jmpp@macports.org>
+  Matt Anton <matt@opendarwin.org>
+  Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/manpage.xsl
===================================================================
--- /trunk/base/doc/manpage.xsl	(revision 123002)
+++ /trunk/base/doc/manpage.xsl	(revision 123002)
@@ -0,0 +1,18 @@
+<?xml version='1.0' ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
+
+<xsl:param name="man.endnotes.list.heading">External References</xsl:param>
+<xsl:param name="man.authors.section.enabled">0</xsl:param>
+<xsl:param name="man.copyright.section.enabled">0</xsl:param>
+
+<!-- Do not write soelim files -->
+<xsl:template name="write.stubs">
+</xsl:template>
+
+<!-- Remove top comment with build date -->
+<xsl:template name="top.comment">
+</xsl:template>
+
+</xsl:stylesheet>
Index: /trunk/base/doc/port-activate.1
===================================================================
--- /trunk/base/doc/port-activate.1	(revision 123002)
+++ /trunk/base/doc/port-activate.1	(revision 123002)
@@ -0,0 +1,81 @@
+'\" t
+.TH "PORT\-ACTIVATE" "1" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port-activate, port-deactivate \- Change active version of an installed port
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-vdf\fR] [\fB\-D\fR \fIportdir\fR] \fBactivate\fR
+     [\-\-no\-exec]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+     [\fI@version\fR]
+.fi
+.sp
+.nf
+\fBport\fR [\fB\-vdf\fR] [\fB\-D\fR \fIportdir\fR] \fBdeactivate\fR
+     [\-\-no\-exec]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+.fi
+.SH "DESCRIPTION"
+.sp
+\fBport activate\fR will set the status of an previously installed version of a port to active\&. The passed ports have to reference already installed versions\&.
+.sp
+\fBport deactivate\fR will set the status of a port to inactive\&. The passed ports have to be active at the moment\&. You will be warned if this port has active dependents\&.
+.sp
+If any version is active at the time of using \fBport activate\fR, it will be deactivated first\&. This can be used to switch from one version to another\&.
+.SH "PORT IMAGES"
+.sp
+MacPorts has the ability to install multiple versions or different variant selections of the same port\&. The files will be stored in an intermediate location as \fIarchives\fR, which allows to switch between the versions\&. Only one version can be active at a time\&. On activation, files will be copied to their intended place in \fIprefix\fR\&.
+.sp
+More information on this topic can be found in the \m[blue]\fBThe MacPorts Guide\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.sp
+To check the current status of a specific port, use \fB\fBport-installed\fR(1)\fR\&.
+.SH "OPTIONS"
+.PP
+\-\-no\-exec
+.RS 4
+Do not execute any stored pre\- or post\-uninstall procedures\&.
+.RE
+.SH "GLOBAL OPTIONS"
+.sp
+Please see the section \fBGLOBAL OPTIONS\fR in the \fBport\fR(1) man page for a description of global port options\&.
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1), \fBport-install\fR(1), \fBport-installed\fR(1), \fBport-deactivate\fR(1)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2009 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
+.SH "EXTERNAL REFERENCES"
+.IP " 1." 4
+The MacPorts Guide
+.RS 4
+\%http://guide.macports.org/#internals.images
+.RE
Index: /trunk/base/doc/port-activate.1.txt
===================================================================
--- /trunk/base/doc/port-activate.1.txt	(revision 123002)
+++ /trunk/base/doc/port-activate.1.txt	(revision 123002)
@@ -0,0 +1,56 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-activate(1)
+===============
+$Id$
+
+NAME
+----
+port-activate, port-deactivate - Change active version of an installed port
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-vdf*] [*-D* 'portdir'] *activate*
+     [--no-exec]
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+     ['@version']
+
+[cmdsynopsis]
+*port* [*-vdf*] [*-D* 'portdir'] *deactivate*
+     [--no-exec]
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+
+DESCRIPTION
+-----------
+*port activate* will set the status of an previously installed version of a port
+to active. The passed ports have to reference already installed versions.
+
+*port deactivate* will set the status of a port to inactive. The passed ports
+have to be active at the moment. You will be warned if this port has active
+dependents.
+
+// [NOTE]
+If any version is active at the time of using *port activate*, it will be
+deactivated first. This can be used to switch from one version to another.
+
+include::archives.txt[]
+
+OPTIONS
+-------
+
+--no-exec::
+    Do not execute any stored pre- or post-uninstall procedures.
+
+
+include::global-flags.txt[]
+
+
+SEE ALSO
+--------
+man:port[1], man:port-install[1], man:port-installed[1],
+man:port-deactivate[1]
+
+AUTHORS
+-------
+ (C) 2009 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/port-build.1
===================================================================
--- /trunk/base/doc/port-build.1	(revision 123002)
+++ /trunk/base/doc/port-build.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-build.1.soelim
===================================================================
--- /trunk/base/doc/port-build.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-build.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-checksum.1
===================================================================
--- /trunk/base/doc/port-checksum.1	(revision 123002)
+++ /trunk/base/doc/port-checksum.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-checksum.1.soelim
===================================================================
--- /trunk/base/doc/port-checksum.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-checksum.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-configure.1
===================================================================
--- /trunk/base/doc/port-configure.1	(revision 123002)
+++ /trunk/base/doc/port-configure.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-configure.1.soelim
===================================================================
--- /trunk/base/doc/port-configure.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-configure.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-deactivate.1
===================================================================
--- /trunk/base/doc/port-deactivate.1	(revision 123002)
+++ /trunk/base/doc/port-deactivate.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-activate.1
Index: /trunk/base/doc/port-deactivate.1.soelim
===================================================================
--- /trunk/base/doc/port-deactivate.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-deactivate.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-activate.1
Index: /trunk/base/doc/port-destroot.1
===================================================================
--- /trunk/base/doc/port-destroot.1	(revision 123002)
+++ /trunk/base/doc/port-destroot.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-destroot.1.soelim
===================================================================
--- /trunk/base/doc/port-destroot.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-destroot.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-edit.1
===================================================================
--- /trunk/base/doc/port-edit.1	(revision 123002)
+++ /trunk/base/doc/port-edit.1	(revision 123002)
@@ -0,0 +1,85 @@
+'\" t
+.TH "PORT\-EDIT" "1" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port-edit \- Open the Portfile in an editor
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-D\fR \fIportdir\fR] \fBedit\fR
+     [\-\-editor <editor>]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+.fi
+.SH "DESCRIPTION"
+.sp
+\fBport edit\fR will open the associated Portfile in an editor\&. It will try to determine your favorite editor by respecting the environment variables \fB$VISUAL\fR or \fB$EDITOR\fR in this order\&. If none has been set it will fallback to \fI/usr/bin/vi\fR\&. Your shell will be blocked until the editor returns\&. The path to the Portfile is passed as one single argument to the editor\&.
+.sp
+If you specify multiple ports, the editor is executed multiple times for each of them one after another\&.
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBNote\fR
+.ps -1
+.br
+.sp
+If you edit a \fIPortfile\fR, your changes might be lost on the next sync\&. If you want to permanently use a changed \fIPortfile\fR, copy it to a local ports tree and edit it there\&. See also \m[blue]\fBThe MacPorts Guide\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.sp .5v
+.RE
+.SH "OPTIONS"
+.PP
+\fB\-\-editor <editor>\fR
+.RS 4
+Use the specified
+\fIeditor\fR, overriding environment variables\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+\fBEDITOR\fR, \fBVISUAL\fR
+.RS 4
+Specifies the editor to be launched\&.
+.RE
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1), \fBport-file\fR(1), \fBport-cat\fR(1)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2009 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
+.SH "EXTERNAL REFERENCES"
+.IP " 1." 4
+The MacPorts Guide
+.RS 4
+\%http://guide.macports.org/#development.local-repositories
+.RE
Index: /trunk/base/doc/port-edit.1.txt
===================================================================
--- /trunk/base/doc/port-edit.1.txt	(revision 123002)
+++ /trunk/base/doc/port-edit.1.txt	(revision 123002)
@@ -0,0 +1,51 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-edit(1)
+============
+$Id$
+
+NAME
+----
+port-edit - Open the Portfile in an editor
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-D* 'portdir'] *edit*
+     [--editor <editor>]
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+
+DESCRIPTION
+-----------
+*port edit* will open the associated Portfile in an editor. It will try to
+determine your favorite editor by respecting the environment variables *$VISUAL*
+or *$EDITOR* in this order. If none has been set it will fallback to
+'/usr/bin/vi'. Your shell will be blocked until the editor returns. The path to
+the Portfile is passed as one single argument to the editor.
+
+If you specify multiple ports, the editor is executed multiple times for
+each of them one after another.
+
+[NOTE]
+If you edit a 'Portfile', your changes might be lost on the next sync. If you
+want to permanently use a changed 'Portfile', copy it to a local ports tree and
+edit it there. See also guide:development.local-repositories[The MacPorts
+Guide].
+
+OPTIONS
+-------
+*--editor <editor>*::
+Use the specified 'editor', overriding environment variables.
+
+ENVIRONMENT
+-----------
+*EDITOR*, *VISUAL*::
+Specifies the editor to be launched.
+
+SEE ALSO
+--------
+man:port[1], man:port-file[1], man:port-cat[1]
+
+AUTHORS
+-------
+ (C) 2009 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/port-extract.1
===================================================================
--- /trunk/base/doc/port-extract.1	(revision 123002)
+++ /trunk/base/doc/port-extract.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-extract.1.soelim
===================================================================
--- /trunk/base/doc/port-extract.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-extract.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-fetch.1
===================================================================
--- /trunk/base/doc/port-fetch.1	(revision 123002)
+++ /trunk/base/doc/port-fetch.1	(revision 123002)
@@ -0,0 +1,52 @@
+'\" t
+.TH "PORT\-FETCH" "1" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port-fetch, port-checksum, port-extract, port-patch, port-configure, port-build, port-destroot \- Run a specific phase of a port
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-vdoy\fR] [\fB\-D\fR \fIportdir\fR] \fBfetch\fR | \fBchecksum\fR | \fBextract\fR | \fBpatch\fR | \fBconfigure\fR | \fBbuild\fR | \fBdestroot\fR
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+.fi
+.SH "DESCRIPTION"
+.sp
+These commands run a specific phase of a port\&. Depending phases will be executed automatically as needed\&.
+.sp
+If the \fIPortfile\fR has changed between multiple invocation, \fBport\fR will perform a clean before running the phase\&. The flag \fI\-o\fR can be used to ignore this and keep the current state of the \(lqwork\(rq dir\&.
+.SH "GLOBAL OPTIONS"
+.sp
+Please see the section \fBGLOBAL OPTIONS\fR in the \fBport\fR(1) man page for a description of global port options\&.
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1), \fBport-install\fR(1)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2010 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/port-fetch.1.txt
===================================================================
--- /trunk/base/doc/port-fetch.1.txt	(revision 123002)
+++ /trunk/base/doc/port-fetch.1.txt	(revision 123002)
@@ -0,0 +1,35 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-fetch(1)
+===============
+$Id$
+
+NAME
+----
+port-fetch, port-checksum, port-extract, port-patch, port-configure, port-build, port-destroot - Run a specific phase of a port
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-vdoy*] [*-D* 'portdir'] *fetch* | *checksum* | *extract* | *patch* | *configure* | *build* | *destroot*
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+
+DESCRIPTION
+-----------
+These commands run a specific phase of a port. Depending phases will be
+executed automatically as needed.
+
+If the 'Portfile' has changed between multiple invocation, *port* will perform
+a clean before running the phase. The flag '-o' can be used to ignore this and
+keep the current state of the ``work'' dir.
+
+
+include::global-flags.txt[]
+
+SEE ALSO
+--------
+man:port[1], man:port-install[1]
+
+AUTHORS
+-------
+ (C) 2010 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/port-install.1
===================================================================
--- /trunk/base/doc/port-install.1	(revision 123002)
+++ /trunk/base/doc/port-install.1	(revision 123002)
@@ -0,0 +1,69 @@
+'\" t
+.TH "PORT\-INSTALL" "1" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port-install \- Install a new port
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-vdqysbckxpotf\fR] [\fB\-D\fR \fIportdir\fR] \fBinstall\fR
+     [\-\-no\-rev\-upgrade] [\-\-unrequested]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+     [+/\-variant \&...]
+.fi
+.SH "DESCRIPTION"
+.sp
+\fBport install\fR will install a new port on your system\&. You can choose multiple variants, by specifying \e+name, which indicates the variant is desired, or \-name, indicating the contrary\&.
+.sp
+Global variants will be applied as specified in \fBvariants\&.conf\fR(5)\&.
+.SH "OPTIONS"
+.PP
+\fB\-\-no\-rev\-upgrade\fR
+.RS 4
+Do not run rev\-upgrade after installation\&. See
+\fBport-rev-upgrade\fR(1)
+for more information\&.
+.RE
+.PP
+\fB\-\-unrequested\fR
+.RS 4
+Do not mark the installed ports as requested\&. See
+\fBport-setrequested\fR(1)
+for more information\&.
+.RE
+.SH "GLOBAL OPTIONS"
+.sp
+Please see the section \fBGLOBAL OPTIONS\fR in the \fBport\fR(1) man page for a description of global port options\&.
+.SH "SEE ALSO"
+.sp
+port(1), port\-uninstall(1), port\-info(1), port\-variants(1), variants\&.conf(5)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2009 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/port-install.1.txt
===================================================================
--- /trunk/base/doc/port-install.1.txt	(revision 123002)
+++ /trunk/base/doc/port-install.1.txt	(revision 123002)
@@ -0,0 +1,47 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-install(1)
+===============
+$Id$
+
+NAME
+----
+port-install - Install a new port
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-vdqysbckxpotf*] [*-D* 'portdir'] *install*
+     [--no-rev-upgrade] [--unrequested]
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+     [+/-variant ...]
+
+DESCRIPTION
+-----------
+*port install* will install a new port on your system. You can choose multiple
+variants, by specifying \+name, which indicates the variant is desired, or
+-name, indicating the contrary.
+
+Global variants will be applied as specified in *variants.conf*(5).
+
+OPTIONS
+-------
+*--no-rev-upgrade*::
+Do not run rev-upgrade after installation. See man:port-rev-upgrade[1] for more
+information.
+
+*--unrequested*::
+Do not mark the installed ports as requested. See man:port-setrequested[1] for
+more information.
+
+
+include::global-flags.txt[]
+
+
+SEE ALSO
+--------
+port(1), port-uninstall(1), port-info(1), port-variants(1), variants.conf(5)
+
+AUTHORS
+-------
+ (C) 2009 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/port-patch.1
===================================================================
--- /trunk/base/doc/port-patch.1	(revision 123002)
+++ /trunk/base/doc/port-patch.1	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-patch.1.soelim
===================================================================
--- /trunk/base/doc/port-patch.1.soelim	(revision 123002)
+++ /trunk/base/doc/port-patch.1.soelim	(revision 123002)
@@ -0,0 +1,1 @@
+.so man1/port-fetch.1
Index: /trunk/base/doc/port-uninstall.1
===================================================================
--- /trunk/base/doc/port-uninstall.1	(revision 123002)
+++ /trunk/base/doc/port-uninstall.1	(revision 123002)
@@ -0,0 +1,70 @@
+'\" t
+.TH "PORT\-INSTALL" "1" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port-uninstall \- Remove a previously installed port
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-vdquxpf\fR] [\fB\-D\fR \fIportdir\fR] \fBuninstall\fR
+     [\-\-follow\-dependents] [\-\-follow\-dependencies] [\-\-no\-exec]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+     [@version]
+.fi
+.SH "DESCRIPTION"
+.sp
+\fBport uninstall\fR removes a port from your system\&. You can only uninstall a port if all dependents have been removed before or by applying force with \fB\-f\fR\&.
+.sp
+If multiple versions of the same port are installed, you need to specify a version using the \fB@version\fR syntax\&. Use \fBport installed\fR to find out which versions are currently installed on your system\&. If multiple versions are installed and you did not specify a version, \fBport\fR will output a list\&.
+.SH "OPTIONS"
+.PP
+\-\-follow\-dependents
+.RS 4
+Also uninstall all ports recursively depending directly or indirectly on one of the specified ports before uninstalling the port itself\&.
+.RE
+.PP
+\-\-follow\-dependencies
+.RS 4
+Also recursively uninstall all ports that the specified port depends on\&. This will not uninstall dependencies that are marked as requested or that have other dependents\&.
+.RE
+.PP
+\-\-no\-exec
+.RS 4
+Do not execute any stored pre\- or post\-uninstall procedures\&.
+.RE
+.SH "GLOBAL OPTIONS"
+.sp
+Please see the section \fBGLOBAL OPTIONS\fR in the \fBport\fR(1) man page for a description of global port options\&.
+.SH "SEE ALSO"
+.sp
+port(1), port\-uninstall(1), port\-info(1), port\-variants(1), variants\&.conf(5)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2009 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/port-uninstall.1.txt
===================================================================
--- /trunk/base/doc/port-uninstall.1.txt	(revision 123002)
+++ /trunk/base/doc/port-uninstall.1.txt	(revision 123002)
@@ -0,0 +1,54 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port-install(1)
+===============
+$Id$
+
+NAME
+----
+port-uninstall - Remove a previously installed port
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-vdquxpf*] [*-D* 'portdir'] *uninstall*
+     [--follow-dependents] [--follow-dependencies] [--no-exec]
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+     [@version]
+
+DESCRIPTION
+-----------
+*port uninstall* removes a port from your system. You can only uninstall a port
+if all dependents have been removed before or by applying force with *-f*.
+    
+If multiple versions of the same port are installed, you need to specify a
+version using the *@version* syntax. Use *port installed* to find out
+which versions are currently installed on your system. If multiple versions are
+installed and you did not specify a version, *port* will output a list.
+
+OPTIONS
+-------
+
+--follow-dependents::
+    Also uninstall all ports recursively depending directly or indirectly on one
+    of the specified ports before uninstalling the port itself.
+
+--follow-dependencies::
+    Also recursively uninstall all ports that the specified port depends on.
+    This will not uninstall dependencies that are marked as requested or that
+    have other dependents.
+
+--no-exec::
+    Do not execute any stored pre- or post-uninstall procedures.
+
+
+include::global-flags.txt[]
+
+
+SEE ALSO
+--------
+port(1), port-uninstall(1), port-info(1), port-variants(1), variants.conf(5)
+
+AUTHORS
+-------
+ (C) 2009 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/port.1
===================================================================
--- /trunk/base/doc/port.1	(revision 123001)
+++ /trunk/base/doc/port.1	(revision 123002)
@@ -1,770 +1,1328 @@
-.\" port.1
-.\"
-.\" Copyright (c) 2004-2011 The MacPorts Project
-.\" Copyright (c) 2002-2003 Apple Inc.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Apple Inc. nor the names of its
-.\"    contributors may be used to endorse or promote products derived from
-.\"    this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd April 29, 2007
-.Dt PORT 1 "MacPorts"
-.Os
-.Sh NAME
-.Nm port
-.Nd operate on individual or multiple Mac
-.Ar ports
-.Sh SYNOPSIS
-.Nm
-.Op Fl bcdfknopqRstuvy
-.Op Fl D Ar portdir
-.Op Fl F Ar cmdfile
-.Op Ar action
-.Op Ar actionflags
-.Op Oo Ar portname | pseudo-portname | port-url Oc
-.Op Oo Ar @version Oc Oo +/-variant ... Oc ... Oo option=value ... Oc
-.Sh DESCRIPTION
-.Nm
-is designed to operate on individual or multiple Mac
-.Ar ports ,
-optionally within a single call, based on the requested
-.Ar action .
-If no
-.Ar portdir
+'\" t
+.TH "PORT" "1" "2014\-08\-03" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+port \- Command line interface for MacPorts
+.SH "SYNOPSIS"
+.sp
+.nf
+\fBport\fR [\fB\-bcdfknopqRstuvy\fR] [\fB\-D\fR \fIportdir\fR] [\fB\-F\fR \fIcmdfile\fR] [\fIaction\fR] [\fIactionflags\fR]
+     [[\fIportname\fR | \fIpseudo\-portname\fR | \fIport\-expressions\fR | \fIport\-url\fR]]
+     [[\fI@version\fR] [+/\-variant \&...] \&... [option=value \&...]]
+.fi
+.SH "DESCRIPTION"
+.sp
+\fBport\fR is designed to operate on individual or multiple \fIports\fR, optionally within a single call, based on the requested \fIaction\fR\&. If no \fIaction\fR is specified the port command enters interactive mode, in which commands are read via stdin\&. If no \fIportdir\fR or \fIportname\fR is specified for an \fIaction\fR, the current working directory is assumed\&. Batch commands may be passed via a \fIcmdfile\fR\&. Port \fIoptions\fR are passed as key=value pairs and take precedence over individual \fIportname\fR options as specified in its Portfile and system\-wide settings\&.
+.sp
+Port \fIvariants\fR can be specified as \fI+name\fR, which indicates the variant is desired, or \fI\-name\fR, indicating the contrary\&. In case of ambiguities, a port can be fully specified with the \fI@version_revision+variants\fR format\&.
+.sp
+Installed ports can be activated or deactivated without being uninstalled\&. A port can be installed in multiple versions and variant combinations, but only one of them can be \fIactive\fR\&. See \fBportarchives\fR(7)\&.
+.sp
+When passing \fIportnames\fR to an \fIaction\fR, \fBport\fR recognizes various \fIpseudo\-portnames\fR that will expand to the specified set of ports from the available port tree(s)\&. These may be used in the same way as a \fIportname\fR\&.
+.PP
+\fBThe \fR\fB\fIpseudo\-portnames\fR\fR\fB are:\fR
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIall\fR: all the ports in each ports tree listed in
+\fIsources\&.conf\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIcurrent\fR: the port in the current working directory
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIactive\fR: set of installed and active ports
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIinactive\fR: set of installed but inactive ports
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIinstalled\fR: set of all installed ports
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIuninstalled\fR: ports in the ports tree(s) that are not installed
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIoutdated\fR: installed ports that are out of date with respect to their current version/revision in the ports tree(s)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIobsolete\fR: set of ports that are installed but no longer exist in any port tree
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIrequested\fR: installed ports that were explicitly asked for
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIunrequested\fR: installed ports that were installed only to satisfy dependencies
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIleaves\fR: installed ports that are unrequested and have no dependents
+.RE
+.sp
+Sets of ports can also be specified with \fIpseudo\-portname selectors\fR, which expand to the ports in which the value of the \fIPortfile\fR option corresponding to the selector\(cqs name (in either singular or plural form where applicable) matches the given regular expression\&. Usage is: selector:regex
+.PP
+\fBThe \fR\fB\fIpseudo\-portname selectors\fR\fR\fB are:\fR
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIname\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIversion\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIrevision\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIepoch\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIvariant\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIvariants\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIcategory\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIcategories\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fImaintainer\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fImaintainers\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIplatform\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIplatforms\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIdescription\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIlong_description\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIhomepage\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIlicense\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIportdir\fR
+.RE
+.sp
+Other pseudo\-portname selectors match ports which have a particular relationship to another port\&. These will match ports that are direct or recursive dependencies or dependents of the given portname:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIdepof\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIrdepof\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIdependentof\fR
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fIrdependentof\fR
+.RE
+.sp
+Search strings that will expand to a set of matching ports can be constructed based on the "\fIpseudo\-portname selector\fR":regex combination used\&. \fIportnames\fR containing valid UNIX glob patterns will also expand to the set of matching ports\&. Any action passed to port will be invoked on each of them\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port info variant:no_ssl
+port uninstall name:sql
+port echo depof:mysql5
+port echo \*(Aqapache*\*(Aq
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Logical operators "and", "or", "not", "!", "(" and ")" may be used to combine individual \fIportnames\fR, port glob patterns and/or \fIpseudo\-portnames\fR to construct complex \fIport\-expressions\fR that expand to the set of matching ports\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port upgrade outdated and \*(Aqpy27\-*\*(Aq
+port echo maintainer:jberry and uninstalled and \e( category:java and not commons* \e)
+.fi
+.if n \{\
+.RE
+.\}
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBNote\fR
+.ps -1
+.br
+.sp
+Special shell characters like *, \e( or \e) need to be escaped in order to be passed correctly to \fBport\fR\&.
+.sp .5v
+.RE
+.SH "GLOBAL OPTIONS"
+.sp
+The port command recognizes several global flags and options\&.
+.PP
+\fBOutput control\fR
+.PP
+\-v
+.RS 4
+Verbose mode, generates verbose messages
+.RE
+.PP
+\-d
+.RS 4
+Debug mode, generate debugging messages, implies \-v
+.RE
+.PP
+\-q
+.RS 4
+Quiet mode, suppress informational messages to a minimum
+.RE
+.PP
+\fBInstallation and upgrade\fR
+.PP
+\-n
+.RS 4
+Don\(cqt follow dependencies in upgrade (affects
+\fIupgrade\fR
+and
+\fIinstall\fR)
+.RE
+.PP
+\-R
+.RS 4
+Also upgrade dependents (only for
+\fIupgrade\fR)
+.RE
+.PP
+\-u
+.RS 4
+Uninstall inactive ports when upgrading and uninstalling
+.RE
+.PP
+\-y
+.RS 4
+Perform a dry run\&. All of the steps to build the ports and their dependencies are computed, but not actually performed\&. With the verbose flag, every step is reported; otherwise there is just one message per port, which allows you to easily determine the recursive deps of a port (and the order in which they will be built)\&.
+.RE
+.PP
+\fBSources\fR
+.PP
+\-s
+.RS 4
+Source\-only mode, build and install from source; do not attempt to fetch binary archives\&.
+.RE
+.PP
+\-b
+.RS 4
+Binary\-only mode, build and install from binary archives, ignore source, abort if no archive available\&.
+.RE
+.PP
+\fBCleaning\fR
+.PP
+\-c
+.RS 4
+Autoclean mode, execute clean after
+\fIinstall\fR
+.RE
+.PP
+\-k
+.RS 4
+Keep mode, do not autoclean after
+\fIinstall\fR
+.RE
+.PP
+\fBExit status\fR
+.PP
+\-p
+.RS 4
+Despite any errors encountered, proceed to process multiple ports and commands\&.
+.RE
+.PP
+\fBDevelopment\fR
+.PP
+\-o
+.RS 4
+Honor state files even if the Portfile was modified\&. This flag is called \-o because it used to mean "older"\&.
+.RE
+.PP
+\-t
+.RS 4
+Enable trace mode debug facilities on platforms that support it, currently only Mac OS X\&.
+
+This feature is two\-folded\&. It consists in automatically detecting and reporting undeclared dependencies based on what files the port reads or what programs the port executes\&. In verbose mode, it will also report unused dependencies for each stage of the port installation\&. It also consists in forbidding and reporting file creation and file writes outside allowed directories (temporary directories and ${workpath})\&.
+.RE
+.PP
+\fBMisc\fR
+.PP
+\-f
+.RS 4
+Force mode, ignore state file
+.RE
+.PP
+\-D \fIportdir\fR
+.RS 4
+Specfiy
+\fIportdir\fR
+.RE
+.PP
+\-F \fIcmdfile\fR
+.RS 4
+Read and process the
+\fIfile\fR
+of commands specified by the argument\&. If the argument is
+\fI\-\fR, then read commands from stdin\&. If the option is given multiple times, then multiple files will be read\&.
+.RE
+.SH "USER TARGETS"
+.sp
+Targets most commonly used by regular MacPorts users are:
+.PP
+search
+.RS 4
+Search for an available port whose name matches a regular expression\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port search vim
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+info
+.RS 4
+Displays meta\-information available for
+\fIportname\fR\&. Specific meta\-information may be requested through an option such as
+\fB\-\-maintainer\fR
 or
-.Ar portname
-is specified, the current working directory is assumed; if no
-.Ar action
-is specified the port command enters interactive mode, in which commands are read via stdin. Batch commands may be
-passed via a
-.Ar cmdfile .
-Port 
-.Ar options 
-are passed as key=value pairs and take precedence over individual
-.Ar portname
-options as specified in its Portfile and system-wide settings.
-.Pp
-Port
-.Ar variants
-can specified as
-.Ar +name ,
-which indicates the variant is desired, or
-.Ar -name ,
-indicating the contrary. In case of ambiguities, a port can be fully specified with the
-.Ar @version_revision+variants
-format.
-.Pp
-Installed ports can be activated or deactivated without being uninstalled. A port can be installed if all other
-version/variant(s) combinations installed at any given moment are deactivated.
-.Pp
-The
-.Nm
-command knows various
-.Ar pseudo-portnames
-that will expand to the specified set of ports from the available ports tree(s). These may be used in place of a
-.Ar portname .
-Common options are:
-.Pp
-.Bl -bullet -offset indent -compact
-.It
-.Ar all :
-all the ports in each ports tree listed in
-.Ar sources.conf
-.Pp
-.It
-.Ar current :
-the port in the current working directory.
-.Pp
-.It
-.Ar active :
-set of installed and active ports.
-.Pp
-.It
-.Ar inactive :
-set of installed but inactive ports.
-.Pp
-.It
-.Ar actinact :
-set of installed ports that have both an active version and one or more inactive versions.
-.Pp
-.It
-.Ar installed :
-set of all installed ports.
-.Pp
-.It
-.Ar uninstalled :
-ports in the ports tree(s) that aren't installed.
-.Pp
-.It
-.Ar outdated :
-installed ports that are out of date with respect to their current version/revision in the ports tree(s)
-.Pp
-.It
-.Ar obsolete :
-set of ports that are installed but no longer exist in any port tree
-.Pp
-.It
-.Ar requested :
-installed ports that were explicitly asked for.
-.Pp
-.It
-.Ar unrequested :
-installed ports that were installed only to satisfy dependencies.
-.Pp
-.It
-.Ar leaves :
-installed ports that are unrequested and have no dependents.
-.Pp
-.El
-Sets of ports can also be specified with
-.Ar pseudo-portname selectors ,
-which expand to the ports in which the value of the
-.Ar Portfile
-key corresponding to the selector's name (in either singular or plural form where applicable)
-matches the given regular expression. Usage is:
-.Ar selector:regex
-.Pp
-Available selectors are:
-.Pp
-.Bl -bullet -offset indent -compact
-.It
-.Ar name
-.It
-.Ar version
-.It
-.Ar revision
-.It
-.Ar epoch
-.It
-.Ar variant
-.It
-.Ar variants
-.It
-.Ar category
-.It
-.Ar categories
-.It
-.Ar maintainer
-.It
-.Ar maintainers
-.It
-.Ar platform
-.It
-.Ar platforms
-.It
-.Ar description
-.It
-.Ar long_description
-.It
-.Ar homepage
-.It
-.Ar portdir
-.El
-.Pp
-.Pp
-Other pseudo-portname selectors match ports which have a particular relationship to
-another port. These will match ports that are direct or recursive dependencies or dependents
-of the given portname:
-.Pp
-.Bl -bullet -offset indent -compact
-.It
-.Ar depof
-.It
-.Ar rdepof
-.It
-.Ar dependentof
-.It
-.Ar rdependentof
-.El
-.Pp
-.Ar portnames
-containing valid UNIX glob patterns will also expand to the set of matching ports. Any
-.Ar action
-passed to
-.Nm
-will be invoked on each of them. For example:
-.Pp
-.Dl port list variant:no_ssl
-.Dl port uninstall name:sql
-.Dl port echo depof:mysql5
-.\" COMMENT: glob pattern expansion in portnames:
-.\" write an example here that illustrats better glob pattern expansion in portnames, but that does not employ
-.\" logical operators (and, or, not, !) because I still haven't gotten to them yet.
-.Dl port echo apache*
-.Pp
-Logical operators "and", "or", "not", "!", "(" and ")" may be used to combine individual
-.Ar portnames ,
-port glob patterns and/or
-.Ar pseudo-portnames
-to construct complex port expressions that expand to the set of matching ports. For example:
-.Pp
-.Dl port upgrade installed and "apache*"
-.Dl port echo maintainer:jberry and uninstalled and \e(\ category:java and not commons*\ \e)
-.\" COMMENT: more complex exmaples here would be useful.
-.\" PENDING: port-url explanation. Proposed text:
-.\".Pp
-.\"A
-.\".Ar portname
-.\"may also be specified as a URL pointing to the location of the
-.\".Ar portdir
-.\" ...
-.Pp
-The
-.Nm
-command also recognizes several command line flags and
-.Ar targets :
-.Sh OPTIONS
-.Bl -tag -width -indent
-.It Fl v
-verbose mode (generate verbose messages)
-.It Fl d
-debug mode (generate debugging messages, implies
-.Fl v )
-.It Fl q
-quiet mode (suppress messages)
-.It Fl n
-don't upgrade dependencies (affects upgrade and install)
-.It Fl R
-also upgrade dependents (only affects upgrade) - note that this does not upgrade dependents' dependencies
-.It Fl u
-uninstall non-active ports when upgrading and uninstalling
-.It Fl f
-force mode (ignore state file)
-.It Fl o
-honor state files even if the Portfile has been modified since (called -o because it used to mean "older")
-.It Fl s
-source-only mode (build and install from source, do not attempt to fetch binary archives)
-.It Fl b
-binary-only mode (build and install from binary archives, ignore source, abort if no archive available)
-.It Fl c
-autoclean mode (execute clean after install)
-.It Fl k
-keep mode (don't autoclean after install)
-.It Fl D
-specify
-.Ar portdir
-.It Fl F
-Read and process the
-.Ar file
-of commands specified by the argument. If the argument is '-', then read commands from stdin. If the option is given multiple times, then multiple files will be read.
-.It Fl p
-Despite any errors encountered, proceed to process multiple ports and commands.
-.It Fl y
-Perform a dry run. All of the steps to build the ports and their dependencies are computed, but not actually performed. With the verbose flag, every step is reported; otherwise there is just one message per port, which allows you to easily determine the recursive deps of a port (and the order in which they will be built).
-.It Fl t
-enable trace mode debug facilities on platforms that support it (Mac OS X). This feature is two-folded. It consists in automatically detecting and reporting undeclared dependencies based on what files the port reads or what programs the port executes. In verbose mode, it will also report unused dependencies for each stage of the port installation. It also consists in forbidding and reporting file creation and file writes outside allowed directories (temporary directories and ${workpath}).
-.El
-.Sh USER TARGETS
-Targets most commonly used by regular MacPorts users are:
-.Ss search
-Search for an available port. By default, the search string is treated as a case-insensitive glob,
-and is matched against the name and description fields. To have the search string treated as
-a regular expression, as a literal, or in a case-sensitive manner, use
-.Fl -regex,
-.Fl -exact,
-or
-.Fl -case-sensitive,
-respectively. To match against a different set of fields, use one or more
-.Fl -<field-name>
-options. To display each result on a single line, use
-.Fl -line.
+\fB\-\-category\fR\&. Recognized field names are those from the PortIndex, see \(lqport help info\(rq for a complete list\&. If no specific fields are specified, a useful default collection of fields will be displayed\&. If the global option
+\fB\-q\fR
+is in effect, the meta\-info fields will not be labeled\&. If the option
+\fB\-\-line\fR
+is provided, all such data will be consolidated into a single line per port, suitable for processing in a pipe of commands\&. If the option
+\fB\-\-pretty\fR
+is provided, the information will be formatted in a somewhat more attractive fashion for human readers\&. This is the default when no options at all are specified to info\&. If the option
+\fB\-\-index\fR
+is provided, the information will be pulled from the PortIndex rather than from the Portfile\&. In this case variant information, such as dependencies, will not affect the output\&.
+.sp
 For example:
-.Pp
-.Dl "port search vim"
-.Dl "port search --regex --depends_build 'docbook.*[0-9]+'"
-.Pp
-.Ss info
-Displays meta-information available for
-.Ar portname .
-Specific meta-information may be requested through an option such as
-.Fl -maintainer
-or
-.Fl -category
-(recognized field names are those from the PortIndex, see "port help
-info" for a complete list). If no specific fields are specified, a
-useful default collection of fields will be displayed. If the global option
-.Fl q
-is in effect, the meta-info fields will not be labeled.
-If the option
-.Fl -line
-is provided, all such data will be consolidated into a single line per port,
-suitable for processing in a pipe of commands.
-If the option
-.Fl -pretty
-is provided, the information will be formatted in a somewhat more
-attractive fashion for human readers. This is the default when no
-options at all are specified to info.
-If the option
-.Fl -index
-is provided, the information will be pulled from the PortIndex rather than
-from the Portfile (in this case variant information, such as dependencies,
-will not affect the output).
-.Pp
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port info vim +ruby
+port info \-\-category \-\-name apache*
+port \-q info \-\-category \-\-name \-\-version category:java
+port info \-\-line \-\-category \-\-name all
+port info \-\-pretty \-\-fullname \-\-depends gtk2
+port info \-\-index python27
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+notes
+.RS 4
+Displays notes for
+\fIportname\fR
+which usually contain useful information concerning setup and use of the port\&.
+.RE
+.PP
+variants
+.RS 4
+Lists the variants available for
+\fIportname\fR\&.
+.RE
+.PP
+deps
+.RS 4
+Lists the other ports that are required to build and run portname\&. This is simply an alias for \(lqinfo \-\-pretty \-\-fullname \-\-depends\(rq\&.
+.RE
+.PP
+rdeps
+.RS 4
+Recursively lists the other ports that are required to build and run portname\&. To display the full dependency tree instead of only showing each port once, use \-\-full\&. To take dependency information from the PortIndex instead of the Portfile (faster, but does not take variant selections into account), use \-\-index\&. To exclude dependencies that are only needed at build time (i\&.e\&. depends_fetch, depends_extract, depends_build), use
+\fB\-\-no\-build\fR\&.
+.RE
+.PP
+dependents
+.RS 4
+Lists the installed ports that depend on the port
+\fIportname\fR\&.
+.RE
+.PP
+rdependents
+.RS 4
+Recursively lists the installed ports that depend on the port portname\&. To display the full tree of dependents instead of only showing each port once, use \-\-full\&.
+.RE
+.PP
+install
+.RS 4
+Install and activate
+\fIportname\fR\&.
+.RE
+.PP
+uninstall
+.RS 4
+Deactivate and uninstall portname\&. To uninstall all installed but
+\fIinactive\fR
+ports, use
+\fB\-u\fR\&. To recursively uninstall all dependents of this port, use
+\fB\-\-follow\-dependents\fR\&. To uninstall portname and then recursively uninstall all ports it depended on, use \-\-follow\-dependencies\&. This will not uninstall dependencies that are marked as requested or that have other dependents\&.
+.sp
 For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port uninstall vim
+port \-u uninstall
+port uninstall \-\-follow\-dependents python27
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+select
+.RS 4
+For a given group, selects a version to be the default by creating appropriate symbolic links\&. For instance, python might be linked to python2\&.6\&. Available select groups are installed as subdirectories of ${prefix}/etc/select/ and can be listed using
+\fB\-\-summary\fR\&. To list the available versions in a group, use
+\fB\-\-list\fR\&. To see which version is currently selected for a group, use
+\fB\-\-show\fR\&. To change the selected version for a group, use
+\fB\-\-set\fR\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port select \-\-summary
+port select \-\-show python
+port select \-\-list python
+port select \-\-set python python34
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+activate
+.RS 4
+Activate the installed
+\fIportname\fR\&.
+.RE
+.PP
+deactivate
+.RS 4
+Deactivate the installed
+\fIportname\fR\&.
+.RE
+.PP
+setrequested
+.RS 4
+Mark portname as requested\&.
+.RE
+.PP
+unsetrequested
+.RS 4
+Mark portname as unrequested\&.
+.RE
+.PP
+installed
+.RS 4
+Show the installed version, variants and activation status for each
+\fIportname\fR\&. If no arguments are given, all installed ports are displayed\&.
+.RE
+.PP
+location
+.RS 4
+Print the install location of a given port\&.
+.RE
+.PP
+contents
+.RS 4
+Lists the files installed by
+\fIportname\fR\&.
+.RE
+.PP
+provides
+.RS 4
+Determines which port owns a given file and can take either a relative or absolute path\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port provides /opt/local/etc/irssi\&.conf
+port provides include/tiff\&.h
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+sync
+.RS 4
+Performs a sync operation only on the ports tree of a MacPorts installation, pulling in the latest revision available of the Portfiles from the MacPorts rsync server\&.
+.sp
+To update you would normally do:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+sudo port \-d sync
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+If any of the ports tree(s) uses a file: URL that points to a local subversion working copy, sync will perform an svn update on the working copy with the user set to the owner of the working copy\&.
+.RE
+.PP
+outdated
+.RS 4
+Lists the installed ports which need a
+\fIupgrade\fR\&.
+.RE
+.PP
+upgrade
+.RS 4
+The upgrade target works on a port and its dependencies\&. If you want to change this behavior, look at the switches for
+\fB\-n\fR
+(no dependencies) and
+\fB\-R\fR
+(dependents) above\&.
+.sp
+Upgrade the installed
+\fIportname\fR\&. For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port upgrade vim
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+To upgrade all outdated ports:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port upgrade outdated
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+To upgrade
+\fIportname\fR
+and the ports that depend on it:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port \-R upgrade libiconv
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+To force a rebuild of
+\fIportname\fR
+and all of its dependencies use:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port upgrade \-\-force vim
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+To upgrade
+\fIportname\fR
+without following its dependencies before, use
+\fB\-n\fR\&.
+.sp
+For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port \-n upgrade wireshark
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
 .br
-.Dl "port info vim +ruby"
-.Dl "port info --category --name apache*"
-.Dl "port -q info --category --name --version category:java"
-.Dl "port info --line --category --name all"
-.Dl "port info --pretty --fullname --depends gtk2"
-.Dl "port info --index python24"
-.Ss notes
-Displays notes for 
-.Ar portname
-(useful information concerning setup and use of the port).
-.Ss variants
-Lists the build variants available for
-.Ar portname .
-.Ss deps
-Lists the other ports that are required to build and run
-.Ar portname .
-This is simply an alias for "info --pretty --fullname --depends".
-.Ss rdeps
-Recursively lists the other ports that are required to build and run
-.Ar portname .
-To display the full dependency tree instead of only showing each port once, use
-.Fl -full .
-To take dependency information from the PortIndex instead of the Portfile
-(faster, but does not take variant selections into account), use
-.Fl -index .
-To exclude dependencies that are only needed at build time (i.e.
-depends_fetch, depends_extract, depends_build), use
-.Fl -no-build .
-.Ss dependents
-Lists the installed ports that depend on the port
-.Ar portname .
-.Ss rdependents
-Recursively lists the installed ports that depend on the port
-.Ar portname .
-To display the full tree of dependents instead of only showing each port once, use
-.Fl -full .
-.Ss install
-Install and activate
-.Ar portname .
-.Ss uninstall
-Deactivate and uninstall
-.Ar portname .
-To uninstall all installed but inactive ports, use
-.Fl u .
-To recursively uninstall all ports that depend on
-.Ar portname
-before uninstalling the port itself, use
-.Fl -follow-dependents .
-To uninstall
-.Ar portname
-and then recursively uninstall all ports it depended on, use
-.Fl -follow-dependencies .
-This will not uninstall dependencies that are marked as requested or that have other dependents.
-.Pp
+.ps +1
+\fBNote\fR
+.ps -1
+.br
+By selecting the variants to use in the upgraded build of the port, any variants specified on the command line take highest precedence, then the variants active in the latest installed version of the port, and finally the global variants specified in variants\&.conf, if any\&. Note that upgrade will not normally rebuild a port only to change the selected variants; you can either specify \-\-enforce\-variants, or deactivate the port and reinstall it with different variants\&.
+.sp .5v
+.RE
+\ \&
+.sp
+After the upgrade MacPorts will automatically run rev\-upgrade to check for broken ports that need to be rebuilt\&. If there are known problems with rev\-upgrade or other reasons why you would want to avoid running this step, you can disable it by running port upgrade with the \-\-no\-rev\-upgrade switch:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port upgrade \-\-no\-rev\-upgrade outdated
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+rev\-upgrade
+.RS 4
+Manually check for broken binaries and rebuild ports containing broken binaries\&. rev\-upgrade is usually automatically run after each upgrade, unless you specify the \-\-no\-rev\-upgrade option\&.
+
+rev\-upgrade can run more checks against a special loadcommand in Mach\-O binaries that should always be referencing the file itself\&. This check is most helpful for maintainers to check whether their ports have been built correctly\&. It is disabled by default and can be enabled by passing \-\-id\- loadcmd\-check to rev\-upgrade\&.
+
+See also:
+\fBmacports.conf\fR(5)
+.RE
+.PP
+clean
+.RS 4
+Clean the files used for building
+\fIportname\fR\&. To just remove the work files, use the
+\fB\-\-work\fR\fIactionflag\fR\&. This is the default when no flag is given\&. To remove the distribution files (fetched tarballs, patches, etc), specify
+\fB\-\-dist\fR\&. To remove any archive(s) of a port than remain in the temporary download directory, pass
+\fB\-\-archive\fR\&. (This does not remove archives from the installed location\&.) To remove log files for a port, pass
+\fB\-\-logs\fR\&. To remove the work files, distribution files, temporary archives and logs pass
+\fB\-\-all\fR\&.
+.sp
 For example:
-.Pp
-.Dl "port uninstall vim"
-.Dl "port -u uninstall"
-.Dl "port uninstall --follow-dependents python24"
-.Ss select
-For a given
-.Ar group ,
-selects a
-.Ar version
-to be the default by creating appropriate symbolic links.
-For instance,
-.Ic "python"
-might be linked to
-.Ic "python2.6" .
-Available select groups are installed as subdirectories of
-.Ar ${prefix}/etc/select/
-and can be listed using
-.Fl -summary .
-To list the available versions in a group, use
-.Fl -list .
-To see which version is currently selected for a group, use
-.Fl -show .
-To change the selected version for a group, use
-.Fl -set .
-.Pp
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port clean \-\-dist vim
+port clean \-\-archive vim
+port clean \-\-logs vim
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+To remove only certain version(s) of a port\(cqs archives (version is any valid UNIX glob pattern), you can use:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port clean \-\-archive vim 6\&.2\&.114
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+or:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port clean \-\-archive vim \*(Aq6\&.*\*(Aq
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+log
+.RS 4
+Parses and shows log files for
+\fIportname\fR\&. To filter log files by some criterions use
+\fB\-\-phase\fR
+to specify the phase you want to show and
+\fB\-\-verbosity\fR
+to specify message category (msg, info, debug)\&.
+.sp
 For example:
-.Pp
-.Dl "port select --summary"
-.Dl "port select --show python"
-.Dl "port select --list python"
-.Dl "port select --set python python34"
-.Pp
-.Ss activate
-Activate the installed
-.Ar portname .
-.Ss deactivate
-Deactivate the installed
-.Ar portname .
-.Ss setrequested
-Mark
-.Ar portname
-as requested.
-.Ss unsetrequested
-Mark
-.Ar portname
-as unrequested.
-.Ss installed
-Show the installed versions and variants for
-.Ar portname .
-If no
-.Ar portname
-is given, all installed ports are shown.
-.Ss location
-Print the install location of a given port.
-.Ss contents
-Lists the files installed by
-.Ar portname .
-.Ss provides
-Determines which port owns a given file and can take either a relative or absolute path. For example:
-.Pp
-.Dl "port provides /opt/local/etc/irssi.conf"
-.Dl "port provides include/tiff.h"
-.Ss sync
-Performs a sync operation only on the ports tree of a MacPorts installation, pulling in the latest
-revision available of the
-.Ar Portfiles
-from the MacPorts rsync server. To update you would normally do:
-.Pp
-.Dl "sudo port -d sync"
-.Pp
-If any of the ports tree(s) uses a file: URL that points to a local subversion working copy,
-.Ic sync
-will perform an
-.Ic "svn update"
-on the working copy with the user set to the owner of the working copy.
-.Ss outdated
-List the installed ports that need upgrading.
-.Ss upgrade
-The upgrade target works on a port and its dependencies. If you
-want to change this behaviour, look at the switches for n (no
-dependencies) and R (dependents) below.
-.Pp    
-Upgrade the installed
-.Ar portname .
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port log \-\-phase configure vim
+port log \-\-phase fetch \-\-verbosity debug vim
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+logfile
+.RS 4
+Displays the path to the log file for
+\fIportname\fR\&.
+.RE
+.PP
+echo
+.RS 4
+Writes to stdout the arguments passed to
+\fIport\fR\&. This follows the expansion of
+\fIpseudo\-portnames\fR, portname glob patterns,
+\fIpseudo\-portname selectors\fR
+and the evaluation of
+\fIport\-expressions\fR\&.
+\fBecho\fR
+may be used to determine the exact set of ports to which a given string of arguments will expand, without performing any further operations on them\&.
+.sp
 For example:
-.Pp
-.Dl "port upgrade vim"
-.Pp
-To upgrade all installed ports:
-.Pp
-.Dl "port upgrade installed"
-.Pp
-To upgrade
-.Ar portname
-and the ports that depend on it:
-.Pp
-.Dl "port -R upgrade libiconv"
-.Pp
-To force an upgrade (rebuild) use:
-.Pp
-.Dl "port upgrade --force vim"
-.Pp
-To upgrade
-.Ar portname
-without following its dependencies, use
-.Fl n .
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port echo category:net
+port echo maintainer:jmpp and name:netw
+port echo maintainer:jmpp and \e( net* or category:text \e)
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+list
+.RS 4
+If no argument is given, display a list of the latest version of all available ports\&. If portname(s) are given as arguments, display a list of the latest version of each port\&.
+.RE
+.PP
+mirror
+.RS 4
+Create/update a local mirror of distfiles used for ports given on the command line\&. The filemap database can be reset by using the
+\fB\-\-new\fR
+option (though if no database is found, it will be created automatically)\&. If the fetched file does not match the checksum given in the Portfile, it is deleted\&. This can be used with
+\fIpseudo\-portnames\fR, e\&.g\&.
+\fIall\fR, to mirror everything\&. Note that if you use
+\fIall\fR, you\(cqll most likely want to use
+\fB\-p\fR
+so
+\fBport\fR
+doesn\(cqt quit on the first download failure\&.
+.RE
+.PP
+version
+.RS 4
+Display the release number of the installed MacPorts infrastructure\&.
+.RE
+.PP
+selfupdate
+.RS 4
+Updates the MacPorts system, ports tree(s) and base tools if needed, from the MacPorts rsync server, installing the newest infrastructure available\&.
+.sp
+To update you would typically do:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+sudo port selfupdate
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+See
+\fIsync\fR
+for more information about updating ports tree(s)\&.
+.RE
+.PP
+load
+.RS 4
+Provides a shortcut to using launchctl to load a port\(cqs daemon (as installed in /Library/LaunchDaemons)\&. It runs:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+launchctl load \-w /Library/LaunchDaemons/org\&.macports\&.${port}\&.plist
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+unload
+.RS 4
+A shortcut to launchctl, like load, but unloads the daemon\&.
+.RE
+.PP
+gohome
+.RS 4
+Loads the home page for the given portname in the default web browser\&.
+.RE
+.PP
+usage
+.RS 4
+Displays a condensed usage summary\&.
+.RE
+.PP
+help
+.RS 4
+Displays a summary of all available actions and port command syntax on stdout\&.
+.RE
+.SH "DEVELOPER TARGETS"
+.sp
+The targets that are often used by Port developers are intended to provide access to the different phases of a Port\(cqs build process:
+.PP
+dir
+.RS 4
+Displays the path to the directory containing
+\fIportname\fR\&.
+.RE
+.PP
+work
+.RS 4
+Displays the path to the work directory for
+\fIportname\fR\&.
+.RE
+.PP
+cd
+.RS 4
+Changes the current working directory to the one containing portname\&. Only useful in interactive mode\&.
+.RE
+.PP
+file
+.RS 4
+Displays the path to the Portfile for
+\fIportname\fR\&.
+.RE
+.PP
+url
+.RS 4
+Displays the URL for the path of the given portname, which can be passed as
+\fIport\-url\fR\&.
+.RE
+.PP
+cat
+.RS 4
+Concatenates and prints the contents of
+\fIPortfile\fR
+on stdout\&.
+.RE
+.PP
+edit
+.RS 4
+Opens Portfile with your default editor specified in your shell\(cqs environment variable\&. You can also use the \-\-editor flag on the command line to specify an alternative editor\&.
+.sp
 For example:
-.Pp
-.Dl "port -n upgrade wireshark"
-.Pp  
-Note that in selecting the variants to use in the upgraded build of the 
-port, any variants specified on the command line take highest precedence, 
-then the variants active in the latest installed version of the port, and 
-finally the global variants specified in variants.conf, if any.  Note that 
-upgrade will not normally rebuild a port only to change the selected 
-variants; you can either specify --enforce-variants, or deactivate the port and reinstall it 
-with different variants. 
-.Pp
-After the upgrade MacPorts will automatically run \fBrev-upgrade\fP to check for
-broken ports that need to be rebuilt. If there are known problems with
-\fBrev-upgrade\fP or other reasons why you would want to avoid running this
-step, you can disable it by running \fBport upgrade\fP with the
-\fB--no-rev-upgrade\fP switch:
-.Pp
-.Dl "port upgrade --no-rev-upgrade outdated"
-.Ss rev-upgrade
-Manually check for broken binaries and rebuild ports containing broken binaries.
-\fBrev-upgrade\fP is usually automatically run after each upgrade, unless you
-specify the \fB--no-rev-upgrade\fP option.
-.Pp
-\fBrev-upgrade\fP can run more checks against a special loadcommand in Mach-O
-binaries that should always be referencing the file itself. This check is most
-helpful for maintainers to check whether their ports have been built correctly.
-It is disabled by default and can be enabled by passing \fB--id-loadcmd-check\fP
-to \fBrev-upgrade\fP.
-.Pp
-See also:
-.Xr macports.conf 5
-.Ss clean
-Clean the files used for building
-.Ar portname .
-To just remove the work files, use the
-.Fl -work
-.Ar actionflag .
-This is the default when no flag is given.
-To remove the distribution files (tarballs, etc), specify
-.Fl -dist .
-To remove any archives of a port that remain in the temporary download directory, pass
-.Fl -archive .
-(This does not remove archives from the installed location.)
-To remove the log files for a port, pass
-.Fl -logs .
-To remove the work files, distribution files, temporary archives and logs, pass
-.Fl -all .
-For example:
-.Pp
-.Dl "port clean --dist vim"
-.Dl "port clean --logs vim"
-.Pp
-To remove only certain version(s) of a port's temporary archives (
-.Ar version
-is any valid UNIX glob pattern), you can use:
-.Pp
-.Dl "port clean --archive vim 6.2.114"
-.Pp
-or:
-.Pp
-.Dl "port clean --archive vim '6.*'"
-.Ss log
-Parses and shows log files for
-.Ar portname .
-To filter log files by some criterions use
-.Fl -phase 
-to specify phase you want to show and
-.Fl -verbosity
-to specify message category (msg, info, debug)
-For example:
-.Pp
-.Dl "port log --phase configure vim"
-.Dl "port log --phase fetch --verbosity debug vim"
-.Pp
-.Ss logfile
-Displays the path to the log file for
-.Ar portname .
-.Pp
-.Ss echo
-Writes to stdout the arguments passed to
-.Nm .
-This follows the expansion of
-.Ar pseudo-portnames ,
-portname glob patterns,
-.Ar pseudo-portname selectors
-and the evaluation of port expressions.
-.Nm echo 
-may be used to determine the exact set of ports to which a given string of arguments will expand, without performing any further operations on them. For example:
-.Pp
-.Dl port echo category:net
-.Dl port echo maintainer:jmpp and name:netw
-.Dl port echo maintainer:jmpp and \e(\ net* or category:text\ \e)
-.Pp
-.Ss list
-If no argument is given, display a list of the latest version of all available ports.
-If portname(s) are given as arguments, display a list of the latest version of each port.
-.Ss mirror
-Create/update a local mirror of distfiles used for ports given on the command line.  The filemap database can be reset by using the
-.Fl -new
-option (though if no database is found, it will be created automatically).
-If the fetched file does not match the checksum given in the Portfile, it is
-deleted.  This can be used with
-.Ar pseudo-portnames ,
-eg,
-.Ar all ,
-to mirror everything.  Note that if you use
-.Ar all ,
-you'll most likely want to use
-.Fl p
-so
-.Nm
-doesn't quit on the first download failure.
-.Ss version
-Display the release number of the installed MacPorts infrastructure.
-.Ss platform
-Display the platform information for the current system.
-.Ss selfupdate
-Updates the MacPorts system, ports tree(s) and base tools if needed, from the MacPorts rsync server,
-installing the newest infrastructure available. To update you would typically do:
-.Pp
-.Dl "sudo port selfupdate"
-.Pp
-See
-.Ic sync
-for more information about updating ports tree(s).
-.Ss load
-Provides a shortcut to using launchctl to load a port's daemon (as installed
-in /Library/LaunchDaemons).  It runs:
-.Pp
-.Dl launchctl load -w /Library/LaunchDaemons/org.macports.${port}.plist
-.Ss unload
-A shortcut to launchctl, like load, but unloads the daemon.
-.Ss gohome
-Loads the home page for the given 
-.Ar portname 
-in the default web browser.
-.Ss usage
-Displays a condensed usage summary.
-.Ss help
-Displays a summary of all available actions and port command syntax on stdout.
-.Sh DEVELOPER TARGETS
-The targets that are often used by Port developers are intended to provide access to the different phases of a Port's build process:
-.Ss dir
-Displays the path to the directory containing
-.Ar portname .
-.Ss work
-Displays the path to the work directory for
-.Ar portname .
-.Ss cd
-Changes the current working directory to the one containing
-.Ar portname .
-Only useful in interactive mode.
-.Ss file
-Displays the path to the Portfile for
-.Ar portname .
-.Ss url
-Displays the URL for the path of the given
-.Ar portname ,
-which can be passed as port-url
-.Ss cat
-Concatenates and prints the contents of
-.Ar Portfile
-on stdout.
-.Ss edit
-Opens
-.Ar Portfile 
-with your default editor specified in your shell's environment variable.
-.Pp
-You can also use the
-.Fl -editor
-flag on the command line to specify an alternative editor. For example:
-.Dl port edit --editor nano apache2
-.Pp
-.Ss fetch
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port edit \-\-editor nano apache2
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+fetch
+.RS 4
 Fetches the distribution files required to build
-.Ar portname .
-.Ss checksum
-Compute the checksums of the distribution files for 
-.Ar portname ,
-and compare them to the checksums listed in 
-.Ar Portfile .
-.Ss extract
+\fIportname\fR\&.
+.RE
+.PP
+checksum
+.RS 4
+Compute the checksums of the distribution files for
+\fIportname\fR, and compare them to the checksums listed in
+\fIPortfile\fR\&.
+.RE
+.PP
+extract
+.RS 4
 Extracts the distribution files for
-.Ar portname .
-.Ss patch
-Applies any required patches to 
-.Ar portname's
-extracted distribution files.
-.Ss configure
+\fIportname\fR\&.
+.RE
+.PP
+patch
+.RS 4
+Applies any required patches to
+\fIportname\(cqs\fR
+extracted distribution files\&.
+.RE
+.PP
+configure
+.RS 4
 Runs any configure process for
-.Ar portname .
-.Ss build
+\fIportname\fR\&.
+.RE
+.PP
+build
+.RS 4
 Build
-.Ar portname .
-.Ss destroot
+\fIportname\fR\&.
+.RE
+.PP
+destroot
+.RS 4
 Installs
-.Ar portname
-to a temporary directory.
-.Ss test
+\fIportname\fR
+to a temporary directory\&.
+.RE
+.PP
+test
+.RS 4
 Tests
-.Ar portname .
-.Ss lint
-Verifies Portfile for
-.Ar portname .
-To nitpick about whitespace and patchfile names, use
-.Fl -nitpick .
-.Ss distcheck
-Check if the distfiles haven't changed and can be fetched.
-.Ss distfiles
-Display each distfile, its checksums, and the URLs used to fetch it.
-.Ss livecheck
-Check if the software hasn't been updated since the Portfile was last modified.
-.Sh PACKAGING TARGETS
+\fIportname\fR\&.
+.RE
+.PP
+lint
+.RS 4
+Verifies Portfile for portname\&. To nitpick about whitespace and patchfile names, use
+\fB\-\-nitpick\fR\&.
+.RE
+.PP
+distcheck
+.RS 4
+Check if the distfiles haven\(cqt changed and can be fetched\&.
+.RE
+.PP
+distfiles
+.RS 4
+Display each distfile, its checksums, and the URLs used to fetch it\&.
+.RE
+.PP
+livecheck
+.RS 4
+Check if the software hasn\(cqt been updated since the Portfile was last modified\&.
+.RE
+.SH "PACKAGING TARGETS"
+.sp
 There are also targets for producing installable packages of ports:
-.Pp
-.Ss pkg
+.PP
+pkg
+.RS 4
 Creates an OS X installer package of
-.Ar portname.
-.Ss mpkg
-Creates an OS X installer metapackage of 
-.Ar portname
-and its dependencies.
-.Ss dmg
-Creates an internet-enabled disk image containing an OS X package of
-.Ar portname .
-.Ss mdmg
-Creates an internet-enabled disk image containing an OS X metapackage of
-.Ar portname
-and its dependencies.
-.Ss rpm
+\fIportname\fR\&.
+.RE
+.PP
+mpkg
+.RS 4
+Creates an OS X installer metapackage of
+\fIportname\fR
+and its dependencies\&.
+.RE
+.PP
+dmg
+.RS 4
+Creates an internet\-enabled disk image containing an OS X package of
+\fIportname\fR\&.
+.RE
+.PP
+mdmg
+.RS 4
+Creates an internet\-enabled disk image containing an OS X metapackage of
+\fIportname\fR
+and its dependencies\&.
+.RE
+.PP
+rpm
+.RS 4
 Creates an RPM binary package of
-.Ar portname ,
-similar to a tgz "archive".
-.Ss srpm
+\fIportname\fR, similar to a tgz \(lqarchive\(rq\&.
+.RE
+.PP
+srpm
+.RS 4
 Creates a SRPM source package of
-.Ar portname ,
-similar to a xar "portpkg".
-.Ss dpkg
+\fIportname\fR, similar to a xar \(lqportpkg\(rq\&.
+.RE
+.PP
+dpkg
+.RS 4
 Creates a DEB binary package of
-.Ar portname .
-.Sh EXAMPLES
-The following demonstrates invoking
-.Nm
-with the
-.Ar extract
-target on
-.Ar portdir
-\&"textproc/figlet" and extract.suffix set to ".tgz":
-.Pp
-.Dl "port extract -D textproc/figlet extract.suffix=.tgz"
-.Pp
-.Sh FILES
-.Bl -tag -width
-.It Va ${prefix}/etc/macports/macports.conf
-Global configuration file for the MacPorts system.
-.It Va ${prefix}/etc/macports/sources.conf
-Global listing of the ports trees used by MacPorts. This file also enables rsync synchronization.
-.It Va ${prefix}/etc/macports/variants.conf
-Global variants used when a port is installed.
-.It Va ~/.macports/macports.conf
-User configuration file for the MacPorts system. It overrides the global
-.Ar macports.conf
-file.
-.El
-.Sh DIAGNOSTICS
-.Ex -std
-.Sh SEE ALSO
-.Xr macports.conf 5 ,
-.Xr portfile 7 ,
-.Xr portgroup 7 ,
-.Xr portstyle 7 ,
-.Xr porthier 7
-.Sh AUTHORS
-.An "Landon Fuller" Aq landonf@macports.org
-.An "James Berry" Aq jberry@macports.org
-.An "Jordan K. Hubbard" Aq jkh@macports.org
-.An "Juan Manuel Palacios" Aq jmpp@macports.org
-.An "Kevin Van Vechten" Aq kevin@opendarwin.org
-.An "Ole Guldberg Jensen" Aq olegb@opendarwin.org
-.An "Robert Shaw" Aq rshaw@opendarwin.org
-.An "Chris Ridd" Aq cjr@opendarwin.org
-.An "Matt Anton" Aq matt@opendarwin.org
-.An "Joe Auty" Aq joe@opendarwin.org
+\fIportname\fR\&.
+.RE
+.SH "EXAMPLES"
+.sp
+The following demonstrates invoking port with the extract target on portdir \(lqtextproc/figlet\(rq and extract\&.suffix set to \(lq\&.tgz\(rq:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port extract \-D textproc/figlet extract\&.suffix=\&.tgz
+.fi
+.if n \{\
+.RE
+.\}
+.SH "FILES"
+.PP
+${prefix}/etc/macports/macports\&.conf
+.RS 4
+Global configuration file for the MacPorts system\&.
+.RE
+.PP
+${prefix}/etc/macports/sources\&.conf
+.RS 4
+Global listing of the ports trees used by MacPorts\&. This file also enables rsync synchronization\&.
+.RE
+.PP
+${prefix}/etc/macports/variants\&.conf
+.RS 4
+Global variants used when a port is installed\&.
+.RE
+.PP
+~/\&.macports/macports\&.conf
+.RS 4
+User configuration file for the MacPorts system\&. It overrides the global
+\fImacports\&.conf(5)\fR
+file\&.
+.RE
+.SH "DIAGNOSTICS"
+.sp
+The \fBport\fR utility exits 0 on success, and >0 if an error occurs\&.
+.SH "SEE ALSO"
+.sp
+\fBmacports.conf\fR(5), \fBportfile\fR(7), \fBportgroup\fR(7), \fBportstyle\fR(7), \fBporthier\fR(7)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2002\-2003 Apple Inc\&.
+(C) 2004\-2012 The MacPorts Project
+Landon Fuller <landonf@macports\&.org>
+James Berry <jberry@macports\&.org>
+Jordan K\&. Hubbard <jkh@macports\&.org>
+Juan Manuel Palacios <jmpp@macports\&.org>
+Kevin Van Vechten <kevin@opendarwin\&.org>
+Ole Guldberg Jensen <olegb@opendarwin\&.org>
+Robert Shaw <rshaw@opendarwin\&.org>
+Chris Ridd <cjr@opendarwin\&.org>
+Matt Anton <matt@opendarwin\&.org>
+Joe Auty <joe@opendarwin\&.org>
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/port.1.txt
===================================================================
--- /trunk/base/doc/port.1.txt	(revision 123002)
+++ /trunk/base/doc/port.1.txt	(revision 123002)
@@ -0,0 +1,703 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+port(1)
+=======
+$Id$
+
+NAME
+----
+port - Command line interface for MacPorts
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+*port* [*-bcdfknopqRstuvy*] [*-D* 'portdir'] [*-F* 'cmdfile'] ['action'] ['actionflags']
+     [['portname' | 'pseudo-portname' | 'port-expressions' | 'port-url']]
+     [['@version'] [+/-variant ...] ... [option=value ...]]
+
+DESCRIPTION
+-----------
+*port* is designed to operate on individual or multiple 'ports', optionally
+within a single call, based on the requested 'action'. If no 'action' is
+specified the port command enters interactive mode, in which commands are read
+via stdin. If no 'portdir' or 'portname' is specified for an 'action', the
+current working directory is assumed. Batch commands may be passed via a
+'cmdfile'. Port 'options' are passed as key=value pairs and take precedence over
+individual 'portname' options as specified in its Portfile and system-wide
+settings.
+
+Port 'variants' can be specified as '+name', which indicates the variant is
+desired, or '-name', indicating the contrary. In case of ambiguities, a port
+can be fully specified with the '@version_revision+variants' format.
+
+Installed ports can be activated or deactivated without being uninstalled. A
+port can be installed in multiple versions and variant combinations, but only
+one of them can be 'active'. See man:portarchives[7].
+
+When passing 'portnames' to an 'action', *port* recognizes various
+'pseudo-portnames' that will expand to the specified set of ports from the
+available port tree(s). These may be used in the same way as a 'portname'.
+
+.The 'pseudo-portnames' are:
+
+    - 'all': all the ports in each ports tree listed in 'sources.conf'
+    - 'current': the port in the current working directory
+    - 'active': set of installed and active ports
+    - 'inactive': set of installed but inactive ports
+    - 'installed': set of all installed ports
+    - 'uninstalled': ports in the ports tree(s) that are not installed
+    - 'outdated': installed ports that are out of date with respect to their 
+      current version/revision in the ports tree(s)
+    - 'obsolete': set of ports that are installed but no longer exist in any
+      port tree
+    - 'requested': installed ports that were explicitly asked for
+    - 'unrequested': installed ports that were installed only to satisfy
+      dependencies
+    - 'leaves': installed ports that are unrequested and have no dependents
+
+Sets of ports can also be specified with 'pseudo-portname selectors', which
+expand to the ports in which the value of the 'Portfile' option corresponding
+to the selector's name (in either singular or plural form where applicable)
+matches the given regular expression. Usage is: selector:regex
+
+[options="compact"]
+.The 'pseudo-portname selectors' are:
+    - 'name'
+    - 'version'
+    - 'revision'
+    - 'epoch'
+    - 'variant'
+    - 'variants'
+    - 'category'
+    - 'categories'
+    - 'maintainer'
+    - 'maintainers'
+    - 'platform'
+    - 'platforms'
+    - 'description'
+    - 'long_description'
+    - 'homepage'
+    - 'license'
+    - 'portdir'
+
+Other pseudo-portname selectors match ports which have a particular
+relationship to another port. These will match ports that are direct or
+recursive dependencies or dependents of the given portname:
+
+[options="compact"]
+    - 'depof'
+    - 'rdepof'
+    - 'dependentof'
+    - 'rdependentof'
+
+Search strings that will expand to a set of matching ports can be constructed
+based on the "'pseudo-portname selector'":regex combination used. 'portnames'
+containing valid UNIX glob patterns will also expand to the set of matching
+ports. Any action passed to port will be invoked on each of them.
+
+For example:
+--------
+port info variant:no_ssl
+port uninstall name:sql
+port echo depof:mysql5
+port echo 'apache*'
+--------
+
+Logical operators "and", "or", "not", "!", "(" and ")" may be used to combine
+individual 'portnames', port glob patterns and/or 'pseudo-portnames' to
+construct complex 'port-expressions' that expand to the set of matching ports.
+
+For example:
+--------
+port upgrade outdated and 'py27-*'
+port echo maintainer:jberry and uninstalled and \( category:java and not commons* \)
+--------
+
+[NOTE]
+Special shell characters like \*, \( or \) need to be escaped in order to be
+passed correctly to *port*.
+
+
+GLOBAL OPTIONS
+--------------
+
+The port command recognizes several global flags and options.
+
+.Output control
+-v::
+    Verbose mode, generates verbose messages
+
+-d::
+    Debug mode, generate debugging messages, implies -v
+
+-q::
+    Quiet mode, suppress informational messages to a minimum
+
+.Installation and upgrade
+-n::
+    Don't follow dependencies in upgrade (affects 'upgrade' and 'install')
+
+-R::
+    Also upgrade dependents (only for 'upgrade')
+
+-u::
+    Uninstall inactive ports when upgrading and uninstalling
+
+-y::
+    Perform a dry run. All of the steps to build the ports and their
+    dependencies are computed, but not actually performed. With the verbose
+    flag, every step is reported; otherwise there is just one message per port,
+    which allows you to easily determine the recursive deps of a port (and the
+    order in which they will be built).
+
+.Sources
+-s::
+    Source-only mode, build and install from source; do not attempt to fetch
+    binary archives.
+
+-b::
+    Binary-only mode, build and install from binary archives, ignore source,
+    abort if no archive available.
+
+.Cleaning
+-c::
+    Autoclean mode, execute clean after 'install'
+
+-k::
+    Keep mode, do not autoclean after 'install'
+
+.Exit status
+-p::
+    Despite any errors encountered, proceed to process multiple ports and
+    commands.
+
+.Development
+-o::
+    Honor state files even if the Portfile was modified. This flag is called -o
+    because it used to mean "older".
+
+-t::
+    Enable trace mode debug facilities on platforms that support it, currently
+    only Mac OS X.
+    + 
+    This feature is two-folded. It consists in automatically detecting and
+    reporting undeclared dependencies based on what files the port reads or what
+    programs the port executes. In verbose mode, it will also report unused
+    dependencies for each stage of the port installation. It also consists in
+    forbidding and reporting file creation and file writes outside allowed
+    directories (temporary directories and $\{workpath\}).
+
+.Misc
+-f::
+    Force mode, ignore state file
+
+-D 'portdir'::
+    Specfiy 'portdir'
+
+-F 'cmdfile'::
+    Read and process the 'file' of commands specified by the argument. If the
+    argument is '-', then read commands from stdin. If the option is given
+    multiple times, then multiple files will be read.
+
+
+USER TARGETS
+------------
+
+Targets most commonly used by regular MacPorts users are:
+
+search::
+    Search for an available port whose name matches a regular expression.
++
+For example:
++
+--------
+port search vim
+--------
+
+info::
+    Displays meta-information available for 'portname'.  Specific meta-information
+    may be requested through an option such as *--maintainer* or *--category*.
+    Recognized field names are those from the PortIndex, see ``port help info''
+    for a complete list. If no specific fields are specified, a useful
+    default collection of fields will be displayed. If the global option *-q*
+    is in effect, the meta-info fields will not be labeled.  If the option
+    *--line* is provided, all such data will be consolidated into a single
+    line per port, suitable for processing in a pipe of commands.  If the
+    option *--pretty* is provided, the information will be formatted in a
+    somewhat more attractive fashion for human readers. This is the default
+    when no options at all are specified to info. If the option *--index* is
+    provided, the information will be pulled from the PortIndex rather than
+    from the Portfile. In this case variant information, such as
+    dependencies, will not affect the output.
++
+For example:
++
+--------
+port info vim +ruby
+port info --category --name apache*
+port -q info --category --name --version category:java
+port info --line --category --name all
+port info --pretty --fullname --depends gtk2
+port info --index python27
+--------
+
+notes::
+    Displays notes for 'portname' which usually contain useful information
+    concerning setup and use of the port.
+
+variants::
+    Lists the variants available for 'portname'.
+
+deps::
+    Lists the other ports that are required to build and run portname. This is
+    simply an alias for ``info --pretty --fullname --depends''.
+
+rdeps::
+    Recursively lists the other ports that are required to build and run
+    portname. To display the full dependency tree instead of only showing each
+    port once, use --full. To take dependency information from the PortIndex
+    instead of the Portfile (faster, but does not take variant selections into
+    account), use --index. To exclude dependencies that are only needed at
+    build time (i.e. depends_fetch, depends_extract, depends_build), use
+    *--no-build*.
+
+dependents::
+    Lists the installed ports that depend on the port 'portname'.
+
+rdependents::
+    Recursively lists the installed ports that depend on the port portname. To
+    display the full tree of dependents instead of only showing each port once,
+    use --full.
+
+install::
+    Install and activate 'portname'.
+
+uninstall::
+    Deactivate and uninstall portname. To uninstall all installed but 'inactive'
+    ports, use *-u*. To recursively uninstall all dependents of this port, use
+    *--follow-dependents*. To uninstall portname and then recursively uninstall
+    all ports it depended on, use --follow-dependencies.  This will not
+    uninstall dependencies that are marked as requested or that have other
+    dependents.
++
+For example:
++
+--------
+port uninstall vim
+port -u uninstall
+port uninstall --follow-dependents python27
+--------
+
+select::
+    For a given group, selects a version to be the default by creating
+    appropriate symbolic links.  For instance, python might be linked to
+    python2.6. Available select groups are installed as subdirectories of
+    $\{prefix\}/etc/select/ and can be listed using *--summary*.  To list the
+    available versions in a group, use *--list*. To see which version is currently
+    selected for a group, use *--show*. To change the selected version for
+    a group, use *--set*.
++
+For example:
++
+--------
+port select --summary
+port select --show python
+port select --list python
+port select --set python python34
+--------
+
+activate::
+    Activate the installed 'portname'.
+
+deactivate::
+    Deactivate the installed 'portname'.
+
+setrequested::
+    Mark portname as requested.
+
+unsetrequested::
+    Mark portname as unrequested.
+
+installed::
+    Show the installed version, variants and activation status for each
+    'portname'. If no arguments are given, all installed ports are displayed.
+
+location::
+    Print the install location of a given port.
+
+contents::
+    Lists the files installed by 'portname'.
+
+provides::
+    Determines which port owns a given file and can take either a relative or
+    absolute path.
++
+For example:
++
+--------
+port provides /opt/local/etc/irssi.conf
+port provides include/tiff.h
+--------
+
+sync::
+    Performs a sync operation only on the ports tree of a MacPorts installation,
+    pulling in the latest revision available of the Portfiles from the MacPorts
+    rsync server.
++
+To update you would normally do:
++
+--------
+sudo port -d sync
+--------
++
+If any of the ports tree(s) uses a file: URL that points to a local
+subversion working copy, sync will perform an svn update on the working
+copy with the user set to the owner of the working copy.
++
+
+outdated::
+    Lists the installed ports which need a 'upgrade'.
+
+upgrade::
+    The upgrade target works on a port and its dependencies. If you want to
+    change this behavior, look at the switches for *-n* (no dependencies) and
+    *-R* (dependents) above.
++
+--
+Upgrade the installed 'portname'. For example:
+--------
+port upgrade vim
+--------
+
+To upgrade all outdated ports:
+
+--------
+port upgrade outdated
+--------
+
+To upgrade 'portname' and the ports that depend on it:
+
+--------
+port -R upgrade libiconv
+--------
+
+To force a rebuild of 'portname' and all of its dependencies use:
+
+--------
+port upgrade --force vim
+--------
+
+To upgrade 'portname' without following its dependencies before, use *-n*.
+
+For example:
+
+--------
+port -n upgrade wireshark
+--------
+
+[NOTE]
+By selecting the variants to use in the upgraded build of the port, any variants
+specified on the command line take highest precedence, then the variants active
+in the latest installed version of the port, and finally the global variants
+specified in variants.conf, if any. Note that upgrade will not normally rebuild
+a port only to change the selected variants; you can either specify
+--enforce-variants, or deactivate the port and reinstall it with different
+variants.
+
+// Forcing a new paragraph here by inserting a dummy space
+{nbsp}
+
+After the upgrade MacPorts will automatically run rev-upgrade to check for
+broken ports that need to be rebuilt. If there are known problems with
+rev-upgrade or other reasons why you would want to avoid running this step, you
+can disable it by running port upgrade with the --no-rev-upgrade switch:
+
+--------
+port upgrade --no-rev-upgrade outdated
+--------
+--
+
+rev-upgrade::
+    Manually check for broken binaries and rebuild ports containing broken
+    binaries.  rev-upgrade is usually automatically run after each upgrade,
+    unless you specify the --no-rev-upgrade option.
+    +
+    rev-upgrade can run more checks against a special loadcommand in Mach-O
+    binaries that should always be referencing the file itself. This check is
+    most helpful for maintainers to check whether their ports have been built
+    correctly. It is disabled by default and can be enabled by passing --id-
+    loadcmd-check to rev-upgrade.
+    +
+    See also: man:macports.conf[5]
+
+clean::
+    Clean the files used for building 'portname'. To just remove the work files,
+    use the *--work* 'actionflag'.  This is the default when no flag is given.
+    To remove the distribution files (fetched tarballs, patches, etc), specify
+    *--dist*. To remove any archive(s) of a port than remain in the temporary
+    download directory, pass *--archive*. (This does not remove archives from
+    the installed location.) To remove log files for a port, pass *--logs*. To
+    remove the work files, distribution files, temporary archives and logs pass
+    *--all*.
++
+--
+For example:
+
+--------
+port clean --dist vim
+port clean --archive vim
+port clean --logs vim
+--------
+
+To remove only certain version(s) of a port's archives (version is any
+valid UNIX glob pattern), you can use:
+
+--------
+port clean --archive vim 6.2.114
+--------
+
+or:
+
+--------
+port clean --archive vim '6.*'
+--------
+--
+
+log::
+    Parses and shows log files for 'portname'. To filter log files by some
+    criterions use *--phase* to specify the phase you want to show and
+    *--verbosity* to specify message category (msg, info, debug).
++
+For example:
++
+--------
+port log --phase configure vim
+port log --phase fetch --verbosity debug vim
+--------
+
+logfile::
+    Displays the path to the log file for 'portname'.
+
+echo::
+    Writes to stdout the arguments passed to 'port'. This follows the expansion
+    of 'pseudo-portnames', portname glob patterns, 'pseudo-portname selectors'
+    and the evaluation of 'port-expressions'. *echo* may be used to determine
+    the exact set of ports to which a given string of arguments will expand,
+    without performing any further operations on them.
++
+For example:
++
+--------
+port echo category:net
+port echo maintainer:jmpp and name:netw
+port echo maintainer:jmpp and \( net* or category:text \)
+--------
+
+list::
+    If no argument is given, display a list of the latest version of all
+    available ports. If portname(s) are given as arguments, display a list of
+    the latest version of each port.
+
+mirror::
+    Create/update a local mirror of distfiles used for ports given on the
+    command line. The filemap database can be reset by using the *--new* option
+    (though if no database is found, it will be created automatically). If the
+    fetched file does not match the checksum given in the Portfile, it is
+    deleted. This can be used with 'pseudo-portnames', e.g. 'all', to mirror
+    everything.  Note that if you use 'all', you'll most likely want to use *-p*
+    so *port* doesn't quit on the first download failure.
+
+version::
+    Display the release number of the installed MacPorts infrastructure.
+
+selfupdate::
+    Updates the MacPorts system, ports tree(s) and base tools if needed, from
+    the MacPorts rsync server, installing the newest infrastructure available.
++
+To update you would typically do:
++
+--------
+sudo port selfupdate
+--------
++
+See 'sync' for more information about updating ports tree(s).
+
+load::
+    Provides a shortcut to using launchctl to load a port's daemon (as installed
+    in /Library/LaunchDaemons). It runs:
++
+--------
+launchctl load -w /Library/LaunchDaemons/org.macports.${port}.plist
+--------
+
+unload::
+    A shortcut to launchctl, like load, but unloads the daemon.
+
+gohome::
+    Loads the home page for the given portname in the default web browser.
+
+usage::
+    Displays a condensed usage summary.
+
+help::
+    Displays a summary of all available actions and port command syntax on
+    stdout.
+
+DEVELOPER TARGETS
+-----------------
+
+The targets that are often used by Port developers are intended to provide
+access to the different phases of a Port's build process:
+
+dir::
+    Displays the path to the directory containing 'portname'.
+
+work::
+    Displays the path to the work directory for 'portname'.
+
+cd::
+    Changes the current working directory to the one containing portname. Only
+    useful in interactive mode.
+
+file::
+    Displays the path to the Portfile for 'portname'.
+
+url::
+    Displays the URL for the path of the given portname, which can be passed as
+    'port-url'.
+
+cat::
+    Concatenates and prints the contents of 'Portfile' on stdout.
+
+edit::
+    Opens Portfile with your default editor specified in your shell's
+    environment variable. You can also use the --editor flag on the command line
+    to specify an alternative editor.
++
+For example:
++
+--------
+port edit --editor nano apache2
+--------
+
+fetch::
+    Fetches the distribution files required to build 'portname'.
+
+checksum::
+    Compute the checksums of the distribution files for 'portname', and compare
+    them to the checksums listed in 'Portfile'.
+
+extract::
+    Extracts the distribution files for 'portname'.
+
+patch::
+    Applies any required patches to 'portname's' extracted distribution files.
+
+configure::
+    Runs any configure process for 'portname'.
+
+build::
+    Build 'portname'.
+
+destroot::
+    Installs 'portname' to a temporary directory.
+
+test::
+    Tests 'portname'.
+
+lint::
+    Verifies Portfile for portname. To nitpick about whitespace and patchfile
+    names, use *--nitpick*.
+
+distcheck::
+    Check if the distfiles haven't changed and can be fetched.
+
+distfiles::
+    Display each distfile, its checksums, and the URLs used to fetch it.
+
+livecheck::
+    Check if the software hasn't been updated since the Portfile was last
+    modified.
+
+
+PACKAGING TARGETS
+-----------------
+
+There are also targets for producing installable packages of ports:
+
+pkg::
+    Creates an OS X installer package of 'portname'.
+
+mpkg::
+    Creates an OS X installer metapackage of 'portname' and its dependencies.
+
+dmg::
+    Creates an internet-enabled disk image containing an OS X package of
+    'portname'.
+
+mdmg::
+    Creates an internet-enabled disk image containing an OS X metapackage of
+    'portname' and its dependencies.
+
+rpm::
+    Creates an RPM binary package of 'portname', similar to a tgz ``archive''.
+
+srpm::
+    Creates a SRPM source package of 'portname', similar to a xar ``portpkg''.
+
+dpkg::
+    Creates a DEB binary package of 'portname'.
+
+
+EXAMPLES
+--------
+
+The following demonstrates invoking port with the extract target on portdir
+``textproc/figlet'' and extract.suffix set to ``.tgz'':
+
+--------
+port extract -D textproc/figlet extract.suffix=.tgz
+--------
+
+FILES
+-----
+
+$\{prefix\}/etc/macports/macports.conf::
+    Global configuration file for the MacPorts system.
+
+$\{prefix\}/etc/macports/sources.conf::
+    Global listing of the ports trees used by MacPorts. This file also enables
+    rsync synchronization.
+
+$\{prefix\}/etc/macports/variants.conf::
+    Global variants used when a port is installed.
+
+~/.macports/macports.conf::
+    User configuration file for the MacPorts system. It overrides the global
+    'macports.conf(5)' file.
+
+DIAGNOSTICS
+-----------
+The *port* utility exits 0 on success, and >0 if an error occurs.
+
+
+SEE ALSO
+--------
+man:macports.conf[5], man:portfile[7], man:portgroup[7],
+man:portstyle[7], man:porthier[7]
+
+
+AUTHORS
+-------
+ (C) 2002-2003 Apple Inc.
+ (C) 2004-2012 The MacPorts Project
+ Landon Fuller <landonf@macports.org>
+ James Berry <jberry@macports.org>
+ Jordan K. Hubbard <jkh@macports.org>
+ Juan Manuel Palacios <jmpp@macports.org>
+ Kevin Van Vechten <kevin@opendarwin.org>
+ Ole Guldberg Jensen <olegb@opendarwin.org>
+ Robert Shaw <rshaw@opendarwin.org>
+ Chris Ridd <cjr@opendarwin.org>
+ Matt Anton <matt@opendarwin.org>
+ Joe Auty <joe@opendarwin.org>
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/portgroup.7
===================================================================
--- /trunk/base/doc/portgroup.7	(revision 123001)
+++ /trunk/base/doc/portgroup.7	(revision 123002)
@@ -1,376 +1,616 @@
-.\" portgroup.7
-.\"
-.\" Copyright (c) 2005 Paul Guyot <pguyot@kallisys.net>
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of The MacPorts Project nor the names of its
-.\"    contributors may be used to endorse or promote products derived from
-.\"    this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd February 5, 2007
-.Dt XCODE 7 "MacPorts"
-.Os
-.Sh NAME
-.Nm PortGroup
-.Nd MacPorts PortGroup command reference
-.Sh SYNOPSIS
-.Nm PortGroup gnustep 1.0
-.Nm PortGroup perl5 1.0
-.Nm PortGroup python24 1.0
-.Nm PortGroup python25 1.0
-.Nm PortGroup python30 1.0
-.Nm PortGroup ruby 1.0
-.Nm PortGroup xcode 1.0
-.Sh DESCRIPTION
-MacPorts defines the notion of PortGroup classes with the PortGroup command.
-These classes factorize the work for similar ports.  Port maintainers willing to
-use
-.Nm PortGroup
-need to have some notion of Portfiles. See
-.Xr portfile 7
-.Pp
-.Sh XCODE PORTGROUP
-.Nm PortGroup xcode
-is here to easily port Xcode-based opensource software. It handles
-configuration, build and destroot phases. It also defines some values
-for Xcode-based software. A minimum Portfile using the xcode PortGroup class
-only defines the fetch and the checksum phases.
-.Pp
-Using
-.Nm PortGroup xcode
-is a way to make your port more robust to Xcode version updates as the PortGroup
-is tested against all supported Mac OS X and Xcode versions.
-.Sh XCODE PORTGROUP SUGAR
-Portfiles using xcode PortGroup do not need to define the following variables:
-.Bl -tag -width lc
-.It Ic categories
-.Sy Default:
-.Em aqua
-.br
-.It Ic platforms
-.Sy Default:
-.Em macosx
-.br
-.It Ic use_configure
-.Sy Default:
-.Em no
-.El
-.br
-Moreover, Portfiles using
-.Nm PortGroup xcode
-do not need to define any build or destroot phase.  Some options are provided
-for tailoring these phases to what the software requires.
-.Sh XCODE PORTGROUP SPECIFIC VARIABLES
-Portfiles using xcode PortGroup may define the following variables:
-.Bl -tag -width lc
-.It Ic xcode.project
-path (relative to ${build.dir} and ${destroot.dir}) of the Xcode project. If
-unset, let xcode tool figure it out. It usually succeeds if there is a single
-project in the directory.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Example:
-.Dl xcode.project ${name}.xcode
-.br
-.It Ic xcode.configuration
-Project configuration/buildstyle to use.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Default:
-.Em Deployment
-.br
-.Sy Example:
-.Dl xcode.configuration Main
-.br
-.It Ic xcode.target
-If present, overrides build.target and destroot.target.
-.br
-.Sy Type:
-.Em optional
-.br
-.It Ic xcode.build.settings
-Additional settings passed to the xcode build tool during the build phase.
-These settings should be in the X=Y form.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Example:
-.Bd -literal -offset indent -compact
-xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
-.Ed
-.It Ic xcode.destroot.type
-Type of project that will be installed. This tells Xcode PortGroup how to
-destroot the project. Correct values are application and framework.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Default:
-.Em application
-.br
-.Sy Example:
-.Dl xcode.destroot.type framework
-.br
-.It Ic xcode.destroot.path
-Where to install the build product.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Default:
-.Em ${prefix}/Library/Frameworks
-or
-.Em /Applications/MacPorts depending on xcode.destroot.type
-.br
-.It Ic xcode.destroot.settings
-Additional settings passed to the xcode build tool during the destroot phase.
-These settings should be in the X=Y form.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Example:
-.Bd -literal -offset indent -compact
-xcode.destroot.settings SKIP_INSTALL=NO
-.Ed
-.El
-.Sh STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
-The following standard Portfile variables actually affect
-.Nm xcode PortGroup.
-In most cases, you will not need to set any of these variables in the Portfile.
-.Bl -tag -width lc
-.It Ic destroot
-Where to destroot the project.
-.br
-.It Ic build.cmd
-The command to invoke to build the project.
-.Nm xcode PortGroup
-sets this variable to ${xcodebuildcmd}.
-.br
-.It Ic build.target
-The Xcode target to build.
-.Nm xcode PortGroup
-sets this variable to "", thus building all targets. This variable will be
-ignored if xcode.target is set.
-.br
-.It Ic build.pre_args
-Additional parameters for ${build.cmd}.
-.br
-.Sy Default:
+'\" t
+.TH "PORTGROUP" "7" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+portgroup \- MacPorts PortGroup command reference
+.SH "SYNOPSIS"
+.sp
+.nf
+PortGroup gnustep 1\&.0
+PortGroup perl5 1\&.0
+PortGroup python24 1\&.0
+PortGroup python25 1\&.0
+PortGroup python30 1\&.0
+PortGroup ruby 1\&.0
+PortGroup xcode 1\&.0
+.fi
+.SH "DESCRIPTION"
+.sp
+MacPorts defines the notion of PortGroup classes with the PortGroup command\&. These classes factorize the work for similar ports\&. Port maintainers willing to use PortGroup need to have some notion of Portfiles\&. See \fBportfile\fR(7)\&.
+.SH "XCODE PORTGROUP"
+.sp
+\fBPortGroup xcode\fR is here to easily port Xcode\-based opensource software\&. It handles configuration, build and destroot phases\&. It also defines some values for Xcode\-based software\&. A minimum Portfile using the \fBxcode PortGroup\fR class only defines the fetch and the checksum phases\&.
+.sp
+Using \fBPortGroup xcode\fR is a way to make your port more robust to Xcode version updates as the PortGroup is tested against all supported Mac OS X and Xcode versions\&.
+.SS "XCODE PORTGROUP SUGAR"
+.sp
+Portfiles using \fBxcode PortGroup\fR do not need to define the following variables:
+.PP
+categories
+.RS 4
+\fBDefault:\fR
+aqua
+.RE
+.PP
+platforms
+.RS 4
+\fBDefault:\fR
+macosx
+.RE
+.PP
+use_configure
+.RS 4
+\fBDefault:\fR
+no
+.RE
+.sp
+Moreover, Portfiles using \fBPortGroup xcode\fR do not need to define any build or destroot phase\&. Some options are provided for tailoring these phases to what the software requires\&.
+.SS "XCODE PORTGROUP SPECIFIC VARIABLES"
+.sp
+Portfiles using \fBxcode PortGroup\fR may define the following variables:
+.PP
+xcode\&.project
+.RS 4
+Path (relative to ${build\&.dir} and ${destroot\&.dir}) of the Xcode project\&. If unset, let xcode tool figure it out\&. It usually succeeds if there is a single project in the directory\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+xcode\&.project ${name}\&.xcode
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+xcode\&.configuration
+.RS 4
+Project configuration/buildstyle to use\&.
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+T{
+\fBDefault:\fR
+T}:T{
+Deployment
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+xcode\&.configuration Main
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+xcode\&.target
+.RS 4
+If present, overrides build\&.target and destroot\&.target\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+.RE
+.PP
+xcode\&.build\&.settings
+.RS 4
+Additional settings passed to the xcode build tool during the build phase\&. These settings should be in the X=Y form\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+xcode\&.build\&.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+xcode\&.destroot\&.type
+.RS 4
+Type of project that will be installed\&. This tells Xcode PortGroup how to destroot the project\&. Correct values are application and framework\&.
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+T{
+\fBDefault:\fR
+T}:T{
+application
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+xcode\&.destroot\&.type framework
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+xcode\&.destroot\&.path
+.RS 4
+Where to install the build product\&.
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+T{
+\fBDefault:\fR
+T}:T{
+${prefix}/Library/Frameworks or /Applications/MacPorts depending on xcode\&.destroot\&.type
+T}
+.TE
+.sp 1
+.RE
+.PP
+xcode\&.destroot\&.settings
+.RS 4
+Additional settings passed to the xcode build tool during the destroot phase\&. These settings should be in the X=Y form\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+xcode\&.destroot\&.settings SKIP_INSTALL=NO
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SS "STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP"
+.sp
+The following standard Portfile variables actually affect \fBxcode PortGroup\fR\&. In most cases, you will not need to set any of these variables in the Portfile\&.
+.PP
+destroot
+.RS 4
+Where to destroot the project\&.
+.RE
+.PP
+build\&.cmd
+.RS 4
+The command to invoke to build the project\&.
+\fBxcode PortGroup\fR
+sets this variable to ${xcodebuildcmd}\&.
+.RE
+.PP
+build\&.target
+.RS 4
+The Xcode target to build\&.
+\fBxcode PortGroup\fR
+sets this variable to "", thus building all targets\&. This variable will be ignored if xcode\&.target is set\&.
+.RE
+.PP
+build\&.pre_args
+.RS 4
+Additional parameters for ${build\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 none
-.br
-.It Ic build.args
-Main parameters for ${build.cmd}.
-.br
-.Sy Default:
-.Em build
-.br
-.It Ic build.post_args
-Additional parameters for ${build.cmd}.
-.br
-.Sy Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+build\&.args
+.RS 4
+Main parameters for ${build\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+build
+T}
+.TE
+.sp 1
+.RE
+.PP
+build\&.post_args
+.RS 4
+Additional parameters for ${build\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 none
-.br
-.It Ic build.dir
-Where to build the project from (i.e. where the Xcode project is).
-.br
-.Sy Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+build\&.dir
+.RS 4
+Where to build the project from (i\&.e\&. where the Xcode project is)\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 ${worksrcpath}
-.br
-.It Ic destroot.cmd
-The command to invoke to destroot the project.
-.Nm xcode PortGroup
-sets this variable to xcodebuildcmd.
-.br
-.It Ic destroot.target
-The Xcode target to install.
-.Nm xcode PortGroup
-sets this variable to "", thus installing all targets. This variable will be
-ignored if xcode.target is set.
-.br
-.It Ic destroot.pre_args
-Additional parameters for ${destroot.cmd}.
-.br
-.Sy Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+destroot\&.cmd
+.RS 4
+The command to invoke to destroot the project\&.
+\fBxcode PortGroup\fR
+sets this variable to xcodebuildcmd\&.
+.RE
+.PP
+destroot\&.target
+.RS 4
+The Xcode target to install\&.
+\fBxcode PortGroup\fR
+sets this variable to "", thus installing all targets\&. This variable will be ignored if xcode\&.target is set\&.
+.RE
+.PP
+destroot\&.pre_args
+.RS 4
+Additional parameters for ${destroot\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 none
-.br
-.It Ic destroot.args
-Main parameters for ${destroot.cmd}.
-.br
-.Sy Default:
-.Em install
-.br
-.It Ic destroot.post_args
-Additional parameters for ${destroot.cmd}.
-.br
-.Sy Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+destroot\&.args
+.RS 4
+Main parameters for ${destroot\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
+install
+T}
+.TE
+.sp 1
+.RE
+.PP
+destroot\&.post_args
+.RS 4
+Additional parameters for ${destroot\&.cmd}\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 none
-.br
-.It Ic destroot.dir
-Where to destroot the project from (i.e. where the Xcode project is).
-.br
-.Sy Default:
+T}
+.TE
+.sp 1
+.RE
+.PP
+destroot\&.dir
+.RS 4
+Where to destroot the project from (i\&.e\&. where the Xcode project is)\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBDefault:\fR
+T}:T{
 ${worksrcpath}
-.br
-.El
-.Sh GNUSTEP PORTGROUP
-.Nm PortGroup gnustep
-is here to easily port GNUstep-based opensource software using the GNU 
-objective-C runtime. It handles configuration, build and destroot phases.
-It also defines some values for GNUstep-based software. A minimum Portfile 
-using the gnustep PortGroup class only defines the fetch and the checksum phases.
-.Sh GNUSTEP FILESYSTEM LAYOUTS
-.Nm PortGroup gnustep
-also supports both the traditionnal gnustep file layout and the new fhs file layout.
-However, the ports themselves do not necessarily support both.
-The Portfiles have access to many procedures in dealing with these two layouts :
-.Bl -tag -width lc
-.It Ic set_gnustep_make
+T}
+.TE
+.sp 1
+.RE
+.SH "GNUSTEP PORTGROUP"
+.sp
+\fBPortGroup gnustep\fR is here to easily port GNUstep\-based opensource software using the GNU objective\- C runtime\&. It handles configuration, build and destroot phases\&. It also defines some values for GNUstep\-based software\&. A minimum Portfile using the \fBgnustep PortGroup\fR class only defines the fetch and the checksum phases\&.
+.SS "GNUSTEP FILESYSTEM LAYOUTS"
+.sp
+PortGroup gnustep also supports both the traditionnal gnustep file layout and the new fhs file layout\&. However, the ports themselves do not necessarily support both\&. The Portfiles have access to many procedures in dealing with these two layouts:
+.PP
+set_gnustep_make
+.RS 4
 Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
-.br
-.It Ic set_gnustep_env
+.RE
+.PP
+set_gnustep_env
+.RS 4
 Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
-.br
-.It Ic gnustep_layout
+.RE
+.PP
+gnustep_layout
+.RS 4
 Returns true (1) if current file layout is gnustep
-.br
-.It Ic set_system_library
+.RE
+.PP
+set_system_library
+.RS 4
 Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
-.br
-.It Ic set_local_library
+.RE
+.PP
+set_local_library
+.RS 4
 Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
-.br
-.El
-.Pp
-.Sh GNUSTEP PORTGROUP SUGAR
-Portfiles using gnustep PortGroup do not need to define the following variables:
-.Bl -tag -width lc
-.It Ic categories
-.Sy Default:
-.Em gnustep
-.br
-.It Ic homepage
-.Sy Default:
-.Em http://www.gnustep.org/
-.br
-.It Ic master_sites
-.Sy Default:
-.Em gnustep:core
-.br
-.It Ic depends_lib
-.Sy Default:
-.Em gnustep-core
-.br
-.It Ic use_configure
-.Sy Default:
-.Em no
-.It Ic configure.env
-.Sy Default:
-.Em DYLD_LIBRARY_PATH PATH
-.It Ic configure.pre_args-append
-.Sy Default:
-.Em CC=gcc-mp-4.2 GNUSTEP_MAKEFILES
-.br
-.It Ic build.type
-.Sy Default:
-.Em gnu
-.br
-.It Ic build.env
-.Sy Default:
-.Em DYLD_LIBRARY_PATH PATH
-.It Ic build.pre_args-append
-.Sy Default:
-.Em messages=yes
-.br
-.It Ic destroot.env
-.Sy Default:
-.Em DYLD_LIBRARY_PATH PATH
-.It Ic destroot.pre_args-append
-.Sy Default:
-.Em messages=yes
-.br
-.br
-.El
-.br
-Moreover, Portfiles using
-.Nm PortGroup gnustep
-do not need to define any build or destroot phase.  Some options are provided
-for tailoring these phases to what the software requires.  A mechanism is also
-provided to ease the patch process.
-.Sh GNUSTEP PORTGROUP SPECIFIC VARIABLES
-Portfiles using 
-.Nm gnustep PortGroup 
-may define the following variables:
-.Bl -tag -width lc
-.It Ic gnustep.post_flags
-an associative array which specifies the sub-directories relative to ${worksrcpath}
-and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile.preamble in those
-sub-directories.  This helps making the patching process easier on Darwin.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Example:
-.Dl platform darwin {
-.Dl		array set gnustep.post_flags {
-.Dl			BundleSubDir  """-lfoo -lbar""
-.Dl		}
-.Dl }
-.br
-.It Ic gnustep.cc
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Default:
-.Em gcc-mp-4.2
-.br
-.Sy Example:
-.Dl gnustep.cc gcc-mp-4.3
-.br
-.It Ic variant with_docs
-Many GNUstep packages include a Documentation sub-directory that is not
-built by default.  Enabling this variant builds and installs the included 
-documentation.
-.br
-.Sy Type:
-.Em optional
-.br
-.Sy Example:
-.Dl port install gnustep-gui +with_docs
-.br
-.El
-.Sh SEE ALSO
-.Xr port 1 ,
-.Xr macports.conf 5 ,
-.Xr portfile 7 ,
-.Xr portstyle 7 ,
-.Xr porthier 7
-.Sh AUTHORS
-.An "Paul Guyot" Aq pguyot@kallisys.net
-.An "Yves de Champlain" Aq yves@macports.org
+.RE
+.SS "GNUSTEP PORTGROUP SUGAR"
+.sp
+Portfiles using \fBgnustep PortGroup\fR do not need to define the following variables:
+.PP
+categories
+.RS 4
+\fBDefault:\fR
+gnustep
+.RE
+.PP
+homepage
+.RS 4
+\fBDefault:\fR\m[blue]\fBhttp://www\&.gnustep\&.org/\fR\m[]
+.RE
+.PP
+master_sites
+.RS 4
+\fBDefault:\fR
+gnustep:core
+.RE
+.PP
+depends_lib
+.RS 4
+\fBDefault:\fR
+gnustep\-core
+.RE
+.PP
+use_configure
+.RS 4
+\fBDefault:\fR
+no
+.RE
+.PP
+configure\&.env
+.RS 4
+\fBDefault:\fR
+DYLD_LIBRARY_PATH PATH
+.RE
+.PP
+configure\&.pre_args\-append
+.RS 4
+\fBDefault:\fR
+CC=gcc\-mp\-4\&.2 GNUSTEP_MAKEFILES
+.RE
+.PP
+build\&.type
+.RS 4
+\fBDefault:\fR
+gnu
+.RE
+.PP
+build\&.env
+.RS 4
+\fBDefault:\fR
+DYLD_LIBRARY_PATH PATH
+.RE
+.PP
+build\&.pre_args\-append
+.RS 4
+\fBDefault:\fR
+messages=yes
+.RE
+.PP
+destroot\&.env
+.RS 4
+\fBDefault:\fR
+DYLD_LIBRARY_PATH PATH
+.RE
+.PP
+destroot\&.pre_args\-append
+.RS 4
+\fBDefault:\fR
+messages=yes
+.RE
+.sp
+Moreover, Portfiles using \fBPortGroup gnustep\fR do not need to define any build or destroot phase\&. Some options are provided for tailoring these phases to what the software requires\&. A mechanism is also provided to ease the patch process\&.
+.SS "GNUSTEP PORTGROUP SPECIFIC VARIABLES"
+.sp
+Portfiles using \fBgnustep PortGroup\fR may define the following variables:
+.PP
+gnustep\&.post_flags
+.RS 4
+an associative array which specifies the sub\-directories relative to ${worksrcpath} and the SHARED_LD_POSTFLAGS variables to be added to GNUmakefile\&.preamble in those sub\-directories\&. This helps making the patching process easier on Darwin\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+platform darwin {
+    array set gnustep\&.post_flags {
+        BundleSubDir "\-lfoo \-lbar"
+    }
+}
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+gnustep\&.cc
+.RS 4
+.TS
+tab(:);
+lt lt
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+T{
+\fBDefault:\fR
+T}:T{
+gcc\-mp\-4\&.2
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+gnustep\&.cc gcc\-mp\-4\&.3
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+variant with_docs
+.RS 4
+Many GNUstep packages include a Documentation sub\-directory that is not built by default\&. Enabling this variant builds and installs the included documentation\&.
+.TS
+tab(:);
+lt lt.
+T{
+\fBType:\fR
+T}:T{
+optional
+T}
+.TE
+.sp 1
+\fBExample:\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+port install gnustep\-gui +with_docs
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1), \fBmacports.conf\fR(5), \fBportfile\fR(7), \fBportstyle\fR(7), \fBporthier\fR(7)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2013 The MacPorts Project
+Paul Guyot <pguyot@kallisys\&.net>
+Yves de Champlain <yves@macports\&.org>
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
Index: /trunk/base/doc/portgroup.7.txt
===================================================================
--- /trunk/base/doc/portgroup.7.txt	(revision 123002)
+++ /trunk/base/doc/portgroup.7.txt	(revision 123002)
@@ -0,0 +1,339 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+PortGroup(7)
+============
+$Id$
+// Set default style for second-level labeled lists in this document
+:listdef-labeled2.style: horizontal
+
+NAME
+----
+portgroup - MacPorts PortGroup command reference
+
+SYNOPSIS
+--------
+[cmdsynopsis]
+PortGroup gnustep 1.0
+PortGroup perl5 1.0
+PortGroup python24 1.0
+PortGroup python25 1.0
+PortGroup python30 1.0
+PortGroup ruby 1.0
+PortGroup xcode 1.0
+
+DESCRIPTION
+-----------
+MacPorts defines the notion of PortGroup classes with the PortGroup command.
+These classes factorize the work for similar ports. Port maintainers willing
+to use PortGroup need to have some notion of Portfiles. See man:portfile[7].
+
+XCODE PORTGROUP
+---------------
+*PortGroup xcode* is here to easily port Xcode-based opensource software. It
+handles configuration, build and destroot phases. It also defines some values
+for Xcode-based software. A minimum Portfile using the *xcode PortGroup* class
+only defines the fetch and the checksum phases.
+
+Using *PortGroup xcode* is a way to make your port more robust to Xcode version
+updates as the PortGroup is tested against all supported Mac OS X and Xcode
+versions.
+
+XCODE PORTGROUP SUGAR
+~~~~~~~~~~~~~~~~~~~~~
+
+Portfiles using *xcode PortGroup* do not need to define the following variables:
+
+categories::
+    *Default:* aqua
+
+platforms::
+    *Default:* macosx
+
+use_configure::
+    *Default:* no
+
+Moreover, Portfiles using *PortGroup xcode* do not need to define any build or
+destroot phase. Some options are provided for tailoring these phases to what the
+software requires.
+
+XCODE PORTGROUP SPECIFIC VARIABLES
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Portfiles using *xcode PortGroup* may define the following variables:
+
+xcode.project::
+    Path (relative to ${build.dir} and ${destroot.dir}) of the Xcode
+    project. If unset, let xcode tool figure it out. It usually succeeds if
+    there is a single project in the directory.
++
+--
+*Type:*;; optional
+--
++
+*Example:*
++
+--------
+xcode.project ${name}.xcode
+--------
+
+xcode.configuration::
+    Project configuration/buildstyle to use.
++
+--
+*Type:*;; optional
+*Default:*;; Deployment
+--
++
+*Example:*
++
+--------
+xcode.configuration Main
+--------
+
+xcode.target::
+    If present, overrides build.target and destroot.target.
+    *Type:*;; optional
+
+xcode.build.settings::
+    Additional settings passed to the xcode build tool during the build phase.
+    These settings should be in the X=Y form.
++
+--
+*Type:*;; optional
+--
++
+*Example:*
++
+--------
+xcode.build.settings FRAMEWORK_SEARCH_PATHS=${prefix}/Library/Frameworks
+--------
+
+xcode.destroot.type::
+    Type of project that will be installed. This tells Xcode PortGroup how to
+    destroot the project. Correct values are application and framework.
++
+--
+*Type:*;; optional
+*Default:*;; application
+--
++
+*Example:*
++
+--------
+xcode.destroot.type framework
+--------
+
+xcode.destroot.path::
+    Where to install the build product.
+    *Type:*;; optional
+    *Default:*;; $\{prefix\}/Library/Frameworks or /Applications/MacPorts depending on xcode.destroot.type
+
+xcode.destroot.settings::
+    Additional settings passed to the xcode build tool during the destroot
+    phase. These settings should be in the X=Y form.
++
+--
+*Type:*;; optional
+--
++
+*Example:*
++
+--------
+xcode.destroot.settings SKIP_INSTALL=NO
+--------
+
+
+STANDARD PORTFILE VARIABLES AFFECTING XCODE PORTGROUP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following standard Portfile variables actually affect *xcode PortGroup*. In
+most cases, you will not need to set any of these variables in the Portfile.
+
+destroot::
+    Where to destroot the project.
+
+build.cmd::
+    The command to invoke to build the project. *xcode PortGroup* sets this
+    variable to $\{xcodebuildcmd\}.
+
+build.target::
+    The Xcode target to build. *xcode PortGroup* sets this variable to "", thus
+    building all targets. This variable will be ignored if xcode.target is set.
+
+build.pre_args::
+    Additional parameters for ${build.cmd}.
+    *Default:*;; none
+
+build.args::
+    Main parameters for ${build.cmd}.
+    *Default:*;; build
+
+build.post_args::
+    Additional parameters for ${build.cmd}.
+    *Default:*;; none
+
+build.dir::
+    Where to build the project from (i.e. where the Xcode project is).
+    *Default:*;; $\{worksrcpath\}
+
+destroot.cmd::
+    The command to invoke to destroot the project. *xcode PortGroup* sets this
+    variable to xcodebuildcmd.
+
+destroot.target::
+    The Xcode target to install. *xcode PortGroup* sets this variable to "",
+    thus installing all targets. This variable will be ignored if xcode.target
+    is set.
+
+destroot.pre_args::
+    Additional parameters for ${destroot.cmd}.
+    *Default:*;; none
+
+destroot.args::
+    Main parameters for ${destroot.cmd}.
+    *Default:*;; install
+
+destroot.post_args::
+    Additional parameters for ${destroot.cmd}.
+    *Default:*;; none
+
+destroot.dir::
+    Where to destroot the project from (i.e. where the Xcode project is).
+    *Default:*;; $\{worksrcpath\}
+
+GNUSTEP PORTGROUP
+-----------------
+*PortGroup gnustep* is here to easily port GNUstep-based opensource software
+using the GNU objective- C runtime. It handles configuration, build and destroot
+phases. It also defines some values for GNUstep-based software. A minimum
+Portfile using the *gnustep PortGroup* class only defines the fetch and the
+checksum phases.
+
+GNUSTEP FILESYSTEM LAYOUTS
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+PortGroup gnustep also supports both the traditionnal gnustep file layout and
+the new fhs file layout. However, the ports themselves do not necessarily
+support both. The Portfiles have access to many procedures in dealing with these
+two layouts:
+
+set_gnustep_make::
+    Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
+
+set_gnustep_env::
+    Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
+
+gnustep_layout::
+    Returns true (1) if current file layout is gnustep
+
+set_system_library::
+    Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
+
+set_local_library::
+    Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
+
+GNUSTEP PORTGROUP SUGAR
+~~~~~~~~~~~~~~~~~~~~~~~
+Portfiles using *gnustep PortGroup* do not need to define the following variables:
+
+categories::
+    *Default:* gnustep
+
+homepage::
+    *Default:* http://www.gnustep.org/
+
+master_sites::
+    *Default:* gnustep:core
+
+depends_lib::
+    *Default:* gnustep-core
+
+use_configure::
+    *Default:* no
+
+configure.env::
+    *Default:* DYLD_LIBRARY_PATH PATH
+
+configure.pre_args-append::
+    *Default:* CC=gcc-mp-4.2 GNUSTEP_MAKEFILES
+
+build.type::
+    *Default:* gnu
+
+build.env::
+    *Default:* DYLD_LIBRARY_PATH PATH
+
+build.pre_args-append::
+    *Default:* messages=yes
+
+destroot.env::
+    *Default:* DYLD_LIBRARY_PATH PATH
+
+destroot.pre_args-append::
+    *Default:* messages=yes
+
+Moreover, Portfiles using *PortGroup gnustep* do not need to define any build or
+destroot phase. Some options are provided for tailoring these phases to what the
+software requires. A mechanism is also provided to ease the patch process.
+
+GNUSTEP PORTGROUP SPECIFIC VARIABLES 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Portfiles using *gnustep PortGroup* may define the following variables:
+
+gnustep.post_flags::
+    an associative array which specifies the sub-directories relative to
+    $\{worksrcpath\} and the SHARED_LD_POSTFLAGS variables to be added to
+    GNUmakefile.preamble in those sub-directories. This helps making the
+    patching process easier on Darwin.
++
+--
+*Type:*;; optional
+--
++
+*Example:*
++
+--------
+platform darwin {
+    array set gnustep.post_flags {
+        BundleSubDir "-lfoo -lbar"
+    }
+}
+--------
+
+gnustep.cc::
++
+--
+*Type:*;; optional
+*Default:*;; gcc-mp-4.2
+--
++
+*Example:*
++
+--------
+gnustep.cc gcc-mp-4.3
+--------
+
+variant with_docs::
+    Many GNUstep packages include a Documentation sub-directory that is not
+    built by default. Enabling this variant builds and installs the included
+    documentation.
++
+--
+*Type:*;; optional
+--
++
+*Example:*
++
+--------
+port install gnustep-gui +with_docs
+--------
+
+SEE ALSO
+--------
+man:port[1], man:macports.conf[5], man:portfile[7], man:portstyle[7],
+man:porthier[7]
+
+AUTHORS
+-------
+ (C) 2013 The MacPorts Project
+ Paul Guyot <pguyot@kallisys.net>
+ Yves de Champlain <yves@macports.org>
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/doc/portundocumented.7
===================================================================
--- /trunk/base/doc/portundocumented.7	(revision 123002)
+++ /trunk/base/doc/portundocumented.7	(revision 123002)
@@ -0,0 +1,102 @@
+'\" t
+.TH "PORTUNDOCUMENTED" "7" "2013\-03\-10" "MacPorts 2\&.3\&.99" "MacPorts Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+portundocumented \- A last\-resort man page for missing MacPorts documentation
+.SH "DESCRIPTION"
+.sp
+Unfortunately, the requested topic is not yet documented in the MacPorts man pages\&. Sorry\&.
+.sp
+Further documentation on MacPorts can be found in the following places:
+.PP
+\m[blue]\fBThe MacPorts Guide\fR\m[]\&\s-2\u[1]\d\s+2
+.RS 4
+Detailed help and support guide
+.RE
+.PP
+\m[blue]\fBThe MacPorts Wiki\fR\m[]\&\s-2\u[2]\d\s+2
+.RS 4
+MacPorts usage, development, and support
+.RE
+.PP
+\m[blue]\fBMailing Lists\fR\m[]\&\s-2\u[3]\d\s+2
+.RS 4
+Ask questions on the mailing lists: macports\-dev for base and Portfile development, macports\-users for user support questions
+.RE
+.PP
+\m[blue]\fBFAQ\fR\m[]\&\s-2\u[4]\d\s+2
+.RS 4
+Frequently Asked Questions
+.RE
+.PP
+\m[blue]\fBProblem Hotlist\fR\m[]\&\s-2\u[5]\d\s+2
+.RS 4
+Solutions for the most common error messages and other problems
+.RE
+.SH "CONTRIBUTING"
+.sp
+All sort of contributions to MacPorts base, ports and especially the documentation you were just looking for are welcome\&. If you care about MacPorts and would like to improve our documentation, please take a look at the source code of the man pages \m[blue]\fBin our repository\fR\m[]\&\s-2\u[6]\d\s+2 and get in touch with us on our \m[blue]\fBmailing lists\fR\m[]\&\s-2\u[3]\d\s+2\&.
+.SH "SEE ALSO"
+.sp
+\fBport\fR(1)
+.SH "AUTHORS"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+(C) 2012 The MacPorts Project
+Rainer Mueller <raimue@macports\&.org>
+.fi
+.if n \{\
+.RE
+.\}
+.SH "EXTERNAL REFERENCES"
+.IP " 1." 4
+The MacPorts Guide
+.RS 4
+\%http://guide.macports.org/#
+.RE
+.IP " 2." 4
+The MacPorts Wiki
+.RS 4
+\%https://trac.macports.org/wiki/
+.RE
+.IP " 3." 4
+Mailing Lists
+.RS 4
+\%https://trac.macports.org/wiki/MailingLists
+.RE
+.IP " 4." 4
+FAQ
+.RS 4
+\%https://trac.macports.org/wiki/FAQ
+.RE
+.IP " 5." 4
+Problem Hotlist
+.RS 4
+\%https://trac.macports.org/wiki/ProblemHotlist
+.RE
+.IP " 6." 4
+in our repository
+.RS 4
+\%https://trac.macports.org/browser/trunk/base/doc
+.RE
Index: /trunk/base/doc/portundocumented.7.txt
===================================================================
--- /trunk/base/doc/portundocumented.7.txt	(revision 123002)
+++ /trunk/base/doc/portundocumented.7.txt	(revision 123002)
@@ -0,0 +1,47 @@
+// vim: set et sw=4 ts=8 ft=asciidoc tw=80:
+portundocumented(7)
+====================
+$Id$
+
+NAME
+----
+portundocumented - A last-resort man page for missing MacPorts documentation
+
+DESCRIPTION
+-----------
+Unfortunately, the requested topic is not yet documented in the MacPorts man
+pages. Sorry.
+
+Further documentation on MacPorts can be found in the following places:
+
+guide:[The MacPorts Guide]::
+    Detailed help and support guide
+wiki:[The MacPorts Wiki]::
+    MacPorts usage, development, and support
+wiki:MailingLists[Mailing Lists]::
+    Ask questions on the mailing lists:
+    macports-dev for base and Portfile development,
+    macports-users for user support questions
+wiki:FAQ[]::
+    Frequently Asked Questions
+wiki:ProblemHotlist[Problem Hotlist]::
+    Solutions for the most common error messages and other problems
+
+
+CONTRIBUTING
+------------
+All sort of contributions to MacPorts base, ports and especially the
+documentation you were just looking for are welcome. If you care about MacPorts
+and would like to improve our documentation, please take a look at the source
+code of the man pages https://trac.macports.org/browser/trunk/base/doc[in our
+repository] and get in touch with us on our wiki:MailingLists[mailing lists].
+
+
+SEE ALSO
+--------
+man:port[1]
+
+AUTHORS
+-------
+ (C) 2012 The MacPorts Project
+ Rainer Mueller <raimue@macports.org>
Index: /trunk/base/src/macports1.0/macports_autoconf.tcl.in
===================================================================
--- /trunk/base/src/macports1.0/macports_autoconf.tcl.in	(revision 123001)
+++ /trunk/base/src/macports1.0/macports_autoconf.tcl.in	(revision 123002)
@@ -41,4 +41,5 @@
     variable macports_user_dir "~/.macports"
     variable macportsuser "@RUNUSR@"
+    variable man_path "@MAN@"
     variable mdfind_path "@MDFIND@"
     variable mdls_path "@MDLS@"
Index: /trunk/base/src/pextlib1.0/system.c
===================================================================
--- /trunk/base/src/pextlib1.0/system.c	(revision 123001)
+++ /trunk/base/src/pextlib1.0/system.c	(revision 123002)
@@ -108,5 +108,5 @@
 }
 
-/* usage: system ?-notty? ?-nice value? ?-W path? command */
+/* usage: system ?-notty? ?-nodup? ?-nice value? ?-W path? command */
 int SystemCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
 {
@@ -123,4 +123,5 @@
     int fline, pos, ret;
     int osetsid = 0;
+    int odup = 1; /* redirect stdin/stdout/stderr by default */
     int oniceval = INT_MAX; /* magic value indicating no change */
     const char *path = NULL;
@@ -142,4 +143,6 @@
         if (strcmp(arg, "-notty") == 0) {
             osetsid = 1;
+        } else if (strcmp(arg, "-nodup") == 0) {
+            odup = 0;
         } else if (strcmp(arg, "-nice") == 0) {
             i++;
@@ -169,7 +172,9 @@
      * popen() itself is not used because stderr is also desired.
      */
-    if (pipe(fdset) != 0) {
-        Tcl_SetResult(interp, strerror(errno), TCL_STATIC);
-        return TCL_ERROR;
+    if (odup) {
+        if (pipe(fdset) != 0) {
+            Tcl_SetResult(interp, strerror(errno), TCL_STATIC);
+            return TCL_ERROR;
+        }
     }
 
@@ -181,11 +186,13 @@
         /*NOTREACHED*/
     case 0: /* child */
-        close(fdset[0]);
-
-        if ((nullfd = open(_PATH_DEVNULL, O_RDONLY)) == -1)
-            _exit(1);
-        dup2(nullfd, STDIN_FILENO);
-        dup2(fdset[1], STDOUT_FILENO);
-        dup2(fdset[1], STDERR_FILENO);
+        if (odup) {
+            close(fdset[0]);
+
+            if ((nullfd = open(_PATH_DEVNULL, O_RDONLY)) == -1)
+                _exit(1);
+            dup2(nullfd, STDIN_FILENO);
+            dup2(fdset[1], STDOUT_FILENO);
+            dup2(fdset[1], STDERR_FILENO);
+        }
         /* drop the controlling terminal if requested */
         if (osetsid) {
@@ -237,56 +244,58 @@
     }
 
-    close(fdset[1]);
-
-    /* read from simulated popen() pipe */
-    read_failed = 0;
-    pos = 0;
-    memset(circbuf, 0, sizeof(circbuf));
-    pdes = fdopen(fdset[0], "r");
-    if (pdes) {
-        while ((buf = fgetln(pdes, &linelen)) != NULL) {
-            char *sbuf;
-            size_t slen;
-    
-            /*
-             * Allocate enough space to insert a terminating
-             * '\0' if the line is not terminated with a '\n'
-             */
-            if (buf[linelen - 1] == '\n')
-                slen = linelen;
-            else
-                slen = linelen + 1;
-    
-            if (circbuf[pos].len == 0)
-                sbuf = malloc(slen);
-            else {
-                sbuf = realloc(circbuf[pos].line, slen);
-            }
-    
-            if (sbuf == NULL) {
-                read_failed = 1;
-                break;
-            }
-    
-            memcpy(sbuf, buf, linelen);
-            /* terminate line with '\0',replacing '\n' if it exists */
-            sbuf[slen - 1] = '\0';
-    
-            circbuf[pos].line = sbuf;
-            circbuf[pos].len = slen;
-    
-            if (pos++ == CBUFSIZ - 1) {
-                pos = 0;
-            }
-    
-            if (ui_info(interp, sbuf) != TCL_OK) {
-                read_failed = 1;
-                break;
-            }
-        }
-        fclose(pdes);
-    } else {
-        read_failed = 1;
-        Tcl_SetResult(interp, strerror(errno), TCL_STATIC);
+    if (odup) {
+        close(fdset[1]);
+
+        /* read from simulated popen() pipe */
+        read_failed = 0;
+        pos = 0;
+        memset(circbuf, 0, sizeof(circbuf));
+        pdes = fdopen(fdset[0], "r");
+        if (pdes) {
+            while ((buf = fgetln(pdes, &linelen)) != NULL) {
+                char *sbuf;
+                size_t slen;
+
+                /*
+                * Allocate enough space to insert a terminating
+                * '\0' if the line is not terminated with a '\n'
+                */
+                if (buf[linelen - 1] == '\n')
+                    slen = linelen;
+                else
+                    slen = linelen + 1;
+
+                if (circbuf[pos].len == 0)
+                    sbuf = malloc(slen);
+                else {
+                    sbuf = realloc(circbuf[pos].line, slen);
+                }
+
+                if (sbuf == NULL) {
+                    read_failed = 1;
+                    break;
+                }
+
+                memcpy(sbuf, buf, linelen);
+                /* terminate line with '\0',replacing '\n' if it exists */
+                sbuf[slen - 1] = '\0';
+
+                circbuf[pos].line = sbuf;
+                circbuf[pos].len = slen;
+
+                if (pos++ == CBUFSIZ - 1) {
+                    pos = 0;
+                }
+
+                if (ui_info(interp, sbuf) != TCL_OK) {
+                    read_failed = 1;
+                    break;
+                }
+            }
+            fclose(pdes);
+        } else {
+            read_failed = 1;
+            Tcl_SetResult(interp, strerror(errno), TCL_STATIC);
+        }
     }
 
@@ -325,9 +334,11 @@
     }
 
-    /* Cleanup. */
-    close(fdset[0]);
-    for (fline = 0; fline < CBUFSIZ; fline++) {
-        if (circbuf[fline].len != 0) {
-            free(circbuf[fline].line);
+    if (odup) {
+        /* Cleanup. */
+        close(fdset[0]);
+        for (fline = 0; fline < CBUFSIZ; fline++) {
+            if (circbuf[fline].len != 0) {
+                free(circbuf[fline].line);
+            }
         }
     }
Index: /trunk/base/src/port/Makefile.in
===================================================================
--- /trunk/base/src/port/Makefile.in	(revision 123001)
+++ /trunk/base/src/port/Makefile.in	(revision 123002)
@@ -39,5 +39,4 @@
 	$(INSTALL) -d -o "${DSTUSR}" -g "${DSTGRP}" -m "${DSTMODE}" "${INSTALLDIR}/var/macports"
 	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 555 port portindex portmirror "${INSTALLDIR}/bin/"
-	$(INSTALL)    -o "${DSTUSR}" -g "${DSTGRP}" -m 444 "$(srcdir)/port-help.tcl" "${INSTALLDIR}/var/macports/"
 	cd "${INSTALLDIR}/bin" && $(LN_S) -f port portf
 	cd "${INSTALLDIR}/bin" && $(LN_S) -f "${TCLSH}" port-tclsh
Index: unk/base/src/port/port-help.tcl
===================================================================
--- /trunk/base/src/port/port-help.tcl	(revision 123001)
+++ 	(revision )
@@ -1,401 +1,0 @@
-# This file contains help strings for the various commands/topics in port(1)
-#
-# Many of these strings are place-holders right now.  Replace with genuinely
-# helpful text and then delete this message.
-#
-# port-help.tcl
-# $Id$
-
-
-set porthelp(activate) {
-Activate the given ports
-
---no-exec   Do not execute any stored pre- or post-activate procedures
-}
-
-set porthelp(archive) {
-Archive the given ports, i.e. install the port image but do not activate
-}
-
-set porthelp(archivefetch) {
-Fetch archive for the given ports
-}
-
-set porthelp(build) {
-Build the given ports
-}
-
-set porthelp(cat) {
-Writes the Portfiles of the given ports to stdout
-}
-
-set porthelp(cd) {
-Changes to the directory of the given port
-
-Only in interactive mode.
-}
-
-set porthelp(checksum) {
-Compares the checksums for the downloaded files of the given ports
-}
-
-set porthelp(clean) {
-Removes files associated with the given ports
-
---archive     Removes temporary archives
---dist        Removes downloaded distfiles
---logs        Removes log files
---work        Removes work directory (default)
---all         Removes everything from above
-}
-
-set porthelp(configure) {
-Configure the given ports
-}
-
-set porthelp(contents) {
-Returns a list of files installed by given ports
-}
-
-set porthelp(deactivate) {
-Deactivates the given ports
-
---no-exec   Do not execute any stored pre- or post-deactivate procedures
-}
-
-set porthelp(dependents) {
-Returns a list of installed dependents for each of the given ports
-
-Note: Don't get fooled by the language!
-Dependents are those ports which depend on the given port, not vice-versa!
-}
-
-set porthelp(rdependents) {
-Recursive version of dependents
-
---full          Display all branches of the tree of dependents instead of only
-                showing each port once.
-}
-
-set porthelp(deps) {
-Display a dependency listing for the given ports
-
---index         Do not read the Portfile, instead rely solely on the PortIndex
-                information. Note this option will prevent the dependencies
-                reported from reflecting the effects of any variants specified.
---no-build      Exclude dependencies only required at build time, i.e.
-                depends_fetch, depends_extract, and depends_build.
-}
-
-set porthelp(rdeps) {
-Display a recursive dependency listing for the given ports
-
---full          Display all branches of the dependency tree instead of only
-                showing each port once.
---index         Do not read the Portfile, instead rely solely on the PortIndex
-                information. Note this option will prevent the dependencies
-                reported from reflecting the effects of any variants specified.
---no-build      Exclude dependencies only required at build time, i.e.
-                depends_fetch, depends_extract, and depends_build.
-}
-
-set porthelp(destroot) {
-Destroot the given ports
-}
-
-set porthelp(dir) {
-Returns the directories of the given ports
-
-This can be quite handy to be used in your shell:
-cd $(port dir <portname>)
-}
-
-set porthelp(distcheck) {
-Checks if the given ports can be fetched from all of its master_sites
-}
-
-set porthelp(distfiles) {
-Returns a list of distfiles for the given port
-}
-
-set porthelp(dmg) {
-Creates a dmg for each of the given ports
-}
-
-set porthelp(dpkg) {
-Creates a dpkg for each of the given ports
-}
-
-set porthelp(echo) {
-Returns the list of ports the argument expands to
-
-This can be useful to see what a pseudo-port expression expands to.
-}
-
-set porthelp(edit) {
-Edit given ports
-}
-
-set porthelp(exit) {
-Exit port
-
-Only in interactive mode.
-}
-
-set porthelp(extract) {
-Extract the downloaded files of the given ports
-}
-
-set porthelp(fetch) {
-Downloaded distfiles for the given ports
-}
-
-set porthelp(file) {
-Returns the path to the Portfile for each of the given ports
-}
-
-set porthelp(gohome) {
-Opens the homepages of the given ports in your browser
-}
-
-set porthelp(help) {
-Displays short help texts for the given actions
-}
-
-set porthelp(info) {
-Returns information about the given ports. Most of the options specify a field
-to be included in the resulting report. Multiple fields may be specified, in
-which case all will be included.  If no fields are specified, a useful default
-set will be used.  The other options which do not correspond to fields are:
-   --depends   An abbreviation for all depends_* fields
-   --index     Do not read the Portfile, instead rely solely on the index
-               information. Note this option will prevent the information
-               reported from reflecting the effects of any variants specified.
-   --line      Report on each port on a single line, with fields separated
-               by spaces.  Handy for automatically processing the output of
-               info called on a large number of ports.
-   --pretty    Format the output in a convenient, human-readable fashion. Note
-               that this option is the default when no options are specified to
-               info.
-}
-
-set porthelp(install) {
-Installs the given ports.
-    --no-rev-upgrade    Do not run rev-upgrade after the installation.
-    --unrequested       Do not mark the port as requested.
-}
-
-set porthelp(installed) {
-List installed versions of the given port, or all installed ports if no port is given
-}
-
-set porthelp(lint) {
-Checks if the Portfile is lint-free for each of the given ports
-}
-
-set porthelp(list) {
-List the available version for each of the given ports
-}
-
-set porthelp(livecheck) {
-Checks if a new version of the software is available
-}
-
-set porthelp(load) {
-Interface to launchctl(1) for ports providing startup items
-}
-
-set porthelp(location) {
-Returns the install location for each of the given ports
-}
-
-set porthelp(log) {
-Shows main log for given ports
-
---phase <phase>		Filters by phase (fetch, checksum, extract, patch, configure, build, destroot)
---level <level>	        Filter messages above verbosity level (error, warn, msg, info, debug)
-}
-
-set porthelp(mdmg) {
-Creates a dmg containing an mpkg for each of the given ports and their dependencies
-}
-
-set porthelp(mirror) {
-Fetches distfiles for the given ports
-}
-
-set porthelp(mpkg) {
-Creates an mpkg for each of the given ports and their dependencies
-}
-
-set porthelp(notes) {
-Displays informational notes for each of the given ports
-}
-
-set porthelp(outdated) {
-Returns a list of outdated ports
-}
-
-set porthelp(patch) {
-Applies patches to each of the given ports
-}
-
-set porthelp(pkg) {
-Creates a pkg for each of the given ports
-}
-
-set porthelp(platform) {
-Returns the current platform that port is running on
-}
-
-set porthelp(provides) {
-Return which port provides each of the files given
-}
-
-set porthelp(quit) $porthelp(exit)
-
-set porthelp(rev-upgrade) {
-Scan for broken binaries in the installed ports and rebuild them as needed. Can
-be run with -y to only report broken ports, but not automatically rebuild them.
-
-You normally wouldn't have to run rev-upgrade manually; it is run automatically
-after each install and upgrade by default. Rev-upgrade doesn't honor package
-names, e.g.
-	upgrade outdated
-will not run rev-upgrade only on outdated, because ports not in outdated might
-have been broken by upgrade outdated. Rev-upgrade will always run on all your
-active ports.
-
-See man 1 port, section rev-upgrade, and man 5 macports.conf, directives
-starting with revupgrade_ for configuration and more information.
-}
-
-set porthelp(rpm) {
-Creates a rpm for each of the given ports
-}
-
-set porthelp(search) {
-Search for a port
-
---case-sensitive    match the search string in a case-sensitive manner
---exact             match the literal search string exactly
---glob              treat the given search string as a glob (default)
---line              print each result on a single line
---regex             treat the given search string as a regular expression
---<field>           match against <field>, default is '--name --description'.
-                    Possible values for <field> are category, categories,
-                    depends, depends_build, depends_extract, depends_fetch,
-                    depends_lib, depends_run, description, epoch, homepage,
-                    long_description, maintainer, maintainers, name, platform,
-                    platforms, portdir, revision, variant, variants, and
-                    version.
-}
-
-set porthelp(select) {
-Select between multiple versions of a versioned port
-
-This allows you to choose which version, among several installed versions
-of a port, is to be considered primary.  What this means is which version
-becomes the one most would consider the default, e.g. the one run without
-specifying any version.
-
-One example is the set of python ports, where there are (among others)
-python25, python26, and python31.  The select action lets you set which
-of these becomes the version run when you simply use 'python'.
-
-<arguments> must include the group upon which to be acted, and may include
-a version if --set is used. <arguments> can be empty for --summary.
-
---list     List available versions for the group
---set      Select the given version for the group
---show     Show which version is currently selected for the group (default
-           if none given)
---summary  Display a summary of all available select groups and choices as
-           well as the currently selected ports.
-}
-
-set porthelp(selfupdate) {
-Upgrade MacPorts itself and run the sync target
-
---nosync   Do not run the sync target, i.e. do not update the ports tree.
-           Only checks for (and installs, if available) new versions of
-           MacPorts.
-}
-
-set porthelp(space) {
-Show the disk space used by the given ports
-
---units <units> Specify units to use. Accepted units are: B, kB, KiB, MB, MiB,
-                GB, GiB. The 'B' may be omitted.
---total         Display the grand total only
-}
-
-set porthelp(srpm) {
-Creates a srpm for each of the given ports
-}
-
-set porthelp(setrequested) {
-Marks each of the given ports as requested
-}
-
-set porthelp(unsetrequested) {
-Marks each of the given ports as unrequested
-}
-
-set porthelp(sync) {
-Synchronize the set of Portfiles
-}
-
-set porthelp(test) {
-Run tests on each of the given ports
-}
-
-set porthelp(unarchive) {
-Unarchive the destroot of the given ports from installed images
-}
-
-set porthelp(uninstall) {
-Uninstall the given ports
-
---follow-dependents     Recursively uninstall all ports that depend on the
-                        specified port before uninstalling the port itself.
---follow-dependencies   Also recursively uninstall all ports that the
-                        specified port depended on. This will not uninstall
-                        dependencies that are marked as requested or that
-                        have other dependents.
---no-exec               Do not execute any stored pre- or post-uninstall
-                        procedures.
-}
-
-set porthelp(unload) $porthelp(load)
-
-set porthelp(upgrade) {
-Upgrades the given ports to the latest version. Respects global options
--n, -R, and -u (see the port man page).  Note that in selecting variants
-to use in the upgraded build of the port, the order of precedence is variants
-specified on the command line, then variants active in the latest installed
-version of the port, then the variants.conf file.
-
---force             Ignore circumstances that would normally cause ports to be
-                    skipped (e.g. not outdated).
---enforce-variants  If the installed variants do not match those requested,
-                    upgrade even if the port is not outdated.
---no-replace        Do not replace one port with another according to the
-                    replaced_by field
-}
-
-set porthelp(url) {
-Returns the URL for each of the given ports
-}
-
-set porthelp(usage) {
-Returns basic usage of the port command
-}
-
-set porthelp(variants) {
-Returns a list of variants provided by the given ports, with descriptions if present
-}
-
-set porthelp(version) {
-Returns the version of MacPorts
-}
Index: /trunk/base/src/port/port.tcl
===================================================================
--- /trunk/base/src/port/port.tcl	(revision 123001)
+++ /trunk/base/src/port/port.tcl	(revision 123002)
@@ -1821,36 +1821,59 @@
 
 proc action_help { action portlist opts } {
-    set helpfile "$macports::prefix/var/macports/port-help.tcl"
-
+    set manext ".gz"
     if {[llength $portlist] == 0} {
-        print_help
-        return 0
-    }
-
-    if {[file exists $helpfile]} {
-        if {[catch {source $helpfile} err]} {
-            puts stderr "Error reading helpfile $helpfile: $err"
+        set page "man1/port.1$manext"
+    } else {
+        set topic [lindex $portlist 0]
+
+        # Look for an action with the requested argument
+        set actions [find_action $topic]
+        if {[llength $actions] == 1} {
+            set page "man1/port-[lindex $actions 0].1$manext"
+        } else {
+            if {[llength $actions] > 1} {
+                ui_error "\"port help ${action}\" is ambiguous: \n  port help [join $actions "\n  port help "]"
+                return 1
+            }
+
+            # No valid command specified
+            set page ""
+        }
+    }
+
+    set pagepath ${macports::prefix}/share/man/$page
+    if {$page == "" || ![file exists $pagepath]} {
+        set page "man7/portundocumented.7$manext"
+        set pagepath ${macports::prefix}/share/man/$page
+    }
+
+    if {$pagepath != ""} {
+        ui_debug "Opening man page '$pagepath'"
+
+        # Restore our entire environment from start time.
+        # man might want to evaluate TERM
+        global env boot_env
+        array unset env_save; array set env_save [array get env]
+        array unset env *
+        if {${macports::macosx_version} == "10.5"} {
+            unsetenv *
+        }
+        array set env [array get boot_env]
+
+        if [catch {system -nodup "${macports::autoconf::man_path} $pagepath"} result] {
+            ui_debug "$::errorInfo"
+            ui_error "Unable to show man page using ${macports::autoconf::man_path}: $result"
             return 1
         }
+
+        # Restore internal MacPorts environment
+        array unset env *
+        if {${macports::macosx_version} == "10.5"} {
+            unsetenv *
+        }
+        array set env [array get env_save]
     } else {
-        puts stderr "Unable to open help file $helpfile"
+        ui_error "Sorry, no help for this topic is available."
         return 1
-    }
-
-    foreach topic $portlist {
-        if {![info exists porthelp($topic)]} {
-            puts stderr "No help for topic $topic"
-            return 1
-        }
-
-        set usage [action_get_usage $topic]
-        if {$usage != -1} {
-           puts -nonewline stderr $usage
-        } else {
-            ui_error "No usage for topic $topic"
-            return 1
-        }
-
-        puts stderr $porthelp($topic)
     }
 
