summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add/pkg_create.1
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2003-10-19 18:38:07 +0000
committerMarc Espie <espie@cvs.openbsd.org>2003-10-19 18:38:07 +0000
commit7fcbc8283ac47d23ca130622b43571b7a12defd2 (patch)
tree60306f456b3a35be3c3ff7cb09bca9c4743ae446 /usr.sbin/pkg_add/pkg_create.1
parent9ee4aeec53fd12b437bbe472bd42424bcdab5e9d (diff)
Add manpages, with a few minor changes from old ones.
ok pval
Diffstat (limited to 'usr.sbin/pkg_add/pkg_create.1')
-rw-r--r--usr.sbin/pkg_add/pkg_create.1465
1 files changed, 465 insertions, 0 deletions
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