<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-guide.

</pre>
<p><a href="https://github.com/macports/macports-guide/commit/dd4b8133bae6841ae62f3281ca7928d6dbaeadf9">https://github.com/macports/macports-guide/commit/dd4b8133bae6841ae62f3281ca7928d6dbaeadf9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new dd4b813  adoc: Regenerate with patched docbookrx
</span>dd4b813 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit dd4b8133bae6841ae62f3281ca7928d6dbaeadf9
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Sat Feb 15 01:29:40 2020 +0100

<span style='display:block; white-space:pre;color:#404040;'>    adoc: Regenerate with patched docbookrx
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Regenerated with docbookrx with these patches applied:
</span><span style='display:block; white-space:pre;color:#404040;'>    https://github.com/raimue/docbookrx/compare/master...9c0fe0cf30c3ea5165fbc40490e3d7353b1ff13d
</span>---
 guide/adoc/installing.adoc            | 135 +++++++-----
 guide/adoc/internals-tests.adoc       |   8 +-
 guide/adoc/internals.adoc             |  90 ++++----
 guide/adoc/intro.adoc                 |   4 +-
 guide/adoc/macports.conf.adoc         |  32 +--
 guide/adoc/portfile-dependencies.adoc |  28 +--
 guide/adoc/portfile-keywords.adoc     |  33 +--
 guide/adoc/portfile-livecheck.adoc    |  30 +--
 guide/adoc/portfile-phase.adoc        | 399 +++++++++++++++++++---------------
 guide/adoc/portfile-startupitem.adoc  | 145 +++++++++---
 guide/adoc/portfile-tcl.adoc          |  48 ++--
 guide/adoc/portfile-variables.adoc    |  16 +-
 guide/adoc/portfile-variants.adoc     |  22 +-
 guide/adoc/portfiledev.adoc           |  62 +++---
 guide/adoc/portfileref.adoc           |  12 +
 guide/adoc/portgroup-github.adoc      |  62 +++---
 guide/adoc/portgroup-golang.adoc      | 140 ++++++++++++
 guide/adoc/portgroup-java.adoc        |  44 ++++
 guide/adoc/portgroup-python.adoc      |  28 +--
 guide/adoc/portgroup-ruby.adoc        |   2 +-
 guide/adoc/portgroup-xcode.adoc       |  36 +--
 guide/adoc/portgroups.adoc            |   2 +
 guide/adoc/project.adoc               |  91 ++++----
 guide/adoc/using.adoc                 | 387 ++++++++++++++++-----------------
 24 files changed, 1110 insertions(+), 746 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/installing.adoc b/guide/adoc/installing.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index e336984..2f61208 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/installing.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/installing.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,7 +32,7 @@ Follow the instructions for your version of macOS:
</span> Download the latest version of Xcode https://developer.apple.com/downloads/index.action[from the Apple developer website] or get it https://itunes.apple.com/us/app/xcode/id497799835[using the Mac App
                     Store].
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Once you have Xcode installed, open a terminal, run ``xcode-select --install``, and click the Install button to install the required command line developer tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once you have Xcode installed, open a terminal, run ``+xcode-select --install+``, and click the Install button to install the required command line developer tools.
</span> Don't worry if you see a message telling you the software cannot be installed because it is not currently available from the Software Update Server.
 This usually means you already have the latest version installed.
 You can also get the command line tools from https://developer.apple.com/downloads/index.action[the
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,7 +51,7 @@ Xcode 4.3 and later do not automatically install the command line tools, but Mac
</span> To install them, open the Xcode application, go to the Preferences window, to the Downloads section, and click the Install button next to Command Line Tools.
 Be sure to return to this window after every Xcode upgrade to ensure that the command line tools are also upgraded.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you wish to create Installer packages with ``port pkg``, you will also need to install PackageMaker, which is in the "`Auxiliary Tools for Xcode`" package as of Xcode 4.3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you wish to create Installer packages with ``+port pkg+``, you will also need to install PackageMaker, which is in the "`Auxiliary Tools for Xcode`" package as of Xcode 4.3.
</span> The download page for this package can be opened via the Xcode -> Open Developer Tool -> More Developer Tools... menu item.
 After downloading and mounting the disk image, drag the PackageMaker application to your /Applications directory.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -101,16 +101,16 @@ However, if you wish to <<installing.macports.source.multiple,install multiple c
</span> 
 The macOS package installer automatically installs MacPorts, <<installing.shell,sets the shell environment>>, and runs a <<using.port.selfupdate,selfupdate>> operation to update the ports tree and MacPorts base with the latest release.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Download the latest [path]`MacPorts-2.4.3-....pkg` installer from the releases https://github.com/macports/macports-base/releases/[on GitHub]. Here are direct links for the latest versions of macOS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Download the latest [path]`MacPorts-2.6.2-....pkg` installer from the releases https://github.com/macports/macports-base/releases/[on GitHub]. Here are direct links for the latest versions of macOS:
</span> +
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ macOS 10.14 Mojave: ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/macports/macports-base/releases/download/v2.6.2/MacPorts-2.6.2-10.14-Mojave.pkg[MacPorts-2.6.2-10.14-Mojave.pkg]
</span>  macOS 10.13 High Sierra: ::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-https://github.com/macports/macports-base/releases/download/v2.4.3/MacPorts-2.4.3-10.13-HighSierra.pkg[MacPorts-2.4.3-10.13-HighSierra.pkg]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/macports/macports-base/releases/download/v2.6.2/MacPorts-2.6.2-10.13-HighSierra.pkg[MacPorts-2.6.2-10.13-HighSierra.pkg]
</span>  macOS 10.12 Sierra: ::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-https://github.com/macports/macports-base/releases/download/v2.4.3/MacPorts-2.4.3-10.12-Sierra.pkg[MacPorts-2.4.3-10.12-Sierra.pkg]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OS X 10.11 El Capitan: ::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://github.com/macports/macports-base/releases/download/v2.4.3/MacPorts-2.4.3-10.11-ElCapitan.pkg[MacPorts-2.4.3-10.11-ElCapitan.pkg]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/macports/macports-base/releases/download/v2.6.2/MacPorts-2.6.2-10.12-Sierra.pkg[MacPorts-2.6.2-10.12-Sierra.pkg]
</span> . Double-click the downloaded package installer to perform the default "`easy`" install.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. After this step you are done already, MacPorts is now installed and your shell environment was set up automatically by the installer. To confirm the installation is working as expected, now try using [cmd]``port`` in a _new_ terminal window.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. After this step you are done already, MacPorts is now installed and your shell environment was set up automatically by the installer. To confirm the installation is working as expected, now try using [cmd]``+port+`` in a _new_ terminal window.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -120,7 +120,7 @@ $ port version
</span> +
 
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Version: 2.4.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Version: 2.6.2
</span> ----
 +
 In case of problems such as "`command not found`", make sure that you opened a new terminal window or consult <<installing.shell>>.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -133,20 +133,20 @@ Otherwise, please skip the remainder of this chapter and continue with <<using>>
</span> If you installed MacPorts using the package installer, skip this section.
 To install MacPorts from the source code, follow the steps below.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Download and extract the https://distfiles.macports.org/MacPorts/MacPorts-2.4.3.tar.bz2[ MacPorts 2.4.3 tarball]. Either do so using your browser and the Finder, or use the given commands in a terminal window.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Download and extract the https://distfiles.macports.org/MacPorts/MacPorts-2.6.2.tar.bz2[ MacPorts 2.6.2 tarball]. Either do so using your browser and the Finder, or use the given commands in a terminal window.
</span> +
 
 [source]
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$ curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.4.3.tar.bz2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$ tar xf MacPorts-2.4.3.tar.bz2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.6.2.tar.bz2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ tar xf MacPorts-2.6.2.tar.bz2
</span> ----
 . Afterwards, perform the commands shown in the terminal window. If you wish to use a path other than [path]`/opt/local`, follow the instructions for <<installing.macports.source.multiple,installing multiple copies of MacPorts>> instead.
 +
 
 [source]
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$ cd MacPorts-2.4.3/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ cd MacPorts-2.6.2/
</span> $ ./configure
 $ make
 $ sudo make install
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,13 +178,13 @@ This example will create [path]`/opt/mports/macports-base` containing everything
</span> $ mkdir -p /opt/mports
 $ cd /opt/mports
 $ git clone https://github.com/macports/macports-base.git
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$ git checkout v2.4.3  # skip this if you want to use the development version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ git checkout v2.6.2  # skip this if you want to use the development version
</span> ----
 . Build and Install MacPorts
 +
 MacPorts uses autoconf and makefiles for installation.
 These commands will build and install MacPorts to [path]`/opt/local`.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can add `--prefix` to [path]`./configure` to relocate MacPorts to another directory if needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can add `+--prefix+` to [path]`./configure` to relocate MacPorts to another directory if needed.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -234,8 +234,9 @@ You should setup your PATH and other environment options according to <<installi
</span> === Install Multiple MacPorts Copies
 
 Occasionally a MacPorts developer may wish to install more than one MacPorts instance on the same host.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Only one copy of MacPorts may use the default prefix [path]`/opt/local`, so for additional installations use the option `--prefix` as shown below.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-It's also recommended to change the applications dir using `--with-applications-dir` to avoid conflicts in [path]`/Applications/MacPorts`. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only one copy of MacPorts may use the default prefix [path]`/opt/local`, so for additional installations use the option `+--prefix+` as shown below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It's also recommended to change the applications dir using `+--with-applications-dir+` to avoid conflicts in [path]`/Applications/MacPorts`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Use `+--without-startupitems+` to automatically set `+startupitem_install no+` in the new [path]`macports.conf`, which is required to avoid conflicts in [path]`/Library/LaunchAgents` or [path]`/Library/LaunchDaemons`. 
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -246,31 +247,28 @@ The first command temporarily removes the standard MacPorts binary paths because
</span> ----
 $ export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 $ MP_PREFIX=/opt/macports-test
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$ ./configure --prefix=$MP_PREFIX --with-applications-dir=$MP_PREFIX/Applications
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ ./configure --prefix=$MP_PREFIX --with-applications-dir=$MP_PREFIX/Applications --without-startupitems
</span> $ make
 $ sudo make install
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-After installing the second instance you might need to add 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-[source]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-startupitem_install no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to [path]`$MP_PREFIX/etc/macports/macports.conf` to avoid conflicts in [path]`/Library/LaunchAgents`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> [[installing.macports.upgrade]]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-== MacPorts Upgrade
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Upgrade MacPorts
</span> 
 MacPorts base upgrades are performed automatically (when a newer release is available) during a <<using.port.selfupdate,selfupdate>> operation.
 To upgrade a copy of MacPorts that was installed from source to the newer release of the source code, simply repeat the <<installing.macports.source,source install>> with the newer version of the MacPorts source code.
 
 [[installing.macports.uninstalling]]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-== Uninstall
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Uninstall MacPorts
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Uninstalling MacPorts can be a drastic step, and depending on the issue you are experiencing, you may not need to do so.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Uninstalling MacPorts is a drastic step and, depending on the issue you are experiencing, you may not need to do so.
</span> If you are unsure, ask on the https://lists.macports.org/mailman/listinfo/macports-users[macports-users] mailing list first.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+If you are sure you want to uninstall, read on.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[installing.macports.uninstalling.ports]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+=== Uninstall All Ports
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you need to uninstall MacPorts, and [cmd]``port`` is functioning, first uninstall all the installed ports by running this command in the Terminal:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you want to uninstall MacPorts and the [cmd]``+port+`` command is functioning, first uninstall all the installed ports by running this command in the Terminal:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -281,27 +279,50 @@ All that will be left in your installation prefix now will be files that were no
</span> This includes configuration files, databases, any files which MacPorts renamed in order to allow a forced installation or upgrade, and the base MacPorts software itself.
 You may wish to save your configuration files (most are in [path]`$prefix/etc`), databases, or any other unique data by moving it aside.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To remove all remaining traces of MacPorts, run the following command in the Terminal.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If you have changed ``prefix``, `applications_dir` or `frameworks_dir` from their default values, then replace [path]`/opt/local` with your ``prefix``, replace [path]`/Applications/MacPorts` with your ``applications_dir``, and/or add your `frameworks_dir` to the list, respectively.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If the [cmd]``+port+`` command is not functioning, you can proceed on to the next steps, but if you had installed any ports that install files to nonstandard locations, those files might not be removed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[installing.macports.uninstalling.users]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+=== Remove Users and Groups
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When MacPorts is installed, a [path]`macports` macOS user and group are created for privilege separation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you want to remove them, you can use these commands from an account that has admin privileges:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ dscl -p . -delete /Users/macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$ dscl -p . -delete /Groups/macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you configured MacPorts to use a different user or group name, then specify that instead of [path]`macports`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Individual ports may create users and groups as well; you can remove them with the same commands, but replacing [path]`macports` with the user or group name you wish to delete.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[installing.macports.uninstalling.everything]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+=== Remove the Rest of MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you want to remove all remaining traces of MacPorts, run the following command in the Terminal.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you have changed ``+prefix+``, `+applications_dir+` or `+frameworks_dir+` from their default values, then replace [path]`/opt/local` with your ``+prefix+``, replace [path]`/Applications/MacPorts` with your ``+applications_dir+``, and/or add your `+frameworks_dir+` to the list, respectively.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you are running macOS 10.15 Catalina or later and have not disabled System Integrity Protection (SIP), you will need to <<installing.macports.uninstalling.users,remove the [path]`macports` user>> first.
</span> 
 [source]
 ----
 $ sudo rm -rf \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        /opt/local \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Applications/DarwinPorts \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Applications/MacPorts \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/LaunchDaemons/org.macports.* \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/Receipts/DarwinPorts*.pkg \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/Receipts/MacPorts*.pkg \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/StartupItems/DarwinPortsStartup \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/Tcl/darwinports1.0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        /Library/Tcl/macports1.0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ~/.macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /opt/local \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Applications/DarwinPorts \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Applications/MacPorts \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/LaunchDaemons/org.macports.* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/Receipts/DarwinPorts*.pkg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/Receipts/MacPorts*.pkg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/StartupItems/DarwinPortsStartup \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/Tcl/darwinports1.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /Library/Tcl/macports1.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ~/.macports
</span> ----
 
 If you use a shell other than bash (perhaps tcsh), you may need to adjust the above to fit your shell's syntax.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Also note that depending on which version of MacPorts you have and which ports you have installed, not all of the above paths will exist on your system.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is OK.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Depending on which version of MacPorts you have and which ports you have installed, not all of the above paths will exist on your system; this is OK.
</span> 
 [[installing.shell]]
 == MacPorts and the Shell
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -315,14 +336,14 @@ Depending on your shell and which configuration files already exist, the install
</span> [[installing.shell.postflight]]
 === The Postflight Script
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The postflight script automatically sets the `PATH` variable, and optionally the `MANPATH` and `DISPLAY` variables according to the rules described below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The postflight script automatically sets the `+PATH+` variable, and optionally the `+MANPATH+` and `+DISPLAY+` variables according to the rules described below.
</span> If a current shell configuration file exists at installation time it is renamed to "`mpsaved_$timestamp`".
 Those <<installing.macports.source,installing MacPorts from source code>> must modify their environment manually using the rules as a guide.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Required: `PATH` variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Required: `+PATH+` variable
</span> +
 This variable is set by the postflight script to prepend the MacPorts executable paths to the current path as shown.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This puts the MacPorts paths at the front of `PATH` so that the MacPorts binaries will take precedence over vendor-supplied binaries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This puts the MacPorts paths at the front of `+PATH+` so that the MacPorts binaries will take precedence over vendor-supplied binaries.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -334,23 +355,23 @@ export PATH=/opt/local/bin:/opt/local/sbin:$PATH
</span> [NOTE]
 ====
 The user environment's $PATH is not in effect while ports are being installed, because the $PATH is scrubbed before ports are installed, and restored afterwards.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To change the search path for locating system executables (rsync, tar, etc.) during port installation, see the <<internals.configuration-files.macports-conf,macports.conf>> file variable ``binpath``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To change the search path for locating system executables (rsync, tar, etc.) during port installation, see the <<internals.configuration-files.macports-conf,macports.conf>> file variable ``+binpath+``.
</span> But changing this variable is for advanced users only, and is not generally needed or recommended.
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Optional: `MANPATH` variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Optional: `+MANPATH+` variable
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Condition: If prior to MacPorts installation a `MANPATH` variable exists in a current [path]`.profile` that contains neither the value [path]`${prefix}/share/man,` nor any empty items separated by a colon, the postflight script sets the `MANPATH` variable as shown below.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Otherwise, the `MANPATH` variable is omitted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Condition: If prior to MacPorts installation a `+MANPATH+` variable exists in a current [path]`.profile` that contains neither the value [path]`${prefix}/share/man,` nor any empty items separated by a colon, the postflight script sets the `+MANPATH+` variable as shown below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Otherwise, the `+MANPATH+` variable is omitted.
</span> +
 
 [source]
 ----
 export MANPATH=/opt/local/share/man:$MANPATH
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Optional: `DISPLAY` variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Optional: `+DISPLAY+` variable
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Condition: If installing on a Mac OS X version earlier than 10.5 (Leopard), and if a shell configuration file exists at time of MacPorts installation without a `DISPLAY` variable, the postflight script sets a `DISPLAY` variable as shown below.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The `DISPLAY` variable is always omitted on Mac OS X 10.5 or higher.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Condition: If installing on a Mac OS X version earlier than 10.5 (Leopard), and if a shell configuration file exists at time of MacPorts installation without a `+DISPLAY+` variable, the postflight script sets a `+DISPLAY+` variable as shown below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+DISPLAY+` variable is always omitted on Mac OS X 10.5 or higher.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -362,8 +383,8 @@ export DISPLAY=:0.0
</span> [[installing.shell.verifyprofile]]
 === Verify the Configuration File
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To verify that the file containing the MacPorts variables is in effect, type [cmd]``env`` in the terminal to verify the current environment settings after the file has been created.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Example output for [cmd]``env`` is shown below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To verify that the file containing the MacPorts variables is in effect, type [cmd]``+env+`` in the terminal to verify the current environment settings after the file has been created.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Example output for [cmd]``+env+`` is shown below.
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -392,9 +413,9 @@ _=/usr/bin/env
</span> [[installing.shell.editorvar]]
 === Optional Editor Variables
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can set an environment variable in order to use your favorite text editor with the [cmd]``port edit`` command.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can set an environment variable in order to use your favorite text editor with the [cmd]``+port edit+`` command.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts will check ``MP_EDITOR``, `VISUAL` and `EDITOR` in this order, allowing you to either use a default editor shared with other programs (``VISUAL`` and ``EDITOR``) or a MacPorts-specific one (``MP_EDITOR``).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts will check ``+MP_EDITOR+``, `+VISUAL+` and `+EDITOR+` in this order, allowing you to either use a default editor shared with other programs (``+VISUAL+`` and ``+EDITOR+``) or a MacPorts-specific one (``+MP_EDITOR+``).
</span> 
 For example, to use the nano editor, add this line to your bash config:
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/internals-tests.adoc b/guide/adoc/internals-tests.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index edfe596..101dc87 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/internals-tests.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/internals-tests.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,13 +5,13 @@ The MacPorts testing framework uses http://wiki.tcl.tk/1502[tcltest] for its uni
</span> The framework was developed during Google Summer of Code 2013 by Marius Coțofană (marius@). 
 
 To keep things simple, each module of MacPorts ( https://github.com/macports/macports-base/tree/master/src/macports1.0[macports1.0], https://github.com/macports/macports-base/tree/master/src/package1.0[package1.0], https://github.com/macports/macports-base/tree/master/src/port1.0[port1.0], https://github.com/macports/macports-base/tree/master/src/registry2.0[registry2.0] ) has its own [path]`tests/` directory.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Each Tcl script in a module (e.g. https://github.com/macports/macports-base/blob/master/src/macports1.0/macports.tcl[macports.tcl]) has its own test script located in the [path]`tests` directory, with the same name and the '.test' extension (e.g. https://github.com/macports/macports-base/blob/master/src/macports1.0/tests/macports.test[macports.test]). Every proc in a script (e.g. ``proc macports::findBinary``) should have its own test proc (e.g. ``test findBinary``) in the corresponding  [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Each Tcl script in a module (e.g. https://github.com/macports/macports-base/blob/master/src/macports1.0/macports.tcl[macports.tcl]) has its own test script located in the [path]`tests` directory, with the same name and the '.test' extension (e.g. https://github.com/macports/macports-base/blob/master/src/macports1.0/tests/macports.test[macports.test]). Every proc in a script (e.g. ``+proc macports::findBinary+``) should have its own test proc (e.g. ``+test findBinary+``) in the correspond [...]
</span> Test procs should maintain the order in the original script and should be independent one of another. 
 
 [[internals.tests.running]]
 == Running tests
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Tests can be run only on an installed version of MacPorts (so make sure you have run [cmd]``sudo make install``). 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Tests can be run only on an installed version of MacPorts (so make sure you have run [cmd]``+sudo make install+``). 
</span> 
 The easiest way to run all the tests, is to use the target in the Makefile. 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,14 +76,14 @@ $ tclsh test.tcl -t macports.test
</span> $ tclsh test.tcl -h
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Specific test cases can be run using the [cmd]``'-match'`` argument for the file that contains the test, from its parent directory. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Specific test cases can be run using the [cmd]``+'-match'+`` argument for the file that contains the test, from its parent directory. 
</span> 
 [source]
 ----
 $ tclsh macports.test -match mportclose
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Regression tests can be found in https://github.com/macports/macports-base/tree/master/tests/test/[tests/test/] and can be run just as unit tests, using [cmd]``make test`` from the parent directory. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Regression tests can be found in https://github.com/macports/macports-base/tree/master/tests/test/[tests/test/] and can be run just as unit tests, using [cmd]``+make test+`` from the parent directory. 
</span> 
 [[internals.tests.mustknow]]
 == Must know
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/internals.adoc b/guide/adoc/internals.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 5865503..8bcc8ae 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/internals.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/internals.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,7 +32,7 @@ include::macports.conf.adoc[]
</span> MacPorts has a unique ability to allow multiple versions, revisions, and variants of the same port to be installed at the same time, so you may test new port versions without uninstalling a previous working version.
 
 This capability derives from the fact that a MacPorts port by default is not installed into its final or "`activated`" location, but rather to an intermediate location that is only made available to other ports and end-users after an activation phase that extracts all its files from the image repository.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Deactivating a port only removes the files from their activated locations (usually under ``${prefix}``)--the deactivated port's image is not disturbed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Deactivating a port only removes the files from their activated locations (usually under ``+${prefix}+``)--the deactivated port's image is not disturbed.
</span> 
 The location of an installed port's image can be seen by running: 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,8 +55,8 @@ The MacPorts system is composed of three Tcl libraries:
</span> 
 The code for the Port API is located in [path]`base/src/port1.0`.
 The Port API provides all the primitives required for a Portfile to be parsed, queried, and executed.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-It also provides a single procedure call that the MacPorts API uses to kick off execution: ``eval_targets``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The port Tcl library supplies these procedures, all of which are generated at run-time using the `options` procedure in portutil.tcl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It also provides a single procedure call that the MacPorts API uses to kick off execution: ``+eval_targets+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The port Tcl library supplies these procedures, all of which are generated at run-time using the `+options+` procedure in portutil.tcl.
</span> 
 The macports Tcl library loads the Portfile into a sub-interpreter, within which all port-specific code is run.
 This process ensures that there will never be pollution of the Tcl space of other ports, nor the MacPorts libraries, nor the calling application.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -80,12 +80,12 @@ The Ports API performs the following functions:
</span> === MacPorts API
 
 The code for the MacPorts API is located in [path]`base/src/macports1.0`.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The MacPorts API provides a public API into the MacPorts system by providing simple primitives for handling Portfiles, dependencies, and registry operations, and exports the MacPorts API for the [cmd]``port`` command line utility, or any other.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The API has very little information about the contents Portfiles; instead, it relies entirely upon the [cmd]``port`` Tcl library.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The MacPorts API provides a public API into the MacPorts system by providing simple primitives for handling Portfiles, dependencies, and registry operations, and exports the MacPorts API for the [cmd]``+port+`` command line utility, or any other.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The API has very little information about the contents Portfiles; instead, it relies entirely upon the [cmd]``+port+`` Tcl library.
</span> By keeping the high level API simple and generic, revisions to the underlying ports system will not necessarily require a revision of the high level MacPorts API.
 
 The MacPorts API is also responsible for loading user specified options into a sub-interpreter to be evaluated by the ports API.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In that case it sets the variable name in the sub-interpreter and adds the option to the sub-interpreter's global array user_options(). User options are passed as part of the call to ``mportopen``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In that case it sets the variable name in the sub-interpreter and adds the option to the sub-interpreter's global array user_options(). User options are passed as part of the call to ``+mportopen+``.
</span> 
 The MacPorts API performs the following functions:
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -107,27 +107,27 @@ See also <<internals.registry>>.
</span> * Exports the MacPorts API for use by client applications.
 +
 The following routines are defined.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportinit:` Initializes the MacPorts system. Should be called before trying to use any other procedure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportsearch:` Given a regexp, searches the [path]`PortIndex` for ports with matching names.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportopen:` Given a URI to a port, opens a Portfile and returns an opaque handle to it.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportclose:` Given a port handle, closes a Portfile.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportexec:` Given a port handle, executes a target (e.g., install).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportinfo:` Given a port handle, this returns the PortInfo array (as a flat list of array elements). This is a little tricky and unstable and only used by [cmd]``portindex``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `mportdepends:` Given a port handle, returns a list of ports upon which the specified port depends.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportinit:+` Initializes the MacPorts system. Should be called before trying to use any other procedure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportsearch:+` Given a regexp, searches the [path]`PortIndex` for ports with matching names.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportopen:+` Given a URI to a port, opens a Portfile and returns an opaque handle to it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportclose:+` Given a port handle, closes a Portfile.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportexec:+` Given a port handle, executes a target (e.g., install).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportinfo:+` Given a port handle, this returns the PortInfo array (as a flat list of array elements). This is a little tricky and unstable and only used by [cmd]``+portindex+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+mportdepends:+` Given a port handle, returns a list of ports upon which the specified port depends.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For an example of the MacPorts API, when one executes [cmd]``port search cm3``, the port utility:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For an example of the MacPorts API, when one executes [cmd]``+port search cm3+``, the port utility:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Calls the `mportsearch` function to find all ports containing "`cm3`".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Calls the `+mportsearch+` function to find all ports containing "`cm3`".
</span> * Returns Tcl array(s) containing data from the [path]`PortIndex`: port name, version, revision, variants, etc.
 * Formats the list of arrays in the standard viewing format.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For another MacPorts API example, when one executes [cmd]``port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      install cm3``, the port utility:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For another MacPorts API example, when one executes [cmd]``+port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      install cm3+``, the port utility:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Calls the `mportsearch` function to find the first port that matches the name "`cm3`".
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Calls the `mportopen` function to open the port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Calls the `mportexec` function to execute the install target in the port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Calls the `mportclose` function to close the port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Calls the `+mportsearch+` function to find the first port that matches the name "`cm3`".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Calls the `+mportopen+` function to open the port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Calls the `+mportexec+` function to execute the install target in the port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Calls the `+mportclose+` function to close the port.
</span> 
 
 [[internals.apis.pextlib]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -154,7 +154,7 @@ The registry allows MacPorts utilities to:
</span> 
 The SQLite registry used by default is located at [path]`${portdbpath}/registry`, which by default would be [path]`${prefix}/var/macports/registry`.
 All data is stored in a single file named [path]`registry.db`, although the additional directory [path]`portfiles` is used temporarily for extracting stored Portfiles from the registry.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Furthermore, access to the registry may be locked using [path]`.registry.lock` with the `registry::exclusive_lock` and `registry::exclusive_unlock` APIs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Furthermore, access to the registry may be locked using [path]`.registry.lock` with the `+registry::exclusive_lock+` and `+registry::exclusive_unlock+` APIs.
</span> 
 The legacy flat file registry files are contained in [path]`${portdbpath}/receipts`, which by default is location [path]`${prefix}/var/macports/receipts`.
 File mappings and dependency mappings are tracked in the flat file registry by [path]`file_map.db` and [path]`dep_map.bz2`.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -166,61 +166,61 @@ If found, these will be automatically converted to the new SQLite registry.
</span> The MacPorts registry provides a public API in the registry1.0 Tcl package.
 Using this API listed below you can access the MacPorts Registry using the default receipt storage mechanism chosen in [path]`macports.conf`.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::new_entry {name version {revision 0} {variants ""}}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::new_entry {name version {revision 0} {variants ""}}+`::
</span> Begin the creation of a new registry entry for the given port.
 Returns a reference ID to the registry entry created.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::open_entry {name {version 0} {revision 0} {variants ""}}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::open_entry {name {version 0} {revision 0} {variants ""}}+`::
</span> Opens an existing registry entry.
 Returns a reference ID to the registry entry that was opened.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::entry_exists {name version {revision 0} {variants ""}}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::entry_exists {name version {revision 0} {variants ""}}+`::
</span> Checks to see if a port exists in the registry.
 Returns 1 if the entry exists, 0 if not.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::write_entry {ref}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::write_entry {ref}+`::
</span> Writes the receipt associated with the given reference.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::delete_entry {ref}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::delete_entry {ref}+`::
</span> Deletes the receipt associated with the given reference.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::property_store {ref property value}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::property_store {ref property value}+`::
</span> Store the given value with the property name in the receipt associated with the given reference.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::property_retrieve {ref property}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::property_retrieve {ref property}+`::
</span> Retrieve the property name from the receipt associated with the given reference.
 Returns the value of the property, if the property exists.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::installed {{name ""} {version ""}}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::installed {{name ""} {version ""}}+`::
</span> Get all installed ports, optionally all installed ports matching the given name, or the given name and version.
 Returns a list of the installed ports.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::location {portname portversion}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::location {portname portversion}+`::
</span> Returns the physical location the port is installed in on the disk.
 This is primarily useful for finding out where a port image is installed.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::open_file_map {args}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::open_file_map {args}+`::
</span> Opens the file map that contains file-port relationships.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::file_registered {file}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::file_registered {file}+`::
</span> Returns the name of the port that owns the given file, if the file is registered as installed, and 0 otherwise.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::port_registered {name}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::port_registered {name}+`::
</span> Returns a list of all files associated with the given port if that port is installed, and 0 otherwise.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::register_file {file port}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::register_file {file port}+`::
</span> Registers the given file in the file map as belonging to the given port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::unregister_file {file}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::unregister_file {file}+`::
</span> Removes the file from the file map.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::write_file_map {args}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::write_file_map {args}+`::
</span> Write the changes to the file map.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::open_dep_map {args}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::open_dep_map {args}+`::
</span> Opens the dependency map that contains port dependency relationships.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::fileinfo_for_file {fname}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::fileinfo_for_file {fname}+`::
</span> Returns a list for the given file name representing all data currently known about the file.
 This is a 6-tuple in the form of:
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -231,23 +231,23 @@ This is a 6-tuple in the form of:
</span> . size
 . md5 checksum
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::fileinfo_for_index {flist}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::fileinfo_for_index {flist}+`::
</span> Returns a list of information concerning each file in the given file list, if that file exists in the registry.
 The information if obtained through registry::fileinfo_for_file
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::list_depends {name}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::list_depends {name}+`::
</span> Returns a list of all the ports that given port name depends on.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::list_dependents {name}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::list_dependents {name}+`::
</span> Returns a list of all the ports that depend on the given port name.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::register_dep {dep type port}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::register_dep {dep type port}+`::
</span> Registers the given dependency as the given type of dependency with the given port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::unregister_dep {dep type port}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::unregister_dep {dep type port}+`::
</span> Unregister the given dependency of the given type as a dependency of the given port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`registry::write_dep_map {args}`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+registry::write_dep_map {args}+`::
</span> Write changes to the dependency map.
 
 :leveloffset: +1
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/intro.adoc b/guide/adoc/intro.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index f0a1d4d..54341aa 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/intro.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/intro.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,5 +46,5 @@ File text.
</span> * Other special text types.
 ** A hyperlink: https://en.wikipedia.org/wiki/Spontaneous_combustion[spontaneous combustion].
 ** A file: [path]`/var/log/system.log`.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-** A command: [cmd]``ifconfig``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** An option: port `install`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** A command: [cmd]``+ifconfig+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** An option: port `+install+`
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/macports.conf.adoc b/guide/adoc/macports.conf.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index afd70f6..6dcd242 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/macports.conf.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/macports.conf.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,7 +47,7 @@ portdbformat::
</span> Formerly selected the storage type to use for the MacPorts registry: flat or sqlite.
 Currently, only sqlite can be used.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `sqlite`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+sqlite+`
</span> 
 build_arch::
 The machine architecture for which to build in normal use.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,9 +55,9 @@ Options include: ppc, i386, ppc64, x86_64
</span> +
 Default: 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Snow Leopard and later) `x86_64` or `i386` depending on hardware
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Snow Leopard and later) `+x86_64+` or `+i386+` depending on hardware
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Leopard/Tiger) `i386` or `ppc` depending on hardware
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Leopard/Tiger) `+i386+` or `+ppc+` depending on hardware
</span> 
 applications_dir::
 Directory in which ports will install native macOS application bundles.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,7 +79,7 @@ Controls whether ports are built from source or downloaded as pre-built archives
</span> 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.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `ifneeded`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+ifneeded+`
</span> 
 portarchivetype::
 Format of archives in which to store port images.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -92,17 +92,17 @@ Default: [path]`tbz2`
</span> configureccache::
 Use ccache (C/C++ compiler cache) - see https://ccache.samba.org/
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+no+`
</span> 
 configuredistcc::
 Use distcc (distributed compiler) - see https://distcc.samba.org/
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+no+`
</span> 
 configurepipe::
 Use pipes rather than intermediate files when compiling C/C++/etc
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+yes+`
</span> 
 buildnicevalue::
 Lowered scheduling priority (0-20) to use for make when building ports.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,7 +118,7 @@ Default: 0
</span> portautoclean::
 Set whether to automatically execute "`clean`" after "`install`" of ports.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+yes+`
</span> 
 rsync_server::
 Rsync server from which to fetch MacPorts sources.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -185,24 +185,24 @@ Options for MacPorts Universal Binaries (+universal variant)
</span> universal_archs::
 The machine architectures to use for +universal variant (multiple entries must be space delimited). Options include: ppc, i386, ppc64, x86_64
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `x86_64 i386` (``ppc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-i386`` for 10.5 and earlier)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+x86_64 i386+` (``+ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+i386+`` for 10.5 and earlier)
</span> 
 Options for StartupItems
 
 startupitem_type::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Options for generated startup items, though this may be overridden by the `startupitem.type` Portfile key.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Options for generated startup items, though this may be overridden by the `+startupitem.type+` Portfile key.
</span> Options are "`default`" option, "`SystemStarter`", "`launchd`", or "`none`".
 For an empty or "`default`" option, a startupitem type appropriate to the platform is used; if "`none`", no port startupitems are installed.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `default`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+default+`
</span> 
 startupitem_install::
 Create system-level symlinks to generated StartupItems.
 If set to "`no`", symlinks will not be created; otherwise, symlinks will be placed in [path]`/Library/LaunchDaemons` or [path]`/Library/LaunchAgents` as appropriate.
 This setting only applies when building ports from source.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+yes+`
</span> 
 Other options
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -222,12 +222,12 @@ Default: yes
</span> [[internals.configuration-files.sources-conf]]
 == sources.conf
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This file enables rsync synchronization of the default ports tree with the MacPorts rsync server when either of the commands [cmd]``port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    selfupdate`` or [cmd]``port sync`` are run.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This file enables rsync synchronization of the default ports tree with the MacPorts rsync server when either of the commands [cmd]``+port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    selfupdate+`` or [cmd]``+port sync+`` are run.
</span> 
 Default: [path]`rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]`
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Optional local repositories are enabled using a file url: `file:///path/to/localportsrepository`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Optional local repositories are enabled using a file url: `+file:///path/to/localportsrepository+`
</span> 
 [[internals.configuration-files.variants-conf]]
 == variants.conf
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-dependencies.adoc b/guide/adoc/portfile-dependencies.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index b9578aa..b32fb02 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-dependencies.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-dependencies.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,27 +9,27 @@ For example, you may not uninstall a port that is a library dependency for anoth
</span> Likewise, if you run the fetch target for a port, only the fetch dependencies will be installed first, so they should be all that is needed for that target.
 
 depends_fetch::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phases ``fetch``, ``checksum``, ``extract``, ``patch``, ``configure``, ``build``, ``destroot``, ``install``, and ``package``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phases ``+fetch+``, ``+checksum+``, ``+extract+``, ``+patch+``, ``+configure+``, ``+build+``, ``+destroot+``, ``+install+``, and ``+package+``.
</span> Fetch dependencies are needed to download the distfiles for a port, and are not needed at all once the software is installed.
 
 depends_extract::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phases ``extract``, ``patch``, ``configure``, ``build``, ``destroot``, ``install``, and ``package``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phases ``+extract+``, ``+patch+``, ``+configure+``, ``+build+``, ``+destroot+``, ``+install+``, and ``+package+``.
</span> Extract dependencies are needed to unpack a port's distfiles into the work directory, and are not needed at all once the software is installed.
 
 depends_build::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phases ``configure``, ``build``, ``destroot``, ``install``, and ``package``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phases ``+configure+``, ``+build+``, ``+destroot+``, ``+install+``, and ``+package+``.
</span> Build dependencies are needed when software is being built, but not needed at all once it is installed.
 
 depends_lib::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phases ``configure``, ``build``, ``destroot``, ``install``, and ``package``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phases ``+configure+``, ``+build+``, ``+destroot+``, ``+install+``, and ``+package+``.
</span> Library dependencies are needed both at build time (for headers and libraries to link against) and at run time.
 
 depends_test::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phase ``test``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Test dependencies are only needed when the port enables testing (i.e. ``test.run            yes``). 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phase ``+test+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Test dependencies are only needed when the port enables testing (i.e. ``+test.run            yes+``). 
</span> 
 depends_run::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The list of dependencies to check before phases ``destroot``, ``install``, and ``package``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The list of dependencies to check before phases ``+destroot+``, ``+install+``, and ``+package+``.
</span> Run dependencies are needed when the software is run, but not to compile it.
 
 [[reference.dependencies.types]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,17 +53,17 @@ depends_run         port:apache2 port:php5
</span> ----
 
 File dependencies should only be used if one of the reasons listed above applies.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-There are three types: `bin` for programs, `lib` for libraries, and `path` for any installed file.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-File dependencies are specified in the form: ``<type>``:``<filespec>``:``<port>``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+There are three types: `+bin+` for programs, `+lib+` for libraries, and `+path+` for any installed file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+File dependencies are specified in the form: ``+<type>+``:``+<filespec>+``:``+<port>+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For `bin` dependencies, `<filespec>` is the name of a program in a bin directory like [path]`${prefix}/bin`, /usr/bin, /bin, and the associated sbin directories.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For `+bin+` dependencies, `+<filespec>+` is the name of a program in a bin directory like [path]`${prefix}/bin`, /usr/bin, /bin, and the associated sbin directories.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For `lib` dependencies, `<filespec>` is the name of a library (but without its extension) in a lib directory like [path]`${prefix}/lib`, /usr/lib, /lib, some Framework directories, and those found in environment variables like DYLD_LIBRARY_PATH.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For `+lib+` dependencies, `+<filespec>+` is the name of a library (but without its extension) in a lib directory like [path]`${prefix}/lib`, /usr/lib, /lib, some Framework directories, and those found in environment variables like DYLD_LIBRARY_PATH.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For `path` dependencies, `<filespec>` is the complete absolute path to the file, or more usually, when the file is inside [path]`${prefix}`, it is specified relative to [path]`${prefix}`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Since `path` dependencies are the only ones which would find files only in an absolute path or a path inside [path]`${prefix}` they are - in cases when a port needs to be more restrictive - often used instead of `bin` and `lib` dependencies .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For `+path+` dependencies, `+<filespec>+` is the complete absolute path to the file, or more usually, when the file is inside [path]`${prefix}`, it is specified relative to [path]`${prefix}`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since `+path+` dependencies are the only ones which would find files only in an absolute path or a path inside [path]`${prefix}` they are - in cases when a port needs to be more restrictive - often used instead of `+bin+` and `+lib+` dependencies .
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Note that the `<port>` specified is only installed if the specified library, binary, or file is not found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note that the `+<port>+` specified is only installed if the specified library, binary, or file is not found.
</span> See the examples below:
 
 [source]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-keywords.adoc b/guide/adoc/portfile-keywords.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 9037711..fed95c9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-keywords.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-keywords.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -82,12 +82,12 @@ categories          net security
</span> maintainers::
 A port's maintainers are the people who have agreed to take responsibility for keeping the port up-to-date.
 Most ports have only a single maintainer, but some ports have two or more co-maintainers.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `maintainers` keyword lists the maintainers' GitHub usernames or email addresses.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-GitHub usernames start with an `@` symbol.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+maintainers+` keyword lists the maintainers' GitHub usernames or email addresses.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+GitHub usernames start with an `+@+` symbol.
</span> Email addresses are preferably listed in the obfuscated form below to hide them from spambots:
 
 * For addresses in domain @macports.org, simply omit the domain name.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* For addresses in other domains, e.g., mailto:account@example.org[], use the convention `example.org:account` to specify the address.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* For addresses in other domains, e.g., mailto:account@example.org[], use the convention `+example.org:account+` to specify the address.
</span> 
 +
 In the example below, the port is maintained by a GitHub user named neverpanic, and the owners of the two email addresses mailto:jdoe@macports.org[] and mailto:julesverne@example.org[]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -114,10 +114,10 @@ maintainers         {@jverne example.org:julesverne}
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The address `nomaintainer` designates a port that is not maintained by anybody and may be modified by any committer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The address `+nomaintainer+` designates a port that is not maintained by anybody and may be modified by any committer.
</span> Feel free to claim maintainership of a nomaintainer port if desired.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The address `openmaintainer` designates a port that has a maintainer who allows minor changes to be committed without his or her prior approval.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Port maintainers who are not committers are encouraged to add `openmaintainer` to their ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The address `+openmaintainer+` designates a port that has a maintainer who allows minor changes to be committed without his or her prior approval.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Port maintainers who are not committers are encouraged to add `+openmaintainer+` to their ports.
</span> ====
 description::
 A one-sentence description of the ported software.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -152,9 +152,9 @@ homepage            https://www.example.org/apps
</span> platforms::
 A list of the platforms on which the port has been tested.
 Required, but not interpreted in any way by the software at this time; it is purely informational for users.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Possible values: `darwin` (= `macosx` or ``puredarwin``), ``macosx``, ``puredarwin``, ``freebsd``, ``linux``, ``sunos``, ``netbsd``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In general, it can just be set to ``darwin``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(``puredarwin`` is an OS based on Apple's open-source Darwin releases without any of Apple's proprietary bits.) See also ``os.platform``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Possible values: `+darwin+` (= `+macosx+` or ``+puredarwin+``), ``+macosx+``, ``+puredarwin+``, ``+freebsd+``, ``+linux+``, ``+sunos+``, ``+netbsd+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In general, it can just be set to ``+darwin+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(``+puredarwin+`` is an OS based on Apple's open-source Darwin releases without any of Apple's proprietary bits.) See also ``+os.platform+``. 
</span> +
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -166,7 +166,7 @@ supported_archs::
</span> The CPU architectures for which this port can be built.
 Archs currently supported by macOS are: i386, ppc, ppc64, x86_64.
 If this option is not set, it is assumed that the port can build for all archs.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If a port does not install any architecture-specific files, use the special value ``noarch``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a port does not install any architecture-specific files, use the special value ``+noarch+``.
</span> +
 If the building architecture isn't among supported_archs, port fails with an error message, except when building on x86_64 and supported_archs contains i386 or when building on ppc64 and supported_archs contains ppc, in which case the port will be built in 32-bit mode.
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -185,7 +185,7 @@ supported_archs           noarch
</span> license::
 The proper format for license consists of the license name, followed by a hyphen and number if indicating a specific version.
 A space should be placed between licenses if there is more than one that applies.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If an element in the license list is itself a list, it is interpreted as offering a choice of any one of the licenses in the sub-list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If an element in the license list is itself a list, it is interpreted as offering a choice of any one of the licenses in the sub-list. 
</span> +
 If the version number is a "`$$.$$0`" version, the "`$$.$$0`" should be omitted to make the version an integer.
 If the author gives the choice of using a given license or "`any later version`" of it, append a plus sign (+) to the version number.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -206,7 +206,7 @@ license           {freetype GPL}
</span> license_noconflict::
 By default, it is assumed that ports may use libraries or headers from their dependencies and thus form a derivative work.
 A dependency with an incompatible license thus prevents the port from being distributed in binary form.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If a dependency with an incompatible license is not used in such a way that a derivative work is formed, or should not prevent binary distribution for any other reason, add its name to this list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a dependency with an incompatible license is not used in such a way that a derivative work is formed, or should not prevent binary distribution for any other reason, add its name to this list. 
</span> +
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -221,11 +221,12 @@ license_noconflict openssl
</span> license_noconflict readline gdbm
 ----
 use_xcode::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Available in 2.6.0 and later. By default, it is assumed on macOS that ports will not need tools from Xcode.app unless (1) Command Line Tools aren't installed, (2) you are on an old version of Mac OS X that does not support the xcode-select mechanism, or (3) the port uses ``build.type xcode`` or includes the ``xcode`` PortGroup.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If a port needs to use Xcode (i.e., xcodebuild) in any way, ``use_xcode yes`` should be set or the port should include the xcode PortGroup.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The environment variable DEVELOPER_DIR is now exported during all build phases, set to the value of ``${configure.developer_dir}`` which may be the directory of Xcode or CLT depending on use_xcode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Available in 2.6.0 and later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, it is assumed on macOS that ports will not need tools from Xcode.app unless (1) Command Line Tools aren't installed, (2) you are on an old version of Mac OS X that does not support the xcode-select mechanism, or (3) the port uses `+build.type xcode+` or includes the `+xcode+` PortGroup.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a port needs to use Xcode (i.e., xcodebuild) in any way, `+use_xcode yes+` should be set or the port should include the xcode PortGroup.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The environment variable DEVELOPER_DIR is now exported during all build phases, set to the value of `+${configure.developer_dir}+` which may be the directory of Xcode or CLT depending on use_xcode.
</span> This means that libxcselect shims (i.e., /usr/bin/clang) will resolve to Xcode/CLT.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Build systems that ignore the environment may accidentally use Xcode which will cause a failure in trace mode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Build systems that ignore the environment may accidentally use Xcode which will cause a failure in trace mode. 
</span> +
 
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-livecheck.adoc b/guide/adoc/portfile-livecheck.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 61d12f3..2ac7489 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-livecheck.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-livecheck.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,13 +8,13 @@ Livecheck checks to see if MacPorts can query the developer's download site to d
</span> livecheck.type::
 Specify what kind of update check to perform.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Open source mirror site options are to use the project's latest file release from `sourceforge` or the project's `date_updated` XML tag for ``freecode``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-These options are automatically used if a matching `${master_sites}` URL is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Open source mirror site options are to use the project's latest file release from `+sourceforge+` or the project's `+date_updated+` XML tag for ``+freecode+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+These options are automatically used if a matching `+${master_sites}+` URL is used.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Generic download site options are to specify a `moddate` (modification date of a URL resource), a `regex` (retrieve the version by applying a regex to a URL resource), `regexm` (retrieve the version by applying a multi-line regex to a URL resource), `md5` (compares the md5 sum of a URL resource) or `none` (no check).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Generic download site options are to specify a `+moddate+` (modification date of a URL resource), a `+regex+` (retrieve the version by applying a regex to a URL resource), `+regexm+` (retrieve the version by applying a multi-line regex to a URL resource), `+md5+` (compares the md5 sum of a URL resource) or `+none+` (no check).
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `sourceforge` or `googlecode` if the `${master_sites}` is one of these, else ``freecode``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Values: `freecode```sourceforge````googlecode````moddate````regex````regexm````md5````none``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+sourceforge+` or `+googlecode+` if the `+${master_sites}+` is one of these, else ``+freecode+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Values: `+freecode+```+sourceforge+````+googlecode+````+moddate+````+regex+````+regexm+````+md5+````+none+``
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,7 @@ livecheck.name::
</span> Name of the project for live checks.
 Is only used with freecode, sourceforge
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}` or the sourceforge, freecode project name if it can be guessed from ``${master_sites}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}+` or the sourceforge, freecode project name if it can be guessed from ``+${master_sites}+``.
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,9 +41,9 @@ livecheck.name      hibernate
</span> livecheck.distname::
 Name of the file release for sourceforge checks.
 Use the name of the package release.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You may use this keyword without `livecheck.version` if you replace the version part of the name with "``(.*)``".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You may use this keyword without `+livecheck.version+` if you replace the version part of the name with "``+(.*)+``".
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: sourceforge: `${livecheck.name}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: sourceforge: `+${livecheck.name}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,7 +55,7 @@ livecheck.distname  faad2.src
</span> livecheck.version::
 Version of the project for a check; used for regex-based checks.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${version}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${version}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,10 +68,10 @@ livecheck.url::
</span> URL to query for a check.
 
 * Default:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-** `${homepage}` or the first hit among the following sites:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `http://freecode.com/projects-xml/${livecheck.name}/${livecheck.name}.xml`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `https://sourceforge.net/api/file/index/project-name/${livecheck.name}/rss`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `https://code.google.com/p/${livecheck.name}/downloads/list`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+${homepage}+` or the first hit among the following sites:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+http://freecode.com/projects-xml/${livecheck.name}/${livecheck.name}.xml+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+https://sourceforge.net/api/file/index/project-name/${livecheck.name}/rss+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+https://code.google.com/p/${livecheck.name}/downloads/list+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -111,9 +111,9 @@ Examples are given below.
</span> 
 distcheck.check::
 This option can be used to disable distcheck.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-It specifies what kind of check should be performed on distfiles: `moddate` (check if the Portfile is older than the distfile) or `none` (no check).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It specifies what kind of check should be performed on distfiles: `+moddate+` (check if the Portfile is older than the distfile) or `+none+` (no check).
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `moddate`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+moddate+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-phase.adoc b/guide/adoc/portfile-phase.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 16378e8..e8482a2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-phase.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-phase.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,35 +5,35 @@
</span> == Introduction
 
 The MacPorts port installation process has a number of distinct phases that are described in detail in this section.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default scripts coded into MacPorts base performs the standard [cmd]``configure``, [cmd]``make``, and [cmd]``make
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    install`` steps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default scripts coded into MacPorts base performs the standard [cmd]``+configure+``, [cmd]``+make+``, and [cmd]``+make
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install+`` steps.
</span> For applications that do not conform to this standard, installation phases may be declared in a Portfile to <<development.examples.augment,augment>> or <<development.examples.override,override>> the default behavior as described in the <<development,Portfile Development>> chapter.
 
 fetch::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Fetch the `${distfiles}` from `${master_sites}` and place it in [path]`${prefix}/var/macports/distfiles/${name}`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fetch the `+${distfiles}+` from `+${master_sites}+` and place it in [path]`${prefix}/var/macports/distfiles/${name}`.
</span> 
 checksum::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Compare `${checksums}` specified in a [path]`Portfile` to the checksums of the fetched ${distfiles}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Compare `+${checksums}+` specified in a [path]`Portfile` to the checksums of the fetched ${distfiles}.
</span> 
 extract::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Unzip and untar the `${distfiles}` into the path ${prefix}/var/macports/build/..../work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Unzip and untar the `+${distfiles}+` into the path ${prefix}/var/macports/build/..../work
</span> 
 patch::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Apply optional https://en.wikipedia.org/wiki/Patch_(Unix)[patch] files specified in `${patchfiles}` to modify a port's source code file(s).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Apply optional https://en.wikipedia.org/wiki/Patch_(Unix)[patch] files specified in `+${patchfiles}+` to modify a port's source code file(s).
</span> 
 configure::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Execute `${configure.cmd}` in ``${worksrcpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Execute `+${configure.cmd}+` in ``+${worksrcpath}+``.
</span> 
 build::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Execute `${build.cmd}` in ``${worksrcpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Execute `+${build.cmd}+` in ``+${worksrcpath}+``.
</span> 
 test::
 Execute commands to run test suites bundled with a port, available only for a fraction of ports.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This is an optional phase, run only if [cmd]``port test`` is executed, and always works with a build from source, not a binary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is an optional phase, run only if [cmd]``+port test+`` is executed, and always works with a build from source, not a binary.
</span> A failure is only for the user's information, and does not block a subsequent installation from the build.
 
 destroot::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Execute the command [cmd]``make install````DESTDIR=${destroot}``in ``${worksrcpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Execute the command [cmd]``+make install+````+DESTDIR=${destroot}+``in ``+${worksrcpath}+``.
</span> +
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,24 +41,24 @@ Execute the command [cmd]``make install````DESTDIR=${destroot}``in ``${worksrcpa
</span> ====
 Using a https://www.gnu.org/prep/standards/html_node/DESTDIR.html[DESTDIR
             variable] is a part of standard GNU coding practices, and this variable must be supported in an application's install routines for MacPorts' destroot phase to work without manual Portfile scripting or source patching.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Urge developers to fully support `DESTDIR` in their applications.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Urge developers to fully support `+DESTDIR+` in their applications.
</span> ====
 +
 Understanding the destroot phase is critical to understanding MacPorts, because, unlike some package management systems, MacPorts "`stages`" an installation into an intermediate location, not the final file destination.
 MacPorts uses the destroot phase to provide:
 
 * Port uninstalls - a port's files may be cleanly uninstalled because all files and directories are recorded during install.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Multiple port versions may be installed on the same host, since a port's files are not directly inserted into `${prefix}` but rather hard-linked into `${prefix}` from an intermediate location during a later activation phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Multiple port versions may be installed on the same host, since a port's files are not directly inserted into `+${prefix}+` but rather hard-linked into `+${prefix}+` from an intermediate location during a later activation phase.
</span> 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Any empty directories in `${destroot}` upon completion of the destroot phase are removed unless a directory name is placed in the value field of the optional `destroot.keepdirs` keyword.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Any empty directories in `+${destroot}+` upon completion of the destroot phase are removed unless a directory name is placed in the value field of the optional `+destroot.keepdirs+` keyword.
</span> 
 install::
 Archive a port's destrooted files into [path]`${prefix}/var/macports/software`.
 See <<internals.images,Port Images>> in the <<internals,MacPorts Internals>> chapter for details.
 
 activate::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Extract the port's files from the archive in [path]`${prefix}/var/macports/software` to their final installed locations, usually inside ``${prefix}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Extract the port's files from the archive in [path]`${prefix}/var/macports/software` to their final installed locations, usually inside ``+${prefix}+``.
</span> 
 [[reference.phases.installation]]
 == Installation Phase Keywords
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -83,21 +83,21 @@ Keyword list modifiers are most frequently used for these three purposes:
</span> 
 . Preserve configure defaults set by a previously executed Portfile keyword or by MacPorts base
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS for all ports using `configure.cflags` and ``configure.ldflags``, therefore to keep from overwriting the default compiler flags use `configure.cflags-append` and ``configure.ldflags-append``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `configure.cflags-append`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `configure.ldflags-append`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS for all ports using `+configure.cflags+` and ``+configure.ldflags+``, therefore to keep from overwriting the default compiler flags use `+configure.cflags-append+` and ``+configure.ldflags-append+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+configure.cflags-append+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+configure.ldflags-append+`
</span> . Preserve PortGroup Dependencies
 +
 Ports in a PortGroup have default library dependencies set by MacPorts base.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Therefore, never use `depends_lib` in ports belonging to a PortGroup or it will overwrite the default library dependencies.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Instead, use ``depends_lib-append``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Therefore, never use `+depends_lib+` in ports belonging to a PortGroup or it will overwrite the default library dependencies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Instead, use ``+depends_lib-append+``.
</span> . Add or Delete Items for Variants
 +
 When a variant requires more or fewer dependencies, distfiles, or patchfiles, when the variant is invoked you want to add or remove items to the appropriate keyword values list set in the global section of the Portfile.
 Use the appropriate keywords, for example:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-** `depends_lib-append` or `depends_lib-delete` or `depends_lib-replace`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `distfiles-append` or `distfiles-delete` or `distfiles-replace`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-** `patchfiles-append` or `patchfiles-delete` or `patchfiles-replace`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+depends_lib-append+` or `+depends_lib-delete+` or `+depends_lib-replace+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+distfiles-append+` or `+distfiles-delete+` or `+distfiles-replace+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+** `+patchfiles-append+` or `+patchfiles-delete+` or `+patchfiles-replace+`
</span> 
 
 [[reference.phases.installation.argument-modifiers]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -105,7 +105,7 @@ Use the appropriate keywords, for example:
</span> 
 Keywords that support pre_args and post_args are used to assemble command strings together in a row, as described in the reference sections below.
 But it should be noted that all keyword argument modifiers implicitly support keyword list modifiers.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, the keyword `configure.pre_args` also supports `configure.pre_args-append` and ``configure.pre_args-delete``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, the keyword `+configure.pre_args+` also supports `+configure.pre_args-append+` and ``+configure.pre_args-delete+``.
</span> 
 [[reference.phases.fetch]]
 == Fetch Phase Keywords
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -113,10 +113,10 @@ For example, the keyword `configure.pre_args` also supports `configure.pre_args-
</span> The list of keywords related to the fetch phase.
 
 master_sites::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-A list of URLs from which a port's `${distfiles}` may be retrieved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A list of URLs from which a port's `+${distfiles}+` may be retrieved.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Keyword values for `master_sites` may include predefined site lists known as "`mirrors`", such as sourceforge, gnu, etc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The file(s) declared in `${distfiles}` will be fetched from one of the locations defined in ``master_sites``, while trying to find the best reachable mirror for the user's connection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Keyword values for `+master_sites+` may include predefined site lists known as "`mirrors`", such as sourceforge, gnu, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The file(s) declared in `+${distfiles}+` will be fetched from one of the locations defined in ``+master_sites+``, while trying to find the best reachable mirror for the user's connection.
</span> +
 For a complete list of mirrors and their list of sites, see the file [path]`mirror_sites.tcl` located in [path]`_resources/port1.0/fetch/` in the ports tree.
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -124,11 +124,11 @@ For a complete list of mirrors and their list of sites, see the file [path]`mirr
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If a `master_sites` keyword has multiple values, after any mirrors are expanded the list of sites is sorted by ping response times.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The sites are then tried in sorted order until matching `${distfiles}` are found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a `+master_sites+` keyword has multiple values, after any mirrors are expanded the list of sites is sorted by ping response times.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The sites are then tried in sorted order until matching `+${distfiles}+` are found.
</span> ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `none` (but the `macports_distfiles` mirror is always implicitly appended)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+none+` (but the `+macports_distfiles+` mirror is always implicitly appended)
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,7 +147,7 @@ Here the sourceforge, gnu, and freebsd mirrors are used.
</span> master_sites        sourceforge gnu freebsd
 ----
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-When using mirror master_sites, the subdirectory `${name}` is checked on every mirror.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When using mirror master_sites, the subdirectory `+${name}+` is checked on every mirror.
</span> If the mirror subdirectory does not match ${name}, then you may specify it using after the mirror separated by a colon.
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,10 +157,10 @@ master_sites        sourceforge:widget \
</span>                     gnu:widget
 ----
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For ports that must fetch multiple download files from different locations, you must label the files with tags and match the tags to a `distfiles` keyword.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The format is ``mirror:subdirectory:tag``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For ports that must fetch multiple download files from different locations, you must label the files with tags and match the tags to a `+distfiles+` keyword.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The format is ``+mirror:subdirectory:tag+``.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In the example below, file_one.tar.gz is fetched from sourceforge mirrors in subdirectory ``${name}``; file tagtwo.tar.gz is fetched from the gnu mirrors in subdirectory sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In the example below, file_one.tar.gz is fetched from sourceforge mirrors in subdirectory ``+${name}+``; file tagtwo.tar.gz is fetched from the gnu mirrors in subdirectory sources.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -173,9 +173,9 @@ distfiles           file_one.tar.gz:tagone \
</span> ----
 
 master_sites.mirror_subdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subdirectory to append to all mirror sites for any list specified in ``${master_sites}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subdirectory to append to all mirror sites for any list specified in ``+${master_sites}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -187,7 +187,7 @@ master_sites.mirror_subdir  magic
</span> patch_sites::
 A list of sites from which a port's patchfiles may be downloaded, where applicable.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${master_sites}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${master_sites}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,9 +197,9 @@ patch_sites         ftp://ftp.patchcityrepo.com/pub/magic/patches
</span> ----
 
 patch_sites.mirror_subdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subdirectory to append to all mirror sites for any list specified in ``${patch_sites}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subdirectory to append to all mirror sites for any list specified in ``+${patch_sites}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -211,7 +211,7 @@ patch_sites.mirror_subdir   magic
</span> distname::
 The name of the distribution filename, not including the extract suffix (see below).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}-${version}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}-${version}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -224,7 +224,7 @@ distfiles::
</span> The full distribution filename, including the extract suffix.
 Used to specify non-default distribution filenames; this keyword must be specified (and tags used) when a port has multiple download files (see master_sites).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${distname}${extract.suffix}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${distname}${extract.suffix}+`
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -241,11 +241,11 @@ distfiles           file_one.tar.gz:tagone \
</span> ----
 
 dist_subdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The last path component of ``${distpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The last path component of ``+${distpath}+``.
</span> Override it to store multiple ports' distfiles in the same directory (such as multiple ports providing different versions of the same software), or if a https://trac.macports.org/wiki/PortfileRecipes#stealth-updates[stealth
 update] has occurred. 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}+`
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -265,7 +265,7 @@ Sets the path to source directory relative to workpath.
</span> It can be used if the extracted source directory has a different name then the distfile.
 Also used if the source to be built is in a subdirectory.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${distname}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${distname}+`
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -287,10 +287,10 @@ Some mirrors require special options for a resource to be properly fetched.
</span> 
 fetch.type::
 Change the fetch type.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This is only necessary if a <<reference.phases.fetch.bzr,bzr>>, <<reference.phases.fetch.cvs,cvs>>, <<reference.phases.fetch.git,git>>, <<reference.phases.fetch.hg,hg>>, or <<reference.phases.fetch.svn,svn>> checkout is being used. `standard` is used for a normal http or ftp fetch using `${distfiles}` and is used as default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is only necessary if a <<reference.phases.fetch.bzr,bzr>>, <<reference.phases.fetch.cvs,cvs>>, <<reference.phases.fetch.git,git>>, <<reference.phases.fetch.hg,hg>>, or <<reference.phases.fetch.svn,svn>> checkout is being used. `+standard+` is used for a normal http or ftp fetch using `+${distfiles}+` and is used as default.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `standard`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Values: `standard```bzr````cvs````git````hg````svn``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+standard+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Values: `+standard+```+bzr+````+cvs+````+git+````+hg+````+svn+``
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -328,7 +328,7 @@ TODO: add example
</span> fetch.use_epsv::
 Whether to use EPSV command for FTP transfers.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+yes+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -340,7 +340,7 @@ fetch.use_epsv      no
</span> fetch.ignore_sslcert::
 Whether to ignore the host SSL certificate (for HTTPS).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -355,7 +355,7 @@ fetch.ignore_sslcert    yes
</span> https://bazaar.canonical.com/en/[Bzr] may be used as an alternative method of fetching distribution files using the keywords in this section.
 However, fetching via bzr may cause non-reproducible builds, so it is strongly discouraged.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `bzr`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a bzr repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+bzr+`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a bzr repository.
</span> 
 bzr.url::
 This specifies the url from which to fetch files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -393,7 +393,7 @@ bzr.revision          2209
</span> http://www.nongnu.org/cvs/[CVS] may be used as an alternative method of fetching distribution files using the keywords in this section.
 However, fetching via CVS may cause non-reproducible builds, so it is strongly discouraged.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `cvs`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a CVS repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+cvs+`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a CVS repository.
</span> 
 cvs.root::
 Specify the url from which to fetch files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -461,7 +461,7 @@ cvs.module          Sources
</span> https://git-scm.com/[Git] may be used as an alternative method of fetching distribution files using the keywords in this section.
 However, fetching via Git may cause non-reproducible builds, so it is strongly discouraged.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `git`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a git repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+git+`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a git repository.
</span> 
 git.url::
 This specifies the url from which to fetch files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -506,7 +506,7 @@ git.branch             origin/next
</span> https://mercurial.selenic.com/[Mercurial] may be used as an alternative method of fetching distribution files using the keywords in this section.
 However, fetching via Mercurial may cause non-reproducible builds, so it is strongly discouraged.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `hg`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a Mercurial repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+hg+`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from a Mercurial repository.
</span> 
 hg.url::
 This specifies the url from which to fetch files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -552,7 +552,7 @@ hg.tag              ceb884843737
</span> https://subversion.apache.org/[Subversion] may be used as an alternative method of fetching distribution files using the keywords in this section.
 However, fetching via Subversion may cause non-reproducible builds, so it is strongly discouraged.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `svn`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from an svn repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+svn+`<<reference.phases.fetch.advanced.fetch-type,fetch.type>> is used to fetch source code from an svn repository.
</span> 
 svn.url::
 This specifies the url from which to fetch files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -605,6 +605,7 @@ The list of keywords related to the checksum phase.
</span> checksums::
 Checksum(s) of the distribution files.
 For ports with multiple distribution files, filenames must be included to associate files with their checksums.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+Each checksum entry should also indicate the file's size.
</span> +
 At least two checksum types (typically rmd160 and sha256) should be used to ensure the integrity of the distfiles.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -615,7 +616,8 @@ At least two checksum types (typically rmd160 and sha256) should be used to ensu
</span> [source]
 ----
 checksums           rmd160  0c1147242adf476f5e93f4d59b553ee3ea378b23 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  baf8a29ff721178317aac7b864c2d392b1accc02de8677dd24c18fd5717bf26e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  baf8a29ff721178317aac7b864c2d392b1accc02de8677dd24c18fd5717bf26e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1039840
</span> ----
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -624,9 +626,11 @@ checksums           rmd160  0c1147242adf476f5e93f4d59b553ee3ea378b23 \
</span> checksums           ${distname}${extract.suffix} \
                         rmd160  0c1147242adf476f5e93f4d59b553ee3ea378b23 \
                         sha256  883715307c31ae2c145db15d2404d89a837f4d03d7e6932aed21d1d1f21dad89 \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    2429530 \
</span>                     hobbit.tar.gz \
                         rmd160  82b9991f3bf0ceedbf74c188c5fa44b98b5e40c9 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  2c3afd16915e9f8eac2351673f8b599f5fd2ff9064d4dfe61f750d72bab740b3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  2c3afd16915e9f8eac2351673f8b599f5fd2ff9064d4dfe61f750d72bab740b3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    8594032
</span> ----
 
 [[reference.phases.extract]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -637,7 +641,7 @@ The list of keywords related to the extract phase.
</span> extract.asroot::
 This keyword is used to specify that the extract phase should be done as the root user.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -665,7 +669,7 @@ When invoked, it automatically sets:
</span>   extract.suffix = .7z
   extract.cmd    = 7za
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -681,7 +685,7 @@ When invoked, it automatically sets:
</span>   extract.suffix = .tar.bz2
   extract.cmd    = bzip
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -691,19 +695,19 @@ use_bzip2           yes
</span> ----
 
 use_lzip::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This keyword is for downloads that are compressed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-using the lzma algorithm.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This keyword is for downloads that are compressed using the lzma algorithm.
</span> When invoked, it automatically sets:
 
   extract.suffix    = .tar.lz
   extract.cmd       = lzip
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_lzip            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_lzip             yes
</span> ----
 
 use_lzma::
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -713,7 +717,7 @@ When invoked, it automatically sets:
</span>   extract.suffix    = .lzma
   extract.cmd       = lzma
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -722,6 +726,23 @@ When invoked, it automatically sets:
</span> use_lzma             yes
 ----
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+use_tar::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This keyword is for downloads that are uncompressed tar archives.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When invoked, it automatically sets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extract.suffix    = .tar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extract.cmd       = tar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extract.pre_args  = -xf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_tar             yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> use_zip::
 This keyword is for downloads that are zipped.
 When invoked, it automatically sets:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -731,7 +752,7 @@ When invoked, it automatically sets:
</span>   extract.pre_args  = -q
   extract.post_args = "-d ${extract.dir}"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -747,7 +768,7 @@ When invoked, it automatically sets:
</span>   extract.suffix    = .tar.xz
   extract.cmd       = xz
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -760,7 +781,7 @@ extract.mkdir::
</span> This keyword is used to specify if the directory [path]`worksrcdir` is part of the distfile or if it should be created automatically and the distfiles should be extracted there instead.
 This is useful for distfiles with a flat structure which would pollute the [path]`worksrcdir` with lots of files.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -770,10 +791,10 @@ extract.mkdir       yes
</span> ----
 
 extract.only::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-List of files to extract into ``${worksrcpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List of files to extract into ``+${worksrcpath}+``.
</span> Only use if default extract behavior is not correct for your port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${distfiles}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${distfiles}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -792,7 +813,7 @@ extract.only-delete     foo.tar.gz
</span> extract.cmd::
 Command to perform extraction.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: [cmd]``gzip``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: [cmd]``+gzip+``
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -802,9 +823,9 @@ extract.cmd         gunzip
</span> ----
 
 extract.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``extract.cmd``; additional arguments passed before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+extract.cmd+``; additional arguments passed before and after the main arguments.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${distpath}/${distfile}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${distpath}/${distfile}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -816,8 +837,8 @@ extract.args        ${distpath}/${distfile}
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``extract.pre_args``, defaults to: `-dc`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``extract.post_args``, defaults to: `"| tar -xf -"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+extract.pre_args+``, defaults to: `+-dc+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+extract.post_args+``, defaults to: `+"| tar -xf -"+`
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -835,7 +856,7 @@ The list of keywords related to the patch phase.
</span> patch.dir::
 Specify the base path for patch files.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${worksrcpath}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${worksrcpath}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -847,7 +868,7 @@ patch.dir           ${worksrcpath}/util
</span> patch.cmd::
 Specify the command to be used for patching files.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: [cmd]``patch``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: [cmd]``+patch+``
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -877,7 +898,7 @@ patchfiles-delete   patch-destdir-variable-fix.diff
</span> ----
 
 patch.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``patch.cmd``; optional argument modifiers pass arguments before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+patch.cmd+``; optional argument modifiers pass arguments before and after the main arguments.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -891,8 +912,8 @@ patch.args          ???
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``patch.pre_args``, defaults to: `-p0`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``patch.post_args``, defaults to: none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+patch.pre_args+``, defaults to: `+-p0+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+patch.post_args+``, defaults to: none
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -908,13 +929,13 @@ patch.post_args     ???
</span> The list of keywords related to the configure phase.
 
 MacPorts base sets some important default configure options, so should use the -append version of most configure keywords so you don't overwrite them.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, MacPorts base sets default `configure.cflags` so you should always use `configure.cflags-append` to set additional CFLAGS in Portfiles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, MacPorts base sets default `+configure.cflags+` so you should always use `+configure.cflags-append+` to set additional CFLAGS in Portfiles.
</span> 
 use_configure::
 Sets if the configure phase should be run.
 Can be used if the port has no [path]`./configure` script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+yes+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -926,7 +947,7 @@ use_configure    no
</span> configure.cmd::
 Selects the command to be run in the default configure phase.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `$$.$$/configure`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+$$.$$/configure+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -939,7 +960,7 @@ configure.env::
</span> Set environment variables for configure; list modifiers add and delete items from a previous Portfile configure.env keyword, or a default set by MacPorts base.
 If available, it is encouraged to use the predefined options (like <<reference.phases.configure.cflags,configure.cflags>>) instead of modifying configure.env directly.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `CFLAGS=-I${prefix}/include LDFLAGS=-L${prefix}/lib`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+CFLAGS=-I${prefix}/include LDFLAGS=-L${prefix}/lib+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -958,7 +979,7 @@ configure.env-delete    TCLROOT=${prefix}
</span> configure.optflags::
 Set optimization compiler flags; list modifiers add or delete items from a previous Portfile configure.optflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `-Os`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+-Os+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -977,7 +998,7 @@ configure.optflags-delete     -Os
</span> configure.cflags::
 Set CFLAGS compiler flags; list modifiers add or delete items from a previous Portfile configure.cflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -996,7 +1017,7 @@ configure.cflags-delete     -O2
</span> configure.ldflags::
 Set LDFLAGS compiler flags; list modifiers add or delete items from a previous Portfile configure.ldflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `-L${prefix}/lib -Wl,-headerpad_max_install_names`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+-L${prefix}/lib -Wl,-headerpad_max_install_names+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1015,7 +1036,7 @@ configure.ldflags-delete    -L${prefix}/lib/db44
</span> configure.cppflags::
 Set CPPFLAGS to be passed to the C processor; list modifiers add or delete items from a previous Portfile configure.cppflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `-I${prefix}/include`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+-I${prefix}/include+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1034,7 +1055,7 @@ configure.cppflags-delete   -I${prefix}/lib/db44
</span> configure.cxxflags::
 Set CXXFLAGS to be passed to the C++ processor; list modifiers add or delete items from a previous Portfile configure.cxxflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1046,7 +1067,7 @@ TODO: add example
</span> configure.objcflags::
 TODO: add description
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1082,7 +1103,7 @@ TODO: add example
</span> configure.fflags::
 Set FFLAGS to be passed to the Fortran compiler; list modifiers add or delete items from a previous Portfile configure.fflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1094,7 +1115,7 @@ configure.fflags    -Os
</span> configure.fcflags::
 Set FCFLAGS to be passed to the Fortran compiler; list modifiers add or delete items from a previous Portfile configure.fcflags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1106,7 +1127,7 @@ configure.fcflags   -Os
</span> configure.f90flags::
 Set F90FLAGS to be passed to the Fortran 90 compiler; list modifiers add or delete items from a previous Portfile configure.f90flags keyword or the default set by MacPorts base.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${configure.optflags}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${configure.optflags}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1118,7 +1139,7 @@ configure.f90flags  -Os
</span> configure.cc::
 C compiler for the CC environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1130,7 +1151,7 @@ configure.cc        ${prefix}/bin/gcc-mp-4.2
</span> configure.cpp::
 C preprocessor for the CPP environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1142,7 +1163,7 @@ configure.cpp       /usr/bin/cpp-3.3
</span> configure.cxx::
 C++ compiler for the CXX environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1154,7 +1175,7 @@ configure.cxx       /usr/bin/g++-4.0
</span> configure.objc::
 Objective-C compiler for the OBJC environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1166,7 +1187,7 @@ configure.objc      /usr/bin/gcc-4.0
</span> configure.fc::
 Fortran compiler for the FC environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1178,7 +1199,7 @@ configure.fc        ${prefix}/bin/gfortran-mp-4.2
</span> configure.f77::
 Fortran 77 compiler for the F77 environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1190,7 +1211,7 @@ configure.f77       ${prefix}/bin/gfortran-mp-4.2
</span> configure.f90::
 Fortran 90 compiler for the F90 environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1202,7 +1223,7 @@ configure.f90       ${prefix}/bin/gfortran-mp-4.2
</span> configure.javac::
 Java compiler for the JAVAC environment variable when invoking the configure script.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1215,15 +1236,15 @@ configure.compiler::
</span> Select a compiler suite to fill the compiler environment variables.
 All variables/tools a compiler suite can provide are set.
 Manually set variables are not overwritten.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Keep in mind that not all compiler suites might be available on your platform: `gcc-3.3` is available on Mac OS X 10.3 and 10.4 PowerPC, `gcc-4.0` is available on 10.4 and 10.5, `gcc-4.2` and `llvm-gcc-4.2` are available on 10.5 and 10.6, and `clang` is available on 10.6 and later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Keep in mind that not all compiler suites might be available on your platform: `+gcc-3.3+` is available on Mac OS X 10.3 and 10.4 PowerPC, `+gcc-4.0+` is available on 10.4 and 10.5, `+gcc-4.2+` and `+llvm-gcc-4.2+` are available on 10.5 and 10.6, and `+clang+` is available on 10.6 and later.
</span> +
 Only use it if a port really needs a different compiler.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `apple-gcc-4.2` on Mac OS X 10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `gcc-4.2` with Xcode 3.x on Mac OS X 10.5 and 10.6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `llvm-gcc-4.2` with Xcode 4.0 through 4.2 on Mac OS X 10.6 and 10.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `clang` with Xcode 4.3 and later on OS X 10.7 and later
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Values: `gcc-3.3```gcc-4.0````gcc-4.2````llvm-gcc-4.2````clang````macports-clang-3.3````macports-clang-3.4````macports-clang-3.7````macports-clang-3.8````macports-clang-3.9````macports-clang-4.0````macports-clang-5.0````macports-clang-6.0````apple-gcc-4.0````apple-gcc-4.2````macports-gcc-4.3````macports-gcc-4.4````macports-gcc-4.5````macports-gcc-4.6````macports-gcc-4.7````macports-gcc-4.8````macports-gcc-4.9````macports-gcc-5````macports-gcc-6````macports-gcc-7````macports-gcc-8``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+apple-gcc-4.2+` on Mac OS X 10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+gcc-4.2+` with Xcode 3.x on Mac OS X 10.5 and 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+llvm-gcc-4.2+` with Xcode 4.0 through 4.2 on Mac OS X 10.6 and 10.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+clang+` with Xcode 4.3 and later on OS X 10.7 and later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Values: `+gcc-3.3+```+gcc-4.0+````+gcc-4.2+````+llvm-gcc-4.2+````+clang+````+macports-clang-3.3+````+macports-clang-3.4+````+macports-clang-3.7+````+macports-clang-3.8+````+macports-clang-3.9+````+macports-clang-4.0+````+macports-clang-5.0+````+macports-clang-6.0+````+apple-gcc-4.0+````+apple-gcc-4.2+````+macports-gcc-4.3+````+macports-gcc-4.4+````+macports-gcc-4.5+````+macports-gcc-4.6+````+macports-gcc-4.7+````+macports-gcc-4.8+````+macports-gcc-4.9+````+macports-gcc-5+````+macports- [...]
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1235,7 +1256,7 @@ configure.compiler  macports-gcc-4.5
</span> configure.perl::
 Set PERL flag for selecting a Perl interpreter.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1247,7 +1268,7 @@ configure.perl      ${prefix}/bin/perl5.26
</span> configure.python::
 Set PYTHON flag for selecting a Python interpreter.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1259,7 +1280,7 @@ configure.python    ${prefix}/bin/python2.7
</span> configure.ruby::
 Set RUBY flag for selecting a Ruby interpreter.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1269,7 +1290,7 @@ configure.ruby      ${prefix}/bin/ruby
</span> ----
 
 configure.install::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Set `INSTALL` flag for selecting an install tool; used for copying files and creating directories.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Set `+INSTALL+` flag for selecting an install tool; used for copying files and creating directories.
</span> 
 * Default: [path]`/usr/bin/install`
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1283,7 +1304,7 @@ configure.install   ${prefix}/bin/ginstall
</span> configure.awk::
 Set AWK flag for selecting an awk executable.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1295,7 +1316,7 @@ configure.awk       ${prefix}/bin/gawk
</span> configure.bison::
 Set BISON flag for selecting a bison executable, a parser generator.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1307,7 +1328,7 @@ configure.bison     /usr/bin/bison
</span> configure.pkg_config::
 Set PKG_CONFIG flag for helping find pkg_config, a tool for retrieving information about installed libraries.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `???`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+???+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1319,7 +1340,7 @@ configure.pkg_config    ${prefix}/bin/pkg-config
</span> configure.pkg_config_path::
 Set PKG_CONFIG_PATH flag for telling pkg_config where to search for information about installed libraries.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1329,7 +1350,7 @@ configure.pkg_config_path   ${python.prefix}/lib/pkgconfig
</span> ----
 
 configure.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``configure.cmd``; optional argument modifiers pass arguments before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+configure.cmd+``; optional argument modifiers pass arguments before and after the main arguments.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1343,8 +1364,8 @@ configure.args      --bindir=${prefix}/bin
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``configure.pre_args``, defaults to: `--prefix=${prefix}`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``configure.post_args``, defaults to: none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+configure.pre_args+``, defaults to: `+--prefix=${prefix}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+configure.post_args+``, defaults to: none
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1367,7 +1388,7 @@ There is a default universal variant made available to all ports by MacPorts bas
</span> configure.universal_args::
 Arguments used in the configure script to build the port universal.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `--disable-dependency-tracking`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+--disable-dependency-tracking+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1378,15 +1399,15 @@ TODO: add example
</span> 
 configure.universal_cflags::
 Additional flags to put in the CFLAGS environment variable when invoking the configure script.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default value is based on ``${configure.universal_archs}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default value is based on ``+${configure.universal_archs}+``.
</span> 
 * Default: 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(PowerPC Tiger) `-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(PowerPC Tiger) `+-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Intel Tiger / Leopard) `-arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Intel Tiger / Leopard) `+-arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Snow Leopard and later) `-arch x86_64 -arch i386`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Snow Leopard and later) `+-arch x86_64 -arch i386+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1400,7 +1421,7 @@ Additional flags to put in the CPPFLAGS environment variable when invoking the c
</span> 
 * Default: 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(PowerPC Tiger) `-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(PowerPC Tiger) `+-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk+`
</span> +
 (others) none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1413,15 +1434,15 @@ TODO: add example
</span> 
 configure.universal_cxxflags::
 Additional flags to put in the CXXFLAGS environment variable when invoking the configure script.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default value is based on ``${configure.universal_archs}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default value is based on ``+${configure.universal_archs}+``.
</span> 
 * Default: 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(PowerPC Tiger) `-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(PowerPC Tiger) `+-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Intel Tiger / Leopard) `-arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Intel Tiger / Leopard) `+-arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Snow Leopard and later) `-arch x86_64 -arch i386`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Snow Leopard and later) `+-arch x86_64 -arch i386+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1435,11 +1456,11 @@ Additional flags to put in the LDFLAGS environment variable when invoking the co
</span> 
 * Default: 
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(PowerPC Tiger) `-Wl,-syslibroot,${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(PowerPC Tiger) `+-Wl,-syslibroot,${developer_dir}/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Intel Tiger / Leopard) `-arch i386 -arch ppc`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Intel Tiger / Leopard) `+-arch i386 -arch ppc+`
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-(Snow Leopard and later) `-arch x86_64 -arch i386`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(Snow Leopard and later) `+-arch x86_64 -arch i386+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1456,7 +1477,7 @@ The list of configure keywords available for ports that need automake and/or aut
</span> use_autoreconf::
 Whether or not to use autoreconf
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1465,10 +1486,34 @@ Whether or not to use autoreconf
</span> use_autoreconf      yes
 ----
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.args::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Arguments to pass to autoreconf.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+--install --verbose+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.args       --install --verbose --force
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.dir::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Directory in which to run ``+${autoreconf.cmd}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${worksrcpath}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.dir        ./src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> use_automake::
 Whether or not to use automake.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1502,9 +1547,9 @@ automake.args       --foreign
</span> ----
 
 automake.dir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Directory in which to run ``${automake.cmd}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Directory in which to run ``+${automake.cmd}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${worksrcpath}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${worksrcpath}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1516,7 +1561,7 @@ automake.dir        ./src
</span> use_autoconf::
 Whether or not to use autoconf.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1550,9 +1595,9 @@ autoconf.args       "-l src/aclocaldir"
</span> ----
 
 autoconf.dir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Directory in which to run ``${autoconf.cmd}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Directory in which to run ``+${autoconf.cmd}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${worksrcpath}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${worksrcpath}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1567,10 +1612,10 @@ autoconf.dir        src
</span> The list of keywords related to the build phase.
 
 build.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Make command to run in ``${worksrcdir}``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Only use it if you can't use ``build.type``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Make command to run in ``+${worksrcdir}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only use it if you can't use ``+build.type+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: [cmd]``make``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: [cmd]``+make+``
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1580,11 +1625,11 @@ build.cmd           scons
</span> ----
 
 build.type::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Defines which build software is required and sets `${build.cmd}` accordingly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Defines which build software is required and sets `+${build.cmd}+` accordingly.
</span> The available options are BSD Make, GNU Make, and Xcode. 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `default` (the default Make on the current platform) 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* Values: `default```bsd````gnu````xcode``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+default+` (the default Make on the current platform) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Values: `+default+```+bsd+````+gnu+````+xcode+``
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1594,7 +1639,7 @@ build.type          bsd
</span> ----
 
 build.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``${build.cmd}``; optional argument modifiers pass arguments before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+${build.cmd}+``; optional argument modifiers pass arguments before and after the main arguments.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1608,8 +1653,8 @@ build.args          -DNOWARN
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``build.pre_args``, defaults to: `${build.target}`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``build.post_args``, defaults to: none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+build.pre_args+``, defaults to: `+${build.target}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+build.post_args+``, defaults to: none
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1620,9 +1665,9 @@ build.post_args     CFLAGS_SYS="-DUSE_FREETYPE -DPREFER_FREETYPE"
</span> ----
 
 build.target::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Build target to pass to ``${build.cmd}``; list modifiers add or delete items from a previous Portfile build.target keyword or the default set by MacPorts base.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Build target to pass to ``+${build.cmd}+``; list modifiers add or delete items from a previous Portfile build.target keyword or the default set by MacPorts base.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `all`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+all+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1645,9 +1690,9 @@ Set environment variables for build; list modifiers add and delete items from a
</span> 
 use_parallel_build::
 This keyword is for specifying whether or not it is safe for a port to use multiple CPUs or multiple cores in parallel during its build phase.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If `use_parallel_build` is not set to "`no`" in a given port, the option `-j${build.jobs}` is passed to `${build.cmd}` (if `${build.cmd}` is [cmd]``make`` or [cmd]``scons``).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If `+use_parallel_build+` is not set to "`no`" in a given port, the option `+-j${build.jobs}+` is passed to `+${build.cmd}+` (if `+${build.cmd}+` is [cmd]``+make+`` or [cmd]``+scons+``).
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+yes+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1658,9 +1703,9 @@ use_parallel_build  no
</span> 
 build.jobs::
 The number of simultaneous jobs to run when parallel build is enabled.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default value is based on the variable `buildmakejobs` in [path]`macports.conf`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default value is based on the variable `+buildmakejobs+` in [path]`macports.conf`.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: If `buildmakejobs` is 0, the number of CPU cores in the machine, or the number of GB of physical memory plus one, whichever is less. Otherwise,  the actual value of ``${buildmakejobs}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: If `+buildmakejobs+` is 0, the number of CPU cores in the machine, or the number of GB of physical memory plus one, whichever is less. Otherwise,  the actual value of ``+${buildmakejobs}+``.
</span> 
 [[reference.phases.test]]
 == Test Phase Keywords
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1670,7 +1715,7 @@ The list of keywords related to the test phase.
</span> test.run::
 Enable running test suites bundled with a port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1680,9 +1725,9 @@ test.run            yes
</span> ----
 
 test.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Test command to run relative to ``${worksrcdir}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Test command to run relative to ``+${worksrcdir}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${build.cmd}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${build.cmd}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1692,9 +1737,9 @@ test.cmd            checks.sh
</span> ----
 
 test.target::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Test target to pass to ``${test.cmd}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Test target to pass to ``+${test.cmd}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `test`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+test+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1704,7 +1749,7 @@ test.target         checks
</span> ----
 
 test.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``test.cmd``; optional argument modifiers pass arguments before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+test.cmd+``; optional argument modifiers pass arguments before and after the main arguments.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1718,13 +1763,13 @@ test.args    -f Makefile.test
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``test.pre_args``, defaults to: `${test.target}`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``test.post_args``, defaults to: none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+test.pre_args+``, defaults to: `+${test.target}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+test.post_args+``, defaults to: none
</span> 
 test.env::
 Set environment variables for test; list modifiers add and delete items from a previous Portfile test.env keyword, or a default set by MacPorts base.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Often `DYLD_LIBRARY_PATH` is set here to support testing dynamically linked libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Often `+DYLD_LIBRARY_PATH+` is set here to support testing dynamically linked libraries.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1741,9 +1786,9 @@ test.env       DYLD_LIBRARY_PATH=${worksrcpath}/src/.libs
</span> The list of keywords related to the destroot phase.
 
 destroot.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Install command to run relative to ``${worksrcdir}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Install command to run relative to ``+${worksrcdir}+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${build.cmd}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${build.cmd}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1753,7 +1798,7 @@ destroot.cmd        scons
</span> ----
 
 destroot.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Main arguments to ``${destroot.cmd}``; optional argument modifiers pass arguments before and after the main arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Main arguments to ``+${destroot.cmd}+``; optional argument modifiers pass arguments before and after the main arguments.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1767,8 +1812,8 @@ destroot.args       BINDIR=${prefix}/bin
</span> +
 The following argument modifiers are available:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``destroot.pre_args``, defaults to: `${destroot.target}`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* ``destroot.post_args``, defaults to: `${destroot.destdir}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+destroot.pre_args+``, defaults to: `+${destroot.target}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* ``+destroot.post_args+``, defaults to: `+${destroot.destdir}+`
</span> * Examples:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1779,9 +1824,9 @@ destroot.post_args  INSTDIR=${destroot}${prefix}
</span> ----
 
 destroot.target::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Install target to pass to ``${destroot.cmd}``; list modifiers add or delete items from a previous Portfile destroot.target keyword or the default set by MacPorts base.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Install target to pass to ``+${destroot.cmd}+``; list modifiers add or delete items from a previous Portfile destroot.target keyword or the default set by MacPorts base.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `install`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+install+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1798,9 +1843,9 @@ destroot.target-delete  install-commandmode
</span> ----
 
 destroot.destdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Arguments passed to `${destroot.cmd}` via `${destroot.post_args}` to install correctly into the destroot.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Arguments passed to `+${destroot.cmd}+` via `+${destroot.post_args}+` to install correctly into the destroot.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `DESTDIR=${destroot}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+DESTDIR=${destroot}+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1820,7 +1865,7 @@ If not, you may need to set this variable, or even patch the application's Makef
</span> destroot.umask::
 Umask to use during destroot.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `022`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+022+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1844,12 +1889,12 @@ destroot.keepdirs   ${destroot}${prefix}/var/run \
</span> ----
 
 destroot.violate_mtree::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts tests for compliance to the common directory structure in ``${prefix}``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If a port is not compliant with the standard, set it to ``yes``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts tests for compliance to the common directory structure in ``+${prefix}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a port is not compliant with the standard, set it to ``+yes+``.
</span> +
 You can find the macports standard in <<internals.hierarchy,MacPorts File Hierarchy>> or in the porthier(7) man page.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If `destroot.violate_mtree` is set to ``yes``, the following warning is issued during the installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If `+destroot.violate_mtree+` is set to ``+yes+``, the following warning is issued during the installation.
</span> +
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1857,11 +1902,11 @@ If `destroot.violate_mtree` is set to ``yes``, the following warning is issued d
</span> Warning: portname requests to install files outside the common directory structure!
 ----
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This means that the port installed files outside of their normal locations in ``${prefix}``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-These could be files totally outside of ``${prefix}``, which could cause problems on your computer, or files inside of `${prefix}` that are not in a standard location.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Use `port contents ``portname``` to see the location for all files that were installed by a given port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This means that the port installed files outside of their normal locations in ``+${prefix}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+These could be files totally outside of ``+${prefix}+``, which could cause problems on your computer, or files inside of `+${prefix}+` that are not in a standard location.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Use `+port contents ``+portname+``+` to see the location for all files that were installed by a given port.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-startupitem.adoc b/guide/adoc/portfile-startupitem.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 30beab7..68a6b1d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-startupitem.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-startupitem.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,14 +3,17 @@
</span> 
 A StartupItem is a MacPorts facility to run "`daemons,`" a Unix term for programs that run continuously in the background, rather than under the direct control of a user; for example, mail servers, network listeners, etc.
 Ports that use StartupItem keywords create scripts for https://developer.apple.com/macosx/launchd.html[launchd], which is the Apple facility introduced with Mac OS X 10.4 to replace xinetd for starting and managing daemons.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To support [cmd]``launchd``, a program named [cmd]``daemondo`` is provided by MacPorts base that serves as an adapter between [cmd]``launchd`` and daemons ("`executable`" StartupItems) or traditional Unix startup scripts that start daemons ("`script`" StartupItems).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To support [cmd]``+launchd+``, a program named [cmd]``+daemondo+`` is provided by MacPorts base that serves as an adapter between [cmd]``+launchd+`` and daemons ("`executable`" StartupItems) or traditional Unix startup scripts that start daemons ("`script`" StartupItems).
</span> 
 There are three categories of StartupItem keywords.
 Those that trigger StartupItem creation and logging, those that specify attributes of "`executable`" StartupItems, and those that specify attributes of "`script`" StartupItems.
 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The variable `startupitem_type` in [path]`${prefix}/etc/macports/macports.conf` may be set to `none` to globally override all StartupItem keywords found in Portfiles; this prevents StartupItems from being created.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The variable `+startupitem_type+` in [path]`${prefix}/etc/macports/macports.conf` may be set to `+none+` to override the default value of the `+startupitem.type+` option in Portfiles; this prevents StartupItems from being created.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Additionally, the `+startupitem_install+` variable can be set to `+no+` in [path]`macports.conf` to override the default value of the `+startupitem.install+` option, which will prevent links from being created under [path]`/Library`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is useful for MacPorts installations that are not used with root privileges.
</span> ====
 
 [[reference.startupitems.attributes]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,10 +21,22 @@ The variable `startupitem_type` in [path]`${prefix}/etc/macports/macports.conf`
</span> 
 The keywords in this section may be used with either "`executable`" or "`script`" StartupItems (see below).
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.autostart::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Whether to automatically load the StartupItem after activating the port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.autostart      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> startupitem.create::
 Trigger the creation of a StartupItem.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,17 +45,42 @@ Trigger the creation of a StartupItem.
</span> startupitem.create      yes
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-startupitem.name::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Sets the name for the StartupItem.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Defaults to the name of the port, so this keyword is usually unnecessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.debug::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable additional debug logging.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${name}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
 [source]
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-startupitem.name        dhcpd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.debug      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.install::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Whether to install a link to the StartupItem in the appropriate subdirectory of [path]`/Library` (see ``+startupitem.location+``) so that it can be launched automatically after rebooting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+yes+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.install        no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.location::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Chooses the subdirectory in which to install the StartupItem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Also affects how it will be loaded: LaunchDaemons must be loaded as root, and only one instance will run for the whole system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+LaunchAgents are loaded as a normal user, and one instance per user can run.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: [path]`LaunchDaemons`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.location        LaunchAgents
</span> ----
 
 startupitem.logfile::
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,7 +100,7 @@ startupitem.logevents::
</span> Control whether or not to log events to the log file.
 If logevents is set, events with timestamps are logged to the logfile.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,10 +109,23 @@ If logevents is set, events with timestamps are logged to the logfile.
</span> startupitem.logevents   yes
 ----
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.name::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Sets the name for the StartupItem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Defaults to the name of the port, so this keyword is usually unnecessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${name}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.name        dhcpd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> startupitem.netchange::
 Cause the daemon to be restarted when a change in network state is detected.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `no`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+no+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,16 +134,50 @@ Cause the daemon to be restarted when a change in network state is detected.
</span> startupitem.netchange   yes
 ----
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.type::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The type of the StartupItem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Supported values are `+launchd+` for a macOS [cmd]``+launchd+`` .plist, or `+none+` for no StartupItem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+launchd+` if on macOS and `+${startupitem.create}+` is true, `+none+` otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitem.type   launchd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitems::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Used when a port needs to install more than one StartupItem, this option consists of a list where alternating elements represent keys and values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Each key corresponds to one of the `+startupitem.*+` options, and the following value is associated with it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Each StartupItem defined in the list must specify at least a name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Each other key/value pair is associated with the StartupItem named most recently in the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Any keys that are not defined for a given StartupItem will use the value of the corresponding `+startupitem.*+` option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+startupitems        name        myport-system \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    location    LaunchDaemons \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    executable  ${prefix}/sbin/myportd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    name        myport-session \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    location    LaunchAgents \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    executable  ${prefix}/bin/myport-agent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> [[reference.startupitems.executable]]
 == Executable StartupItems
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Daemons run continuously, so monitoring the health of daemon processes and restarting them if they die is an important StartupItems' feature. "`Executable`" StartupItems are preferred over "`script`" StartupItems because [cmd]``daemondo`` launches the daemon __directly__, rather than _indirectly_ via a script, and therefore it automatically knows how to monitor a daemon process and restart it if it dies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Daemons run continuously, so monitoring the health of daemon processes and restarting them if they die is an important StartupItems' feature. "`Executable`" StartupItems are preferred over "`script`" StartupItems because [cmd]``+daemondo+`` launches the daemon __directly__, rather than _indirectly_ via a script, and therefore it automatically knows how to monitor a daemon process and restart it if it dies.
</span> Daemons used with "`executable`" StartupItems may be programs or scripts (shell, perl, python, etc.) as long as the script _itself_ is the daemon, rather than merely what launches the daemon.
 In the latter case "`script`" StartupItems are to be used.
 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Since "`script`" and "`executable`" are mutually exclusive StartupItem types, the `startupitem.executable` keyword may not be used in a Portfile that uses any keywords listed in the <<reference.startupitems.script,Script StartupItems section>>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since "`script`" and "`executable`" are mutually exclusive StartupItem types, the `+startupitem.executable+` keyword may not be used in a Portfile that uses any keywords listed in the <<reference.startupitems.script,Script StartupItems section>>.
</span> ====
 
 startupitem.executable::
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -102,7 +189,7 @@ It may have multiple arguments, but they must be appropriate for a call to exec;
</span> [NOTE]
 ====
 Some daemons "`daemonize`" by detaching themselves from the controlling tty before sending themselves to the background, thus making themselves a child of the original process.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-A daemon to be started with `startupitem.executable` must not be allowed to do this or daemondo will think the process has died and start multiple instances.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A daemon to be started with `+startupitem.executable+` must not be allowed to do this or daemondo will think the process has died and start multiple instances.
</span> Often daemons have a command switch to run in the foreground, and this method should be used for daemons that detach.
 ====
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -148,13 +235,13 @@ generates a .plist file with these tags:
</span> [[reference.startupitems.script]]
 == Script StartupItems
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-StartupItems of type "`script`" create a wrapper during port installation for [cmd]``daemondo`` that will be used to launch a daemon startup script present in an application's source distribution (MacPorts does not create daemon startup scripts) for daemons that require a script.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+StartupItems of type "`script`" create a wrapper during port installation for [cmd]``+daemondo+`` that will be used to launch a daemon startup script present in an application's source distribution (MacPorts does not create daemon startup scripts) for daemons that require a script.
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-"`Executable`" StartupItems are the preferred type since "`script`" StartupItems launch daemons __indirectly__, and this requires that port authors use the `startupitem.pidfile` keyword so that [cmd]``daemondo`` can check this pid file to see is a daemon process has died and restart it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"`Executable`" StartupItems are the preferred type since "`script`" StartupItems launch daemons __indirectly__, and this requires that port authors use the `+startupitem.pidfile+` keyword so that [cmd]``+daemondo+`` can check this pid file to see is a daemon process has died and restart it.
</span> Any time a script (or an executable) itself serves as a daemon, use the "`executable`" StartupItem type so daemondo will launch it directly and track its health automatically.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Additionally, since "`script`" and "`executable`" are mutually exclusive StartupItem types, the `startupitem.executable` keyword may not be used in a Portfile that uses "`script`" StartupItem keywords.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Additionally, since "`script`" and "`executable`" are mutually exclusive StartupItem types, the `+startupitem.executable+` keyword may not be used in a Portfile that uses "`script`" StartupItem keywords.
</span> ====
 
 A typical snippet of a startup script that may be used with a "`script`" StartupItem is shown below.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -174,7 +261,7 @@ case "$1" in
</span> 
 startupitem.start::
 Specify a shell script to start, stop, and restart the daemon.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In the absence of ``startupitem.restart``, the daemon will be restarted by taking the stop action, followed by the start action.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In the absence of ``+startupitem.restart+``, the daemon will be restarted by taking the stop action, followed by the start action.
</span> 
 * Default: none
 * Examples:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -194,7 +281,7 @@ startupitem.restart     "${prefix}/share/mysql/mysql.server restart"
</span> Wrap the stop, start, and restart values in quotes so they will be placed in the wrapper tagged as a single element.
 ====
 startupitem.init::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Shell code that will be executed prior to any of the options ``startupitem.start``, `startupitem.stop` and ``startupitem.restart``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Shell code that will be executed prior to any of the options ``+startupitem.start+``, `+startupitem.stop+` and ``+startupitem.restart+``.
</span> 
 * Default: none
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -206,21 +293,21 @@ startupitem.init        BIN=${prefix}/sbin/bacula-fd
</span> ----
 
 startupitem.pidfile::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This keyword must be defined properly for [cmd]``daemondo`` to be able to monitor daemons launched via "`script`" StartupItems and restart them if they die.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This keyword must be defined properly for [cmd]``+daemondo+`` to be able to monitor daemons launched via "`script`" StartupItems and restart them if they die.
</span> It specifies two things: a process id (PID) file handling method, and a pidfile name and path.
 
 * {empty}
 +
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `none
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-${prefix}/var/run/${name}.pid`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+${prefix}/var/run/${name}.pid+`
</span> +
 +
 Default: [none] | [[path]`${prefix}/var/run/${name}.pid`]
 * {empty}
 +
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Values [none auto manual clean] [``/path/to/pidfile``]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Values [none auto manual clean] [``+/path/to/pidfile+``]
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -233,24 +320,24 @@ startupitem.pidfile     auto ${prefix}/var/run/${name}.pidfile
</span> +
 PID file handling options:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* `none` - daemondo will not create or track a PID file, so it won't know when a daemon dies.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* `auto` - The started process is expected to create a PID file that contains the PID of the running daemon; daemondo then reads the PID from the file and tracks the process. The started process must delete the PID file if this is necessary.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* `clean` - The started process is expected to create a PID file that contains the PID of the running daemon; daemondo then reads the PID from the file and tracks the process, and deletes the PID file if it detects the daemon has died.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* `manual` - This option should only be used if an "`executable`" StartupItem could be used (daemondo launches a daemon directly) _and_ a port author wants a PID file written for some special use. A PID file is not needed to detect process death for daemons launched directly by daemondo. As with executable StartupItems, daemondo remembers the PID of the launched process and tracks it automatically.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* `+none+` - daemondo will not create or track a PID file, so it won't know when a daemon dies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* `+auto+` - The started process is expected to create a PID file that contains the PID of the running daemon; daemondo then reads the PID from the file and tracks the process. The started process must delete the PID file if this is necessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* `+clean+` - The started process is expected to create a PID file that contains the PID of the running daemon; daemondo then reads the PID from the file and tracks the process, and deletes the PID file if it detects the daemon has died.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* `+manual+` - This option should only be used if an "`executable`" StartupItem could be used (daemondo launches a daemon directly) _and_ a port author wants a PID file written for some special use. A PID file is not needed to detect process death for daemons launched directly by daemondo. As with executable StartupItems, daemondo remembers the PID of the launched process and tracks it automatically.
</span> 
 [[reference.startupitems.launchd]]
 == Loading / Unloading StartupItems into launchd
 
 A port with a StartupItem places a link to a .plist file for the port's daemon within [path]`/Library/LaunchDaemons/`.
 A .plist file is an XML file; MacPorts installs .plist files tagged as "`disabled`" for the sake of security.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You may enable a startup script (tag the.plist file as "`enabled`") and load it into [cmd]``launchd`` with a single command as shown.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You may enable a startup script (tag the.plist file as "`enabled`") and load it into [cmd]``+launchd+`` with a single command as shown.
</span> 
 [source]
 ----
 %% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You may stop a running startup script, disable it (tag the.plist file as "`disabled`"), and unload it from [cmd]``launchd`` with a single command as shown.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You may stop a running startup script, disable it (tag the.plist file as "`disabled`"), and unload it from [cmd]``+launchd+`` with a single command as shown.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -260,7 +347,7 @@ You may stop a running startup script, disable it (tag the.plist file as "`disab
</span> [[reference.startupitems.internals]]
 == StartupItem Internals
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-During port installation a MacPorts StartupItem creates a .plist file in [path]`${prefix}/etc/LaunchDaemons/`, and places a symbolic link to the .plist file within [path]`/Library/LaunchDaemons/`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+During port installation a MacPorts StartupItem creates a .plist file in [path]`${prefix}/etc/LaunchDaemons/`, and places a symbolic link to the .plist file within [path]`/Library/LaunchDaemons/` if `+${startupitem.install}+` is true.
</span> 
 For example, the StartupItem for the mysql5 port is [path]`org.macports.mysql5.plist`, and it is linked as shown.
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-tcl.adoc b/guide/adoc/portfile-tcl.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 7965a00..8ff896e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-tcl.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-tcl.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,9 +6,9 @@ However, few authors will use arbitrary Tcl code; the vast majority will use a s
</span> The list below is a list of useful Tcl commands for Portfile development and Tcl extensions provided by MacPorts base.
 
 file::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The standard Tcl [cmd]``file`` command can be used for a number of operations on files, such as moving, renaming, deleting, or creating directories, among others.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The standard Tcl [cmd]``+file+`` command can be used for a number of operations on files, such as moving, renaming, deleting, or creating directories, among others.
</span> For a complete list, consult the https://www.tcl.tk/man/tcl/TclCmd/file.htm[Tcl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-reference manual for the file command], or the Tcl file manpage in the `n` section of manpages on your machine using [cmd]``man n file``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+reference manual for the file command], or the Tcl file manpage in the `+n+` section of manpages on your machine using [cmd]``+man n file+``
</span> 
 file copy::
 Copy a file.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,22 +17,22 @@ file rename::
</span> Rename a file.
 
 file delete [-force]::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Remove a file or (with ``-force``) a directory and its contents.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Remove a file or (with ``+-force+``) a directory and its contents.
</span> 
 file mkdir::
 Create a directory.
 macros::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For the above operations provided by Tcl's [cmd]``file`` command, MacPorts provides the following shorthands.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For the above operations provided by Tcl's [cmd]``+file+`` command, MacPorts provides the following shorthands.
</span> These should be used in preference to the Tcl commands above, as they may work around certain bugs.
 
 copy::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Shorthand for ``file copy``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Shorthand for ``+file copy+``.
</span> 
 move::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Similar to `file rename` but correctly handles renames that only change the case of a file on a case-insensitive filesystem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Similar to `+file rename+` but correctly handles renames that only change the case of a file on a case-insensitive filesystem.
</span> 
 delete::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Shorthand for ``file delete -force``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Shorthand for ``+file delete -force+``.
</span> 
 touch::
 Mimics the BSD touch command.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,24 +42,24 @@ Mimics the BSD ln command.
</span> xinstall::
 xinstall copies files and creates directories; it is intended to be compatible with install(1).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-xinstall [-o ``owner``] [-g ``group``] [-m ``mode``] [``file1 file2 ...``] `directory`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+xinstall [-o ``+owner+``] [-g ``+group+``] [-m ``+mode+``] [``+file1 file2 ...+``] `+directory+`::
</span> Install the specified file(s) to a destination directory.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-xinstall [-o ``owner``] [-g ``group``] [-m ``mode``] [-W ``dir``] [``file1 file2 ...``] `directory`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Change to `dir` and install file(s) to a destination directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+xinstall [-o ``+owner+``] [-g ``+group+``] [-m ``+mode+``] [-W ``+dir+``] [``+file1 file2 ...+``] `+directory+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Change to `+dir+` and install file(s) to a destination directory.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-xinstall [-o ``owner``] [-g ``group``] [-m ``mode``] {*}[glob ``pattern``] `directory`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+xinstall [-o ``+owner+``] [-g ``+group+``] [-m ``+mode+``] {*}[glob ``+pattern+``] `+directory+`::
</span> Install the file(s) matching the glob pattern to a destination directory.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Note the use of the `{*}` operator to convert the list returned by [cmd]``glob`` into separate arguments to [cmd]``xinstall``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note the use of the `+{*}+` operator to convert the list returned by [cmd]``+glob+`` into separate arguments to [cmd]``+xinstall+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-xinstall -d [-o ``owner``] [-g ``group``] [-m ``mode``] `directory`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+xinstall -d [-o ``+owner+``] [-g ``+group+``] [-m ``+mode+``] `+directory+`::
</span> Create a directory including parent directories if necessary.
 +
 Defaults:
 
 * owner -
 * group -
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* mode - `0755`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* mode - `+0755+`
</span> 
 +
 Examples:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -95,20 +95,20 @@ strsed::
</span> strsed can be used for string manipulations using regular expressions.
 It supports a small subset of the commands known from sed(1).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-strsed `string` s/``regex``/``replacement``/ ::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Replaces the first instance of `regex` with ``replacement``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+strsed `+string+` s/``+regex+``/``+replacement+``/ ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Replaces the first instance of `+regex+` with ``+replacement+``.
</span> Refer to re_format(7) for a definition of regular expression syntax.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-strsed `string` g/``regex``/``replacement``/ ::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+strsed `+string+` g/``+regex+``/``+replacement+``/ ::
</span> The same as the previous format, except all instances of the pattern will be replaced, not only the first (mnemonic: 'g' is for global).
 reinplace::
 Allows text specified by a regular expression to be replaced by new text, in-place (the file will be updated itself, no need to place output into a new file and rename).
<span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace [-locale ``locale``] [-n] [-W ``dir``] [--] `command```file ...``::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace [-locale ``+locale+``] [-n] [-W ``+dir+``] [--] `+command+```+file ...+``::
</span> Replace text given by the regular expression portion of the command with the replacement text, in all files specified.
 +
 Use -locale to set the locale.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default locale is ``en_US.UTF-8``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, `-locale C` will allow a non-UTF-8 file to be modified (which may otherwise give the error "sed: RE error: illegal byte sequence"), but only operating on ASCII characters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default locale is ``+en_US.UTF-8+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, `+-locale C+` will allow a non-UTF-8 file to be modified (which may otherwise give the error "sed: RE error: illegal byte sequence"), but only operating on ASCII characters.
</span> If you need it to work on non-ASCII characters you need to set a locale with the correct charset for the file, e.g.
 "en_US.ISO8859-1".
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,10 +137,10 @@ reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/Makefile
</span> user/group::
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-adduser username [uxml:id=``uid``] [gxml:id=``gid``] [passwd=``passwd``] [realname=``realname``] [home=``home``] [shell=``shell``]::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+adduser username [uxml:id=``+uid+``] [gxml:id=``+gid+``] [passwd=``+passwd+``] [realname=``+realname+``] [home=``+home+``] [shell=``+shell+``]::
</span> Add a new local user to the system with the specified uid, gid, password, real name, home directory and login shell.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-existsuser `username`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+existsuser `+username+`::
</span> Check if a local user exists.
 Returns the uid for the given user, or 0 if the user wasn't found.
 Checking for the root user is not supported because its uid is 0, and it will always exist anyway.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -148,10 +148,10 @@ Checking for the root user is not supported because its uid is 0, and it will al
</span> nextuid::
 Returns the highest used uid plus one.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-addgroup `group` [gxml:id=``gid``] [passwd=``passwd``] [realname=``realname``] [users=``users``]::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+addgroup `+group+` [gxml:id=``+gid+``] [passwd=``+passwd+``] [realname=``+realname+``] [users=``+users+``]::
</span> Add a new local group to the system, with the specified gid, password, real name, and with a list of users as members.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-existsgroup `group`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+existsgroup `+group+`::
</span> Check if a local group exists and return the corresponding gid.
 This can be used with adduser:
 +
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-variables.adoc b/guide/adoc/portfile-variables.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 164efb1..0d2670c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-variables.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-variables.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,7 +4,7 @@
</span> Global variables are variables available to any Portfile.
 For a list of additional variables available to ports that are assigned to a MacPorts Portgroup, see portgroup(7).
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-All of these variables except `prefix` are read-only!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+All of these variables except `+prefix+` are read-only!
</span> 
 prefix::
 Installation prefix, set at compile time and displayed in [path]`${prefix}/etc/macports/macports.conf` --- may be overridden on a per-port basis, for example to install into a wholly-contained subdirectory of ${prefix}, but most ports should have no reason to do so.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,34 +21,34 @@ Portfile repositories are defined in the file <<internals.configuration-files.so
</span> Default: [path]`${prefix}/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/<category>/<portname>/`
 
 filesdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Path to files directory relative to ``${portpath}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Path to files directory relative to ``+${portpath}+``.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `files`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+files+`
</span> 
 filespath::
 Full path to files directory.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `${portpath}/${filesdir}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+${portpath}/${filesdir}+`
</span> 
 workpath::
 Full path to work directory.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `${portbuildpath}/work`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+${portbuildpath}/work+`
</span> 
 worksrcpath::
 Full path to extracted source code.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `${workpath}/${worksrcdir}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+${workpath}/${worksrcdir}+`
</span> 
 destroot::
 Full path into which software will be destrooted.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `${workpath}/destroot`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+${workpath}/destroot+`
</span> 
 distpath::
 Location to store downloaded distfiles.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Value: `${portdbpath}/distfiles/${dist_subdir}/`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Value: `+${portdbpath}/distfiles/${dist_subdir}/+`
</span> 
 install.user::
 The Unix user at the time of port installation.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfile-variants.adoc b/guide/adoc/portfile-variants.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 0d7adfc..d9178de 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfile-variants.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfile-variants.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,7 +9,7 @@ User-selected variants are options selected by a user when a port is installed;
</span> == User-Selected Variants
 
 User-selected variants are those that are defined so a user can invoke them to enable port options at install time.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-They also allow a port author a level of modularity and control using the keyword `default_variants` (see below).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+They also allow a port author a level of modularity and control using the keyword `+default_variants+` (see below).
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -17,10 +17,10 @@ Variant names may contain only letters, numbers and underscore characters.
</span> In particular, the hyphen is not a valid character in variant names because it would conflict with the notation for deselecting a variant.
 ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant `name` [requires ``variant1 variant2 ...``] [conflicts ``variant1 variant2 ...``] [description ``description``]::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant `+name+` [requires ``+variant1 variant2 ...+``] [conflicts ``+variant1 variant2 ...+``] [description ``+description+``]::
</span> The variant declaration may contain any keywords that can be placed in a Portfile's global section.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you wish to execute system (shell) calls or Tcl extensions during the execution of a port phase, you should place those statements within a `variant_isset` conditional within a phase declaration and not within the variant declaration itself.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Dependencies and conflicts with other variants in the same port can be expressed with `requires` and `conflicts` options as shown below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you wish to execute system (shell) calls or Tcl extensions during the execution of a port phase, you should place those statements within a `+variant_isset+` conditional within a phase declaration and not within the variant declaration itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Dependencies and conflicts with other variants in the same port can be expressed with `+requires+` and `+conflicts+` options as shown below.
</span> 
 * Default: none
 * Examples:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,7 +44,7 @@ variant apache2 conflicts apache {
</span> ----
 
 default_variants::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The optional `default_variants` keyword is used to specify variants that a port author wishes to have enabled by default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The optional `+default_variants+` keyword is used to specify variants that a port author wishes to have enabled by default.
</span> This allows for Portfile modularity and also allows users to suppress default variants if they wish.
 
 * Default: none
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,7 +69,7 @@ universal_variant::
</span> When using MacPorts on macOS, a universal variant is defined by default to configure ports with universal flags.
 The variant can be overridden if the default code does not work (see the <<reference.phases.configure.universal,Configure Universal>> section above), or suppressed if a universal variant does not function properly for a given port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `yes`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+yes+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,7 +81,7 @@ universal_variant   no
</span> [[reference.variants.descriptions]]
 == User-Selected Variant Descriptions
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-User-selected variants ought to provide a description, which will be displayed when using command ``port variants foo``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+User-selected variants ought to provide a description, which will be displayed when using command ``+port variants foo+``.
</span> The syntax used for the description keyword is shown below.
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,10 +103,10 @@ Variant descriptions are strings, so one should take care not to put whitespace
</span> 
 Platform variants are either defined by default in MacPorts base, or defined by a port author to customize a port's installation according to OS (operating system) or hardware platform.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform `os` [``version``] [``arch``]::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform `+os+` [``+version+``] [``+arch+``]::
</span> MacPorts allows platform-specific port options to be specified in a Portfile for handling differences between platforms and versions of the same platform.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`platform darwin ``version``` can be used to handle different tasks depending on the version of Darwin, the core operating system underlying macOS. `version` is the major version of Darwin, and can be `17` for macOS High Sierra v10.13, `16` for macOS Sierra v10.12, `15` for OS X El Capitan v10.11, and so on.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+platform darwin ``+version+``+` can be used to handle different tasks depending on the version of Darwin, the core operating system underlying macOS. `+version+` is the major version of Darwin, and can be `+18+` for macOS Mojave 10.14, `+17+` for macOS High Sierra 10.13, `+16+` for macOS Sierra 10.12, and so on.
</span> 
 * Examples:
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,6 +141,6 @@ platform darwin 8 powerpc {
</span> [NOTE]
 ====
 Though a combination of OS version and hardware platform may be specified in a single platform statement (e.g., darwin 8 i386), it is not possible to specify a range of platforms with a single statement.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, to select Darwin versions 9 and 10 while excluding all others, you would need two statements: `platform darwin 9` and ``platform darwin 10``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Alternately, you could make that behavior the port's default, and add a `platform darwin 8` block to remove it again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, to select Darwin versions 9 and 10 while excluding all others, you would need two statements: `+platform darwin 9+` and ``+platform darwin 10+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Alternately, you could make that behavior the port's default, and add a `+platform darwin 8+` block to remove it again.
</span> ====
\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfiledev.adoc b/guide/adoc/portfiledev.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index aa0c73c..bf08362 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfiledev.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfiledev.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,8 +37,8 @@ The main phases you need to be aware of when making a Portfile are these:
</span> * Build
 * Destroot
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default installation phase behavior performed by the MacPorts base works fine for applications that use the standard [cmd]``configure``, [cmd]``make``, and [cmd]``make
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    install`` steps, which conform to phases configure, build, and destroot respectively.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default installation phase behavior performed by the MacPorts base works fine for applications that use the standard [cmd]``+configure+``, [cmd]``+make+``, and [cmd]``+make
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    install+`` steps, which conform to phases configure, build, and destroot respectively.
</span> For applications that do not conform to this standard behavior, any installation phase may be augmented using <<development.examples.augment,pre- and/or post- phases>>, or even <<development.examples.override,overridden>> or <<development.examples.eliminate,eliminated>>.
 See <<development.examples,Example Portfiles>> below.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,7 +50,7 @@ For a detailed description of all port phases, see the <<reference.phases,Portfi
</span> [[development.creating-portfile]]
 == Creating a Portfile
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Here we list the individual Portfile components for an application that conforms to the standard [cmd]``configure``, [cmd]``make``, and [cmd]``make install`` steps of most open source application installs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Here we list the individual Portfile components for an application that conforms to the standard [cmd]``+configure+``, [cmd]``+make+``, and [cmd]``+make install+`` steps of most open source application installs.
</span> 
 . Modeline
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -106,7 +106,7 @@ platforms           darwin
</span> . Port maintainers
 +
 A port's maintainers are the people who have agreed to take responsibility for keeping the port up-to-date.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `maintainers` keyword lists the maintainers' GitHub usernames or email addresses, preferably in the obfuscated form which hides them from spambots.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+maintainers+` keyword lists the maintainers' GitHub usernames or email addresses, preferably in the obfuscated form which hides them from spambots.
</span> For more, see the full explanation of the <<reference.keywords.maintainers,maintainers keyword>> in the <<reference.keywords,Global Keywords>> section of the <<reference,Portfile Reference>> chapter.
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -150,12 +150,14 @@ master_sites        https://oss.oetiker.ch/rrdtool/pub/ \
</span> +
 The checksums specified in a Portfile are checked with the fetched tarball for security.
 For the best security, use rmd160  and sha256 checksum types.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+Checksums should also include the target file's size.
</span> +
 
 [source]
 ----
 checksums               rmd160  7bbfce4fecc2a8e1ca081169e70c1a298ab1b75a \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    1061530
</span> ----
 +
 To find the correct checksums for a port's distribution file, follow one of these examples:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -257,7 +259,8 @@ master_sites        https://oss.oetiker.ch/rrdtool/pub/ \
</span>                     ftp://ftp.pucpr.br/rrdtool/
 
 checksums           rmd160  7bbfce4fecc2a8e1ca081169e70c1a298ab1b75a \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1061530
</span> 
 depends_lib         path:bin/perl:perl5 \
                     port:tcl \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -307,8 +310,8 @@ build {}
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Because many software packages do not use ``configure``, a keyword is provided to eliminate the `configure` phase.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Another exception is the `destroot` phase may not be eliminated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Because many software packages do not use ``+configure+``, a keyword is provided to eliminate the `+configure+` phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Another exception is the `+destroot+` phase may not be eliminated.
</span> See the chapter <<reference,Portfile Reference>> for full information.
 ====
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -370,7 +373,7 @@ Variant names may contain only the characters A-Z, a-z, and the underscore chara
</span> Therefore, take care to never use hyphens in variant names.
 ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In the example variant declaration below, the configure argument `--without-x` is removed and a number of others are appended.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In the example variant declaration below, the configure argument `+--without-x+` is removed and a number of others are appended.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -431,7 +434,7 @@ The default_variant keyword may only be used in the global Portfile section.
</span> [[development.patches]]
 == Patch Files
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Patch files are files created with the Unix command [cmd]``diff`` that are applied using the command [cmd]``patch`` to modify text files to fix bugs or extend functionality.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Patch files are files created with the Unix command [cmd]``+diff+`` that are applied using the command [cmd]``+patch+`` to modify text files to fix bugs or extend functionality.
</span> 
 [[development.patches.portfile]]
 === Creating Portfile Patches
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -447,7 +450,7 @@ Follow the steps below to create Portfile patch files
</span> %% cp -p Portfile Portfile.orig
 ----
 . Edit the file to make it as you want it to be after it is fetched.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Now use the Unix command [cmd]``diff -u ``to create a "`unified`" diff patch file. Put the name of the port in the patchfile, for example, Portfile-rrdtool.diff.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Now use the Unix command [cmd]``+diff -u +``to create a "`unified`" diff patch file. Put the name of the port in the patchfile, for example, Portfile-rrdtool.diff.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -489,8 +492,8 @@ Now you may attach the patch file to a MacPorts Trac ticket for the port author
</span> Necessary or useful patches to application source code should generally be sent to the application developer rather than the port author so the modifications may be included in the next version of the application.
 
 Generally speaking, you should create one patch file for each logical change that needs to be applied.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Patchfile filenames should uniquely distinguish the file and generally be of the form [path]`patch-```<identifier>``[path]`.diff`, where the `identifier` is a reference to the problem or bug it is supposed to solve.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-An example filename would be [path]`patch-```destdir-variable-fix``[path]`.diff`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Patchfile filenames should uniquely distinguish the file and generally be of the form [path]`patch-```+<identifier>+``[path]`.diff`, where the `+identifier+` is a reference to the problem or bug it is supposed to solve.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+An example filename would be [path]`patch-```+destdir-variable-fix+``[path]`.diff`.
</span> 
 To create a patch to modify a single file, follow the steps below.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -503,7 +506,7 @@ To create a patch to modify a single file, follow the steps below.
</span> %% cp -p Makefile.in Makefile.in.orig
 ----
 . Edit the file and modify the text to reflect your corrections.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Now [cmd]``cd`` to the top-level directory of the unpacked source, and use the Unix command [cmd]``diff -u`` to create a "`unified`" diff patch file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Now [cmd]``+cd+`` to the top-level directory of the unpacked source, and use the Unix command [cmd]``+diff -u+`` to create a "`unified`" diff patch file.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -512,14 +515,14 @@ To create a patch to modify a single file, follow the steps below.
</span> %% diff -u src/Makefile.in.orig src/Makefile.in > patch-destdir-variable-fix.diff
 ----
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You should execute [cmd]``diff`` from the top-level directory of the unpacked source code, because during the patch phase MacPorts by default uses the patch argument ``-p0``, which does not strip prefixes with any leading slashes from file names found in the patch file (as opposed to `-p1` that strips one, etc), and any path not relative to the top-level directory of the unpacked source will fail during the patch phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You should execute [cmd]``+diff+`` from the top-level directory of the unpacked source code, because during the patch phase MacPorts by default uses the patch argument ``+-p0+``, which does not strip prefixes with any leading slashes from file names found in the patch file (as opposed to `+-p1+` that strips one, etc), and any path not relative to the top-level directory of the unpacked source will fail during the patch phase.
</span> +
 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you find an existing source file patch you wish to use that contains leading path information (diff was executed from a directory higher than the top-level source directory), you will need to use the <<reference.phases.patch,patch phase keyword>>``patch.pre_args`` to specify a `-px` value for how many prefixes with leading slashes are to be stripped off.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you find an existing source file patch you wish to use that contains leading path information (diff was executed from a directory higher than the top-level source directory), you will need to use the <<reference.phases.patch,patch phase keyword>>``+patch.pre_args+`` to specify a `+-px+` value for how many prefixes with leading slashes are to be stripped off.
</span> ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. A patch file that is a "`unified`" diff file is the easiest to interpret by humans and this type should always be used for ports. See the example below where a patch adds `DESTDIR` support to [path]`Makefile.in`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. A patch file that is a "`unified`" diff file is the easiest to interpret by humans and this type should always be used for ports. See the example below where a patch adds `+DESTDIR+` support to [path]`Makefile.in`.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -536,7 +539,7 @@ If you find an existing source file patch you wish to use that contains leading
</span> -       cp $(TEXT) $(INSTALL_LIB)/
 +       cp $(TEXT) $(DESTDIR)$(INSTALL_LIB)/
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Place the patch [path]`patch-destdir-variable-fix.diff` in the directory [path]`${portpath}/files` and use it in a port using the `patchfiles` keyword. `${portpath}` may be in a local Portfile repository during development, or [path]`files/` may be in a port's `${portpath}` in the global MacPorts repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Place the patch [path]`patch-destdir-variable-fix.diff` in the directory [path]`${portpath}/files` and use it in a port using the `+patchfiles+` keyword. `+${portpath}+` may be in a local Portfile repository during development, or [path]`files/` may be in a port's `+${portpath}+` in the global MacPorts repository.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -596,7 +599,7 @@ rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The file URL should always appear before the rsync URL so that local Portfiles can be tested that are duplicated in the MacPorts tree, because [cmd]``port`` will always operate on the first Portfile it encounters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The file URL should always appear before the rsync URL so that local Portfiles can be tested that are duplicated in the MacPorts tree, because [cmd]``+port+`` will always operate on the first Portfile it encounters.
</span> ====
 . Place the Portfiles you create inside a directory whose name matches the port, which should in turn be placed inside a directory that reflects the port's primary category (the first category entry in the Portfile). For example, to create the directory for a hypothetical port "`bestevergame`" and to begin editing its Portfile in TextEdit, you can use these commands:
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -612,7 +615,7 @@ The file URL should always appear before the rsync URL so that local Portfiles c
</span> See other sections in the Guide for help writing Portfiles.
 If you've already written the Portfile elsewhere, you can instead copy the Portfile into this directory.
 . If your Portfile needs to apply any patches to the port's source files, create a [path]`files` directory and place the patchfiles in it, and reference the patchfiles in your Portfile, as explained in <<development.patches.source,Creating Source Code Patches>>.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. After you create or update your Portfile, use [cmd]``portindex`` in the local repository's directory to create or update the index of the ports in your local repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. After you create or update your Portfile, use [cmd]``+portindex+`` in the local repository's directory to create or update the index of the ports in your local repository.
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -679,7 +682,8 @@ Indent the additional lines to the same column that the right side begins on in
</span> [source]
 ----
 checksums               rmd160  7bbfce4fecc2a8e1ca081169e70c1a298ab1b75a \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  2829fcb7393bac85925090b286b1f9c3cd3fbbf8e7f35796ef4131322509aa53 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    1061530
</span> ----
 
 Should a key item such as a phase or variant require braces, the opening brace should appear on the same line and the closing brace should be on its own line.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -695,7 +699,7 @@ variant mysql5 description {Enable support for MySQL 5} {
</span> ----
 
 Frequently multiple items are necessary in the second column.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, to set multiple source download locations, multiple `master_sites` must be defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, to set multiple source download locations, multiple `+master_sites+` must be defined.
</span> Unless the second column items are few and short you should place each additional item on a new line and separate lines with a backslash.
 Indent the lines after the first line to make it clear the items are second column values and also to emphasize the unity of the block.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -729,7 +733,7 @@ TODO: Set variables so changing paths may be done in one place; use them anytime
</span> [[development.practices.rename-replace-port]]
 === Renaming or replacing a port
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If there is the need to replace a port with another port or a renaming is necessary for some reason, the port should be marked as ``replaced_by``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If there is the need to replace a port with another port or a renaming is necessary for some reason, the port should be marked as ``+replaced_by+``.
</span> 
 As an illustration of a typical workflow the port "`skrooge-devel`" shall be taken.
 This port had been used for testing new versions of skrooge, but it turned out to have become unnecessary due to the fact that skrooge's developers currently prefer a distribution via port "`skrooge`" instead. 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -781,23 +785,23 @@ depends_lib-append  port:kdelibs4 \
</span>                     port:oxygen-icons
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The following steps have to be taken to ensure a smooth transition for a MacPorts user updating his local installation using ``sudo port upgrade``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The following steps have to be taken to ensure a smooth transition for a MacPorts user updating his local installation using ``+sudo port upgrade+``:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. add the line `replaced_by foo` where foo is the port this one is replaced by; when a user upgrades this port, MacPorts will instead install the replacement port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. add the line `+replaced_by foo+` where foo is the port this one is replaced by; when a user upgrades this port, MacPorts will instead install the replacement port
</span> +
 
 [source]
 ----
 replaced_by         skrooge
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. increase the version, revision, or epoch, so that users who have this port installed will get notice in `port outdated` that they should upgrade it and trigger the above process
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. increase the version, revision, or epoch, so that users who have this port installed will get notice in `+port outdated+` that they should upgrade it and trigger the above process
</span> +
 
 [source]
 ----
 revision            1
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. clear distfiles (have a line reading only ``distfiles``) so that no distfile is downloaded for this stub port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. clear distfiles (have a line reading only ``+distfiles+``) so that no distfile is downloaded for this stub port
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -812,7 +816,7 @@ distfiles
</span> ----
 livecheck.type      none
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. add a pre-configure block with a `ui_error` and `return -code error` explaining to users who try to install this port that the port has been replaced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. add a pre-configure block with a `+ui_error+` and `+return -code error+` explaining to users who try to install this port that the port has been replaced
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -942,7 +946,7 @@ For details have a look at the PortGroup's source code in [path]`${prefix}/var/m
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`replaced_by` can be specified before or after the `PortGroup` line.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+replaced_by+` can be specified before or after the `+PortGroup+` line.
</span> ====
 
 [[development.practices.removing-port]]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portfileref.adoc b/guide/adoc/portfileref.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index e2d9c3f..399e4e7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portfileref.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portfileref.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -82,12 +82,24 @@ include::portgroup-gnustep.adoc[]
</span> 
 :leveloffset: +1
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+include::portgroup-golang.adoc[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:leveloffset: -1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:leveloffset: +1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> include::portgroup-haskell.adoc[]
 
 :leveloffset: -1
 
 :leveloffset: +1
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+include::portgroup-java.adoc[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:leveloffset: -1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:leveloffset: +1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> include::portgroup-perl.adoc[]
 
 :leveloffset: -1
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-github.adoc b/guide/adoc/portgroup-github.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 6434d85..96db663 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portgroup-github.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-github.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,25 +1,25 @@
</span> [[reference.portgroup.github]]
 = PortGroup github
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `github` portgroup allows for efficient porting of software hosted on GitHub.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+github+` portgroup allows for efficient porting of software hosted on GitHub.
</span> 
 [[reference.portgroup.github.description]]
 == Description
 
 This portgroup greatly simplifies the porting of software hosted on GitHub.
 Provided a GitHub repository author follows common GitHub practices, a port can be almost fully configured simply by declaring the repository coordinates.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `github` portgroup is indeed capable of configuring, amongst other things: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+github+` portgroup is indeed capable of configuring, amongst other things: 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* The port ``name``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* The port ``version``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* The `distfiles` (if the project uses GitHub releases).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* The `livecheck` parameters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The port ``+name+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The port ``+version+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The `+distfiles+` (if the project uses GitHub releases).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The `+livecheck+` parameters.
</span> 
 
 [[reference.portgroup.github.setup]]
 == Setting up the GitHub repository coordinates
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The main port configuration is triggered by the usage of the `github.setup` keyword: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The main port configuration is triggered by the usage of the `+github.setup+` keyword: 
</span> [source]
 ----
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,11 +27,11 @@ PortGroup           github 1.0
</span> github.setup        author project version [tag_prefix]
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-By default, the port `name` will be set to the GitHub project name (``project``) and `version` will be set to the GitHub project ``version``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The port name can be overridden by using the `name` keyword. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, the port `+name+` will be set to the GitHub project name (``+project+``) and `+version+` will be set to the GitHub project ``+version+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The port name can be overridden by using the `+name+` keyword. 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `tag_prefix` is optional, and it's used to specify a prefix to use when constructing the tag name.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If, for example, the project uses tags such as ``v1.0.0``, then the `tag_prefix` should be set to ``v``, as in the following example: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+tag_prefix+` is optional, and it's used to specify a prefix to use when constructing the tag name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If, for example, the project uses tags such as ``+v1.0.0+``, then the `+tag_prefix+` should be set to ``+v+``, as in the following example: 
</span> [source]
 ----
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,26 +41,27 @@ github.setup        author project version v
</span> [[reference.portgroup.github.distfilestrategy]]
 == Choosing a distfile strategy
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-GitHub, and as a consequence the `github` portgroup, offers multiple mechanisms to get a distfile: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+GitHub, and as a consequence the `+github+` portgroup, offers multiple mechanisms to get a distfile: 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Distfile from a `git` commit or tag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Distfile from a `+git+` commit or tag.
</span> * Distfile from a GitHub https://github.com/blog/1547-release-your-software[release]. 
 * Distfile from a GitHub https://github.com/blog/1302-goodbye-uploads[download]. 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+* Distfile from Github auto-generated archive downloads 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default behaviour of the portgroup is using GitHub automatically generated distfile from a `git` commit or tag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default behaviour of the portgroup is using GitHub automatically generated distfile from a `+git+` commit or tag.
</span> However, the best practice should be using a GitHub release. 
 
 [[reference.portgroup.github.distfile]]
 == Distfile from tag or commit
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default behaviour of the `github` portgroup is leveraging GitHub's ability to create a distfile from a `git` tag or commit.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In this case, the `distname` is irrelevant and should not be set. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default behaviour of the `+github+` portgroup is leveraging GitHub's ability to create a distfile from a `+git+` tag or commit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In this case, the `+distname+` is irrelevant and should not be set. 
</span> 
 If the project's developers do not tag their releases, they should be encouraged to do so.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Until they do, or in the case in which an untagged development version has to be used, port maintainers have the possibility of specifying a `git` commit hash and manually set the `version` field.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Until they do, or in the case in which an untagged development version has to be used, port maintainers have the possibility of specifying a `+git+` commit hash and manually set the `+version+` field.
</span> If the project does not assign version numbers the port maintainer has to define one.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Such versions typically format the date of the chosen commit using the `YYYYMMDD` pattern.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If, for example, the port maintainer decides to use a changeset with the hash ``0ff25277c3842598d919cd3c73d60768``, committed on April 1, 2014, then the following would be used: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Such versions typically format the date of the chosen commit using the `+YYYYMMDD+` pattern.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If, for example, the port maintainer decides to use a changeset with the hash ``+0ff25277c3842598d919cd3c73d60768+``, committed on April 1, 2014, then the following would be used: 
</span> [source]
 ----
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,7 +72,7 @@ version             20140401
</span> [[reference.portgroup.github.releases]]
 == Distfile from a GitHub release
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `github` portgroup allows maintainers to easily configure the distfiles when the project uses GitHub releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+github+` portgroup allows maintainers to easily configure the distfiles when the project uses GitHub releases.
</span> A release is the best distfile candidate, and project maintainers should be encouraged to use them.
 To enable this feature, the following keyword must be used: 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,13 +80,13 @@ To enable this feature, the following keyword must be used:
</span> 
 github.tarball_from releases
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-By default, the `github` portgroup sets `distname` to: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, the `+github+` portgroup sets `+distname+` to: 
</span> [source]
 ----
 
 distname            ${github.project}-${github.version}
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-However, GitHub does not enforce any rule for release distfiles, so port maintainers may need to override the `distname` as they would do for other ports. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+However, GitHub does not enforce any rule for release distfiles, so port maintainers may need to override the `+distname+` as they would do for other ports. 
</span> 
 [[reference.portgroup.github.downloads]]
 == Distfile from a GitHub download
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -99,14 +100,25 @@ If the project doesn't have GitHub releases but does have GitHub downloads, they
</span> 
 github.tarball_from downloads
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Since GitHub doesn't enforce any naming rules for downloads, the portgroup can only provide a sensible default value for ``distname``, which can be overridden if necessary. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since GitHub doesn't enforce any naming rules for downloads, the portgroup can only provide a sensible default value for ``+distname+``, which can be overridden if necessary. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.github.archive]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Distfile from GitHub archive downloads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Further still, many Github projects have automatically-generated archive URLs that can be used for downloading distfiles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This can be enabled via `+archive+` as follows: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span> 
 [[reference.portgroup.github.submodule]]
 == Using repositories with git submodules
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If the project uses `git` submodules, some projects' tag- or commit-based distfiles will not contain all the necessary files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If the project uses `+git+` submodules, some projects' tag- or commit-based distfiles will not contain all the necessary files.
</span> Once again, the best distfile candidate (if available) is a distfile from GitHub releases, as described in the previous sections.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-However, in the case a project doesn't provide any other alternative, a project using submodules can be successfully retrieved by fetching the sources using `git` and then using a `post-fetch` to initialize the submodules: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+However, in the case a project doesn't provide any other alternative, a project using submodules can be successfully retrieved by fetching the sources using `+git+` and then using a `+post-fetch+` to initialize the submodules: 
</span> [source]
 ----
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-golang.adoc b/guide/adoc/portgroup-golang.adoc
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0beea33
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-golang.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,140 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+= PortGroup golang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+golang+` PortGroup allows for efficient porting of Go-based open source software.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang.description]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Description
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This PortGroup greatly simplifies the porting of software written in Go, especially when the software and its dependencies are hosted on GitHub or Bitbucket.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Provided a project author follows common Go packaging practices, a port can be almost fully configured simply by declaring the package identifier. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In particular, Go has strict requirements relating to the arrangement of code on the filesystem (GOPATH). This PortGroup handles the construction of the GOPATH for you. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang.setup]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Setting up the Go package identifier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The main port configuration is triggered by the usage of the `+go.setup+` keyword: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           golang 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.setup            domain/author/project version [tag_prefix] [tag_suffix]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, the port `+name+` will be set to the package name (``+project+``) and `+version+` will be set to the project ``+version+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The port name can be overridden by using the `+name+` keyword. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+tag_prefix+` and `+tag_suffix+` are optional, and are used to specify a prefix/suffix to use when constructing the tag name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If, for example, the project uses tags such as ``+v1.0.0+``, then the `+tag_prefix+` should be set to ``+v+``, as in the following example: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.setup        domain/author/project version v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When the `+domain+` is either `+github.com+` or ``+bitbucket.org+``, the appropriate PortGroup will be applied and set up automatically.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See those PortGroups' documentation for details. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Projects hosted elsewhere can be used, but require additional manual setup. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang.dependencies]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Setting up dependencies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The PortGroup provides a keyword to facilitate listing dependencies: ``+go.vendors+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Supply a list of vendor package IDs, their versions (git commit hashes, labeled "lock" as in "lockfile"), and their checksums as follows.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The packages and their versions can usually be found in a lockfile (e.g. [path]`Gopkg.lock`, [path]`glide.lock`) in the upstream code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+All checksum types supported by the `+<<reference.phases.checksum,checksums>>+` keyword are supported here as well. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.vendors      example.com/dep1/foo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lock    abcdef123456... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  fedcba654321... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  bdface246135... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1234 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                example.com/dep2/bar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lock    abcdef123456... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  fedcba654321... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  bdface246135... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    4321
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note that `+go.vendors+` cannot be used with dependencies hosted outside of GitHub and Bitbucket.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Such dependencies must be handled manually. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+After the extraction phase, the vendor packages will be placed alongside the main port code as appropriate in the GOPATH. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== Building and destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default this PortGroup runs `+go build+` from the ``+${worksrcpath}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Assuming this results in a binary with the same name as the project, and that there are no other files to install, the following is sufficient for the destroot phase: 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Please modify as appropriate for each individual port. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang.variables]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== golang PortGroup Specific Variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When the golang PortGroup is declared within a Portfile, the following variables are provided during port install.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.bin::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${prefix}/bin/go+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The Go binary location.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.package::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The package identifier of the port, e.g. ``+example.com/author/project+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.domain, go.author, go.project::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The individual parts of ``+${go.package}+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gopath::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: ``+${workpath}+``/gopath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The location where source packages will be arranged after the extract phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+goarch::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: 386 or amd64, depending on `+${build_arch}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+goos::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${os.platform}+`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.golang.sugar]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== golang PortGroup Sugar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfiles using PortGroup golang do not need to define the following variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name, version, homepage, distname, master_sites, livecheck.*::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: see github or bitbucket PortGroups (when project hosted on GitHub or Bitbucket)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: port:go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: darwin freebsd linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Go can target these platforms, but individual ports should override this as necessary if only some are actually supported.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.cmd::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${go.bin}+` build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.target::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.env::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: GOPATH=``+${gopath}+`` GOARCH=``+${goarch}+`` GOOS=``+${goos}+`` CC=``+${configure.cc}+``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: arranges the project and vendor source files appropriately in the GOPATH.
</span>\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-java.adoc b/guide/adoc/portgroup-java.adoc
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2f69e63
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-java.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.java]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+= PortGroup java
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup java is useful for Java packages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.java.keywords]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== java PortGroup Specific Keywords
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfiles using the java PortGroup allow for port authors to set the following keywords in addition to the general Portfile keywords.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+java.version::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This keyword indicates that the port requires a Java installation of the specified version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If no such installation can be located, and no fallback option is specified (see below), the port will fail at the pre-fetch phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The version string can indicate a specific version or a range with wildcards "+" and "*". Note that Java 8 and earlier are "1.8", etc., while Java 9 and later are "9", etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Type: optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+java.version    1.8+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+java.fallback::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This keyword indicates an (optional) port dependency that will be added to the ports 'depends-lib' list in the case a prior installation of Java satisfying the requested version can not be found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Type: optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+java.fallback   openjdk10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[[reference.portgroup.java.sugar]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+== java PortGroup Sugar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfiles using PortGroup java do not need to define the following variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.env, build.env, destroot.env::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: JAVA_HOME=(detected value)
</span>\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-python.adoc b/guide/adoc/portgroup-python.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 0acb532..6e2f1b3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portgroup-python.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-python.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,11 +11,11 @@ Portfiles using the python PortGroup allow for port authors to set the following
</span> python.versions::
 Defines the python versions supported by this port.
 If the port name starts with "`py-`", then a subport will be defined for each version in the list.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, if a port named "`py-foo`" declares ``python.versions 26 27``, subports "`py26-foo`" and "`py27-foo`" will be created, and will depend on python26 and python27 respectively.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, if a port named "`py-foo`" declares ``+python.versions 26 27+``, subports "`py26-foo`" and "`py27-foo`" will be created, and will depend on python26 and python27 respectively.
</span> +
 If the port name does not start with "`py-`", it is interpreted as an application written in python rather than a python module.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In this case, no subports are defined, and `python.versions` defaults to the value of ``python.default_version``, which must be set.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, if a port named "`mercurial`" sets ``python.default_version 27``, then `python.versions` will automatically be set to "`27`", and a dependency on python27 will be added.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In this case, no subports are defined, and `+python.versions+` defaults to the value of ``+python.default_version+``, which must be set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, if a port named "`mercurial`" sets ``+python.default_version 27+``, then `+python.versions+` will automatically be set to "`27`", and a dependency on python27 will be added.
</span> 
 * Type: required for modules, optional for apps
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ python.versions     25 26 27
</span> 
 python.default_version::
 For modules (i.e., name starts with "`py-`"), this sets the subport that will be installed if the user asks to install "`py-foo`" rather than, e.g., "`py26-foo`" or "`py27-foo`".
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If not explicitly set, a reasonable default is chosen from the list in ``python.versions``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If not explicitly set, a reasonable default is chosen from the list in ``+python.versions+``.
</span> +
 For applications (i.e., name does not start with "`py-`"), this chooses which version of python to use, and must be set.
 It can be changed in variants if desired.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,14 +55,14 @@ python.link_binaries     no
</span> ----
 
 python.link_binaries_suffix::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Suffix to add to the names of the links created in [path]`${prefix}/bin` when `${python.link_binaries}` is enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Suffix to add to the names of the links created in [path]`${prefix}/bin` when `+${python.link_binaries}+` is enabled.
</span> Can be cleared if no suffix is desired.
 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: -``${python.branch}``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: -``+${python.branch}+``
</span> 
 python.add_archflags::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-When yes (the default), the PortGroup will automatically try to pass the correct arch-specific flags during build time (via the standard CFLAGS, LDFLAGS, etc environment variables). Set this to "`no`" and set up those variables in `build.env` manually if the default does not work.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When yes (the default), the PortGroup will automatically try to pass the correct arch-specific flags during build time (via the standard CFLAGS, LDFLAGS, etc environment variables). Set this to "`no`" and set up those variables in `+build.env+` manually if the default does not work.
</span> 
 * Type: optional
 * Example:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -80,15 +80,15 @@ When the python PortGroup is declared within a Portfile, the following variables
</span> 
 python.version::
 The python version in use in the current subport.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This will be one of the versions listed in ``python.versions``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This will be one of the versions listed in ``+python.versions+``.
</span> 
 python.branch::
 The python version in use in the current subport, in normal dotted notation.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, if `python.version` is "`26`", `python.branch` will be "`2.6`".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, if `+python.version+` is "`26`", `+python.branch+` will be "`2.6`".
</span> 
 python.prefix::
 The prefix in which the current python version is installed.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For framework builds, this is [path]`${frameworks_dir}/Python.framework/Versions/${python.branch}`, whereas for non-framework builds, it is the same as ``${prefix}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For framework builds, this is [path]`${frameworks_dir}/Python.framework/Versions/${python.branch}`, whereas for non-framework builds, it is the same as ``+${prefix}+``.
</span> 
 python.bin::
 The path to the MacPorts Python executable.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -115,22 +115,22 @@ categories::
</span> Default: python
 
 depends_lib::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: port:python``${python.version}``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: port:python``+${python.version}+``
</span> 
 use_configure::
 Default: no
 
 build.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `${python.bin}` setup.py --no-user-cfg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${python.bin}+` setup.py --no-user-cfg
</span> 
 build.target::
 Default: build
 
 destroot.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `${python.bin}` setup.py --no-user-cfg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${python.bin}+` setup.py --no-user-cfg
</span> 
 destroot.destdir::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: --prefix=``${python.prefix}`` --root=``${destroot}``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: --prefix=``+${python.prefix}+`` --root=``+${destroot}+``
</span> 
 pre-destroot::
 Default: creates directory [path]`${destroot}${prefix}/share/doc/${subport}/examples`.
\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-ruby.adoc b/guide/adoc/portgroup-ruby.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index 48b0dfb..6e9a36f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portgroup-ruby.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-ruby.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,7 +18,7 @@ ruby.lib::
</span> Path to the Ruby vendorlibdir directory (i.e., [path]`${prefix}/lib/ruby/vendor_ruby/${ruby.version}`)
 
 ruby.arch::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The name for the Ruby architecture-dependent directory name (i.e., ``i686-darwin8.10.1``).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The name for the Ruby architecture-dependent directory name (i.e., ``+i686-darwin8.10.1+``).
</span> 
 ruby.archlib::
 Path to the Ruby vendor archdir (i.e., [path]`${ruby.lib}/${ruby.arch}`).
\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroup-xcode.adoc b/guide/adoc/portgroup-xcode.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index a459bb8..ad8d193 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portgroup-xcode.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroup-xcode.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +1,20 @@
</span> [[reference.portgroup.xcode]]
 = PortGroup xcode
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`PortGroup xcode` allows for efficient porting of Xcode-based opensource software.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-A minimum Portfile for `PortGroup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  xcode` uses defaults for the configuration, build, and destroot phases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+PortGroup xcode+` allows for efficient porting of Xcode-based opensource software.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A minimum Portfile for `+PortGroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  xcode+` uses defaults for the configuration, build, and destroot phases.
</span> It also defines some values for Xcode-based software.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Using `PortGroup xcode` is a way to make your port able to tolerate Xcode version updates because the PortGroup is tested against all supported macOS and Xcode versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Using `+PortGroup xcode+` is a way to make your port able to tolerate Xcode version updates because the PortGroup is tested against all supported macOS and Xcode versions.
</span> 
 [[reference.portgroup.xcode.keywords]]
 == xcode PortGroup Specific Keywords
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Portfiles using `PortGroup xcode` allow for port authors to set the following keywords in addition to the general Portfile keywords.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfiles using `+PortGroup xcode+` allow for port authors to set the following keywords in addition to the general Portfile keywords.
</span> 
 xcode.project::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The path relative to `${build.dir}` and `${destroot.dir}` of the Xcode project.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The path relative to `+${build.dir}+` and `+${destroot.dir}+` of the Xcode project.
</span> If unset, Xcode Tools should be able to determine it automatically.
 It usually succeeds if there is only a single project in the directory.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,7 +32,7 @@ xcode.configuration::
</span> Project configuration/buildstyle to use.
 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `Deployment`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+Deployment+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,7 +42,7 @@ xcode.configuration Main
</span> ----
 
 xcode.target::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If present, it overrides `build.target` and ``destroot.target``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If present, it overrides `+build.target+` and ``+destroot.target+``.
</span> 
 * Type: optional
 * Default: none
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -71,10 +71,10 @@ xcode.build.settings FRAMEWORK_SEARCH_PATHS=${frameworks_dir}
</span> xcode.destroot.type::
 Type of project that will be installed.
 This tells the PortGroup xcode how to destroot the project.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Correct values are `application` and ``framework``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Correct values are `+application+` and ``+framework+``.
</span> 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `application`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+application+`
</span> * Example:
 +
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,7 +87,7 @@ xcode.destroot.path::
</span> Where to install the build product.
 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: [path]`${frameworks_dir}` or [path]`${applications_dir}` depending on ``xcode.destroot.type``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: [path]`${frameworks_dir}` or [path]`${applications_dir}` depending on ``+xcode.destroot.type+``.
</span> 
 xcode.destroot.settings::
 Additional settings passed to the xcodebuild tool during the destroot phase.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,14 +108,14 @@ Settings passed to the xcodebuild tool when the +universal variant is selected.
</span> These settings should be in the X=Y form.
 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `ARCHS="${universal_archs}" MACOSX_DEPLOYMENT_TARGET=${universal_target}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+ARCHS="${universal_archs}" MACOSX_DEPLOYMENT_TARGET=${universal_target}+`
</span> 
 xcode.universal.sdk::
 SDK to use when the +universal variant is selected.
 The argument may be an absolute path to an SDK, or the canonical name of an SDK.
 
 * Type: optional
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* Default: `${universal_sysroot}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Default: `+${universal_sysroot}+`
</span> 
 [[reference.portgroup.xcode.sugar]]
 == xcode PortGroup Sugar
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -145,20 +145,20 @@ See
</span> 
 
 build.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: ``${xcodebuildcmd}``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: ``+${xcodebuildcmd}+``.
</span> 
 build.target::
 Default: ""
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This variable will be ignored if `xcode.target` is set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This variable will be ignored if `+xcode.target+` is set.
</span> 
 build.args::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `build`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+build+`
</span> 
 destroot.cmd::
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Default: `${xcodebuildcmd}`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Default: `+${xcodebuildcmd}+`
</span> 
 destroot.target::
 Default: ""
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This variable will be ignored if `xcode.target` is set.
</span>\ No newline at end of file
<span style='display:block; white-space:pre;background:#e0ffe0;'>+This variable will be ignored if `+xcode.target+` is set.
</span>\ No newline at end of file
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/portgroups.adoc b/guide/adoc/portgroups.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index a1c5bd8..95912f1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/portgroups.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/portgroups.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,6 +8,8 @@ See the following folder for PortGroup definitions:
</span> 
 [path]`${prefix}/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/`
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+or if you prefer directly in https://github.com/macports/macports-ports/tree/master/_resources/port1.0/group[GitHub] .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> A sample listing follows:
 
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/project.adoc b/guide/adoc/project.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index d70a6f9..c47881c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/project.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/project.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,7 +22,7 @@ Though anyone may search Trac for tickets, you must have a https://github.com/jo
</span> +
 If a build fails or is otherwise interrupted, and you try again, MacPorts tries to pick up where it left off.
 Sometimes this causes new problems, and even if it doesn't, it means that log messages from earlier steps, which can be essential for figuring out why a build failed, are not included in the new log; MacPorts prints "`Skipping completed`" in the log for each previously-completed phase that was skipped.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Before filing a ticket, `sudo port clean` the port that failed, then try again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Before filing a ticket, `+sudo port clean+` the port that failed, then try again.
</span> * Check the problem hotlist
 +
 The https://trac.macports.org/wiki/ProblemHotlist[Problem
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,8 +42,8 @@ In general, application bugs should be reported to the developers of the app ("`
</span> An application bug that affects a large number of MacPorts users might merit a MacPorts bug for informational purposes only, but this should be done sparingly. 
 * Is the problem with a 'port upgrade' operation?
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If so, try a 'port uninstall ``foo``' and then reinstall.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-You might also want to run 'port -nR upgrade --force ``foo``' to rebuild ports depending upon port ``foo``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If so, try a 'port uninstall ``+foo+``' and then reinstall.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You might also want to run 'port -nR upgrade --force ``+foo+``' to rebuild ports depending upon port ``+foo+``.
</span> Note that it is safest and recommended that most users always upgrade with 'port upgrade outdated' to update all ports at once.
 Upgrading a single port can lead to software errors in other ports that have not yet been upgraded. 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,16 +77,16 @@ Please see below for longer and more detailed explanations.
</span> |**Summary**
 |
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`$port```$version````[$variants]``: `short
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      problem summary`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+$port+```+$version+````+[$variants]+``: `+short
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      problem summary+`
</span> 
 *Example:* openssl @1.0.1e_1+universal: DTLS handshake error messages with openconnect 
 
 |**Description**
 |
                   Describe your problem. Preformatted text (such as terminal
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                  output) should be put in ``{{{``three curly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      brackets``}}}``. Please attach large
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  output) should be put in ``+{{{``+three curly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      brackets+``}}}+``. Please attach large
</span>                   amounts of output rather than pasting. Use the preview
                   button! 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -159,8 +159,8 @@ Please see below for longer and more detailed explanations.
</span> |The version of MacPorts you are running.
 
 |**Keywords**
<span style='display:block; white-space:pre;background:#ffe0e0;'>-|``maintainer`` if you are the port's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  maintainer. `haspatch` if you are attaching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+|``+maintainer+`` if you are the port's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  maintainer. `+haspatch+` if you are attaching
</span>                   a patch. https://trac.macports.org/wiki/TicketsKeywordGuidelines[Full
                     list]. 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -171,7 +171,7 @@ Please see below for longer and more detailed explanations.
</span> 
 |**Owner**/**Cc**
 |Full email address or GitHub username of the port's
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                  maintainer. Run [cmd]``port info --maintainer ``<portname>```` to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  maintainer. Run [cmd]``+port info --maintainer ``+<portname>+``+`` to
</span>                   look this up. Do not add mailto:nomaintainer@macports.org[] or mailto:openmaintainer@macports.org[]. For ports with
                   multiple maintainers, only put the first maintainer into the *Owner* field and all others in the *Cc* field. You do not need to Cc
                   yourself.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -180,9 +180,9 @@ Please see below for longer and more detailed explanations.
</span> 
 There are certain conventions used to ensure that Trac tickets convey as much accurate information as possible so problems and contributions may be acted upon efficiently.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* *Summary:*``[port]````[version]````[concise description]``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* *Summary:*``+[port]+````+[version]+````+[concise description]+``
</span> ** Example: "rrdtool @1.2.23 +python Configure error - build failure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* *Description:* All details that might be relevant to someone reading the ticket. Be sure to mention the versions of your operating system and Xcode install. https://trac.macports.org/wiki/WikiFormatting[Wiki formatting] should be used to ensure that text is formatted correctly. Use the Preview button before submitting. If you want to post preformatted text such as a log or terminal output, make sure you use `{{{``$$...$$``}}}` around the text or it could break the page layout. Example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* *Description:* All details that might be relevant to someone reading the ticket. Be sure to mention the versions of your operating system and Xcode install. https://trac.macports.org/wiki/WikiFormatting[Wiki formatting] should be used to ensure that text is formatted correctly. Use the Preview button before submitting. If you want to post preformatted text such as a log or terminal output, make sure you use `+{{{``+$$...$$+``}}}+` around the text or it could break the page layout. Example:
</span> 
 ....
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -219,16 +219,14 @@ ticket# below.
</span> +
 See https://trac.macports.org/wiki/TicketsKeywordGuidelines[the
 TicketsKeywordGuidelines wiki page] for a clickable list of all keywords.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* *Cc:* Anyone else besides the ticket reporter and assignee who would like to be kept involved in the development of the ticket. Multiple email addresses or GitHub usernames should be separated with a comma and a space (e.g., ``neverpanic, you@example.org, maintainer@macports.org``).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* *Cc:* Anyone else besides the ticket reporter and assignee who would like to be kept involved in the development of the ticket. Multiple email addresses or GitHub usernames should be separated with a comma and a space (e.g., ``+neverpanic, you@example.org, maintainer@macports.org+``).
</span> +
 When reporting port-related tickets, make sure you add the port maintainers email address or GitHub username to the *Cc:* field so they are notified of the ticket (unless you have commit access, then see [label]#Assign
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To:# below). You can obtain the email address or GitHub username of the port maintainer by running [cmd]``port info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---maintainers ``[port]````
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-* *Assign To:* Only users with commit access can edit this field. If this is not you, see the section on the *Cc* field above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To:# below). You can obtain the email address or GitHub username of the port maintainer by running [cmd]``+port info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--maintainers ``+[port]+``+``
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* *Assign To:* For tickets on ports, enter the email address or GitHub username of the port's maintainer (use [cmd]``+port info ``+[port]+``+`` to find this). If multiple maintainers are listed, enter the first maintainer's email address or GitHub username here and enter the remaining maintainers' email addresses or GitHub usernames in the *Cc* field. Exclude the email address mailto:openmaintainer@macports.org[] if it appears. If the maintainer's email address is mailto:nomaintainer@mac [...]
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For tickets on ports, enter the email address or GitHub username of the port's maintainer (use [cmd]``port info ``[port]```` to find this). If multiple maintainers are listed, enter the first maintainer's email address or GitHub username here and enter the remaining maintainers' email addresses or GitHub usernames in the *Cc* field.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Exclude the email address mailto:openmaintainer@macports.org[] if it appears.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If the maintainer's email address is mailto:nomaintainer@macports.org[], leave the field blank.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only project members and the reporter of a ticket can edit this field. 
</span> * *Port:* For tickets on ports, enter the name of the port (or ports, space-separated, when multiple are affected).
 * *I have files to attach to this ticket:* Use this checkbox to attach files to the ticket immediately after you create it. Or you can attach files later using the *Attach File* button.
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -264,7 +262,7 @@ The main steps for submitting a pull request are:
</span> +
 For changes to ports and code, please follow the information elsewhere in this guide, and test your changes carefully.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Changes to Portfiles should also pass [cmd]``port lint``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Changes to Portfiles should also pass [cmd]``+port lint+``.
</span> .. Commit your changes to your branch, making sure to follow the https://trac.macports.org/wiki/CommitMessages[ MacPorts standard for commit messages].
 .. Be sure to rebase your changes so as to minimize the number of commits. Ideally, you should have just one.
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -308,7 +306,7 @@ See the <<project.tickets,Ticket Submission Guidelines>> for a description of al
</span> ----
 %% port lint --nitpick $portname
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-where `$portname` is the name of the port you are submitting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where `+$portname+` is the name of the port you are submitting.
</span> Please fix any warnings and errors.
 . Either submit the new port through https://github.com/macports/macports-ports/pulls[a pull request on GitHub]...
 . $$...$$or create a Trac ticket.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -333,7 +331,7 @@ See the <<project.tickets,Ticket Submission Guidelines>> for a description of al
</span> ----
 %% port lint --nitpick $portname
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-where `$portname` is the name of the port you modified.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where `+$portname+` is the name of the port you modified.
</span> Please fix any warnings and errors before submitting your changes.
 . Either submit the port update through https://github.com/macports/macports-ports/pulls[a pull request on GitHub]...
 . $$...$$or create a Trac ticket.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -346,7 +344,7 @@ Please fix any warnings and errors before submitting your changes.
</span> ----
 %% port info --maintainer $portname
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-where `$portname` is the name of the port you want to modify.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where `+$portname+` is the name of the port you want to modify.
</span> Note that mailto:openmaintainer@macports.org[] and mailto:nomaintainer@macports.org[] are not real people and should thus not be Cc'd.
 .. Attach your Portfile patch file and any new or changed patch files to the ticket.
 . If your ticket or pull request doesn't receive any attention within a few days you may send an email to mailto:macports-dev@lists.macports.org[] and request a review and/or commit. Please include a link to the ticket or pull request.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -361,7 +359,7 @@ To become a maintainer you need:
</span> 
 * An email address and a GitHub account.
 * A copy of the [path]`Portfile`. Do not worry if you don't know where to find one yet. There's more documentation on that below.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-* An account in the https://trac.macports.org/[MacPorts Trac], preferably with the email address you want to use for your port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* An account in the https://trac.macports.org/[MacPorts Trac], (you'll log in with your GitHub account).
</span> * Interest in the software you want to maintain and some time.
 
 You do _not_ need:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -375,7 +373,7 @@ Run
</span> ----
 %% port info --maintainer $portname
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-where `$portname` is the name of the port you want to maintain.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where `+$portname+` is the name of the port you want to maintain.
</span> If the output is 
 ----
 maintainer:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -385,7 +383,7 @@ If the output lists a different email address, you can still co-maintain the por
</span> 
 Once you have verified that a port is unmaintained or the existing maintainer has invited you to co-maintain the port of your choice, follow these steps to become a maintainer: 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Locate the port's directory and make a copy. MacPorts can help you locate the directory that contains the [path]`Portfile` by running ``port dir $portname``. Copy this directory to a separate location (so you can easily generate a patch later) that is readable by the macports user. In general, your home directory does not fulfill that requirement, but [path]`/var/tmp` does. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Locate the port's directory and make a copy. MacPorts can help you locate the directory that contains the [path]`Portfile` by running ``+port dir $portname+``. Copy this directory to a separate location (so you can easily generate a patch later) that is readable by the macports user. In general, your home directory does not fulfill that requirement, but [path]`/var/tmp` does. 
</span> +
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -393,8 +391,8 @@ Once you have verified that a port is unmaintained or the existing maintainer ha
</span> ----
 Check [path]`/var/tmp` for the new directory.
 In most cases, its name should be equal to the name of the port you want to maintain.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In those few cases where it is not (i.e., the so-called `subports` feature is used), check the output of `port dir $portname` for the correct name. 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-. Change to the new directory and run `port info` to make sure everything went right. Note that running any port command without a port name tries to use the [path]`Portfile` in the current directory. This is very helpful when testing modifications or new ports, so keep this in mind. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In those few cases where it is not (i.e., the so-called `+subports+` feature is used), check the output of `+port dir $portname+` for the correct name. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Change to the new directory and run `+port info+` to make sure everything went right. Note that running any port command without a port name tries to use the [path]`Portfile` in the current directory. This is very helpful when testing modifications or new ports, so keep this in mind. 
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -415,11 +413,11 @@ To use the current port, you must be in a port's directory.
</span> Pay attention to the part in the brackets in the first line.
 It will either contain a permission problem (in which case you need to adjust the permissions of your [path]`Portfile` and the folders leading up to it), or a Tcl error message, in case of syntax errors in the [path]`Portfile`.
 Also check that the copy of the working directory is in fact the current working directory in your shell.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. Open the [path]`Portfile` in your favorite editor and look for the line that starts with ``maintainer``. Delete `nomaintainer` from the line if it exists and add your own GitHub username or email address. For GitHub usernames, prefix your username with an `@` sign. Email addresses should be written in the form ``domain.tld:localpart``. The address is obfuscated to prevent email harvesters from automatically grabbing your address. If you want, you can start fixing bugs in the [path]`Por [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. Open the [path]`Portfile` in your favorite editor and look for the line that starts with ``+maintainer+``. Delete `+nomaintainer+` from the line if it exists and add your own email address and GitHub username, grouped together with curly braces. Email addresses should be written in the form ``+domain.tld:localpart+``. (The address is obfuscated to prevent email harvesters from automatically grabbing your address.) For GitHub usernames, prefix your username with an `+@+` sign. For examp [...]
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-At this point, please read <<project.update-policies.nonmaintainer>> and familiarize yourself with the meaning of ``openmaintainer``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Consider adding `openmaintainer` to speed up and simplify small updates of your port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If you decided to allow minor updates without consultation, add ``openmaintainer``, separated with a space, to the `maintainer` line of the [path]`Portfile`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+At this point, please read <<project.update-policies.nonmaintainer>> and familiarize yourself with the meaning of ``+openmaintainer+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Consider adding `+openmaintainer+` to speed up and simplify small updates of your port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you decided to allow minor updates without consultation, add ``+openmaintainer+``, separated with a space, to the `+maintainer+` line of the [path]`Portfile`.
</span> +
 Once you are done, save the file and verify the [path]`Portfile` structure using MacPorts' builtin lint check:
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -441,14 +439,14 @@ It is printed because the copy of the port's directory is not in a directory nam
</span> Please try to address all other warnings and error messages, though.
 If you need help, feel free to continue and add a note to the ticket you will create asking for instructions.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Finally, run `port info` again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Finally, run `+port info+` again.
</span> The maintainers line in the output should now contain your email address or GitHub username.
 +
 
 [NOTE]
 ====
 If you made changes other than the maintainer line, you might want to test build and installation as well.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To do that, run `sudo port destroot` in the port's directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To do that, run `+sudo port destroot+` in the port's directory.
</span> If you see
 
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -456,7 +454,7 @@ Error: Unable to execute port: Could not open file: /private/var/tmp/somewhere/P
</span> ----
 
 check the permissions of the [path]`Portfile` and all folders above it.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-They must be readable by the `macports` user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+They must be readable by the `+macports+` user.
</span> The easiest way to ensure this is to run
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -465,8 +463,8 @@ The easiest way to ensure this is to run
</span> ----
 
 If the port fails to build, see the [path]`main.log` referenced in the error message for details.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If the build completes successfully, run `sudo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                port clean` to clean up all leftovers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If the build completes successfully, run `+sudo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                port clean+` to clean up all leftovers.
</span> ====
 . Create a patch from the changes you made to the [path]`Portfile` and possible related files. To do that, run
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -479,8 +477,8 @@ If the build completes successfully, run `sudo
</span> in the directory where you edited the [path]`Portfile`.
 You can inspect the generated unified diff in [path]`change-$portname-maintainer.diff` if you want.
 . If you are only changing the maintainer, https://github.com/macports/macports-ports/pulls[file a pull request on GitHub].
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. You may also https://trac.macports.org/newticket[file a new ticket in Trac] to change the maintainer, though GitHub pull requests are preferred. Set *type* to **enhancement**. Leave the *milestone* field empty. If you added yourself as co-maintainer, add the other maintainers in the *Cc* field. Finally, fill in the *port* field, set *keywords* to `haspatch` (because you are attaching a patch), check the box that you want to attach files to the ticket and submit. After submission, attac [...]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-. If you are also fixing a bug, make a separate commit for that in your pull request, or attach a separate patch for that change to the same ticket. If you are fixing a bug that already has a ticket, attach a patch fixing the bug there and file the maintainer change in a separate ticket (with a separate patch) as discussed above. In general, please create a separate patch for each semantic change. Doing so simplifies reviewing. It enables each independent change to be accepted without wo [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. You may also https://trac.macports.org/newticket[file a new ticket in Trac] to change the maintainer, though GitHub pull requests are preferred. Set *type* to **enhancement**. Leave the *milestone* field empty. If you added yourself as co-maintainer, add the other maintainers in the *Cc* field. Finally, fill in the *port* field, set *keywords* to `+haspatch+` (because you are attaching a patch), check the box that you want to attach files to the ticket and submit. After submission, att [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. If you are also fixing a bug, make a separate commit for that in your pull request, or attach a separate patch for that change to the same ticket. If you are fixing a bug that already has a ticket, attach a patch fixing the bug there and file the maintainer change in a separate ticket (with a separate patch) as discussed above. In general, please create a separate patch for each semantic change. Doing so simplifies reviewing. It enables each independent change to be accepted without wo [...]
</span> . If your pull request or ticket doesn't receive any attention within a few days you may send an email to mailto:macports-dev@lists.macports.org[] and request a review and/or commit. Please include a link to the pull request or ticket.
 
 Once you are the maintainer for a port, all new pull requests and tickets for this port will be assigned to you.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -500,7 +498,14 @@ See details below.
</span> If you have a port update or bugfix for a port you do not maintain, to respect the rights of the port maintainer you should follow the following guidelines:
 
 . If a port's maintainer is mailto:nomaintainer@macports.org[], you may feel free to make updates and/or take maintainership of the port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-. If a port's maintainer contains the address mailto:openmaintainer@macports.org[], this means that the author allows minor updates to the port without contacting them first. But permission should still be sought for major changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+. If a port's maintainer contains the address mailto:openmaintainer@macports.org[], this means that the author allows minor updates to the port by other committers without contacting them first. But permission should still be sought for major changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Committers are expected to investigate as thoroughly as necessary to confirm that an update is in fact minor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Some projects have made quite major changes with only a tiny change to the version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+And of course a committer should always verify that a port not only builds but works correctly after a change, before pushing it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Pull requests for maintained ports should not be merged by anyone other than their creator or the port maintainer until the 72-hour timeout period has passed, even if the port is openmaintainer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is because the change is either from a non-committer, or from a committer who could have just pushed the change directly, and by opening a PR is signalling a desire to have the change reviewed by the maintainer.
</span> . Create patch file(s) as necessary, attach them to a Trac ticket, and assign the ticket to the maintainer (or Cc the maintainer, if you are unable to assign tickets).
 . Wait for a response from the maintainer. The maintainer should apply the patches and close the ticket within 72 hours.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -574,7 +579,7 @@ For each change you want to make:
</span> ----
 $ $EDITOR guide/xml/guide.xml
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-.. Verify your changes are still valid XML. If the [cmd]``make validate`` command reports errors, fix the XML sources until you see no more error messages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.. Verify your changes are still valid XML. If the [cmd]``+make validate+`` command reports errors, fix the XML sources until you see no more error messages
</span> +
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -609,9 +614,9 @@ This may be done by having a record of contribution to the project in several of
</span> *** Involvement on MacPorts development and/or user support mailing lists.
 *** Contributing with documentation.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To apply for MacPorts commit rights, send a brief email to the PortMgr team at mailto:macports-mgr@lists.macports.org[] entitled "Commit access: ``Your Name``" with the following contents:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To apply for MacPorts commit rights, send a brief email to the PortMgr team at mailto:macports-mgr@lists.macports.org[] entitled "Commit access: ``+Your Name+``" with the following contents:
</span> *** a description of your application and why you think you deserve commit rights. Include evidence of contributions to MacPorts as described above; at best add direct links to Trac tickets or Trac searches that make the review easier for the PortMgr team.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** your github username. This will be used as the identity the "handle", as part of your ```handle``@macports.org` alias.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** your github username. This will be used as the identity the "handle", as part of your `+``+handle+``@macports.org+` alias.
</span> *** a real e-mail address to which you'd like your MacPorts alias to forward.
 
 The PortMgr team will consider all applications and provide an appropriate response as soon as they get to it.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/adoc/using.adoc b/guide/adoc/using.adoc
</span><span style='display:block; white-space:pre;color:#808080;'>index cfb10f4..83f3967 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/adoc/using.adoc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/adoc/using.adoc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,18 +9,18 @@
</span> :idseparator: -
 :sourcedir: .
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-This chapter describes using [cmd]``port``, port variants, common tasks and port binaries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This chapter describes using [cmd]``+port+``, port variants, common tasks and port binaries.
</span> 
 [[using.port]]
 == The port Command
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[cmd]``port`` is the main utility used to interact with MacPorts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[cmd]``+port+`` is the main utility used to interact with MacPorts.
</span> It is used to update [path]`Portfile`s and the MacPorts infrastructure, and install and manage ports.
 
 [[using.port.help]]
 === port help
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `help` action shows some brief information about the specified action, or if no action is specified, shows basic usage information for [cmd]``port`` in general.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+help+` action shows some brief information about the specified action, or if no action is specified, shows basic usage information for [cmd]``+port+`` in general.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,7 +41,7 @@ Upgrade MacPorts itself and run the sync target
</span> [[using.port.selfupdate]]
 === port selfupdate
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `selfupdate` action should be used regularly to update the local ports tree with the global MacPorts ports repository so you will have the latest versions of software packages available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+selfupdate+` action should be used regularly to update the local ports tree with the global MacPorts ports repository so you will have the latest versions of software packages available.
</span> It also checks for new releases of MacPorts itself, and upgrades it when necessary.
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,33 +52,33 @@ $ sudo port selfupdate
</span> ----
 
 ---> Updating MacPorts base sources using rsync
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.3 installed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.3 downloaded.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.2 installed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.2 downloaded.
</span> ---> Updating the ports tree
 ---> MacPorts base is already the latest version
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If `selfupdate` detects that a newer version of MacPorts is available, it automatically updates the installed copy of MacPorts base to the latest released version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If `+selfupdate+` detects that a newer version of MacPorts is available, it automatically updates the installed copy of MacPorts base to the latest released version.
</span> In that case, you will see this message:
 
 ----
 
 ---> Updating MacPorts base sources using rsync
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.2 installed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.3 downloaded.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.1 installed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.2 downloaded.
</span> ---> Updating the ports tree
<span style='display:block; white-space:pre;background:#ffe0e0;'>----> MacPorts base is outdated, installing new version 2.4.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---> MacPorts base is outdated, installing new version 2.6.2
</span> Installing new MacPorts release in /opt/local as root:admin; permissions 755
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If the `selfupdate` procedure fails you'll see a message like this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If the `+selfupdate+` procedure fails you'll see a message like this:
</span> 
 ----
 Error installing new MacPorts base: command execution failed
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-As always, you can use the debug flag `-d` to enable verbose output.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If your `selfupdate` failed, re-run it with debug output enabled to see all output generated by the build system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+As always, you can use the debug flag `+-d+` to enable verbose output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If your `+selfupdate+` failed, re-run it with debug output enabled to see all output generated by the build system.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,53 +87,50 @@ $ sudo port -d selfupdate
</span> 
 The output may give you an idea why the build failed.
 Look for the first occurrences of "`error`".
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you cannot figure out what's wrong yourself, feel free to ask on the mailto:macports-users@lists.macports.org[] mailing list and attach the output generated by [cmd]``sudo port -d selfupdate``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you cannot figure out what's wrong yourself, feel free to ask on the mailto:macports-users@lists.macports.org[] mailing list and attach the output generated by [cmd]``+sudo port -d selfupdate+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`selfupdate` accepts a single switch:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+selfupdate+` accepts a single switch:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--no-sync`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--no-sync+`::
</span> Only update MacPorts itself, do not update the tree of [path]`Portfile`s.
 
 [[using.port.sync]]
 === port sync
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `sync` action performs a subset of ``selfupdate``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-It synchronizes the ports tree, as does ``selfupdate``, but it does not check for MacPorts upgrades.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+sync+` action performs a subset of ``+selfupdate+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It synchronizes the ports tree, as does ``+selfupdate+``, but it does not check for MacPorts upgrades.
</span> On macOS, unless there is a special reason not to do so, run <<using.port.selfupdate,selfupdate>> instead.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`sync` does not accept any switches.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+sync+` does not accept any switches.
</span> 
 [[using.port.diagnose]]
 === port diagnose
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `diagnose` action checks for common issues in the user's environment and reports all issues it finds to the user, along with possible fixes for said problem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+diagnose+` action checks for common issues in the user's environment and reports all issues it finds to the user, along with possible fixes for said problem.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`diagnose` accepts a single switch:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+diagnose+` accepts a single switch:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--quiet`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--quiet+`::
</span> Only displays warnings and errors, rather than the status of all tests run.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[NOTE]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-====
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This command will only be available in MacPorts version 2.4 and above.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-====
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> [[using.port.reclaim]]
 === port reclaim
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `reclaim` action attempts to reclaim space by uninstalling inactive ports, and removing unnecessary files that were downloaded during the installation process. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+reclaim+` action attempts to reclaim space by uninstalling inactive ports, and removing unnecessary files that were downloaded during the installation process. 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`reclaim` does not accept any switches.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+reclaim+` accepts switches to configure automatic reminders.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If passed, the reclaim process will not be run.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[NOTE]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-====
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This command will only be available in MacPorts version 2.4 and above.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-====
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--enable-reminders+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable regular reminders to run [cmd]``+port reclaim+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--disable-reminders+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Disable regular reminders to run [cmd]``+port reclaim+``.
</span> 
 [[using.port.list]]
 === port list
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `list` action lists the currently available version of the specified ports, or if no ports are specified, displays a list of all available ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+list+` action lists the currently available version of the specified ports, or if no ports are specified, displays a list of all available ports.
</span> The list of available ports is very long, so use <<using.port.search,search>> if you are looking for a specific port.
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,39 +140,39 @@ $ port list
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[cmd]``port list`` always lists the most recent version available in MacPorts, which is not necessarily the version you have installed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For this reason, [cmd]``port list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        installed`` likely produces unexpected output.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In most cases where you would ``list``, using `installed` or `echo` is the better choice instead.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Both [cmd]``port installed`` and [cmd]``port echo installed`` would produce the output you might expect from the command, [cmd]``port list installed`` will not (and, to make matters worse, will be slow).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-You will hardly need [cmd]``port list`` at all to work with MacPorts.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When searching, [cmd]``port search`` is the better choice and when trying to list ports, [cmd]``port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        installed`` and [cmd]``port echo`` are much more useful.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[cmd]``+port list+`` always lists the most recent version available in MacPorts, which is not necessarily the version you have installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For this reason, [cmd]``+port list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        installed+`` likely produces unexpected output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In most cases where you would ``+list+``, using `+installed+` or `+echo+` is the better choice instead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Both [cmd]``+port installed+`` and [cmd]``+port echo installed+`` would produce the output you might expect from the command, [cmd]``+port list installed+`` will not (and, to make matters worse, will be slow).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You will hardly need [cmd]``+port list+`` at all to work with MacPorts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When searching, [cmd]``+port search+`` is the better choice and when trying to list ports, [cmd]``+port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        installed+`` and [cmd]``+port echo+`` are much more useful.
</span> ====
 
 [[using.port.search]]
 === port search
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `search` action allows finding ports by partial matches of the name or description.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Other fields can be matched against, and matched in different ways, by using options. [cmd]``port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    search`` is the tool of choice if you are looking for a specific software in MacPorts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+search+` action allows finding ports by partial matches of the name or description.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Other fields can be matched against, and matched in different ways, by using options. [cmd]``+port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    search+`` is the tool of choice if you are looking for a specific software in MacPorts.
</span> We recommend you read up on some of its flags to improve your efficiency when searching for ports.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Run [cmd]``port help search`` for an exhaustive list of possible switches.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Run [cmd]``+port help search+`` for an exhaustive list of possible switches.
</span> 
 Suppose you are looking for PHP in MacPorts.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You might start with [cmd]``port search php`` and notice your query produces a lot of output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You might start with [cmd]``+port search php+`` and notice your query produces a lot of output.
</span> In fact, at the time of writing this, this search produces 661 matches.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-By default, [cmd]``port search`` searches both name and description of a port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-While we're looking for PHP, we can reduce the number of hits by using the `--name` flag.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Furthermore, we only want ports whose name starts with "`php`", so we add the `--glob` flag (actually, we could leave it out because it is the default) and modify the search term to ``php*``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, [cmd]``+port search+`` searches both name and description of a port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+While we're looking for PHP, we can reduce the number of hits by using the `+--name+` flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Furthermore, we only want ports whose name starts with "`php`", so we add the `+--glob+` flag (actually, we could leave it out because it is the default) and modify the search term to ``+php*+``:
</span> 
 [source]
 ----
 $ port search --name --glob 'php*'
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Furthermore, we can enable compact output by using the `--line` switch.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Furthermore, we can enable compact output by using the `+--line+` switch.
</span> This causes only a single line to be printed for each match:
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -183,10 +180,10 @@ This causes only a single line to be printed for each match:
</span> $ port search --name --line --glob 'php*'
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Among a large number of PHP modules you will find the main PHP ports, which are named php``<version>``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Among a large number of PHP modules you will find the main PHP ports, which are named php``+<version>+``.
</span> Choose one to install.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you know regex and know about the format of the PHP versions, you can further reduce the output of [cmd]``port search``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you know regex and know about the format of the PHP versions, you can further reduce the output of [cmd]``+port search+``:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -205,7 +202,7 @@ php56   5.6.0RC2  lang www    PHP: Hypertext Preprocessor
</span> ----
 
 Let us look at another example that is less complicated.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Assuming you are looking for ``rrdtool``, a popular system to store and graph time-series data, the simple search approach works well:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Assuming you are looking for ``+rrdtool+``, a popular system to store and graph time-series data, the simple search approach works well:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -253,55 +250,55 @@ rrdtool @1.4.7_5 (net)
</span> Found 11 ports.
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The possible switches to `search` and their meaning are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The possible switches to `+search+` and their meaning are:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--case-sensitive`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--case-sensitive+`::
</span> Match the search string in a case-sensitive manner.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--exact`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--exact+`::
</span> Match the literal search string exactly.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--glob`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Treat the given search string as glob search string (i.e., expand wildcards ``\*``, ``?``, and ``[chars]``). This is the default behavior.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--glob+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Treat the given search string as glob search string (i.e., expand wildcards ``+\*+``, ``+?+``, and ``+[chars]+``). This is the default behavior.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--regex`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--regex+`::
</span> Treat the given search string as regular expression.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--field`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Test the search string against ``<field>``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--field+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Test the search string against ``+<field>+``.
</span> Can be specified multiple times to test against multiple fields.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The default is ``--name --description``.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Possible values for `<field>` are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default is ``+--name --description+``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Possible values for `+<field>+` are
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``--category``, `--categories`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+--category+``, `+--categories+`::
</span> Search for ports in a given category.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``--depends``, ``--depends_build``, ``--depends_extract``, ``--depends_fetch``, ``--depends_lib``, `--depends_run`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+--depends+``, ``+--depends_build+``, ``+--depends_extract+``, ``+--depends_fetch+``, ``+--depends_lib+``, `+--depends_run+`::
</span> Search for ports that depend on the port given as search string.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `--depends` is an alias for all other `--depends_` options combined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+--depends+` is an alias for all other `+--depends_+` options combined.
</span> Note that only dependencies specified in default variants will be found.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``--description``, `--long_description`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+--description+``, `+--long_description+`::
</span> Test the search string against ports' descriptions.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--homepage`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--homepage+`::
</span> Test the search string against the homepage field of all ports.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``--maintainer``, `--maintainers`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+--maintainer+``, `+--maintainers+`::
</span> Search for ports maintained by a specific maintainer.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--name`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--name+`::
</span> Search only ports' names.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--portdir`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--portdir+`::
</span> Test the search string against the path of the directory that contains the port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``--variant``, `--variants`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+--variant+``, `+--variants+`::
</span> Search for variant names.
 [[using.port.info]]
 === port info
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `info` action is used to get information about a port: name, version, description, variants, homepage, dependencies, license, and maintainers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+info+` action is used to get information about a port: name, version, description, variants, homepage, dependencies, license, and maintainers.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -330,7 +327,7 @@ Maintainers:          cal@macports.org
</span> [[using.port.deps]]
 === port deps
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `deps` action lists the dependencies of a port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+deps+` action lists the dependencies of a port.
</span> Dependencies are the packages are required by a port at runtime (library and runtime dependencies) or required to install it (build, fetch, and extract dependencies).
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -344,7 +341,7 @@ Library Dependencies: apr, apr-util, expat, openssl, pcre, perl5, zlib
</span> ----
 
 Note that the list of dependencies might depend on the variants you chose.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For example, choosing the `\+openldap` variant of `apache2` adds a dependency on ``openldap``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For example, choosing the `+\+openldap+` variant of `+apache2+` adds a dependency on ``+openldap+``:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -356,21 +353,21 @@ Full Name: apache2 @2.2.27_0+openldap+preforkmpm
</span> Library Dependencies: apr, apr-util, expat, openssl, pcre, perl5, zlib, openldap
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`deps` accepts two switches:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+deps+` accepts two switches:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--index`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--index+`::
</span> Do not read the [path]`Portfile` to determine dependencies.
 Instead, rely on the information cached in the port index.
 Note that (despite specifying them), this option will ignore any effects of variants.
 It is, however, much faster.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--no-build`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--no-build+`::
</span> Exclude dependencies only required at build time, i.e., fetch, extract, and build dependencies.
 
 [[using.port.variants]]
 === port variants
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `variants` action allows you to check what variations of a port are available before you install it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+variants+` action allows you to check what variations of a port are available before you install it.
</span> Variants are a way for port authors to provide options you can use to customize your build at install time.
 See <<using.variants.invoking,Invoking Port Variants>> below to install ports that have variants.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -394,17 +391,17 @@ apache2 has the variants:
</span> 
 This output lists all variants followed by their description.
 If a variant depends on or conflicts with other variants, a line detailing that follows.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-A variant name prefixed by `\+` indicates that it has been enabled (on the command line), while a prefix `-` indicates that it has been disabled.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When bracketed, a prefix `\+` means that the variant is enabled by default.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Any `[]` are derived from the [path]`Portfile`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-While `()` are derived from the [path]`variants.conf`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A variant name prefixed by `+\++` indicates that it has been enabled (on the command line), while a prefix `+-+` indicates that it has been disabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When bracketed, a prefix `+\++` means that the variant is enabled by default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Any `+[]+` are derived from the [path]`Portfile`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+While `+()+` are derived from the [path]`variants.conf`.
</span> See <<internals.configuration-files.variants-conf>> for more information on [path]`variants.conf`.
 
 [[using.port.install]]
 === port install
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The action `install` is used to install a port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Once you determined the name of a port you want (possibly using <<using.port.search,[cmd]``port search``>>), you can install it using this command.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The action `+install+` is used to install a port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once you determined the name of a port you want (possibly using <<using.port.search,[cmd]``+port search+``>>), you can install it using this command.
</span> See <<using.variants.invoking>> on how to choose variants when installing a new port.
 For example,
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -413,9 +410,9 @@ For example,
</span> $ sudo port install apache2 -preforkmpm +workermpm
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-installs the `apache2` port without the ``preforkmpm``, but with the `workermpm` variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+installs the `+apache2+` port without the ``+preforkmpm+``, but with the `+workermpm+` variant.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If the installation of a port fails, you can enable verbose or debug output by giving the `-v` or `-d` flag to port:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If the installation of a port fails, you can enable verbose or debug output by giving the `+-v+` or `+-d+` flag to port:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -424,7 +421,7 @@ $ sudo port -v install apache2
</span> 
 All debug information is also kept in [path]`main.log` for the port you installed.
 Its path will be printed automatically if the installation fails.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can manually get the path using [cmd]``port logfile portname``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can manually get the path using [cmd]``+port logfile portname+``.
</span> Note that logfiles will automatically be deleted on successful installation.
 
 If the installation of a port fails, you should always clean and try again, i.e., run
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -437,7 +434,7 @@ $ sudo port clean portname
</span> and re-execute the command you ran before.
 
 You might also want to try enabling trace mode, which can prevent conflicts caused by files installed by other ports or in common system locations, such as [path]`/usr/local`.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To do that, re-run the installation with the `-t` flag, i.e.,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To do that, re-run the installation with the `+-t+` flag, i.e.,
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -450,7 +447,7 @@ If the port still fails to install after you have followed these steps, please <
</span> ====
 The installation of a single port consists of multiple phases.
 These phases are fetch, extract, patch, configure, build, destroot, archive, and finally install.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You may break up a port's installation into smaller steps for troubleshooting by using the name of one of these phases as action rather than ``install``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You may break up a port's installation into smaller steps for troubleshooting by using the name of one of these phases as action rather than ``+install+``.
</span> For example
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -458,32 +455,32 @@ For example
</span> $ sudo port destroot apache2
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-will run the installation of `apache2` until the destroot phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+will run the installation of `+apache2+` until the destroot phase.
</span> See <<reference.phases>> for a complete list of phases and a detailed description.
 ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`install` takes the following switches:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+install+` takes the following switches:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--no-rev-upgrade`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-By default, a binary sanity check called `rev-upgrade` is run automatically after each successful installation.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Pass this flag, if you want to avoid running this step, for example if you want to run it explicitly later after a number of installations using [cmd]``sudo port rev-upgrade``, or if you know it will detect problems but want to defer dealing with them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--no-rev-upgrade+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, a binary sanity check called `+rev-upgrade+` is run automatically after each successful installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Pass this flag, if you want to avoid running this step, for example if you want to run it explicitly later after a number of installations using [cmd]``+sudo port rev-upgrade+``, or if you know it will detect problems but want to defer dealing with them.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--unrequested`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-By default, each port you install using the `install` explicitly (contrary to ports installed as a dependency of a different port) is marked as "`requested`".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--unrequested+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+By default, each port you install using the `+install+` explicitly (contrary to ports installed as a dependency of a different port) is marked as "`requested`".
</span> If you want MacPorts to treat a port you installed manually as if it was automatically installed as a dependency (e.g., if a dependency failed to build and you re-tried installing the dependency only), pass this flag.
 
 [[using.port.clean]]
 === port clean
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The action `clean` deletes intermediate files created by MacPorts while installing a port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-A [cmd]``port clean`` is often necessary when builds fail and should be the first thing to try after a failed installation attempt.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The action `+clean+` deletes intermediate files created by MacPorts while installing a port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A [cmd]``+port clean+`` is often necessary when builds fail and should be the first thing to try after a failed installation attempt.
</span> 
 [source]
 ----
 $ sudo port clean portname
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[cmd]``port clean`` can also be used to remove corrupted downloads after a failed `fetch` phase, by specifying the `--dist` flag:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[cmd]``+port clean+`` can also be used to remove corrupted downloads after a failed `+fetch+` phase, by specifying the `+--dist+` flag:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -492,28 +489,28 @@ $ sudo port clean --dist portname
</span> 
 deletes all files that have been downloaded for the given port.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`clean` accepts the following options:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+clean+` accepts the following options:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--archive`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--archive+`::
</span> Remove temporary archives.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--dist`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--dist+`::
</span> Remove downloaded files.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--logs`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--logs+`::
</span> Remove log files.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--work`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--work+`::
</span> Remove the [path]`work` directory, i.e., the directory used by MacPorts to build a software.
 This removes all traces of an attempted build and is the default operation.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--all`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--all+`::
</span> All of the above combined.
 
 [[using.port.uninstall]]
 === port uninstall
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `uninstall` action will remove an installed port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+uninstall+` action will remove an installed port.
</span> It is one of the actions you will use fairly often in MacPorts.
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -539,14 +536,14 @@ Error: port uninstall failed: Please uninstall the ports that depend on libcomer
</span> ----
 
 You can recursively uninstall all ports that depend on the given port before uninstalling the port itself to work around this.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To do that, use the `--follow-dependents` flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To do that, use the `+--follow-dependents+` flag.
</span> 
 [source]
 ----
 $ sudo port uninstall --follow-dependents libcomerr
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can also override this safety check using the `-f` (force) flag. _Since
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can also override this safety check using the `+-f+` (force) flag. _Since
</span>                     this will obviously break the dependents you shouldn't do this unless you know what you are
                     doing._
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -556,28 +553,28 @@ $ sudo port -f uninstall libcomerr
</span> ----
 
 Uninstalling a port will not uninstall ports that have been automatically installed as dependencies of the uninstalled port and are otherwise unused.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can trigger this behavior by passing the `--follow-dependencies` flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can trigger this behavior by passing the `+--follow-dependencies+` flag.
</span> Ports that were manually installed (i.e., are marked as "`requested`") or have other dependents will not be removed.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can manually uninstall the unneeded ports later using the `leaves` pseudo-port, e.g., using [cmd]``sudo port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    uninstall leaves``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can manually uninstall the unneeded ports later using the `+leaves+` pseudo-port, e.g., using [cmd]``+sudo port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    uninstall leaves+``.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`uninstall` supports the following switches:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+uninstall+` supports the following switches:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--follow-dependents`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--follow-dependents+`::
</span> Recursively uninstall ports that depend on the specified port before uninstalling the port itself.
 See also the textual description above.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--follow-dependencies`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--follow-dependencies+`::
</span> Also uninstall ports that were automatically installed as dependencies of the removed port and are no longer needed.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--no-exec`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--no-exec+`::
</span> Avoid running any uninstall hooks, such as commands that update cache files.
 
 [[using.port.contents]]
 === port contents
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `contents` action displays a list of all files that have been installed by a given port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-You can only use `contents` for ports you installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+contents+` action displays a list of all files that have been installed by a given port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can only use `+contents+` for ports you installed.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -593,7 +590,7 @@ Port xorg-renderproto contains:
</span>   /opt/local/share/doc/renderproto/renderproto.txt
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Common uses for `contents` are finding the location of a port's executable after installing it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Common uses for `+contents+` are finding the location of a port's executable after installing it.
</span> The following line is usually helpful in this case:
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -601,41 +598,41 @@ The following line is usually helpful in this case:
</span> $ port -q contents portname | grep -E '/s?bin/'
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `-q` (quiet) flag suppresses the header line in this case, but is not strictly necessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+-q+` (quiet) flag suppresses the header line in this case, but is not strictly necessary.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`contents` accepts:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+contents+` accepts:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--size`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--size+`::
</span> Prints a human-readable representation of the files' sizes.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--units UNIT`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Used in conjunction with `--size` to choose the unit of the file size.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Valid parameters for `UNIT` are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--units UNIT+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Used in conjunction with `+--size+` to choose the unit of the file size.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Valid parameters for `+UNIT+` are
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`B`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+B+`::
</span> List sizes in bytes.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``K``, ``Ki``, or `KiB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``KiB``, i.e., 1024 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+K+``, ``+Ki+``, or `+KiB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+KiB+``, i.e., 1024 bytes.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``Mi``, or `MiB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``MiB``, i.e., 1024 * 1024 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+Mi+``, or `+MiB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+MiB+``, i.e., 1024 * 1024 bytes.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``Gi``, or `GiB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``GiB``, i.e., 1024 * 1024 * 1024 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+Gi+``, or `+GiB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+GiB+``, i.e., 1024 * 1024 * 1024 bytes.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``k``, or `kB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``kB``, i.e., 1000 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+k+``, or `+kB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+kB+``, i.e., 1000 bytes.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``M``, or `MB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``MB``, i.e., 1000 * 1000 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+M+``, or `+MB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+MB+``, i.e., 1000 * 1000 bytes.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-``G``, or `GB`::
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-List sizes in ``GB``, i.e., 1000 * 1000 * 1000 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+``+G+``, or `+GB+`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+List sizes in ``+GB+``, i.e., 1000 * 1000 * 1000 bytes.
</span> [[using.port.installed]]
 === port installed
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `installed` action displays the installed versions and variants of the specified ports, or if no ports are specified, all installed ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+installed+` action displays the installed versions and variants of the specified ports, or if no ports are specified, all installed ports.
</span> It also displays whether a port is "`active`", i.e., whether the files belonging to this port are currently present on disk or inactive, i.e., stashed away in a compressed tarball.
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -664,7 +661,7 @@ The following ports are currently installed:
</span>   zlib @1.2.8_0 (active)
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Use `-v` to also display the platform and CPU architecture(s) for which the ports were built, and any variants which were explicitly negated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Use `+-v+` to also display the platform and CPU architecture(s) for which the ports were built, and any variants which were explicitly negated.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -680,8 +677,8 @@ The following ports are currently installed:
</span> [[using.port.outdated]]
 === port outdated
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `outdated` action checks your installed ports against the current ports tree to see they have been updated since you installed them.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Note that you will only get new versions by updating your ports tree using `<<using.port.selfupdate,selfupdate>>` (or ``sync``).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+outdated+` action checks your installed ports against the current ports tree to see they have been updated since you installed them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note that you will only get new versions by updating your ports tree using `+<<using.port.selfupdate,selfupdate>>+` (or ``+sync+``).
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -702,14 +699,14 @@ p5.16-gnupg-interface          0.330.0_3 < 0.500.0_1
</span> p5.16-ipc-run                  0.910.0_1 < 0.920.0_0
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-[cmd]``port outdated`` lists the ports for which an upgrade is available and on the second column, why MacPorts thinks the port needs an upgrade.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[cmd]``+port outdated+`` lists the ports for which an upgrade is available and on the second column, why MacPorts thinks the port needs an upgrade.
</span> In most cases, this will be an increase in the version number.
 If it isn't, more details will be given.
 
 [[using.port.upgrade]]
 === port upgrade
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `upgrade` action upgrades installed ports and their dependencies to the latest version available in MacPorts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+upgrade+` action upgrades installed ports and their dependencies to the latest version available in MacPorts.
</span> In most cases, you will run
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -732,7 +729,7 @@ Do not attempt to prevent this, since it will very likely lead to problems later
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`upgrade` does not uninstall the old version of a port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+upgrade+` does not uninstall the old version of a port.
</span> Instead, it deactivates it, i.e., it stashes the files belonging to the older version away in a tarball.
 This allows you to go back to the older version if there happens to be a problem with the updated one.
 To do that, run
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -751,7 +748,7 @@ $ sudo port activate portname @old-version
</span> 
 to go back to the old version.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you do not want to keep the old versions around while upgrading, you can pass `-u` when upgrading:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you do not want to keep the old versions around while upgrading, you can pass `+-u+` when upgrading:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -768,12 +765,12 @@ $ sudo port uninstall inactive
</span> once in a while.
 ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`upgrade` accepts a number of switches:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+upgrade+` accepts a number of switches:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--force`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--force+`::
</span> Always consider the given ports outdated, regardless of whether they actually are.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--enforce-variants`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--enforce-variants+`::
</span> If the installed variants do not match those requested, upgrade (and change variants) even if the port is not outdated.
 You can use this to switch the variant selection on an installed port, e.g., using
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -784,8 +781,8 @@ You can use this to switch the variant selection on an installed port, e.g., usi
</span> $ sudo port upgrade --enforce-variants apache2 -preforkmpm +workermpm
 ----
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Note that `--enforce-variants` will also enforce your variant selection in all dependencies.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If you know this is not necessary, you can avoid processing dependencies using the global `-n` flag:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note that `+--enforce-variants+` will also enforce your variant selection in all dependencies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you know this is not necessary, you can avoid processing dependencies using the global `+-n+` flag:
</span> +
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -793,13 +790,13 @@ If you know this is not necessary, you can avoid processing dependencies using t
</span> ----
 $ sudo port -n upgrade --enforce-variants apache2 -preforkmpm +workermpm
 ----
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--no-replace`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--no-replace+`::
</span> Do not automatically install replacement ports for a port that you have installed, but was replaced with a different one.
 
 [[using.port.dependents]]
 === port dependents
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `dependents` action reports what ports depend upon a given (installed) port, if any.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+dependents+` action reports what ports depend upon a given (installed) port, if any.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -826,7 +823,7 @@ textmate2 depends on openssl
</span> wireshark depends on openssl
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Note that `dependents` does not work for ports that are not installed on your system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Note that `+dependents+` does not work for ports that are not installed on your system.
</span> If you want to find out, which ports depend on a port that you have not installed, you can use
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -839,7 +836,7 @@ This command will, however, not cover dependencies that are only present in non-
</span> [[using.port.livecheck]]
 === port livecheck
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The `livecheck` action checks to see if the application corresponding to a given port has been updated at the developer's download site.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The `+livecheck+` action checks to see if the application corresponding to a given port has been updated at the developer's download site.
</span> This action is mostly useful for port maintainers to determine whether their port needs to be updated, but other may also wish to see if a port packages the latest available version.
 See <<reference.livecheck>> for more information on livecheck.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -854,8 +851,8 @@ rb19-sass seems to have been updated (port version: 3.3.10, new version: 3.3.14)
</span> 
 [NOTE]
 ====
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If `livecheck` finds no higher version at the port's download site, it prints nothing.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The option `-d` (debug) may be used for detailed livecheck processing information.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If `+livecheck+` finds no higher version at the port's download site, it prints nothing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The option `+-d+` (debug) may be used for detailed livecheck processing information.
</span> ====
 
 [[using.port.lint]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -893,9 +890,9 @@ Warning: no license set
</span> --->  0 errors and 3 warnings found.
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`lint` has the following flag:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+lint+` has the following flag:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-`--nitpick`::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+`+--nitpick+`::
</span> Enables additional checks that are mostly whitespace-related and best practices.
 
 [[using.variants]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -932,9 +929,9 @@ apache2 has the variants:
</span> 
 This output lists all variants followed by their description.
 If a variant depends on or conflicts with other variants, a line with the details on that follows.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Variant lines that have a `\+` are enabled and those with `-` are disabled.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Any `[]` are derived from the [path]`Portfile`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-While `()` are derived from the [path]`variants.conf`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Variant lines that have a `+\++` are enabled and those with `+-+` are disabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Any `+[]+` are derived from the [path]`Portfile`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+While `+()+` are derived from the [path]`variants.conf`.
</span> See <<internals.configuration-files.variants-conf>> for more information on [path]`variants.conf`.
 
 [[using.variants.invoking]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -964,7 +961,7 @@ $ sudo port install apache2 -preforkmpm +workermpm
</span> 
 Note that you will not see any confirmation of successful variant selection and MacPorts will not warn you if you misspelled a variant's name.
 If your installation is successful, but the chosen feature still seems to be missing, check for possible typos.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can use [cmd]``<<using.port.installed,port installed>>`` to verify that the port has been installed with the chosen variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can use [cmd]``+<<using.port.installed,port installed>>+`` to verify that the port has been installed with the chosen variant.
</span> 
 This happens because MacPorts will also use the specified variants for any dependencies.
 For example,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -974,8 +971,8 @@ For example,
</span> $ sudo port install apache2 +mariadb
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-is accepted even though `apache2` does not have a `\+mariadb` variant.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-However, it depends on the `apr-util` port which does have the `\+mariadb` variant and will be installed with it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+is accepted even though `+apache2+` does not have a `+\+mariadb+` variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+However, it depends on the `+apr-util+` port which does have the `+\+mariadb+` variant and will be installed with it.
</span> 
 MacPorts will remember the variants that were used when installing a port.
 If you upgrade a port later, the same variants will be used, unless you manually specify different variants.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -999,7 +996,7 @@ $ sudo port install apache2 -preformmpm +workermpm
</span> This section lists common operations you may want to perform when managing a MacPorts installation.
 These are the workflows you will need most while using MacPorts.
 We recommend you read at least this section as a primer into how to use MacPorts.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-More details about the usage can be found in <<using.port>> and the `port(1)` manpage available by running [cmd]``man 1 port`` in a Terminal.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+More details about the usage can be found in <<using.port>> and the `+port(1)+` manpage available by running [cmd]``+man 1 port+`` in a Terminal.
</span> 
 Mind the "`sudo`" for some of the subsequent examples, which is necessary if you have a default MacPorts installation.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1008,7 +1005,7 @@ Mind the "`sudo`" for some of the subsequent examples, which is necessary if you
</span> 
 The local ports tree is a collection of files that contain information on which packages are available through MacPorts and how they can be installed.
 You should regularly update your ports tree to get access to updated versions of software and bug fixes.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To do that, use ``selfupdate``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To do that, use ``+selfupdate+``:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1018,8 +1015,8 @@ $ sudo port selfupdate
</span> ----
 Password:
 ---> Updating MacPorts base sources using rsync
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.3 installed,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts base version 2.4.3 downloaded.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.2 installed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts base version 2.6.2 downloaded.
</span> ---> Updating the ports tree
 ---> MacPorts base is already the latest version
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1030,9 +1027,9 @@ The ports tree has been updated. To upgrade your installed ports, you should run
</span> [[using.common-tasks.showports]]
 === Show Ports Which Need Updating
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To see what's new after running ``selfupdate``, you can use [cmd]``port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    outdated`` to generate a list of ports that have newer versions available.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This can help in estimating the time required for [cmd]``sudo port upgrade outdated``, even though this depends on further factors such as binary package availability and a port's build time.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To see what's new after running ``+selfupdate+``, you can use [cmd]``+port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    outdated+`` to generate a list of ports that have newer versions available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This can help in estimating the time required for [cmd]``+sudo port upgrade outdated+``, even though this depends on further factors such as binary package availability and a port's build time.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1180,7 +1177,7 @@ If you want to find all ports that depend on a given other port, you can use
</span> $ port echo depends:portname
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If you are only interested in the dependent ports that you actually have installed, you can use the quicker and more accurate ``dependents``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you are only interested in the dependent ports that you actually have installed, you can use the quicker and more accurate ``+dependents+``:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1192,7 +1189,7 @@ gnupg2 depends on libksba
</span> gpg-agent depends on libksba
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MacPorts also has a recursive version of the `dependents` action called ``rdependents``:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacPorts also has a recursive version of the `+dependents+` action called ``+rdependents+``:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1227,7 +1224,7 @@ The following ports are currently installed:
</span> === Finding Leaves
 
 After a while of using MacPorts, installing and uninstalling ports, packages that have been automatically installed as dependencies for other ports are left behind, even though they are no longer necessary.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Ports that have not been manually installed ("`requested`") and do not have any dependents are called "`leaves`" and can be identified using the `leaves` pseudo-port, for example in conjunction with the `echo` or `installed` action.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Ports that have not been manually installed ("`requested`") and do not have any dependents are called "`leaves`" and can be identified using the `+leaves+` pseudo-port, for example in conjunction with the `+echo+` or `+installed+` action.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1257,15 +1254,9 @@ $ sudo port uninstall leaves
</span> ----
 
 Note that the uninstallation can cause new ports to become leaves.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To uninstall all leaves, you would have to repeat the process until [cmd]``port echo leaves`` comes back empty.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-To automate this, you can use `--follow-dependencies` when uninstalling.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-[source]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$ sudo port uninstall --follow-dependencies leaves
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To uninstall all leaves, you can use the `+rleaves+` pseudo-port instead.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To go through this process interactively so you can make sure you're not uninstalling anything you want to keep, you can install the `port_cutleaves` port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To go through this process interactively so you can make sure you're not uninstalling anything you want to keep, you can install the `+port_cutleaves+` port.
</span> After installation, run it with
 
 [source]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1298,11 +1289,11 @@ yasm                           @1.2.0_0
</span> ----
 
 Now it is up to the user to decide what's needed and what is not.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-We've noticed `pkgconfig` is needed to build many ports, and while it is strictly not needed after installation, we'd like to keep it around to avoid installing it over and over again. ``python32``, ``texi2html``, and `yasm` are only needed to update ``mplayer2``, and since that software is rarely updated, we will re-install those ports again when they are needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+We've noticed `+pkgconfig+` is needed to build many ports, and while it is strictly not needed after installation, we'd like to keep it around to avoid installing it over and over again. ``+python32+``, ``+texi2html+``, and `+yasm+` are only needed to update ``+mplayer2+``, and since that software is rarely updated, we will re-install those ports again when they are needed.
</span> Since they are all distributable, MacPorts will use pre-built binaries for their installation anyway, so re-installing them wouldn't take long anyway.
 We don't really know why the rest of the leaves were installed, so we're just going to remove them for now.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Since we decided to keep ``pkgconfig``, we are going to mark it as manually installed ("`requested`" in MacPorts lingo) using:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since we decided to keep ``+pkgconfig+``, we are going to mark it as manually installed ("`requested`" in MacPorts lingo) using:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1317,7 +1308,7 @@ $ sudo port uninstall leaves
</span> ----
 
 Note that uninstalling leaves may mark new ports as leaves, so you will have to repeat the process.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You can install the `port_cutleaves` port, which is a special script for the job.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can install the `+port_cutleaves+` port, which is a special script for the job.
</span> It allows you to interactively decide whether to keep or uninstall a port.
 Run it as
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1450,7 +1441,7 @@ They allow MacPorts utilities to skip the build (which is usually the phase that
</span> Binary archives are automatically created whenever a port is installed, and can also be downloaded from a server.
 MacPorts runs a buildbot infrastructure that creates prebuilt binary packages for all ports in MacPorts for the default installation prefix.
 Buildbots exist for systems later or equal to Snow Leopard.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-If a port builds successfully and its license and those of its dependencies allow binary redistribution, the archives are uploaded to `packages.macports.org` and will be automatically used by MacPorts during installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If a port builds successfully and its license and those of its dependencies allow binary redistribution, the archives are uploaded to `+packages.macports.org+` and will be automatically used by MacPorts during installation.
</span> 
 You can manually create an archive (and see debug output for its creation) using
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1497,34 +1488,34 @@ DEBUG: Archive logrotate-3.8.6_2+gzip.darwin_13.x86_64.tbz2 packaged
</span> ----
 
 Binary archive files are placed in [path]`${prefix}/var/macports/software/`.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The archive file type is set in [path]`macports.conf` using the `portarchivetype` key.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The default format is ``tbz2``; other options are: ``tar``, ``tbz``, ``tbz2``, ``tgz``, ``tlz``, ``txz``, ``xar``, ``zip``, ``cpgz``, and ``cpio``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The archive file type is set in [path]`macports.conf` using the `+portarchivetype+` key.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The default format is ``+tbz2+``; other options are: ``+tar+``, ``+tbz+``, ``+tbz2+``, ``+tgz+``, ``+tlz+``, ``+txz+``, ``+xar+``, ``+zip+``, ``+cpgz+``, and ``+cpio+``.
</span> 
 [[using.binaries.binary-packages]]
 === Binary Packages
 
 Binary packages are standalone binary installers that are precompiled; they do not require MacPorts on the target system.
 As such, they are helpful in generating disk images or installers to be redistributed to users without relying on MacPorts for installation.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Binary installers created with MacPorts are usually `$$.$$pkg` (macOS Installer packages). MacPorts can also convert a `$$.$$pkg` package into a macOS `$$.$$dmg` disk image.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-You can create binary packages using [cmd]``port`` as shown in the following examples.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Binary installers created with MacPorts are usually `+$$.$$pkg+` (macOS Installer packages). MacPorts can also convert a `+$$.$$pkg+` package into a macOS `+$$.$$dmg+` disk image.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You can create binary packages using [cmd]``+port+`` as shown in the following examples.
</span> 
 [WARNING]
 ====
 If you want to create installer packages using MacPorts for redistribution, make sure you do not use a standard installation of MacPorts in [path]`/opt/local`.
 If you do that, your installer package conflicts with MacPorts on systems that _do_ have MacPorts installed.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Instead, follow <<installing.macports.source.multiple>> and choose a prefix specific to the software you are trying to package, e.g., [path]`/opt/logrotate` for ``logrotate``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Instead, follow <<installing.macports.source.multiple>> and choose a prefix specific to the software you are trying to package, e.g., [path]`/opt/logrotate` for ``+logrotate+``.
</span> Then use this custom MacPorts installation to build your package.
 ====
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Create a macOS `$$.$$pkg` installer for the `pstree` port:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Create a macOS `+$$.$$pkg+` installer for the `+pstree+` port:
</span> 
 [source]
 ----
 $ sudo port pkg pstree
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-You may also create a macOS `$$.$$dmg` disk image file instead:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+You may also create a macOS `+$$.$$dmg+` disk image file instead:
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1540,7 +1531,7 @@ Create one using:
</span> $ sudo port mpkg gimp2
 ----
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Just as with a single package, a metapackage can also be wrapped in a ``$$.$$dmg``.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Just as with a single package, a metapackage can also be wrapped in a ``+$$.$$dmg+``.
</span> 
 [source]
 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1552,4 +1543,4 @@ All packages are placed in a port's work directory, which you can locate using:
</span> [source]
 ----
 $ port work portname
<span style='display:block; white-space:pre;background:#ffe0e0;'>-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+----
</span>\ No newline at end of file
</pre><pre style='margin:0'>

</pre>