GSP
Quick Navigator

Search Site

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

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  GENPLIST (1)

NAME

GENPLIST - Generate a static plist

CONTENTS

Synopsis
Example
Author
Contributors

SYNOPSIS



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



DESCRIPTION

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 "pkg-plist.new" and "man-plist.new", respectively. The file "man-list.new" 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 "pkg-plist.new" 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 "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".

IMPORTANT:

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 "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. )



    genplist commit



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.



    genplist test



7. Clean up



    genplist clean



EXAMPLE



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

PLUG-INS

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 pkg-plist.new, with pkg-plist as the sole command-line argument. For example, if there is a script named



    ~/.genplist/ape



then genplist will execute the command



    ~/.genplist/ape pkg-plist.new



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.

SEE ALSO

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

AUTHOR



Jason W. Bacon
Acadix Consulting, LLC

CONTRIBUTORS



Greg Larkin
SourceHosting.net

Olli Hauer FreeBSD.org

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


GENPLIST (1) -->

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