CHANGES - ESP Package Manager (EPM) 3.0
---------------------------------------

WHAT'S NEW IN EPM 3.0?

    EPM 3.0 adds the following features, fixes, and changes to
    EPM 2.8:

	- Added new documentation.
	- Added new "-a arch" option to support specific
	  architectures (e.g. i586, i686, ultrasparc, etc.)
	- Added support for the *BSD package format using
	  pkg_create.
	- Added support for the AIX package format using
	  the backup program.
	- Added new epminstall utility to build list files
	  from "make install" targets.
	- Added snprintf/vsnprintf functions for systems that
	  don't provide them, and use snprintf and vsnprintf
	  for all formatted strings that aren't just numbers.
	- Added new run_command() function to replace use of
	  system() function.
	- Added new %provides directive.
	- Revamped the setup GUI, including support for
	  installation types in the setup GUI, so that you can
	  select groups of products or choose a custom
	  installation.
	- The mkepmlist utility had a bad regular expression
	  that thought that any argument (directory names, etc.)
	  with a dash ("-") in it was an unsupported option.
	- Fixed a bug in the removal script: config files were
	  removed by the remove script...
	- Changed the config file install logic to copy the new
	  config file (instead of moving it), so that an
	  unchanged config file can be detected and removed.
	  This provides the best of both worlds: unchanged
	  config files are update automatically by an
	  upgrade/install, while changed ones are preserved.


WHAT'S NEW IN EPM 2.8?

    EPM 2.8 adds the following features, fixes, and changes to
    EPM 2.7:

	- The line breaking code did not include an extra
	  space, so filenames in the portable install/patch/
	  remove scripts would be joined instead of separated.
	- The setup GUI did not allow the user to toggle a
	  software product for distribution if the product was
	  selected (nav box around it).
	- The mkepmlist program didn't get the permissions of
	  each file (just the parent directory.)
	- The portable installation scripts used the -L or -h
	  option to test for symlinks with the test command. The
	  choice of option was based on the build platform,
	  making the script non-portable. Now use -h exclusively
	  since it is supported on all UNIX's we have access to,
	  even with GNU test even though it isn't documented...


WHAT'S NEW IN EPM 2.7?

    EPM 2.7 adds the following features, fixes, and changes to
    EPM 2.6:

	- Fixed a bug in the configuration script with the
	  --with-fltk-includes option.
	- Tru64 UNIX distributions now use the name "tru64"
	  instead of "dunix".  "dunix" is still supported
	  in list files for compatibility with old list files.
	- Added support for portable scripts under AIX.
	- Fixed the space checking code in portable installation
	  scripts.
	- Now break up long lines in the portable install/patch/
	  remove scripts.


WHAT'S NEW IN EPM 2.6?

    EPM 2.6 adds the following features, fixes, and changes to
    EPM 2.5:

	- Changed the automatic version number generation code to
	  properly handle patch, beta, and pre releases.
	- Added support for release numbers in RPM files.
	- Added support for version number ranges in dependencies,
	  either as "low-version high-version", "< version", or
	  "> version".
	- Eliminated some GCC warnings about using a char to
	  index into an array.
	- Added a disk space check to the portable installation
	  scripts.
	- Added a new mkepmlist utility, based on a Perl script
	  by Christian Lademann.
	- Added a "keep files" option (-k) to epm to keep the
	  intermediate (spec, etc.) files around after building
	  the binary distribution.
	- Added support for Tru64 UNIX software packages (setld).
	- Patch distributions were incorrectly backing up the
	  original files, causing the original backup to be lost.
	- Pre/post install/remove scripts were not using the
	  right filename for Solaris PKG distributions.	
  

WHAT'S NEW IN EPM 2.5?

    EPM 2.5 adds the following features, fixes, and changes to
    EPM 2.4:

	- Added support for pre-install, post-install, pre-patch,
	  post-patch, pre-remove, and post-remove commands.
	- There was no way to use a literal $ in scripts or in
	  filenames.  Use $$ to include a single $.
	- The config and license file support for AT&T software
	  packages did not check to see if the source file had
	  an absolute path.  This would produce an invalid
	  prototype file.
	- The RPM --target option was not being called with an
	  equal sign, which caused problems with RPM 4.0.
	- Updated the Debian packager to use the prerm and postrm
	  script names to match reality.
	- Updated the Debian packager to support the Replaces
	  dependency.
	- Updated the portable and RPM distributions to check
	  for the new SuSE 7.1 init.d directories.
	- RPM distributions now use %config(noreplace) for
	  config files, to duplicate the behavior that is
	  expected.
	- The portable scripts now use the autoconf echo test to
	  determine the proper options for echo (-n or \c),
	  rather then hardcoding this based on the build system.


WHAT'S NEW IN EPM 2.4?

    EPM 2.4 adds the following features, fixes, and changes to
    EPM 2.3:

	- The [] wildcard matching did not skip over the
	  character that was matched.  This prevented matches in
	  most cases...


WHAT'S NEW IN EPM 2.3?

    EPM 2.3 adds the following features, fixes, and changes to
    EPM 2.2:

	- Fix for an incredibly stupid bug in the portable
	  distribution code - was using ! instead of ~ to mask
	  off the write permission bits in the distribution
	  archive.
	- Now use getpwuid() instead of getlogin() to get the
	  username of the packager.
	- The RPM distributions now use the same init.d script
	  logic as portable distributions. This should make them
	  portable to all known Linux distributions as well as
	  avoid a *very* nasty installer bug in RedHat 7.0.
	- The HP-UX swinstall code did not properly handle
	  directories or config files.
	- The [] wildcard matching rule did not accept ranges
          (e.g. "[a-z]", "[0-9]", etc.)
	- Added VPATH support and distribution targets to
	  Makefile.
	- Added support for defining variables in list files;
	  the format is "$name=value".
	- The variable expansion code didn't check for ${name}.


WHAT'S NEW IN EPM 2.2?

    EPM 2.2 adds the following features, fixes, and changes to
    EPM 2.1:

	- New HTML documentation files.
	- Updated the BuildRoot directive in RPM spec files to
	  be an absolute path; RedHat 6.2's version of RPM adds
	  a leading slash otherwise.
	- IRIX defaults to run level 2...
	- The setup GUI now displays an error message if run by
	  a non-root user.
	- The setup GUI now provides "Install All" and "Install
	  None" buttons in the software selection pane.
	- Added a "native" distribution format to select the
	  native format for a particular OS (Linux defaults to
	  RPM format...)
	- The tar file generation code now always appends at
	  least 2 zeroed blocks to the end of the archive.  This
	  eliminates error messages from Solaris tar and seems
	  to be compatible with all other tar programs.
	- Added the SuSE RPM directory to the standard search
	  path.
	- Added support for a new %packager directive.
	- The strip command used was redirecting stderr before
	  redirecting stdout.
	- The portable distributions now set the umask to avoid
	  problems with buggy tar programs and Linux
	  distributions.
	- Added command-line option to specify the location of
	  the setup program.
	- Added support for wildcards in source filenames.
	- The OS version number is now truncated to only contain
	  the major and minor release numbers.


WHAT'S NEW IN EPM 2.1?

    EPM 2.1 adds the following features, fixes, and changes to
    EPM 2.0:

	- Moved setup program to /usr/lib/epm ($prefix/lib/epm)
	  to avoid name clash with RedHat setup program.
	- Added Debian distribution files from Jeff Licquia.
	- Configure script changes for GCC 2.95.x and Solaris.
	- Portability fixes.
	- Now look for RPMS in different "standard" locations
	  after building them; the RPMDIR environment variable
	  can be used to override the default locations.
	- The sample project list file (epm.list) was missing
	  from the 2.0 distribution.
	- Now check for write permission in /usr by writing a
	  test file (/usr/.writetest); this should make diskless
	  client installations more reliable.
	- Added support for variables on the command line
	  (name=value); insert into project filenames using
	  $name.
	- Variable expansion is now done on all lines and fields.
	  This allows variables to be used in scripts and in the
	  permissions field, for example.
	- Now only specify run levels 0 and 3 for init scripts
	  (0, 3, and 5 for Linux.)
	- Now support init scripts in /sbin/init.d and
	  /sbin/init.d/rcN.d (SuSE.)
	- RPM distributions should now work OK for non-Red Hat
	  based systems, in particular for init scripts.
	- PKG distributions are now also generated in the
	  "package stream" format as well as the directory and
	  tar.gz file formats.


WHAT'S NEW IN EPM 2.0?

    EPM 2.0 adds the following features and fixes to EPM 1.7:

	- New "-f" option to generate vendor-specific software
	  distributions.  Now support AT&T, Debian, HP-UX, IRIX,
	  and Red Hat software distributions.
	- New "-s" option to include the ESP Software Wizard (GUI)
	  with portable distributions.
	- The "-t" option (test) is no longer supported.
	- New "-v" option to control the amount of information
	  that is reported.
	- New graphical setup program for portable distributions.
	- New "description" directive.
	- New "format" directive.
	- New "include" directive.
	- New "replaces" directive.
	- Portable distributions should now be more portable.


WHAT'S NEW IN EPM 1.7?

    EPM 1.7 adds the following features and fixes to EPM 1.6:

	- The %requires and %incompat directives now support
	  specification of files as well as products.
	- The init script installation code now creates a link in the
	  init.d subdirectory to avoid frustrating well-trained
	  fingers.
	- The progress messages for shared and non-shared software were
	  the same.


WHAT'S NEW IN EPM 1.6?

    EPM 1.6 adds the following features and fixes to EPM 1.5:

	- Installation archives were missing the ".ss" and ".pss"
	  files that were added to support diskless installations.
	- The scripts didn't handle removing distributions that
	  had no non-shared components.
	- The scripts didn't return a non-zero exit status if the
	  user did not agree with the license or want to install.


WHAT'S NEW IN EPM 1.5?

    EPM 1.5 adds the following features and fixes to EPM 1.4:

	- Now support diskless installations; all files destined for
	  /usr are put in a separate archive and are installed (or
	  removed) only if /usr is read+write.

WHAT'S NEW IN EPM 1.4?

    EPM 1.4 adds the following features and fixes to EPM 1.3:

	- Now map group "sys" to "system" for Digital UNIX and "root" for
	  Linux.
	- The initialization script installation now checks for the presence
	  of run levels 4 and 5.


WHAT'S NEW IN EPM 1.3?

    EPM 1.3 adds the following features and fixes to EPM 1.2:

	- Now use the "p" option to tar to ensure that file permissions
	  are created properly.  This is normally the default for the
	  super-user, but not under Digital UNIX!
	- Initialization scripts are now linked to run levels 0, 2, 3, 4,
	  and 5.


WHAT'S NEW IN EPM 1.2?

    EPM 1.2 adds the following features and fixes to EPM 1.1:

	- Patch distributions were not correctly named.
	- Added new "initialization script" file types "i" and "I". The
	  new file types place the scripts in /etc/software/init.d and
	  make links to the appropriate system-specific rc.d
	  directories and run the scripts to start and stop things
	  accordingly.


WHAT'S NEW IN EPM 1.1?

    EPM 1.1 adds the following features and fixes to EPM 1.0:

	- The "whoami" command isn't always in the user's path, so
	  scripts now use a hard-coded path (setup by the configure
	  script) to the program.
	- Added a check for IRIX64 (64-bit kernel instead of n32.)
	- The %system directive now supports release numbers, e.g.
	  "irix-6.5".
	- The %system directive now supports "!" (not) operator so you
	  can do things like "%system irix !irix-6.5" to select any
	  IRIX release except IRIX 6.5.
	- Files that already exist on the system are renamed to
	  "filename.O" on installation and back to "filename" when
	  removed (except for config files, which don't overwrite and
	  aren't removed.)
	- Prerequisites (%required directive) now look for required
	  product in the current directory and install it automatically
	  if it is available and not already installed.
	- The copyright notice in the installation script was not
	  displayed if the user used the "now" option.
