|
NAMEmakeplist —
generate a
pkg-plist file for
ports(7)SYNOPSIS
DESCRIPTIONThemakeplist script is a tool for
ports(7)
maintainers and committers, to generate a pkg-plist
file.
ARGUMENTSThe following arguments are accepted:
OPTIONSThe following options are support:
IMPLEMENTATION NOTESIn order to make effective use ofmakeplist some
knowledge about it is required.
LimitationsThe exponential growth of possible combinations of options puts a hard limit on automated plist generation. Themakeplist script does
not support cases where files are only installed if a combination of options
is given.
The tool is built around the assumption that options do not affect each other. The following subsections describe what exactly is supported and workarounds for common cases where this is not the case. ConfigurationsThe core idea ofmakeplist is to run
“make stage ” and create a list of the
files in the staging area. This functionality is provided by the
ports(7)
when running “make makeplist ”.
In order to identify all the files installed by each option
staging is performed for every option. The trivial approach of staging with
one option at a time is not possible when
StagingUsuallymakeplist calls “make
clean stage ” for each configuration. One exception to this rule
is when ports define NO_BUILD in which case
“make restage ” is called. This means
that the extract target is only performed during the
first stage cycle. And it breaks if extraction is affected by options.
Build FailureIn case one or more configurations fail an error message with the build options and the name of the log file will be printed after the plist is created. Only logs of failed builds are kept. The logs are created under /tmp and compressed using gzip(1). They can be viewed with the command “gunzip -c
logfile | less -R ”.
Plist AccumulationAfter every stage cycle all files installed into theSTAGEDIR are collected for later assembly of the
plist.
Certain files are not included, these files are selected using the following ports(7) variables:
This can be used to deal with cases that violate the independent
option principle. E.g. if there is a number of options to switch certain
modules on/off and a Plist CreationFiles in the generated plist are sorted alphabetically by sort(1)-n .
Common files installed independent of the given options are listed
first, followed by the option specific files. Option specific files appear
in alphabetical order of the options. The options
In the next stage of plist creation the reverse of the
substitutions defined in In the final stage of plist creation
EXAMPLESThe current directory is a port to create a pkg-plist for:% makeplist The quiet mode suppresses the build output: % makeplist -q Instead of creating the file pkg-plist.makeplist overwrite the pkg-plist file: % makeplist -o pkg-plist To create a pkg-plist as an unprivileged user run: % env
WRKDIRPREFIX='/var/tmp/obj.${USER}' makeplist -o ~/myplist The WRKDIRPREFIX?=/var/tmp/obj.${USER} There is no need to % makeplist
games/ioquake3-devel The ports tree does not have to be in /usr/ports: % env PORTSDIR=$HOME/ports.svn
makeplist games/ioquake3-devel Or just use % cd ~/ports.svn/games/ioquake3-devel
&& makeplist A port listing all its files in
% makeplist -I
PLIST_FILES SEE ALSOports(7), make(1), pkg-greate(8)HISTORYThemakeplist script first appeared in the bsda2-0.2.0
release.
AUTHORSDominic Fandrey <freebsd@k4m1.org>
Visit the GSP FreeBSD Man Page Interface. |