PKG-KEYWORDS(5) FreeBSD File Formats Manual PKG-KEYWORDS(5)
NAME
Keywords - files to extend the number of keywords available for plist
DESCRIPTION
pkg-create(8) and pkg-register(8) can parse a plist file, which describes
the content of a package to be created/registered. The plist format is
documented in the pkg-create(8) manpage .
Keywords are files that extends the number of keywords available to a
plist. Those files are in UCL format.
The format is the following:
actions
Array of actions which defines how to treat the argument(s) of
the keywords. Valid actions are:
dir Consider the argument of the keyword as a directory and
register it as such in the package
file Consider the argument of the keyword as a regular file
and register it as such in the package
arguments
Boolean which tells pkg(8) if it should parse the argument of the
keyword or not. If true then pkg will make split it using spaces
as token and make the argument available to:
actions
Any action will now accept a number that will represent
the argument passed to the action via parenthesis.
shell and lua scripts
New variables will be available to scripts: %<number>.
attributes
attributes that can be set to a file or a directory depending if
actions has been set. It will take precedence over the
attributes that may have been set when calling the keyword.
Attributes can be:
owner string
Name of the owner of the file or directory.
group string
Name of the group of the file or directory.
mode string
mode of the file or directory, this mode can be in octal
or string form.
deprecated
Boolean to mark a keyword as deprecated
deprecation_message
Message to be show if the keyword is used and mark as deprecated
preformat_arguments
Boolean to activate preformatting the arguments of the keywords,
respecting the escape sequences described below.
prepackaging
lua script which is executed at the packaging time. Useful to
add some input validation.
pre-install
shell script to be run during the pre-install phase. It will be
merged with any existing pre-install scripts. The script will be
formatted respecting the escape sequences described below.
post-install
shell script to be run during the post-install phase. It will be
merged with any existing post-install scripts. The script will
be formatted respecting the escape sequences described below.
pre-deinstall
shell script to be run during the pre-deinstall phase. It will
be merged with any existing pre-deinstall scripts. The script
will be formatted respecting the escape sequences described
below.
post-deinstall
shell script to be run during the post-deinstall phase. It will
be merged with any existing post-deinstall scripts. The script
will be formatted respecting the escape sequences described
below.
pre-install-lua
Lua script to be run during the pre-install phase. It will be
appended with any existing array of lua pre-install scripts. The
script will be formatted respecting the escape sequences
described below.
post-install-lua
Lua script to be run during the post-install phase. It will be
appended with any existing array of lua post-install scripts.
The script will be formatted respecting the escape sequences
described below.
pre-deinstall-lua
Lua script to be run during the pre-deinstall phase. It will be
appended with any existing array of lua pre-deinstall scripts.
The script will be formatted respecting the escape sequences
described below.
post-deinstall-lua
Lua script to be run during the post-deinstall phase. It will be
appended with any existing array of lua post-deinstall scripts.
The script will be formatted respecting the escape sequences
described below.
messages
Array of test messages that can be passed to the users. Valid
information by entry in the array are:
message string
actual message to be shown to the users.
type [upgrade | remove | install]
defines in which context the message should be shown to
the users. If not set, the message will always be
printed.
ESCAPE SEQUENCE
If line contains any of the following sequences somewhere in it, they
will be expanded inline. For the following examples, assume that @cwd is
set to /usr/local and the last extracted file was bin/emacs.
%F Expands to the last filename extracted (as specified), in the
example case bin/emacs.
%D Expand to the current directory prefix, as set with @cwd, in the
example case /usr/local.
%B Expand to the "basename" of the fully qualified filename, that is
the current directory prefix, plus the last filespec, minus the
trailing filename. In the example case, that would be
/usr/local/bin.
%f Expand to the filename part of the fully qualified name, or the
converse of %B, being in the example case, emacs.
SEE ALSO
pkg_checksum(3), pkg_create(3), pkg_printf(3), pkg_repo_create(3),
pkg_repos(3), pkg-lua-script(5), pkg-repository(5), pkg-script(5),
pkg-triggers(5), pkg.conf(5), pkg(8), pkg-add(8), pkg-alias(8),
pkg-annotate(8), pkg-audit(8), pkg-autoremove(8), pkg-check(8),
pkg-checksum(8), pkg-clean(8), pkg-config(8), pkg-create(8),
pkg-delete(8), pkg-fetch(8), pkg-help(8), pkg-info(8), pkg-install(8),
pkg-key(8), pkg-lock(8), pkg-plugins(8), pkg-query(8), pkg-register(8),
pkg-repo(8), pkg-repositories(8), pkg-rquery(8), pkg-rwhich(8),
pkg-search(8), pkg-set(8), pkg-shell(8), pkg-shlib(8), pkg-ssh(8),
pkg-stats(8), pkg-triggers(8), pkg-unregister(8), pkg-update(8),
pkg-updating(8), pkg-upgrade(8), pkg-version(8), pkg-which(8)
FreeBSD 15.1-STABLE-HBSD December 12, 2025 PKG-KEYWORDS(5)