CHANGES - ESP Package Manager (EPM) 3.7 --------------------------------------- WHAT'S NEW IN EPM 3.7? EPM 3.7 adds the following features, fixes, and changes to EPM 3.6: - Fixed init script support for Tru64 packages. - AIX output now correctly generates the inventory file for files in /usr and /opt. - The Slackware packaging code swapped the output directory and product name when generating the post-install script. - RPM dependencies of the form "%requires package >= version" are now correctly written in the spec file. - AIX output now correctly lists file sizes by directory and handles /opt properly. - RPM output now correctly handles installing, upgrading, and removing init scripts. - RPM output did not work with filenames that contained a dollar sign ($). - Added Slackware packager support based upon a patch contributed by Alec Thomas. - The file copy code reported write errors for the source filename and not the (correct) destination filename. - Fixed the handling of absolute output directories when generating RPM packages. - The configure script did not support the OPTIM environment variable for custom optimization settings. - Portable packages updated the permissions of configuration files before they were copied. - Portable installations did not remove empty installation directories when the remove script was run. - Portable patch installation did not correctly determine when root or /usr files were present in the patch. - OSX packages incorrectly looked in /System/Library for the init scripts instead of /Library. - RPM building did not work properly when --output-dir was specified using an absolute path. - Made cosmetic changes to the setup/uninstall GUIs. - The setup GUI did not support software patches. - The documentation incorrectly specified runlevels() instead of runlevel(). - The portable distributions incorrectly used /usr/local/src/rc.d as a fallback location for init scripts. WHAT'S NEW IN EPM 3.6? EPM 3.6 adds the following features, fixes, and changes to EPM 3.5.1: - Added a GUI uninstall program to be distributed with portable distributions with a setup image. - MacOS X portable packages now support graphical setup and uninstall using the Apple authorization API. - Debian packages did not include the (required) trailing period when running the update-rc.d script. - BSD packages now create directories using postinstall commands instead of listing them directly. This should eliminate errors from the FreeBSD pkg_delete command. - File dependencies were incorrectly specified in RPM spec files. - IRIX portable distributions didn't write the chkconfig commands properly. - The mkepmlist utility didn't support files as well as directories. - EPM didn't do variable expansion of imported files ("= version" in Debian packages. - Portable distributions that didn't have any files in /usr or in / would look for a non-existent .sw or .ss file. - EPM's sample list file didn't include the man pages for setup or setup.types, and installed the epm list file format man page in the wrong directories. - EPM would quote the ":" character in filenames but didn't need to. - EPM tried to move the wrong RPM file on non-intel systems. WHAT'S NEW IN EPM 3.5.1? EPM 3.5.1 adds the following features, fixes, and changes to EPM 3.5: - OSX packages did not set the "install as root" package type, so package installation usually failed. - OSX packages installed init scripts in /System/Library/StartupItems, but non-Apple packages should be installed in /Library/StartupItems. - Added support for "requires(foo)", "uses(foo)", "provides(foo)", and "order(foo)" as options for init scripts. These options are currently only used when creating OSX packages. WHAT'S NEW IN EPM 3.5? EPM 3.5 adds the following features, fixes, and changes to EPM 3.4: - Added support for MacOS X package generation. - No longer need/use RPMDIR when building RPMs, just set the "topdir_" variable in the spec file. - The portable removal scripts didn't correctly write the list of init scripts to remove. - Added a new --output-dir option contributed by Geoffrey Wossum. - Not all implementations of the "id" command support the "-u" option, so EPM now looks at the default output. - RPM dependencies with a single version number didn't get written to the spec file properly. - Added support for file options - nostrip(), runlevel(12345), start(nn), and stop(nn). - Filenames can now contain spaces, either by putting the full name in quotes ("file with spaces") or using the backslash character (file\ with\ spaces). - The mkepmlist utility didn't handle symlinks properly. - BSD packages needed to list the directories to remove separately and in reverse order. WHAT'S NEW IN EPM 3.4? EPM 3.4 adds the following features, fixes, and changes to EPM 3.3: - No longer install init scripts in run levels 2 and 5 under Solaris, which runs all init scripts in each run level. - The tar files produced by EPM didn't conform to the POSIX 1003.1 spec. EPM now puts the POSIX version number (00) and supports "long" filenames up to 255 characters in length. - AIX packages did not use the correct path for files placed in the root partition. - Now install init scripts for *BSD in /usr/local/etc/rc.d. - Portable installation scripts now issue chown and chgrp commands for all installed files that are not owned by user root. - No longer use or pad empty tar files, which saves 5k of disk space per distribution. WHAT'S NEW IN EPM 3.3? EPM 3.3 adds the following features, fixes, and changes to EPM 3.2.1: - UnixWare 7 needs the absolute path when transferring an AT&T package directory to a .pkg file. - Now use the "id" command (POSIX) instead of "whoami" (BSD) to check that the installing user is root. - Various fixes for OpenServer. - Now use the "-ln" option when checking for the size of the distribution files in portable distributions. - New C implementation of mkepmlist, based on a contribution from Andreas Voegele. - The portable install and patch scripts now change the permissions of the installed "remove" script to 544. - The wildcard character * did not match 0 characters if the pattern and the filename string differed only by the trailing * (e.g. "Courier" and "Courier*"). - IRIX pre/postremove scripts are now copied after installation so that they can be executed when removing the inst/tardist package. - HP-UX postinstall/preremove scripts would execute init scripts from /sbin/init.d/sbin/init.d. - The copyright string wasn't being quoted in portable installation scripts. - EPM now checks to see if an executable file is a shell script before running the "strip" command. WHAT'S NEW IN EPM 3.2.1? EPM 3.2.1 adds the following features, fixes, and changes to EPM 3.2: - The check for Darwin (MacOS X) in the portable installation scripts was using "==" instead of just "=". WHAT'S NEW IN EPM 3.2? EPM 3.2 adds the following features, fixes, and changes to EPM 3.1: - Added "SHELL=/bin/sh" line to portable installation, patch, and remove scripts in case the root shell is not /bin/sh or a compatible shell. - The epminstall utility didn't support the EPMLIST environment variable as documented. - The "native" distribution format is now "deb" if the "dpkg" command is installed in /usr/bin. - Debian packages did not use the release number in the Version: keyword. - Changed the portable installation script support for init scripts to look for scripts in both rc2.d and rc3.d, and to check for the existence of all rc directories before installing into them. - Changed the portable installation script to prepend /bin, /usr/bin, and /usr/ucb to the beginning of the PATH variable so the "tar", "rm", and "mv" commands can be found in whatever directory the local system uses. - AIX packaging now works. - Added support for the Darwin (MacOS X) tar command in portable packages (sudo ./foo.install :) - IRIX inst packages incorrectly had the postinstall commands in the preinstall and removal scripts. - The setup GUI now requires FLTK 1.1.x. WHAT'S NEW IN EPM 3.1? EPM 3.1 adds the following features, fixes, and changes to EPM 3.0: - Added support for "< 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.