From 7fcbc8283ac47d23ca130622b43571b7a12defd2 Mon Sep 17 00:00:00 2001 From: Marc Espie Date: Sun, 19 Oct 2003 18:38:07 +0000 Subject: Add manpages, with a few minor changes from old ones. ok pval --- usr.sbin/pkg_add/pkg_create.1 | 465 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 465 insertions(+) create mode 100644 usr.sbin/pkg_add/pkg_create.1 (limited to 'usr.sbin/pkg_add/pkg_create.1') diff --git a/usr.sbin/pkg_add/pkg_create.1 b/usr.sbin/pkg_add/pkg_create.1 new file mode 100644 index 00000000000..2fb5406b229 --- /dev/null +++ b/usr.sbin/pkg_add/pkg_create.1 @@ -0,0 +1,465 @@ +.\" $OpenBSD: pkg_create.1,v 1.1 2003/10/19 18:38:06 espie Exp $ +.\" +.\" FreeBSD install - a package for the installation and maintenance +.\" of non-core utilities. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" Jordan K. Hubbard +.\" +.\" +.\" @(#)pkg_create.1 +.\" from FreeBSD Id: pkg_create.1,v 1.19 1997/05/02 22:00:05 max Exp +.\" +.\" hacked up by John Kohl for NetBSD--fixed a few bugs, extended keywords, +.\" added dependency tracking, etc. +.\" +.\" [jkh] Took John's changes back and made some additional extensions for +.\" better integration with FreeBSD's new ports collection. +.\" +.Dd April 21, 1995 +.Dt PKG_CREATE 1 +.Os +.Sh NAME +.Nm pkg_create +.Nd a utility for creating software package distributions +.Sh SYNOPSIS +.Nm pkg_create +.Bk -words +.Op Fl Ohv +.Op Fl P Ar dpkgs +.Op Fl C Ar cpkgs +.Op Fl p Ar prefix +.Op Fl i Ar iscript +.Op Fl k Ar dscript +.Op Fl r Ar rscript +.Op Fl s Ar fake-prefix +.Op Fl S Ar fake-base +.Op Fl t Ar template +.Op Fl X Ar excludefile +.Op Fl D Ar displayfile +.Op Fl m Ar mtreefile +.Fl c Ar comment +.Fl d Ar description +.Fl f Ar packlist +.Ar pkg-name +.Ek +.Sh DESCRIPTION +The +.Nm +command is used to create packages that will subsequently be fed to +one of the package extraction/info utilities. +The input description +and command line arguments for the creation of a package are not +really meant to be human-generated, though it is easy enough to +do so. +It is more expected that you will use a front-end tool for +the job rather than muddling through it yourself. +Nonetheless, a short +description of the input syntax is included in this document. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl f Ar packinglist +Fetch +.Dq packing list +for package from the file +.Ar packinglist +or stdin if +.Ar packinglist +is a dash +.Dq \&- . +.It Fl c [ Ar \&- ] Ns Ar desc +Fetch package +.Dq one line description +from file +.Ar desc +or, if preceded by +.Dq \&- , +the argument itself. +This string should also +give some idea of which version of the product (if any) the package +represents. +.It Fl d [ Ar \&- ] Ns Ar desc +Fetch long description for package from file +.Ar desc +or, if preceded by +.Dq \&- , +the argument itself. +.It Fl Y +Assume a default answer of +.Dq Yes +for any questions asked. +.It Fl N +Assume a default answer of +.Dq \&No +for any questions asked. +.It Fl O +Go into a +.Dq packing list only +mode. +This is used to do +.Dq fake pkg_add +operations when a package is installed. +In such cases, it is necessary to know what the final, adjusted packing +list will look like. +.It Fl v +Turn on verbose output. +.It Fl h +Force +.Xr tar +to follow symbolic links, so that the files they point to +are dumped, rather than the links themselves. +.It Fl i Ar iscript +Set +.Ar iscript +to be the install procedure for the package. +This can be any executable program (or shell script). +It will be invoked automatically +when the package is later installed. +.It Fl P Ar dpkgs +Set the initial package dependency list to +.Ar dpkgs . +This is assumed to be a whitespace separated list of package names +and is meant as a convenient shorthand for specifying multiple +.Cm @pkgdep +directives in the packing list (see +.Sx PACKING LIST DETAILS +section below). +.It Fl C Ar cpkgs +Set the initial package conflict list to +.Ar cpkgs . +This is assumed to be a whitespace separated list of package names +and is meant as a convenient shorthand for specifying multiple +.Cm @pkgcfl +directives in the packing list (see +.Sx PACKING LIST DETAILS +section below). +.It Fl p Ar prefix +Set +.Ar prefix +as the initial directory +.Dq base +to start from in selecting files for +the package, and to record as the base for installing the package. +.It Fl s Ar fake-prefix +Set +.Ar fake-prefix +as the real initial directory +to start from in selecting files for the package. +.It Fl S Ar fake-base +Set +.Ar fake-base +as the prefix to prepend to any file to select for the package. +.It Fl k Ar dscript +Set +.Ar dscript +to be the de-install procedure for the package. +This can be any executable program (or shell script). +It will be invoked automatically +when the package is later (if ever) de-installed. +.It Fl r Ar rscript +Set +.Ar rscript +to be the +.Dq requirements +procedure for the package. +This can be any executable program (or shell script). +It will be invoked automatically +at installation/deinstallation time to determine whether or not +installation/deinstallation should proceed. +.It Fl t Ar template +Use +.Ar template +as the input to +.Xr mkstemp 3 . +By default, this is the string +.Pa /tmp/instmp.XXXXXX , +but it may be necessary to override it in the situation where +space in your +.Pa /tmp +directory is limited. +Be sure to leave some number of +.Dq X +characters for +.Xr mkstemp 3 + to fill in with a unique ID. +.It Fl X Ar excludefile +Pass +.Ar excludefile +as a +.Fl exclude-from +argument to +.Xr tar +when creating final package. +See +.Xr tar +man page (or run +.Xr tar +with +.Fl -help +flag) for further information on using this flag. +.It Fl D Ar displayfile +Display the file (using +.Xr more 1 ) +after installing the package. +Useful for things like +legal notices on almost-free software, etc. +.It Fl m Ar mtreefile +Run +.Xr mtree 8 +with input from mtreefile before the package is installed. +.Xr mtree +is invoked as +.Cm mtree +.Fl u +.Fl f +.Ar mtreefile +.Fl d +.Fl e +.Fl p +.Pa prefix , +where +.Pa prefix +is the name of the first directory named by a +.Cm @cwd +directive. +.El +.Sh PACKING LIST DETAILS +The +.Dq packing list +format (see +.Fl f ) +is fairly simple, being +nothing more than a single column of filenames to include in the +package. +However, since absolute pathnames are generally a bad idea +for a package that could be installed potentially anywhere, there is +another method of specifying where things are supposed to go +and, optionally, what ownership and mode information they should be +installed with. +This is done by imbedding specialized command sequences +in the packing list. +Briefly described, these sequences are: +.Bl -tag -width indent +.It Cm @cwd Ar directory +Set the internal directory pointer to point to +.Ar directory . +All subsequent filenames will be assumed relative to this directory. +Note: +.Cm @cd +is also an alias for this command. +.It Cm @src Ar directory +Set the internal directory pointer for creation +.Em only +to +.Ar directory . +That is to say that it overrides +.Cm @cwd +for package creation but not extraction. +.It Cm @exec Ar command +Execute +.Ar command +as part of the unpacking process. +If +.Ar command +contains any of the following sequences somewhere in it, they will +be expanded inline. +For the following examples, assume that +.Cm @cwd +is set to +.Pa /usr/local +and the last extracted file was +.Pa bin/emacs . +.Bl -tag -width indent +.It Cm "\&%F" +Expands to the last filename extracted (as specified); in the example case, +.Pa bin/emacs . +.It Cm "\&%D" +Expands to the current directory prefix, as set with +.Cm @cwd ; +in the example case +.Pa /usr/local . +.It Cm "\&%B" +Expands to the +.Dq 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 +.Pa /usr/local/bin . +.It Cm "\&%f" +Expands to the +.Dq filename +part of the fully qualified name, or +the converse of +.Cm \&%B ; +in the example case, +.Pa emacs . +.El +.It Cm @unexec Ar command +Execute +.Ar command +as part of the deinstallation process. +Expansion of special +.Cm \&% +sequences is the same as for +.Cm @exec . +This command is not executed during the package add, as +.Cm @exec +is, but rather when the package is deleted. +This is useful +for deleting links and other ancillary files that were created +as a result of adding the package, but not directly known to +the package's table of contents (and hence not automatically +removable). +The advantage of using +.Cm @unexec +over a deinstallation script is that you can use the +.Dq special sequence expansion +to get at files regardless of where they've +been potentially redirected (see +.Fl p ) . +.It Cm @mode Ar mode +Set default permission for all subsequently extracted files to +.Ar mode . +Format is the same as that used by the +.Cm chmod +command (well, considering that it's later handed off to it, that's +no surprise). +Use without an arg to set back to default (extraction) permissions. +.It Cm @owner Ar user +Set default ownership for all subsequently extracted files to +.Ar user . +Use without an arg to set back to default (extraction) +ownership. +.It Cm @group Ar group +Set default group ownership for all subsequently extracted files to +.Ar group . +Use without an arg to set back to default (extraction) +group ownership. +.It Cm @comment Ar string +Imbed a comment in the packing list. +Useful in trying to document some particularly hairy sequence that +may trip someone up later. +.It Cm @ignore +Used internally to tell extraction to ignore the next file (don't +copy it anywhere), as it's used for some special purpose. +.It Cm @name Ar name +Set the name of the package. +This is mandatory and is usually put at the top. +This name is potentially different than the name of +the file it came in, and is used when keeping track of the package +for later deinstallation. +Note that +.Nm +will derive this field from the package name and add it automatically +if none is given. +.It Cm @dirrm Ar name +Declare directory +.Pa name +to be deleted at deinstall time. +By default, directories created by a +package installation are not deleted when the package is deinstalled; +this provides an explicit directory cleanup method. +This directive should appear at the end of the package list. +If more than one +.Cm @dirrm +directive is used, the directories are removed in the order specified. +The +.Pa name +directory will not be removed unless it is empty. +.It Cm @extra Ar file +Declare extra file +.Pa file +to be deleted at deinstall time, if user sets +.Fl c +option. +Those files are extra configuration files that are normally not deleted. +If +.Pa file +ends with a slash, it is a directory. +.It Cm @extraunexec Ar command +Extra +.Ar command +to execute when removing extra files. +.It Cm @mtree Ar name +Declare +.Pa name +as an +.Xr mtree 8 +input file to be used at install time (see +.Fl m +above). +Only the first +.Cm @mtree +directive is honored. +.It Cm @display Ar name +Declare +.Pa name +as the file to be displayed at install time (see +.Fl D +above). +.It Cm @pkgdep Ar pkgname +Declare a dependency on the +.Ar pkgname +package. +The +.Ar pkgname +package must be installed before this package may be +installed, and this package must be deinstalled before the +.Ar pkgname +package is deinstalled. +Multiple +.Cm @pkgdep +directives may be used if the package depends on multiple other packages. +.It Cm @pkgcfl Ar pkgcflname +Declare a conflict to the +.Ar pkgcflname +package. +The +.Ar pkgcflname +package must +.Em not +be installed if +.Ar pkgname +package gets installed because they install the same files and thus conflict. +.Ar pkgcflname +may use +.Xr fnmatch 3 +wildcards. +.It Cm @option Ar name +Effects vary depending on +.Ar name . +Some options are not documented yet. +.Bl -tag -width indent +.It Ar no-default-conflict +By default, a package conflicts with other versions of the same package. +With this option, the older package version will still be noticed, but the +installation will proceed anyway. +.El +.El +.Sh SEE ALSO +.Xr pkg_add 1 , +.Xr pkg_delete 1 , +.Xr pkg_info 1 , +.Xr sysconf 3 +.Sh HISTORY +The +.Nm +command first appeared in +.Fx . +.Sh AUTHORS +.Bl -tag -width indent -compact +.It "Jordan Hubbard" +initial design +.It "Marc Espie" +complete rewrite. +.El -- cgit v1.2.3