
This is a short description of stowES.


stowES is a perl script which tries to ease the use of the stow packaging
program and software which can be compiled and installed with autoconf.

You should know what stow does with its packages and how to use autoconf'ed
sources...


stowES supplies the following commands:

   - list  [regexp]   
                   List all packages in StowDir (usually /usr/local).
                   The package names are prefixed with a char of the
                   following meaning:
                      I ... package is installed
                      s ... package can be checked in without any conflict
                      - ... package cannot be checked in because there
                            is a conflict with an already installed
                            package, the file in parentheses is the first
                            conflicting found
                   You may give regexps to only show specific packages, if
                   no arguments are given all packages are shown.
                 
   - install  dir(s)|file(s)     
                   Calls command "untar" if the argument is a file. Then
                   calls "instmake", "instsrc" and "checkin" with the
                   appropriate arguments.

   - untar  file(s)       
                   Unpacks a {tar,tar.gz,tar.bz2}-source-archiv to the
                   directory specified by "dumpdir".

   - instmake dir(s)   
                   The directory specified as a argument should contain
                   a "configure"-script which is called with the arguments
                   "--prefix=TargetDir". After this "make" and "make check"
                   are called.

   - instsrc dir(s)      
                   This command checks for a file "config.status" which
                   should be left by the call of "configure". Then 
                   "make install prefix=StowDir/packagename" is called to
                   install the package in the appropriate place.

 The following commands take regular expressions or the option "-a" as
 arguments.

   - checksums     This command creates the checksums for the packages.

   - chkchksums    This command verifies the checksums given in the package 
                   with the ones calculated for each file.

   - depends       This command calculates some basic dependeny
                   information. It only checks binaries and libraries via
                   "ldd" for needed libraries.

   - checkin       Calls "stow" for the package if the package is not
                   checked in.

   - checkout      Calls "stow -D" for the package if the packges is
                   checked in.

   - strip         Strips all files in the package.

   - remove        Removes a package.

   - package       Creates an archive of the specified package and stores
                   it in the DumpDir.

   - contents      Lists the contents of packages.

   - contsearch    Searches all files in the packages for a specified
                   pattern. Useful to check if a path containing "stow" was
                   compiled in the binaries/libraries.

   - checklibs     Check if all libs for package are available.
                   If stowES thinks there's something wrong that may be so but 
                   must not be so. Some programs hide special libs in special
                   directories which are not know when testing with ldd.


   - rename regexp newname
                   Renames a package.

   - instpack files 
                   Installes and checks in a package created by the
                   "package"-command.

   - help          Print a help screen.

   - config        Print the actual configuration of all interesting
                   variables.

   - version       Print a version information.


The following options are available:

  -s, --stowdir dir          Stow dir, usually '/usr/local/stow'.
  -t, --targetdir dir        Target dir, usually '/usr/local'.
  --stowname name            Name of the stow directory, usually 'stow'.
  -p, --packagename name     Alternate package name.
  -a, --allpackages          Proceed all packages found in $StowDir.
  -v, --verbose level        Verbose mode.
  -q, --quiet                Quiet mode.
  -k, --continue             Continue after error if possible.
  -d, --dumpdir dir          Dir to store all the stuff, default '/tmp'.
  -m, --ambiguous            Regexps may match more than one package.
  -n, --dryrun               Only show what to do.
  -c, --configfile           Specify a configfile (may be used multiple times).
  -o, --outputfile           Output file, default STDOUT.
  -l, --logfile              Log file, prints short messages.
  --contentpattern pattern   Search pattern, usually '\Wstow\W'.
  --contentsearchfile file   Filelist of matches, default '/dev/null'.
  --dependencyfilename file  Filename for dependencies, default 'dependencies'.
  --checksumfilename file    Filename for checksums, default 'md5sums'.
  --packagesuffix string     Additional name for packages (e.g. architecture).
  --removesource             Remove unpacked source after built.
  --depends, --nodepends 
  --checkin, --nocheckin
  --chkchksums, --nochkchksums
  --checksums, --nochecksums     
  --strip, --nostrip         Switch these options on/off.
  --prog key=program         Specify alternate Programs. 
                              For keys see %Progs in the config screen.
  --prm-conf regexp=param | param
  --prm-make regexp=param | param
                             Specify extra parameters for the call of 
                             configure and make.



 Annotations:
   If you only use the "stowdir"-option, the target dir will be the parent
   directory of the stow directory. Furthermore, if you only specify the
   target directory, the stow directory will be "targetdir/stowname".

   By default, commands which take regexps as params are only executed
   if they match exactly one package. This should help to avoid messing up
   your packages ("$0 remove glib" would remove more than just glib, at
   least on my system...). If you want to supply a command to more packages 
   you may use the "m"-option.

   --prm-conf, --prm-make: If you only specify a param which contains a '=' 
   (e.g. CC=gcc) you have to proceed a '=' to avoid splitting up the param
   itself (--prm-make==CC=gcc or --prm-make =CC=gcc)
 
 Config files:
   You may store any option you would write on your command line in a
   config file. These options are pushed before the arguments you gave on
   the command line, so you can overwrite options given in a config file.
   Standard configs may be placed in "/etc/stowESrc" and/or "~/.stowESrc".



  Recommendation:
   You should have a backup of your files when you play with my script...
                         I have warned you...


  
  Examples:

    > S install --removesource glib-1.2* gtk+-1.2* gnome-libs* gnome-core*
       gnome-utils* gnome-network* gnome-audio* gnome-games* gnome-admin*

    This command can be used to install gnome with one (!) command (but
    here only with the standard configs...)

    Now a bit smaller:

    > S install store/src/autoconf/autoconf-2.14.tar.gz 

    will upack, compile and install autoconf in /usr/local.

    > S chkchksums -a
    Checking checksums for package autoconf-2.14...ok.

    If you have only autoconf installed a call of chkchksums may give this
    output.

    > S remove autoconf

    Use this if you want to get rid of autoconf.

    > S list window
    Listing packages in /usr/local/stow matching [ window ] (3 matches):
    I WindowMaker-0.61.1
    I WindowMaker-data
    I WindowMaker-extra-0.1

    Here you see that I have three packages matching "window" installed.

