Index: head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml =================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml (revision 45578) +++ head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml (revision 45579) @@ -1,203 +1,203 @@ - The <filename>pkg-*</filename> Files + <filename>pkg-*</filename> There are some tricks we have not mentioned yet about the pkg-* files that come in handy sometimes. <filename>pkg-message</filename> - If you need to display a message to the installer, you may + To display a message when the package is installed, place the message in pkg-message. This capability is often useful to display additional installation steps to be taken after a pkg install or to display licensing information. When some lines about the build-time knobs or warnings - have to be displayed, use ECHO_MSG. The - pkg-message file is only for + have to be displayed, use ECHO_MSG. + pkg-message is only for post-installation steps. Likewise, the distinction between - ECHO_MSG and ECHO_CMD - should be kept in mind. The former is for printing - informational text to the screen, while the latter is for + ECHO_MSG is for printing + informational text to the screen and ECHO_CMD + is for command pipelining: update-etc-shells: @${ECHO_MSG} "updating /etc/shells" @${CP} /etc/shells /etc/shells.bak @( ${GREP} -v ${PREFIX}/bin/bash /etc/shells.bak; \ ${ECHO_CMD} ${PREFIX}/bin/bash) >/etc/shells @${RM} /etc/shells.bak - The pkg-message file does not need - to be added to pkg-plist. + Do not add an entry for pkg-message + in pkg-plist. <filename>pkg-install</filename> - If your port needs to execute commands when the binary + If the port needs to execute commands when the binary package is installed with pkg add or - pkg install you can do this via the - pkg-install script. This script will - automatically be added to the package, and will be run twice by - pkg the first time as ${SH} + pkg install, use + pkg-install. This script will + automatically be added to the package. It will be run twice by + pkg, the first time as ${SH} pkg-install ${PKGNAME} PRE-INSTALL before the - package is installed and the second time as + package is installed, and the second time as ${SH} pkg-install ${PKGNAME} POST-INSTALL after it has been installed. $2 can be tested to determine which mode the script is being run in. The PKG_PREFIX environmental variable will be set to the package installation directory. <filename>pkg-deinstall</filename> This script executes when a package is removed. This script will be run twice by pkg delete The first time as ${SH} pkg-deinstall ${PKGNAME} DEINSTALL before the port is de-installed and the second time as ${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL after the port has been de-installed. $2 can be tested to determine which mode the script is being run in. The PKG_PREFIX environmental variable will be set to the package installation directory Changing the Names of - <filename>pkg-<replaceable>*</replaceable></filename> - Files + pkg-* All the names of - pkg-* files are - defined using variables so you can change them in your - Makefile if need be. This is especially - useful when you are sharing the same + pkg-* are + defined using variables that can be changed in the + Makefile if needed. This is especially + useful when sharing the same pkg-* files - among several ports or have to write to one of the above files - (see writing to places other than + among several ports or when it is necessary to write to one of these files. + See writing to places other than WRKDIR for why it is a bad idea to - write directly into the + write directly into + the directory containing the pkg-* - subdirectory). + files. Here is a list of variable names and their default values. (PKGDIR defaults to ${MASTERDIR}.) Variable Default value DESCR ${PKGDIR}/pkg-descr PLIST ${PKGDIR}/pkg-plist PKGINSTALL ${PKGDIR}/pkg-install PKGDEINSTALL ${PKGDIR}/pkg-deinstall PKGMESSAGE ${PKGDIR}/pkg-message Making Use of <varname>SUB_FILES</varname> and <varname>SUB_LIST</varname> - The SUB_FILES and - SUB_LIST variables are useful for dynamic + SUB_FILES and + SUB_LIST are useful for dynamic values in port files, such as the installation PREFIX in pkg-message. - The SUB_FILES variable specifies a list + SUB_FILES specifies a list of files to be automatically modified. Each file in the SUB_FILES list must have a corresponding file.in present in FILESDIR. A modified version will be created as ${WRKDIR}/file. Files defined as a value of USE_RC_SUBR (or the deprecated USE_RCORDER) are automatically - added to the SUB_FILES. For the files + added to SUB_FILES. For the files pkg-message, pkg-install, and pkg-deinstall, the corresponding Makefile variable is automatically set to point to the processed version. - The SUB_LIST variable is a list of - VAR=VALUE pairs. For each pair - %%VAR%% will get replaced with + SUB_LIST is a list of + VAR=VALUE pairs. For each pair, + %%VAR%% will be replaced with VALUE in each file listed in SUB_FILES. Several common pairs are automatically defined: PREFIX, LOCALBASE, DATADIR, DOCSDIR, EXAMPLESDIR, WWWDIR, and ETCDIR. Any line beginning with @comment will be deleted from resulting files after a variable substitution. - The following example will replace + This example replaces %%ARCH%% with the system architecture in a pkg-message: SUB_FILES= pkg-message SUB_LIST= ARCH=${ARCH} - Note that for this example, the - pkg-message.in file must exist in + Note that for this example, + pkg-message.in must exist in FILESDIR. Example of a good pkg-message.in: Now it is time to configure this package. Copy %%PREFIX%%/share/examples/putsy/%%ARCH%%.conf into your home directory as .putsy.conf and edit it.