This appendix lists the change log for each release of the
EPM software.
Changes in EPM v3.0
- 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.
Changes in EPM v2.8
- 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...
Changes in EPM v2.7
- 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.
Changes in EPM v2.6
- 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.
Changes in EPM v2.5
- 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.
Changes in EPM v2.4
- The [] wildcard matching did not skip over the
character that was matched. This prevented matches in
most cases...
Changes in EPM v2.3
- 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}.
Changes in EPM v2.2
- 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.
Changes in EPM v2.1
- 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.
Changes in EPM v2.0
- 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.
Changes in EPM v1.7
- 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.
Changes in EPM v1.6
- 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.
Changes in EPM v1.5
- 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.
Changes in EPM v1.4
- 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.
Changes in EPM v1.3
- 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.
Changes in EPM v1.2
- 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.
Changes in EPM v1.1
- 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.