\input texinfo   @c -*-texinfo-*-
@setfilename swinstall.info

@comment ===============================================================
@comment WARNING: Do NOT edit this file.  It was produced automatically
@comment by man2info on Sat Nov  5 15:41:26 EST 2005
@comment for jhl@
@comment from man/man8/swinstall.8
@comment in /home/jhl/swbis-0.473/doc
@comment ===============================================================

@comment @documentencoding ISO-8859-1

@comment troff -man typesetting style: headers, footers, no paragraph indentation

@paragraphindent none

@iftex
@parskip = 0.5@normalbaselineskip plus 3pt minus 1pt
@end iftex

@set lq ``
@set rq ''

@comment TROFF INPUT: .TH "swinstall" "8"

@headings off
@everyheading SWINSTALL(8) @| @| SWINSTALL(8)
@everyfooting  @| @thispage @|

@node Top

@chapter swinstall" "8
@c DEBUG: print_menu("Top")

@ifnottex
@menu
* NAME::
* SYNOPSIS::
* DESCRIPTION::
* OPTIONS::
* INSTALLED SOFTWARE CATALOG::
* IMPLEMENTATION EXTENSIONS::
* EXTENDED OPTIONS::
* RETURN VALUE::
* NOTES::
* REQUISITE UTILITIES::
* FILES::
* APPLICABLE STANDARDS::
* SEE ALSO::
* IDENTIFICATION::
* BUGS::

@end menu
@end ifnottex


@comment TROFF INPUT: .SH "NAME"

@node NAME

@section NAME
@c DEBUG: print_menu("NAME")

swinstall @r{---} Install POSIX and RPM packages.
@comment TROFF INPUT: .SH "SYNOPSIS"

@node SYNOPSIS

@section SYNOPSIS
@c DEBUG: print_menu("SYNOPSIS")

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swinstall} [@minus{}p] [@minus{}r] [@minus{}s @i{source@t{_}file}] [@minus{}f @i{file}] \@tie{}
[@minus{}t @i{targetfile}] [@minus{}x @i{option=value}]  [@minus{}X @i{options@t{_}file}] [@minus{}W @i{option}] \@tie{}
[software@t{_}selections] [@@target [target1...]]
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swinstall} @minus{}s @minus{}    # Minimum unambiguous invocation.
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .SH "DESCRIPTION"

@node DESCRIPTION

@section DESCRIPTION
@c DEBUG: print_menu("DESCRIPTION")

@comment TROFF INPUT: .PP

As of 2004-04-03 swinstall is usable at an alpha release level.
@comment TROFF INPUT: .PP

As of 2005-05-03 swinstall is usable at an alpha release level with additional newly implemented features for
checkinstall, preinstall, and postinstall execution.  Fileset state and script exit status recording are also newly implemented.
Dependency checks are not implemented. Software selections are
not implemented.  Only distributions with one (1) product and one (1) fileset are supported.
At this time, symlink, hard links, directory, and device files are not supported unless they appear in
the storage section in which case they will be installed using the local system archive reading utility, either 'tar' or 'pax'.
(The Posix spec does not require non-regular files to exist in the storage section).
@comment TROFF INPUT: .PP

@b{swinstall} installs a Posix distribution from a source archive to a target
directory.  A Posix distribution is a package, typically a compressed tarball with metadata files in the prescribed file layout.
Neither swinstall nor any component of swbis is required
on the target host, however, the target host must look like a Unix system at
the shell and command-line utility level and have a posix shell.
Remote network connections are made by ssh.
Ssh is the default but rsh can be selected by a command line
option.
@comment TROFF INPUT: .PP

By default and with no external influences (i.e. swdefaults file) swinstall
will read an archive on stdin and install all products and filesets of package
in "/" directory on the target host.  An alternate root may be specified using
the target syntax.  The distribution source directory (swbis default: stdin)
is selectable via the defaults file, therefore it should be specified in
uncontrolled environments.
@comment TROFF INPUT: .PP

@b{swinstall} operates on  cpio or tar archives.
swinstall supports cpio archives by first translating to tar format, therefore,
to reduce the data transformations performed by swinstall, distributors encouraged to
deliver products in tar format.
@comment TROFF INPUT: .SH "OPTIONS"

@node OPTIONS

@section OPTIONS
@c DEBUG: print_menu("OPTIONS")

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-f FILE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Reads software@t{_}selections from FILE. (Not implemented).
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-p}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Preview the operation.
Depending on the verbose level information is written to stdout.
The target is not modified although a remote connection is established.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-r}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
This option has no affect.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-s SOURCE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify the source file SOURCE, "@minus{}" is standard input.
The syntax is the same as for a target.
SOURCE may be an archive file or stdin.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-t targetfile}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify a file containing a list of targets (one per line).
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-x option=value}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify the extended option overriding the defaults file value.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-X FILE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify the extended options filename, FILE,  overriding the default filenames.
This option may be given more then once. If the resulting specified value is an empty string
then reading of any options file is disabled.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-v}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Given one time it is identical to @minus{}x verbose=2.
This option can be given multiple times with increasing effect.
(Implementation extension option).
@comment TROFF INPUT: .br
@comment .br
 @minus{}v  is level 2, @minus{}vv is level 3,... etc.
@comment TROFF INPUT: .br
@comment .br
     level 0: silent on stdout and stderr.
@comment TROFF INPUT: .br
@comment .br
     level 1: fatal and warning messages to stderr.
@comment TROFF INPUT: .br
@comment .br
 @minus{}v  level 2: level 1 plus a progress bar.
@comment TROFF INPUT: .br
@comment .br
 @minus{}vv level 3: level 2 plus script stderr.
@comment TROFF INPUT: .br
@comment .br
 @minus{}vvv level 4: level 3 plus events.
@comment TROFF INPUT: .br
@comment .br
 @minus{}vvvv level 5: level 4 plus events.
@comment TROFF INPUT: .br
@comment .br
 @minus{}vvvvv level 6: level 5 plus set shell @minus{}vx option.
@comment TROFF INPUT: .br
@comment .br
 @minus{}vvvvvv level 7 and higher: level 6 plus debugging messages.
@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{@minus{}@minus{}version, @minus{}V}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Show version (Implementation extension)
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{@minus{}@minus{}help}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Show help (Implementation extension)
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W option[,option,...]}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify the implementation extension option.
@comment TROFF INPUT: .br
@comment .br
 Syntax: @minus{}W option[=option@t{_}argument[,option...]
@comment TROFF INPUT: .br
@comment .br
 Options may be separated by a comma.  The implementation extension
options may also be given individually using the '@minus{}@minus{}long-option[=option@t{_}arg]' syntax.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W preview-tar-file=FILE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
This is a testing/development option.
Writes the fileset archive to FILE.  This is the same data stream that would have been loaded on the target.
This option should only be used with the '@minus{}p' option.  The output sent to FILE is a tar archive but without
trailer blocks.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W remote-shell=NAME}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}remote@t{_}shell@t{_}client}
@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
This is the remote connection client program on the management (originating host).
The path NAME may be an absolute path (not located in $PATH).
The basename of NAME is used for intermediate hops.
Supported shells are "ssh" and "rsh".
The default is "ssh".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W quiet-progress}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}quiet@t{_}progress@t{_}bar}Disable progress bar, which is active for verbose levels 2 and higher (i.e. @minus{}v).
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W show-options-files}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Show the complete list of options files and if they are found.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W show-options}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Show the options after reading the files and parsing the command line options.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W pax-command=@{tar|pax|star|gtar@}}
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the portable archive command for all operations.
The default is "pax".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W pax-read-command=@{tar|pax|star|gtar@}}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the read command for local and remote hosts.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W remote-pax-read-command=@{tar|pax|star|gtar@}}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}remote@t{_}pax@t{_}read@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the read command for remote hosts.
This is the command that runs on the target (e.g. pax @minus{}r, tar xpf @minus{}).
The default is "pax".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W local-pax-read-command=@{tar|pax|star|gtar@}}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}local@t{_}pax@t{_}read@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the read command for local hosts.
This is the command that runs on the target (e.g. pax @minus{}r, tar xpf @minus{}).
The default is "pax".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W pax-write-command=@{tar|pax|star|gtar|swbistar@}}
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the write command for local and remote hosts.
This is the command that runs on the target (e.g. pax @minus{}w, tar cf @minus{}).
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W remote-pax-write-command=@{tar|pax|star|gtar|swbistar@}}
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}remote@t{_}pax@t{_}write@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the write command for remote hosts.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W local-pax-write-command=@{tar|pax|star|gtar|swbistar@}}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}local@t{_}pax@t{_}write@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the portable archive write command for local host operations.
This is the command that runs on the source (e.g. pax @minus{}w, tar cf @minus{}).
The default is "pax".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W remote-pax-write-command=@{tar|pax|star|gtar|swbistar@}}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}remote@t{_}pax@t{_}write@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the portable archive write command for remote host operations.
This is the command that runs on the source (e.g. pax @minus{}w, tar cf @minus{}).
The default is "pax".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W no-defaults}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Do not read any defaults files.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W no-remote-kill}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}no@t{_}remote@t{_}kill}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Disables the use of a second remote connection to tear down the first in
the event of SIGINT or SIGTERM or SIGPIPE.
Only has effect if the number of ssh hops is greater than 1.
A single host remote connection (ssh hop = 1) never uses a
second remote connection.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W no-getconf}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}no@t{_}getconf}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Makes the remote command be '/bin/sh @minus{}s' instead of the default
'PATH=`getconf PATH` sh @minus{}s'.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W shell-command=NAME}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}shell@t{_}command}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
This is the interactive shell on the target host.
NAME may be one of "bash", "sh", "ksh"  or "posix" and specifies the
remote command run by the remote shell.
"posix" is 'PATH=`getconf PATH` sh @minus{}s', "bash" is "/bin/bash @minus{}s",
"sh" is "/bin/sh @minus{}s", and "ksh" is "ksh @minus{}s".
The default is "posix".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W use-getconf}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Opposite of @minus{}@minus{}no-getconf.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W allow-rpm}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Defaults File Option: @b{swbis@t{_}allow@t{_}rpm}
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Enable automatic detection, translation to Posix format, and installation of RPMs.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W pump-delay1=NANOSECONDS}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Adds a NANOSECONDS delay (999999999 nanoseconds ~ 1 second) every ADJSIZE bytes in
the file data byte pump.  A delay of 10111000 nanoseconds (~1/100th second) is added
for 2-hop or greater target (i.e more than 1 remote host in the target spec).
This is a work around for a bug in OpenSSH [or Linux kernel] that is seen for multi-hop
installs where the intermediate host is a Linux kernel.  If 2-hop install fails, try it
again, you may get lucky, or, increase this delay, or, use ssh protocol version 1 by
using ''@minus{}@minus{}ssh-options=1'', or try a 2-hop install where the middle host is BSD.
To disable delay for multi-hop targets specify zero.
For more information about this bug see the README file from the source distribution.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W burst-adjust=ADJSIZE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
ADJSIZE is the pumped data size, in bytes, between the NANOSECONDS delays.
This is a work around for a bug in OpenSSH or the Linux kernel that is
seen for multi-hop installs where the intermediate host is a Linux kernel.
The default is 72000 for 2-hops or greater, and zero for
single hop and localhost installs.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{-W ssh-options=OPTIONS}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
ssh client program options.  For example @minus{}W ssh-options=1 sets the
'@minus{}1' ssh client option which specifies protocol version 1.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@b{software@t{_}selections}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Refer to the software objects (products, filesets)
on which to be operated. (Not implemented).
The implementation defined behavior for no selections is to operate on
the entire distribution.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{target}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Refers to the software@t{_}collection where the software
selections are to be applied.  Allows specification of host and pathname where the software collection is to be located.
A target that contains only one part is assumed to be a hostname.
To force interpretation as a path, use an absolute path or prefix with ':'.  The default target path for 'swinstall' is always '/'.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 Source and Target Specification and Logic

     Synopsis:
          Posix:
               host[:path]
               host
               host:
               /path  # Absolute path

          Swbis Implementation Extension:
               @minus{}    # This means write the payload to stdout
               [user@@]host[:path]
               :path  # Relative or absolute path

          Swbis Multi-hop Target Implementation Extension:
               # '@@@@' is the target delimiter
               target@@@@target[@@@@targetN...]
               [user@@]host[@@@@[user@@]host[@@@@...]][:path]

     A more formal description:

     target : HOST@t{_}CHARACTER@t{_}STRING ':' PATHNAME@t{_}CHARACTER@t{_}STRING
            | HOST@t{_}CHARACTER@t{_}STRING ':'
            | HOST@t{_}CHARACTER@t{_}STRING
            | PATHNAME@t{_}CHARACTER@t{_}STRING
            | ':' PATHNAME@t{_}CHARACTER@t{_}STRING   # Impl extension
            ;

       PATHNAME@t{_}CHARACTER@t{_}STRING must be an absolute path unless
                       a HOST@t{_}CHARACTER@t{_}STRING is given.  Allowing
                       a relative path is a feature of the swbis
                       implementation.

                NOTE: A '.' as a target is an implementation
                      extension and means extract in current
                      directory.

                NOTE: A '@minus{}' indicating stdout/stdin is an
                      implementation extension.

                NOTE: A ':' in the first character indicates a filename.
                      This is an implementation extension.

       HOST@t{_}CHARACTER@t{_}STRING is an IP or hostname.

    Examples:
        Translate your RPM on stdin to a tar archive on stdout
        containing the RPM payload.

              swinstall @minus{}s @minus{} @@@minus{} | tar tvf @minus{}

        Install the distribution /var/tmp/foo.tar.gz to the
        root '/' directory at 192.168.1.10 :

              swinstall @minus{}s /var/tmp/foo.tar.gz @@192.168.1.10
              NOTE: For swinstall, '/' is the hard coded default
                    target directory.

        Install the distribution /var/tmp/foo.tar.gz to the
        home directory of the login user at 192.168.1.10 :

              swinstall @minus{}s /var/tmp/foo.tar.gz @@192.168.1.10:.


Implementation Extension Syntax (multi ssh-hop) :
    Syntax:
    %start   wtarget    # the Implementation Extension Target
    wtarget   : wtarget DELIM sshtarget
              | sshtarget
              ;
    sshtarget : user '@@' target # Note: only the last target
              | target          # may have a PATHNAME
              ;
    target   : HOST@t{_}CHARACTER@t{_}STRING
             | HOST@t{_}CHARACTER@t{_}STRING ':' PATHNAME@t{_}CHARACTER@t{_}STRING
             ;
    user     : PORTABLE@t{_}CHARACTER@t{_}STRING  # The user name

    DELIM    : '@@@@'   # The multi-hop delimiter.
             ;
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .SH "INSTALLED SOFTWARE CATALOG"

@node INSTALLED SOFTWARE CATALOG

@section INSTALLED SOFTWARE CATALOG
@c DEBUG: print_menu("INSTALLED SOFTWARE CATALOG")

@ifnottex
@menu
* CATALOG FILE LAYOUT::
* CATALOG LOCATION::
* * Root or Alternate Root::
* * Catalog Relative Root Directory::
* PACKAGE CATALOG RELATIVE ROOT::
* CATALOG SEQUENCE NUMBER::
* CATALOG CONTENTS::
* The export directory::
* INSTALLED @minus{}@minus{} The state metadata file::
* control sh @minus{}@minus{} The master control script::
* session@t{_}options @minus{}@minus{} The extended options::
* EXAMPLE CATALOG ENTRY::

@end menu
@end ifnottex


@comment TROFF INPUT: .PP

** As of 2004-02-12 the form and features of the catalog are under
active development. **
@comment TROFF INPUT: .PP

The form or format of an installed software catalog is
not specified by the ISO/IEC spec although it does specify
an interface to it (e.g. swlist utility) and operations on it.
@comment TROFF INPUT: .PP

This implementation creates a de-facto installed software catalog rooted at the file system path specified by the value of the
'installed@t{_}software@t{_}catalog' extended option.  The catalog is a file system hierarchy containing regular files
and directories.
@comment TROFF INPUT: .SS "CATALOG FILE LAYOUT"

@node CATALOG FILE LAYOUT

@subsection CATALOG FILE LAYOUT

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@comment TROFF INPUT: .br
@comment .br
  <@i{path}>/
 <@i{path}>/<@i{ISC}>/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{seqence@t{_}number}>/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{export}/
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{export}/@b{catalog.tar}
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{export}/@b{catalog.tar.sig}
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{export}/@b{catalog.tar.sig}<@i{N}>
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{INSTALLED}
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{control.sh}
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{session@t{_}options}
 <@i{path}>/<@i{ISC}>/<@i{bundle}>/<@i{product}>/<@i{pr}>/<@i{sequence@t{_}number}>/@b{vendor@t{_}tag}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

<@i{path}> is the target path.
<@i{ISC}> is the value of the installed@t{_}software@t{_}cataglog extended option.
<@i{bundle}> and <@i{product}> are bundle and product tags.
If there is no bundle in the distribution the product tag is used.
<@i{pr}> is the product revision.  Other items are explained below.
@comment TROFF INPUT: .SS "CATALOG LOCATION"

@node CATALOG LOCATION

@subsection CATALOG LOCATION

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
/<@i{path}>/
/<@i{path}>/<@i{installed@t{_}software@t{_}catalog}>/
/<@i{path}>/<@i{installed@t{_}software@t{_}catalog}>/...
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SS "    * Root or Alternate Root"

@node * Root or Alternate Root

@subsection * Root or Alternate Root

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
/<@i{path}>/
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

<@i{path}>/
is the target path specified in the target syntax. By default "/".
@comment TROFF INPUT: .SS "    * Catalog Relative Root Directory"

@node * Catalog Relative Root Directory

@subsection * Catalog Relative Root Directory

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
/<@i{path}>/
/<@i{path}>/<@i{installed@t{_}software@t{_}catalog}>/
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

<@i{installed@t{_}software@t{_}catalog}>/
is the value of the extended option by the same name.  By default "var/lib/swbis/catalog".
@comment TROFF INPUT: .SS "PACKAGE CATALOG RELATIVE ROOT"

@node PACKAGE CATALOG RELATIVE ROOT

@subsection PACKAGE CATALOG RELATIVE ROOT

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
/<@i{@{bundle|prod@}.tag}>/<@i{prod.tag}>/<@i{prod.revision}>/...
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

 In other words, if 'product' and 'bundle' refers to tags, and
product@t{_}revision is the value of the product.revision attribute then
the path segment is:
@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 /bundle/product/product@t{_}revision
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SS "CATALOG SEQUENCE NUMBER"

@node CATALOG SEQUENCE NUMBER

@subsection CATALOG SEQUENCE NUMBER

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 /<@i{sequence@t{_}number}>/
 /<@i{sequence@t{_}number}>/...
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@i{sequence@t{_}number} is a decimal integer starting with '0'.
It is chosen by swinstall to be unique at the time of installation.
@comment TROFF INPUT: .SS "CATALOG CONTENTS"

@node CATALOG CONTENTS

@subsection CATALOG CONTENTS

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
<@i{sequence@t{_}number}>/
 <@i{sequence@t{_}number}>/@b{export}/
 <@i{sequence@t{_}number}>/@b{export}/@b{catalog.tar}
 <@i{sequence@t{_}number}>/@b{export}/@b{catalog.tar.sig}
 <@i{sequence@t{_}number}>/@b{INSTALLED}
 <@i{sequence@t{_}number}>/@b{control.sh}
 <@i{sequence@t{_}number}>/@b{session@t{_}options}
 <@i{sequence@t{_}number}>/@b{vendor@t{_}tag}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SS "    The export directory"

@node The export directory

@subsection The export directory

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 @b{export}/
 @b{export}/...
 @b{export}/@b{catalog.tar}
 @b{export}/@b{catalog.tar.sig}
 @b{export}/@b{catalog.tar.sig2}
               ...
 @b{export}/@b{catalog.tar.sig}@i{N}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

The @b{export}/ is a file system directory and its name is constant for all
packages and is unique to the swbis implementation.
The @b{export}/@b{catalog.tar} file is the signed file from the Posix
distribution.
The @b{export}/@b{catalog.tar.sig} file is the signature file
from the distribution.  If there is more than one signature, then it is the last one.
@b{export}/@b{catalog.tar.sig2} is the next to
last signature, and @b{export}/@b{catalog.tar.sig}@i{N} is
the first one, where @i{N} is the total number of signatures.
@comment TROFF INPUT: .SS "    INSTALLED \-\- The state metadata file"

@node INSTALLED @minus{}@minus{} The state metadata file

@subsection INSTALLED @minus{}@minus{} The state metadata file

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 <@i{sequence@t{_}number}>/@b{INSTALLED}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

The INSTALLED file is similar to an INDEX file in its grammar and syntax.  Unlike an INDEX file, it may contain
control@t{_}file definitions.
The INSTALLED file stores the control script return codes and fileset installation state.  It is updated several times during the
operation of 'swinstall'.  It can be parsed using  <libexec>/swbisparse and the '@minus{}@minus{}installed' option.
@comment TROFF INPUT: .SS "    control.sh \-\- The master control script"

@node control sh @minus{}@minus{} The master control script

@subsection control.sh @minus{}@minus{} The master control script

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 <@i{sequence@t{_}number}>/@b{control.sh}
  SYNOPSIS: @b{control.sh} @i{tag@t{_}spec} @i{script@t{_}tag}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

The control.sh file is a Posix shell script that is automatically generated by swinstall.  It provides a common interface for
control script execution.  Its primary purpose is to set up the script's execution environment and map script tags to the
control script pathnames.  It assumes that 'export/catalog.tar' is unpacked in export/.
@comment TROFF INPUT: .SS "    session_options \-\- The extended options"

@node session@t{_}options @minus{}@minus{} The extended options

@subsection session@t{_}options @minus{}@minus{} The extended options

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 <@i{sequence@t{_}number}>/@b{session@t{_}options}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

This file contains the extended options in a form that may be executed by the shell '.' (dot) command.
It is automatically generated by swinstall.  The value of the SW@t{_}SESSION@t{_}OPTIONS environment variable is the absolute
pathname of the this file.
@comment TROFF INPUT: .SS "EXAMPLE CATALOG ENTRY"

@node EXAMPLE CATALOG ENTRY

@subsection EXAMPLE CATALOG ENTRY

@comment TROFF INPUT: .PP

Below is an example entry of the catalog created by swbis version 0.405.
In this example, the target path is '/mnt/test', the @i{installed@t{_}software@t{_}catalog} is '/var/lib/swbis/catalog/', the
bundle tag is 'foobare', the product tag is 'foobare-doc', and the product revision attribute is '0.902'.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export/catalog.tar
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/export/catalog.tar.sig
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/INSTALLED
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/control.sh
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/vendor@t{_}tag
/mnt/test/var/lib/swbis/catalog/foobare/foobare-doc/0.902/0/session@t{_}options
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

Although swinstall does not depend on the file name as this accommodates installing from
standard input, a typical name for this package would be:
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
       foobare-doc-0.902-sl04.tar.gz
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

 where 'sl04' is the vendor tag.
@comment TROFF INPUT: .SH "IMPLEMENTATION EXTENSIONS"

@node IMPLEMENTATION EXTENSIONS

@section IMPLEMENTATION EXTENSIONS
@c DEBUG: print_menu("IMPLEMENTATION EXTENSIONS")

@ifnottex
@menu
* Software Specification Targets::
* RPM Translation::
* Testing with RPM::

@end menu
@end ifnottex


@comment TROFF INPUT: .SS "Software Specification Targets"

@node Software Specification Targets

@subsection Software Specification Targets

@comment TROFF INPUT: .PP

A dash '@minus{}' is supported and means stdout or stdin.
Operations with stdout and stdin on a remote host is not supported.
@comment TROFF INPUT: .PP

A decimal '.' is supported and means the current directory.
This is supported for remote and non-remote targets.
If the source is standard input, the distribution will be unpacked
(e.g. pax @minus{}r) in the directory '.'.
If the source is a regular file then a regular file in '.' will be created
with the same name.
@comment TROFF INPUT: .SS "RPM Translation"

@node RPM Translation

@subsection RPM Translation

@comment TROFF INPUT: .PP

RPM (RedHat Package Manager) format packages are installed by first translating to
an equivalent ISO/IEEE file layout in Posix tar format and then installing as
a Posix package.  This translation and detection is transparent to the user if
the ''@minus{}@minus{}allow-rpm'' option is set in the command line args or the swbis@t{_}allow@t{_}rpm
is set to "true" by the defaults files, otherwise an error occurs.
@comment TROFF INPUT: .PP

Since translation is done on the local (management) host, RPM is not required on
the remote (target) host.
@comment TROFF INPUT: .PP

The translation is (internally) equivalent to :
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
   cat your-0.0-1.bin.rpm |
   /usr/lib/swbis/lxpsf @minus{}@minus{}psf-form2 @minus{}H ustar |
   swpackage @minus{}W source=@minus{} @minus{}s @@PSF | swinstall @minus{}s @minus{} @@/
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SS "Testing with RPM"

@node Testing with RPM

@subsection Testing with RPM

To test the swbis components, a completely independent means to install and
verify a package is needed.  RPM provides this means and can be used in the
following way:
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
   rpm @minus{}i @minus{}@minus{}nodeps @minus{}@minus{}force your-0.0-1.i386.rpm  # Install
   rpm @minus{}@minus{}verify @minus{}@minus{}nodeps your-0.0-1             # Show that all is well
   rpm @minus{}e @minus{}@minus{}nodeps your-0.0-1                   # Remove it.
   rpm @minus{}i @minus{}@minus{}nodeps @minus{}@minus{}justdb your-0.0-1.i386.rpm # Install just the database.
   rpm @minus{}@minus{}verify @minus{}@minus{}nodeps your-0.0-1             # Shows the files are missing.
   swinstall @minus{}@minus{}allow-rpm @minus{}s @minus{} < your-0.0-1.i386.rpm
   rpm @minus{}@minus{}verify @minus{}@minus{}nodeps your-0.0-1             # Show that all is well again
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SH "EXTENDED OPTIONS"

@node EXTENDED OPTIONS

@section EXTENDED OPTIONS
@c DEBUG: print_menu("EXTENDED OPTIONS")

@ifnottex
@menu
* Posix::
* Swbis Implementation::

@end menu
@end ifnottex


@comment TROFF INPUT: .PP

Extended options can be specified on the command line using the @minus{}x option
or from the defaults file, swdefaults.  Shown below is an actual portion of
a defaults file which show default values.
@comment TROFF INPUT: .SS "Posix"

@node Posix

@subsection Posix

@comment TROFF INPUT: .PP

These options are set in the /usr/lib/swbis/swdefaults or the ~/.swdefaults
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
  allow@t{_}downdate              = false      # Not Implemented
  allow@t{_}incompatible          = false      # Not Implemented
  ask                         = false      # Not Implemented
  autoreboot                  = false      # Not Implemented
  autorecover                 = false      # Not Implemented
  autoselect@t{_}dependencies     = false      # Not Implemented
  defer@t{_}configure             = false      # Not Implemented
  distribution@t{_}source@t{_}directory   = @minus{}	     # Stdin
  enforce@t{_}dependencies        = false      # Not Implemented
  enforce@t{_}locatable           = false      # Not Implemented
  enforce@t{_}scripts             = false      # Not Implemented
  enforce@t{_}dsa                 = false      # Not Implemented
  installed@t{_}software@t{_}catalog  = var/lib/swbis/catalog
  logfile             = /var/lib/sw/swinstall.log #Not Implemented
  loglevel                    = 0          # Not Implemented
  reinstall                   = false      # Not Implemented
  select@t{_}local		= false      # Not Implemented
  verbose			= 1
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SS "Swbis Implementation"

@node Swbis Implementation

@subsection Swbis Implementation

@comment TROFF INPUT: .PP

These options are set in the /usr/lib/swbis/swbisdefaults or the $@{HOME@}/.swbis/swbisdefaults
file.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
  swinstall.swbis@t{_}no@t{_}getconf = false # true or false
  swinstall.swbis@t{_}shell@t{_}command = posix # @{sh|bash|posix@}
  swinstall.swbis@t{_}no@t{_}remote@t{_}kill = false # true or false
  swinstall.swbis@t{_}no@t{_}audit = false # true or false
  swinstall.swbis@t{_}quiet@t{_}progress@t{_}bar = false # true or false
  swinstall.swbis@t{_}local@t{_}pax@t{_}write@t{_}command=pax #@{pax|tar|star|gtar@}
  swinstall.swbis@t{_}remote@t{_}pax@t{_}write@t{_}command=pax #@{pax|tar|star|gtar@}
  swinstall.swbis@t{_}local@t{_}pax@t{_}read@t{_}command=pax #@{pax|tar|gtar|star@}
  swinstall.swbis@t{_}remote@t{_}pax@t{_}read@t{_}command=pax #@{pax|tar|gtar|star@}
  swinstall.swbis@t{_}enforce@t{_}sig=false # true or false
  swinstall.swbis@t{_}enforce@t{_}file@t{_}md5=false # true or false
  swinstall.swbis@t{_}allow@t{_}rpm=false # true or false
  swinstall.swbis@t{_}remote@t{_}shell@t{_}client=ssh
  swinstall.swbis@t{_}install@t{_}volatile=true
  swinstall.swbis@t{_}volatile@t{_}newname=     #empty string, e.g. ".rpmnew"
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SH "RETURN VALUE"

@node RETURN VALUE

@section RETURN VALUE
@c DEBUG: print_menu("RETURN VALUE")

@comment TROFF INPUT: .PP

0 if all targets succeeded, 1 if all targets failed, 2 if some targets failed and some succeeded.
@comment TROFF INPUT: .SH "NOTES"

@node NOTES

@section NOTES
@c DEBUG: print_menu("NOTES")

Multiple ssh-hops is an implementation extension.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .SH "REQUISITE UTILITIES"

@node REQUISITE UTILITIES

@section REQUISITE UTILITIES
@c DEBUG: print_menu("REQUISITE UTILITIES")

@comment TROFF INPUT: .PP

swinstall requires a Posix shell accessible by the remote shell command.
This is the remote command run by ssh (or rsh) for all operations.
This command can be controlled by the @minus{}@minus{}shell-command option or the
swbis@t{_}shell@t{_}command defaults file option.
Permitted values are "bash" (/bin/bash @minus{}s) or "sh" (/bin/sh @minus{}s) or
"posix" ('PATH=`getconf PATH` sh @minus{}s').   The default is "posix".
swinstall requires the Posix capability of reading commands on stdin
according to the specification described in IEEE Std 1003.1, 2003 Ed.; sh @minus{}shell,
Section STDIN.  This requirement accommodates reading of shell program code and
data on STDIN.  This capability may not be present in some /bin/sh shells.
The "/bin/sh" on FreeBSD-5.1 may be broken in this regard, hence ''@minus{}@minus{}shell-command=bash''
should be used for BSD hosts.
The public domain Korn shell (pdksh-5.2.14) seems to
work OK, that is, it complies by luck or intent with the Posix capability of
reading data and code on stdin.
@comment TROFF INPUT: .PP

If the @minus{}@minus{}no-getconf option is set or
the swinstall.swbis@t{_}no@t{_}getconf defaults option is "true" then the
remote command is '/bin/sh @minus{}s'.
Use of the no-getconf option is needed for communication with
user accounts on remote machines whose login shell is not a Bourne shell
(e.g. csh) such as root on some default BSD installations.
Other *nix systems may require use of getconf because their /bin/sh is
broken or not Posix enough (e.g. Sun platforms).
Still other systems may not have @b{getconf}.
@comment TROFF INPUT: .PP

Other utilities required to be in $PATH on the remote host are:
dd, pax (or tar|star|gtar), hostname, mkdir, expr, echo, test, sleep, read (if not builtin).
@comment TROFF INPUT: .SH "FILES"

@node FILES

@section FILES
@c DEBUG: print_menu("FILES")

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 /usr/lib/swbis/swdefaults
 /usr/lib/swbis/swbisdefaults
 $HOME/.swbis/swdefaults
 $HOME/.swbis/swbisdefaults
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SH "APPLICABLE STANDARDS"

@node APPLICABLE STANDARDS

@section APPLICABLE STANDARDS
@c DEBUG: print_menu("APPLICABLE STANDARDS")

@comment TROFF INPUT: .PP

ISO/IEC 15068-2:1999, Open Group CAE C701
@comment TROFF INPUT: .SH "SEE ALSO"

@node SEE ALSO

@section SEE ALSO
@c DEBUG: print_menu("SEE ALSO")

@comment TROFF INPUT: .PP

info swbis
@comment TROFF INPUT: .PP

swcopy(8), sw(5), swbisparse(1), swign(1), swverify(8)
@comment TROFF INPUT: .SH "IDENTIFICATION"

@node IDENTIFICATION

@section IDENTIFICATION
@c DEBUG: print_menu("IDENTIFICATION")

 swinstall(8): The installation utility of the swbis project.
 Author: Jim Lowe   Email: jhlowe at acm.org
 Version: 0.473
 Date: 2005-11-03
 Copying: GNU Free Documentation License
@comment TROFF INPUT: .SH "BUGS"

@node BUGS

@section BUGS
@c DEBUG: print_menu("BUGS")

@comment TROFF INPUT: .PP

swinstall is subject to breakage if a user's account on an intermediate
(or terminal) host in a target spec is not configured to use a Bourne
compatible shell. (This breakage may be eliminated by use of the
@minus{}@minus{}no-getconf option as explained above.)
@comment TROFF INPUT: .PP

A multiple ssh hop source spec  (more than 1 remote host involved in the
source transfer) upon a SIGINT may result in sshd and ssh processes
being left on on the intermediate host(s), this despite, swinstall's action of
sending a SIGTERM to the remote script's parent process.
@comment TROFF INPUT: .PP

swinstall does not currently implement Software Selections, not fileset dependencies, and much more.
Only packages with one product and one fileset are supported.
@comment  created by instant / docbook-to-man, Sat 05 Nov 2005, 15:41
@bye
