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 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 bundlefile ... Add each given bundlefile (such as a SVr4 package) into the current transaction. 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= fmri= [ property_list ] Make this package version dependent on the give package FMRI. Valid depend_types are require and optional. dir mode= owner= group= path= \ [ property_list ] Deliver a directory with the listed attributes into the transaction. driver name= perms= class= 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= owner= group= \ path= [ property_list ] Deliver a file with the listed attributes into the transaction. hardlink path= target= [ property_list ] Deliver a link with given path, pointing to the given target. legacy category= desc= hotline= \ name= pkg= vendor= 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= \ [ property_list ] Deliver, into the image packaging metadata, the license file at src_path, labelled by the given license value. link path= target= [ property_list ] Deliver a symbolic link with given path, pointing to the given target. set name= value= [ property_list ] Deliver a "package property" defined by the given name and value. EXAMPLES Example 1: Create a trivial package. $ eval `pkgsend open example@1.0-1` $ 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.