make depends genplist create <prefix> genplist diff genplist commit genplist test genplist clean
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 "pkg-plist.new" and "man-plist.new" 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:
3. Examine the files "pkg-plist.new" and "man-plist.new" 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 pkg-plist.new to pkg-plist. )
5. Insert the contents of man-plist.new into your port Makefile, if appropriate.
MAN1= (insert man-plist.new 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.
7. Clean up
cd Newports/science/afni genplist create /home/bacon/Test_ports genplist diff vi pkg-plist.new (make any necessary manual changes) genplist commit vi Makefile (insert man-plist, and edit) genplist test genplist clean
then genplist will execute the command
after generating pkg-plist.new. 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.
Jason W. Bacon Acadix Consulting, LLC
Greg Larkin SourceHosting.net Olli Hauer FreeBSD.org