|UPDATE-PLIST(1)||General Commands Manual||UPDATE-PLIST(1)|
update-plistis a helper script for the target update-plist in bsd.port.mk(5). Along with options and environment variables,
update-plistuses the exact same options and arguments that would be passed to pkg_create(1). Since pkg_create(1) normally takes one single actual pkgname, there is no ambiguity in
MULTI_PACKAGESsituations. The first set of arguments correspond to the ‘default package’. If
PORTS_PRIVSEPis in effect,
update-plistis run as root, but will switch back to
FAKE_TREE_OWNERfor scanning the installation directory and to
PORTS_TREE_OWNERfor writing packing-lists.
update-plistmay need to know the
PORTSDIRlocation in order to scan dependencies to trim common directories. The options are as follows:
update-plistassumes all multi-packages live under the same installation directory (pkg_create(1)'s
-Boption), and it will scan all paths under that directory and dispatch them into corresponding subpackages, using the following heuristics:
update-plistwill warn for a lot of conditions, such as pre-formatted manpages, or files ending in pre-patch suffixes. Adding a
@commentintentional<reason> will silence the warning. For instance:
@man man/ja_JP.EUC/cat1/kakasi.0 @comment intentional: mandoc does't handle this locale
update-plistwill also scan dependencies, in order to strip common directories. If the pkglocatedb package is installed,
update-plistwill make use of it and report unregistered conflicts. This can be disabled with
-Fas it is time-consuming. Most
SUBST_VARSvariables will be back-substituted into the regenerated packing-lists, starting from the longest variable values.
update-plisttries to keep existing substitutions. It does not add new substitutions on
BUILD_PKGPATH, it does only substitute
FULLPKGNAMEin share/doc/pkg-readmes and it currently does not add new substitutions for
MACHINE_ARCH. Specific items such as shared libraries or binaries will gain annotations and special handling, for instance
LIBlibname_VERSION. Existing packing-lists are scanned for non-file entries, such as
execmarkers. Those will be inserted into the updated packing-lists at the most likely position.
update-plistwill first write files as <file>.new, then it will display which files are new and which files have changed. If old packing-lists already exist, it will move old packing lists into <file>.orig unless these already exist, then move the new files into position. pkg_add(1), pkg_create(1), bsd.port.mk(5)
update-plistmight be the most complicated piece of the ports infrastructure. There will always be cases that require manual intervention. Since fake is now run as non-root,
update-plistcan't figure out users and groups for new files, so these should be considered carefully.
|June 26, 2018||OpenBSD-current|