2589 pyc files generate lots of verify chaff
2726 pkg verify doesn't verify file or content hash by default
2680 packagemanager prototype files don't belong in the workspace
User Commands pkgsend(1)
NAME
pkgsend - image packaging system publication client
SYNOPSIS
/usr/bin/pkgsend [options] command [cmd_options] [operands]
/usr/bin/pkgsend open [-en] pkg_fmri
/usr/bin/pkgsend add action arguments
/usr/bin/pkgsend import [-T pattern] bundlefile ...
/usr/bin/pkgsend include [-d basedir] manifest ...
/usr/bin/pkgsend close [-A]
/usr/bin/pkgsend send bundlefile ...
DESCRIPTION
pkgsend allows the publication of new packages and new package
versions to an image packaging depot server. Each publication is
structured as a transaction; multiple invocations of pkgsend
through a transaction allow the addition of resources and the
transaction submission.
pkgsend also has an alternate invocation that allows the conversion
of existing software bundles via a submission.
OPTIONS
The following options alter the default behavior:
-s repo_url The URL prefix of the depot server. The default
value is "http://localhost:10000/"
SUBCOMMANDS
The following subcommands are supported:
open [-en] pkg_fmri
Begin a transaction on the package and version specified by
pkg_fmri. Standard output will contain a sh(1)-compatible
environment statement, suitable for use with an eval built-in.
add action arguments
Add a resource associated with an action to the current
transaction. Requires transaction context. See ACTIONS
below.
import [-T pattern] bundlefile ...
Add each given bundlefile (such as a SVr4 package) into the
current transaction. If the basename of files in the bundle
match the optional pattern(s), the timestamp of the file is
added to the action for that file. The pattern uses shell
matching rules:
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any character not in seq
include [-d basedir] manifest ...
Add resources associated with the multiple actions present in
each manifest file to the current transaction. Each line in the
file should be the string representation of an action. In
particular, the "add" token as described above should not be
present, nor should there be open and close tokens representing
transaction boundaries. For those actions with datastreams, the
path to the file containing the data should be the second word on
the line.
If the user specifies the -d option, basedir is prepended to
the search path when locating files in the manifest.
close [-A]
Close current transaction. With -A, abandon the current
transaction.
send bundlefile ...
Send each given bundlefile as a new package version, in an
appropriate series of transactions.
ENVIRONMENT VARIABLES
The following environment variables are supported:
PKG_TRANS_ID Transaction identifier to use for this
transaction. If undefined (and no
alternative means of specifying a
transaction is given), subcommands
requiring transaction context will fail.
ACTIONS
Each resource within a package must be associated with an action.
See pkg(5) for a complete list of actions.
If an action has an associated payload, the path to the payload
must be the first argument after the action name. (At present, the
file and license actions have payloads.) All other attributes are
specified as a list of name-value pairs, and may be given in any
order. An action must always have a key attribute; however, some
actions may require additional attributes to work correctly.
Arbitrary attributes, beyond those defined for a given action, may
be included in the action . Such attributes are expected to follow
defined conventions such that they carry appropriate meaning or
avoid collision with attributes from other action providers.
depend type=<depend_type> fmri=<pkg_fmri> [ property_list ]
Make this package version dependent on the give package FMRI.
Valid depend_types are require and optional.
dir mode=<mode> owner=<userid> group=<groupid> path=<path> \
[ property_list ]
Deliver a directory with the listed attributes into the
transaction.
driver name=<name> perms=<perms> class=<class> alias=<alias>
[ property_list ]
Deliver driver configuration with the listed attributes into
the transaction. Multiple alias entries may be given to
record multiple device aliases.
file src_path mode=<mode> owner=<userid> group=<groupid> \
path=<path> [ property_list ]
Deliver a file with the listed attributes into the
transaction.
hardlink path=<path> target=<target> [ property_list ]
Deliver a link with given path, pointing to the given
target.
legacy category=<category> desc=<description> hotline=<hotline> \
name=<name> pkg=<legacy_pkg> vendor=<vendor> version=<version> \
[ property_list ]
Deliver sufficient metadata, as given by the various fields,
to represent a System V package with name given by legacy_pkg.
license src_path license=<license_name> \
[ property_list ]
Deliver, into the image packaging metadata, the license file
at src_path, labelled by the given license value.
link path=<path> target=<target> [ property_list ]
Deliver a symbolic link with given path, pointing to the given
target.
set name=<name> value=<value> [ property_list ]
Deliver a "package property" defined by the given name and
value.
EXAMPLES
Example 1: Create a trivial package.
$ eval `pkgsend open [email protected]`
$ pkgsend add file example mode=0555 owner=root group=bin \
path=/usr/bin/example
$ pkgsend close
EXIT STATUS
The following exit values are returned:
0 Everything worked.
1 Something bad happened.
2 Invalid command line options were specified.
FILES
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | |
|_____________________________|_____________________________|
SEE ALSO
pkg.depotd(1M), attributes(5), pkg(5)
NOTES
The image packaging system is an under-development feature.
Command names, invocation, formats, and operations are all subject
to change. Development is hosted in the OpenSolaris community
at
http://opensolaris.org/os/project/pkg/
Other package bundle formats can be created. Other forms of
package publication, via the underlying Python API or via the web
API, are also possible.