forked from michaelrsweet/epm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
666 lines (575 loc) · 24.8 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
CHANGES - ESP Package Manager (EPM) 5.0
---------------------------------------
EPM 5.0
EPM 4.3
EPM 4.2
- Removed unnecessary quoting of "!" in filenames (STR #26)
- Added support for signed RPM packages.
- Added support for inclusion of format-specific packaging
files and directives via a %literal directive (STR #5)
- *BSD init scripts were not installed properly.
- EPM now displays a warning message when a variable is
undefined (STR #10)
- *BSD dependencies on versioned packages are now
specified correctly (STR #4)
- EPM now uses /usr/sbin/pkg_create on FreeBSD (STR #2)
- FreeBSD packages are now created with a .tbz
extension (STR #1)
- FreeBSD packages incorrectly assumed that chown was
installed in /bin (STR #3)
- Added support for an "lsb" package format which uses
RPM with the LSB dependencies (STR #7)
- The configure script now supports a --with-archflags
and no longer automatically builds universal binaries on
Mac OS X.
- The epm program now automatically detects when the
setup GUI is not available, displays a warning message,
and then creates a non-GUI package.
- RPM packages did not map %replaces to Obsoletes:
EPM 4.1
- The temporary package files for portable packages are
now removed after creation of the .tar.gz file unless
the -k (keep files) option is used.
- The RPM summary string for subpackages did not contain
the first line of the package description as for other
package formats.
- The setup and uninst GUIs now support installing and
removing RPM packages.
- The setup GUI now confirms acceptance of all licenses
prior to installing the first package.
- Subpackages are no longer automatically dependent on
the main package.
- Multi-line descriptions were not embedded properly into
portable package install/patch/remove scripts.
- Updated the setup and uninstall GUIs for a nicer
look-n-feel.
- Mac OS X portable packages now show the proper name,
version, and copyright for the packaged software
instead of the EPM version and copyright...
- Fixed a problem with creation of Mac OS X metapackages
with the latest Xcode.
- EPM now removes the individual .rpm and .deb files when
creating a package with subpackages unless the -k
option (keep files) is used.
- EPM now only warns about package names containing
characters other than letters and numbers.
- EPM now generates disk images as well as a .tar.gz
file when creating portable packages on Mac OS X.
EPM 4.0
- New GUI editor for list files.
- New subpackage support for creating multiple dependent
packages or a combined package with selectable
subpackages, depending on the package format.
- Added support for compressing the package files in
portable packages (reduces disk space requirements on
platforms that provide gzip...)
- Added support for custom platform names via the new
"-m name" option.
- Added support for non-numeric %release values.
- Added new --depend option to list all of the source
files that a package depends on.
- The setup GUI now sets the EPM_INSTALL_TYPE environment
variable to the value of the selected TYPE line in the
setup.types file.
- Fixed NetBSD and OpenBSD packaging support - no longer
use FreeBSD-specific extensions to pkg_create on those
variants.
- Fixed PowerPC platform support for RPM and Debian
packages.
- Many fixes to AIX package support.
- Tru64 packages with init scripts now work when
installing for the first time.
- RPM file dependencies should now work properly.
- Portable product names containing spaces will now
display properly.
EPM 3.7.1
- Solaris packages were not created when the output
directory was absolute.
- EPM no longer tries to strip empty files.
- Solaris 7 and higher no longer have the "2." prefix in
the version number.
- The setup and uninst GUIs now support GIF setup images
(setup.gif) as well as XPM images (setup.xpm)
- Debian packages now properly install init scripts.
- MacOS X packages can now be created when using the
new Xcode developer tools.
- Packages created on MacOS X now use the system name
"macosx" and the MacOS X version number. The old
"darwin" name is still accepted as a synonym.
- EPM now supports version numbers that do not start
with a number (HP-UX workaround for OS
dependencies...)
- EPM now issues an error message if you have identical
destination files that don't match up.
- HP-UX packages now use the %readme file for the readme
info in a package, and the %license file for the
copyright info in a package.
- Added %preremove support for AIX packages and fixed
some AIX packaging issues with patch from David Maltz.
EPM 3.7
- 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.
EPM 3.6
- 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
("<foo.txt") or in-line data ("<<FOO")
- Now build gzip'd depot files as well as the tar.gz
files when creating HP-UX software packages.
- Now correctly use --libdir setting to locate the setup
GUI.
- Now use rpmbuild command, if available, to build RPM
files since newer versions of RPM may not map the
"-bb" option to build a package.
- Now set the RPMDIR environment variable when building
with older versions of RPM that don't understand the
"topdir_" variable.
- Now handle dependencies of the form "package >=
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.
EPM 3.5.1
- 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.
EPM 3.5
- 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.
EPM 3.4
- 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.
EPM 3.3
- 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.
EPM 3.2.1
- The check for Darwin (MacOS X) in the portable
installation scripts was using "==" instead of just
"=".
EPM 3.2
- 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.
EPM 3.1
- Added support for "<<end ... end" and "<filename" to
insert descriptions and commands in-line and from a
file.
- Added new --software-dir option which specifies the
location of the EPM software directory (default
/etc/software).
- Added new %if, %ifdef, %elseif, %elseifdef, %else, and
%endif directives for list files (addition contributed
by J. Nordell.)
- The GUI setup program left the "Next" button enabled
after the license check.
- Fixed the dependency strings created for HP-UX
swinstall (fix contributed by R. Begg.)
- Wasn't installing the man pages in section 5.
- When generating Debian packages, the DEBIAN directory
might not have the correct permissions due to a
restrictive umask. EPM now forces the correct
permissions for the package archive.
- HP-UX swinstall packages now use the prerequisites
rule instead of corequisites to ensure that the
%requires dependency is enforced.
- Dependencies for Debian packages are now listed on a
single line per type rather than one line per
dependency.
- EPM now detects RPM 4.0.3, which (mysteriously) now
uses "--target arch" instead of "--target=arch".
EPM 3.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.
EPM 2.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...
EPM 2.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.
EPM 2.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.
EPM 2.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.
EPM 2.4
- The [] wildcard matching did not skip over the
character that was matched. This prevented matches in
most cases...
EPM 2.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}.
EPM 2.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.
EPM 2.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.
EPM 2.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.
EPM 1.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.
EPM 1.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.
EPM 1.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.
EPM 1.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.
EPM 1.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.
EPM 1.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.
EPM 1.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.