epm - create software packages


SYNOPSIS

       epm  [  -f  format ] [ -g ] [ -n[mrs] ] [ -s setup.xpm ] [
       --setup-image setup.xpm ] [ --setup-program /foo/bar/setup
       ] [ -v ] [ name=value name=value ] product [ listfile ]


DESCRIPTION

       epm  generates  software  packages complete with installa-
       tion, removal, and (if necessary)  patch  scripts.  Unless
       otherwise  specified,  the  files required for product are
       read from a file named "product.list".

       The -f option ("format") specifies the  distribution  for-
       mat:

       deb
            Generate a Debian distribution suitable for installa-
            tion on a Debian Linux system.

       inst, tardist
            Generate an IRIX distribution suitable for  installa-
            tion on an system running IRIX.

       native
            Generate  an  native  distribution. This uses rpm for
            Linux, inst for IRIX, pkg for Solaris, and  swinstall
            for HP-UX. All other operating systems default to the
            portable format.

       pkg
            Generate an AT&T software  package.  These  are  used
            primarily under Solaris.

       portable
            Generate  a  portable  distribution  based  on  shell
            scripts and tar files.  The resulting distribution is
            installed  and  removed the same way on all operating
            systems. [default]

       rpm
            Generate a Red Hat Package Manager ("RPM")  distribu-
            tion  suitable  for  installation  on a Red Hat Linux
            system.

       swinstall, depot
            Generate a HP-UX software distribution.

       Executable files in the distribution are normally stripped
       of  debugging  information  when packaged. To disable this
       functionality use the -g option.

       distribution. This option is currently only  supported  by
       portable distributions.

       The  --setup-program option specifies the setup executable
       to use with the distribution.  This  option  is  currently
       only supported by portable distributions.

       The -v option ("verbose") increases the amount of informa-
       tion that is reported. Use multiple v's for  more  verbose
       output.

       Distributions  normally are named "product-version-system-
       release-machine.ext" and  "product-version-system-release-
       machine-patch.ext" (for patch distributions.) The "system-
       release-machine" information can be customized  or  elimi-
       nated  using  the  -n option with the appropriate trailing
       letters. Using -n  by  itself  will  remove  the  "system-
       release-machine" string from the filename entirely.

       Debian,  IRIX, portable, and Red Hat distributions use the
       extensions  ".deb",  ".tardist",  "tar.gz",   and   ".rpm"
       respectively.


LIST FILES

       Each  product  has  an associated list file that describes
       the files to include with the product. Comment lines begin
       with  the  "#"  character and are ignored.  All other non-
       blank lines must begin with a letter, dollar  sign  ("$"),
       or the percent sign ("%") as follows:

       $name=value
            Sets the named variable to value. Note: Variables set
            in the list file are overridden by  variables  speci-
            fied  on  the command-line or in the current environ-
            ment.

       %copyright copyright notice
            Sets the copyright notice for the file.

       %description description text
            Adds a line of descriptive text to the  distribution.
            Multiple lines are supported.

       %format format [... format]
            Uses  following files and directives only if the dis-
            tribution format is the same as format.

       %format !format [... format]
            Uses following files and directives only if the  dis-
            tribution format is not the same as format.

       %include filename

       %incompat filename
            Indicates  that this product is incompatible with the
            named product or file.

       %install script or program
            Specifies a script or program to  be  run  after  all
            files are installed.

       %license license file
            Specifies   the  file  to  display  as  the  software
            license.

       %packager name of packager
            Specifies the name of the packager.

       %patch script or program
            Specifies a script or program to  be  run  after  all
            files are patched.

       %product product name
            Specifies the product name.

       %readme readme file
            Specifies a README file to be included in the distri-
            bution.

       %remove script or program
            Specifies a script or program to be run before remov-
            ing or patching files.

       %replaces product
            Indicates  that this product replaces the named prod-
            uct.

       %requires product

       %requires filename
            Indicates that this product requires the named  prod-
            uct or file.

       %vendor vendor or author name
            Specifies the vendor or author of the product.

       %version version number
            Specifies the version number of the product.

       %system system[-release] [... system[-release]]
            Specifies  that  the  following  files should only be
            used  for  the  specified   operating   systems   and
            releases.

            Specifies that the following files should not be used
            for the specified operating systems and releases.

       %system all
            Specifies that the following files are applicable  to
            all operating systems.

       c mode user group destination source

       C mode user group destination source
            Specifies  a configuration file for installation. The
            second form specifies that the file has changed or is
            new  and  should be included as part of a patch. Con-
            figuration files are installed as "destination.N"  if
            the destination already exists.

       d mode user group destination -

       D mode user group destination -
            Specifies   a   directory   should  be  created  when
            installing the software. The  second  form  specifies
            that  the  directory is new and should be included as
            part of a patch.

       f mode user group destination source

       F mode user group destination source
            Specifies a file for installation.  The  second  form
            specifies  that  the  file  has changed or is new and
            should be included as part of a patch.

       f mode user group destination source/pattern

       F mode user group destination source/pattern
            Specifies one or more files  for  installation  using
            shell  wildcard  patterns.  The second form specifies
            that the files have changed or are new and should  be
            included as part of a patch.

       i mode user group service-name source

       I mode user group service-name source
            Specifies  an initialization script for installation.
            The second form specifies that the file  has  changed
            or  is new and should be included as part of a patch.
            Initialization     scripts     are     stored      in
            /etc/software/init.d  and are linked to the appropri-
            ate system-specific directories for run levels 0,  2,
            3,  and  5.  Initialization  scripts  must accepts at
            least the start and stop commands.

       l mode user group destination source
            Specifies a symbolic link in  the  installation.  The
            second form specifies that the link has changed or is
            new and should be included as part of a patch.

       R mode user group destination
            Specifies that the file is to be removed upon  patch-
            ing.   The  user  and  group fields are ignored.  The
            mode field is only  used  to  determine  if  a  check
            should be made for a previous version of the file.


LIST VARIABLES

       EPM  maintains  a list of variables and their values which
       can be used to substitute values in the list  file.  These
       variables  are  imported  from the current environment and
       taken from the command-line and  list  file  as  provided.
       Substitutions  occur  when the variable name is referenced
       with the dollar sign ($):

           %install echo What is your name:
           %install read $$name
           %install echo Your name is $$name

           f 0555 root sys ${bindir}/foo foo
           f 0555 root sys $datadir/foo/foo.dat foo.dat

       Variable  names  can  be  surrounded  by  curley  brackets
       (${name})  or  alone ($name); without brackets the name is
       terminated by the first slash (/), dash  (-),  or  whites-
       pace. The dollar sign can be inserted using $$.


ENVIRONMENT VARIABLES

       The  RPMDIR  environment  variable will override where EPM
       looks for RPM  distributions  you  generate.  The  default
       locations   are  /usr/src/redhat/RPMS,  /usr/src/RPM/RPMS,
       /usr/src/packages/RPMS, and /usr/local/src/RPMS.


KNOWN BUGS

       EPM does not currently support generation of IRIX software
       patches.


COPYRIGHT

       Copyright  1999-2001 by Easy Software Products, All Rights
       Reserved.

       This program is free software;  you  can  redistribute  it
       and/or modify it under the terms of the GNU General Public
       License as published  by  the  Free  Software  Foundation;
       either version 2, or (at your option) any later version.

       This  program  is  distributed in the hope that it will be
       useful, but WITHOUT ANY WARRANTY; without even the implied
       warranty  of  MERCHANTABILITY  or FITNESS FOR A PARTICULAR