src/man/pkgsend.1.txt
author Bart Smaalders <Bart.Smaalders@Sun.COM>
Fri, 01 Aug 2008 23:57:44 -0700
changeset 443 5ffa5b7dac9c
parent 410 403886a7592b
child 444 8a8fa9e43301
permissions -rw-r--r--
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.