Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages
GENPLIST(1) FreeBSD General Commands Manual GENPLIST(1)

GENPLIST - Generate a static plist

make depends
genplist create <prefix>
genplist diff
genplist commit
genplist test
genplist clean

The genplist command generates a packing list and a man page listing for the port in the current directory, roughly following the plist generation process outlined in the FreeBSD Porters' Handbook. The files are saved to "" and "", respectively. The file "" is intended for inclusion in the port Makefile as a list of filenames assigned to one or more of the MAN(N) variables. The file "" can simply be renamed to "pkg-plist" once it has been verified (and edited if necessary).

When using genplist, the port will be built and installed with a non-standard prefix. Hence, before using genplist, all dependencies should be installed using pkg_add(1) or make depends, so that they don't inherit the prefix from genplist.

For the "create" subcommand, the user must specify an installation prefix:

    genplist create <prefix>

The port will be installed into <prefix>/$PORTNAME. This directory must not exist at the time genplist is invoked. If the directory exists, genplist will abort with an error message, rather than overwrite it. A typical prefix is /tmp, but note that /tmp may not have enough space for large ports.

If the installation prefix does not exist, genplist will create an installation tree under this directory using mtree, install the port there, and generate "" and "" based on its contents.

The installation prefix is automatically saved for use by subsequent genplist subcommands such as "test" and "clean".


Prerequisite ports should generally be installed separately first, so that they are installed under the default PREFIX (usually /usr/local), rather than inheriting the prefix given to genplist.

The general procedure can be outlined as follows:

1. Generate a new plist:

    genplist create /home/bacon/Test_ports

2. Visually inspect the differences between the old and new plists:

    genplist diff

3. Examine the files "" and "" and make any necessary changes. No changes should be necessary for most simple ports. For a complex port, genplist should be regarded only as an aid to generating the final plist. Generating an exact packing list for complex ports requires a certain degree of intelligence, so the 90/10 rule is invoked here in the interest of keeping this tool simple.

4. Commit the new plist. ( Renames to pkg-plist. )

    genplist commit

5. Insert the contents of into your port Makefile, if appropriate.

    MAN1=     (insert here)

6. Test the new plist, to make sure the port deinstalls cleanly. This process will perform an install and deinstall using the same prefix specified in the "create" step, and then check for leftover files in the install tree.

    genplist test

7. Clean up

    genplist clean

cd Newports/science/afni
genplist create /home/bacon/Test_ports
genplist diff
vi (make any necessary manual changes)
genplist commit
vi Makefile (insert man-plist, and edit)
genplist test
genplist clean

The genplist script can be extended for a particular port by creating a script or program named $HOME/.genplist/portname. If present, such scripts are called by genplist immediately after generating, with pkg-plist as the sole command-line argument. For example, if there is a script named


then genplist will execute the command


after generating This allows the port maintainer to perform additional automated edits that are specific to each port. This feature facilitates completely automated plist generation, while keeping the base genplist script reasonably simple.

ports(7), port(1), portlint(1)

Jason W. Bacon
Acadix Consulting, LLC

Greg Larkin
Olli Hauer

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.