4756c3a8c76ab80d97df1abc194caa252c0bb036
[platform/upstream/rpm.git] / CHANGES
1 2.5 -> 2.5.1:
2         - fail if sources are not regular files
3         - wasn't catching readLine() errors
4         - fixed (hopefully) temp file creation problems
5         - make %doc obey --test
6
7 2.4.109 -> 2.5:
8         - fixed return code bug in build code
9         - do macro expansion before %if processing
10         - dep ordering returns w/ an error as soon as a prereq loop is found
11         - autoreqprov flag was being ignored during builds
12         - add autoreq: and autoprov:
13         - missed a few unlink() when scripts failed
14         - freePrefixes wasn't initialized in runScript()
15         - fix typo in %triggerpostun generation
16         - include icons in source packages
17         - headerGetEntry() should return count of 1 when returning
18           strings plucked from i18n strings
19         - do not remove comments in scripts
20         - save/restore existing arch when done with buildarch
21         - copy the I18N table to the source header so i18n stuff works
22         - fixed multiple memory leaks in install code
23         - fixed bug in part recognition
24         - shared files weren't being handled properly in net shared paths
25
26 2.4.108 -> 2.4.109:
27         - remove icons with --rmsource
28         - do dependecy generation on -bl
29         - check files on all packages on -bl
30         - integrate Jeff Johnson's memleak patches
31         - added OSF1 autodep scripts
32
33 2.4.107 -> 2.4.108:
34         - make --clean work with no %setup
35         - fixed FSSIZES problem introduced in 2.4.107
36         - fixed search for find-requires.sh
37         - improved solaris autodeps scripts
38         - automated (somewhat) the -static flag
39
40 2.4.106 -> 2.4.107:
41         - --nomd5 wasn't handled properly
42         - updated configure.in find-req and find-prov checks (Tim Mooney)
43         - make --rmsource actually work
44         - run postun triggers
45
46 2.4.105 -> 2.4.106:
47         - build: only check for non-printables in first 128 chars
48         - added %triggerpostun
49         - linux.req generates deps for shared libs
50         - added a CC=@CC@ to popt/Makefile.in
51         - handle signed return types from poptGetNextOpt() properly
52
53 2.4.104 -> 2.4.105:
54         - added langpatt: to rpmrc, and mark files with matches
55         - added some C++ cruft to rpmlib.h
56         - added find-requires and find-provides for hpux (Tim Mooney)
57         - respect LINGUAS when install package files
58         - added trigger support to build code
59         - got rid of annoying mwftw() type warning
60         - fixed many command line options which got broke by changes
61           for non-gcc compilers
62         - added trigger support in install code
63         - added doc/triggers
64         - strntoul() in lib/cpio.c was returning a pointer to freed
65           memory
66         - headerAppend() was doing a bad memcpy()
67
68 2.4.103 -> 2.4.104:
69         - fixed popt/Makefile.in to use CPP from configure
70         - use tmppath from rpmrc to for ftp'd files (rather then /var/tmp)
71         - autoconf files and .depend files weren't created properly during
72           make archive
73
74 2.4.102 -> 2.4.103:
75         - need to create popt/configure during make archive
76         - added comments about modifictation to base popt and rpmrc files
77         - allow spaces in group names
78         - fix bug in memory allocation of special doc stuff
79         - Jeff Johnson's mode/dev fixes
80         - clean up buildroot
81         - be more paranoid about making temp files
82         - added patches from Tim Mooney which let RPM build with non-gcc
83           compilers and non-GNU versions of make
84
85 2.4.101 -> 2.4.102:
86         - fixed spelling of "instchangelog" in lib-rpmrc.in
87         - fixed memory leak in headerSprintf() extension cache
88         - fixed memory allocation for header formatting extension cache
89         - added support for INSTPREFIX virtual tag for backwards compatibility
90         - cpio error codes were poorly defined, causing bad error messages
91         - generates INSTPREFIXES tag properly, and sets RPM_INSTALL_PREFIX
92           and RPM_INSTALL_PREFIXn environment variables
93         - fixed memory leak in install code which occured when net shared paths
94           were used
95         - don't pass net shared path to rpmInstallPackage() -- it looks 
96           directly in the rpmrc entries
97         - don't remove files in netsharedpath, even for files whose states
98           are not net shared
99         - changed --setugids to use separate chown and chgrp programs, for
100           better portability
101         - popt moved to autoconf
102         - Makefiles changed to allow building in a different directory then
103           the source code resides in
104         - finally fixed the Build Host spacing in rpmpopt
105
106 2.4.100 -> 2.4.101:
107         - handle files with spaces (put double quotes around them)
108         - new rpmrc setting, buildshell, can be used to set shell
109           used for build scripts (default is /bin/sh)
110         - fix bug where macros were being improperly set for
111           Patch: and Source: lines
112         - may use "instchangelog" in rpmrc to limit the maxmium number of 
113           changelog entries that are stored in the database for each package
114           (-1 means store all of them)
115         - default instchangelog is set to 5
116         - headerRemoveEntry() didn't free the item's data -- this led to
117           a slight memory leak when installing packages
118         - implemented generic file relocations at install time
119           (use --relocate <oldpath>=<newpath>, i.e. --relocate /usr=/foo)
120         - added --badreloc flag to force RPM to relocate files which packages
121           haven't advertised as relocateable
122         - fix return code on failed uncompresses in %prep
123         - preliminary handling of bzip2 compressed files
124         - differentiates between big and little endian mips
125         - added support for "prefixes:" tag
126
127 2.4.99 -> 2.4.100:
128         - fixed handling of --rebuild and --recompile
129         - fixed rpmlibbuild.a typo in Makefile
130         - fixed handling of '\' in spec files (a specific case of a more
131           general bug)
132         - change use of "export" to work with non-bash shells
133         - compress the archives.  oops.
134         - fixed bug when there is no %setup
135         - added -L$(topdir)/popt to Makefile.inc
136
137 2.4.12 -> 2.4.99:
138         - added many more i18n strings
139         - merged in large rewrite of build code, which includes the following
140           changes:
141             - new option --rmsource
142             - all scripts can now take -p <prog>
143             - more strict about %package placement and use of main package 
144               preamble
145             - %attr(mode, user, group [, dirmode])
146             - %defattr()
147             - %defverify()
148             - Root: is depricated.  Use BuildRoot: instead
149             - "nosrc" sources arn't deleted when sources are removed
150             - New tag DocDir: <dir> to set alternate doc dir (default is 
151               /usr/doc)
152             - %doc should work as expected with buildroot, prefix, DocDir:
153             - all file processing is done before any packaging
154             - should work with modern patch programs (later than 2.1)
155             - %patch -z <arg> same as %patch -b <arg>
156             - %define only defines a macro if it starts a line
157             - script prog entries are now arrays (ie with arguments)
158             - standard macros: tag names, buildarch, buildos, buildarch_lc, 
159               buildos_lc, PATCHn, SOURCEn, PATCHURLn, SOURCEURLn, sourcedir, 
160               builddir, optflags
161             - deprecate require_distribution, require_icon, require_vendor
162             - add RPMTAG_FILEDEVICES and RPMTAG_FILEINODES to header
163             - export variables in scripts
164             - fixed tag:field bug
165             - %lang() in %files
166             - %description -l <lang>
167             - Summary(<lang>):
168             - fixed read_line() termination usage
169         - Makefile changes to shorten compiler lines
170
171 2.4.11 -> 2.4.12:
172         - intialize reserved portion of lead when writing packages
173         - fixed error messages displayed when opening the database
174           fails during package installation and removal
175         - query format of the form '[A%{}]' would drop the static string
176         - fixed fix in 2.4.9 for empty packages which broke -qip on ftp URL's
177         - fixed arch/os numbers in lead
178         - added Turkish message catalog
179         - -e was running scripts even w/ --test was specified
180
181 2.4.10 -> 2.4.11:
182         - HAVE_SYS_SOCKET_H was mistakingly MACHINE_SYS_SOCKET_H in
183           config.h.in
184         - \%description was trying to do %d expansion in query formats
185         - made %% work in query formats
186         - fixed bug in handling characters before array
187         - let mips build noarch packages
188         - --setperms would set wrong permissions in some cases (it was
189           following symlinks)
190
191 2.4.9 -> 2.4.10:
192         - obsolete entries could cause segv's during upgrades
193         - sources now installed with uid/gid of process rather then
194           the ids used when the src rpm was created
195         - don't give an error if missingok files don't exist during remove
196         - touched ftp code to make it coexist w/ Red Hat install better
197         - use rand/srand rather then random/srandom
198         - don't build misc directory unless it's necessary
199         - empty package files should be treated the same as files
200           with bad magic, not as read errors
201         - fix bug where Prefix directory is included in file list
202         - sinix readdir() work-around
203
204 2.4.8 -> 2.4.9:
205         - fix for verification on systems where a single group id
206           maps to mulitiple group names (Benedict Lofstedt)
207         - added 'make tar' rule for building a distribution tarball
208           (Horacio Rodriguez Montero)
209         - fixed serial number handling in dependencies and install
210           code
211         - make mips compatible with noarch
212         - fixed bug w/ printing string arrays in conditionals
213         - handle modern patch programs (> 2.1)
214         - handle packages w/ duplicate dependency names
215         - --noscripts didn't get handled properly for removed packages
216         - fixed handling of packages where %prereq creates users/groups
217
218 2.4.7 -> 2.4.8:
219         - added noarch build compatibilities for ppc, m68k
220         - fixed some minor typos (Florian La Roche)
221         - added Obsoletes: tag, an upgrade removes packages which
222           have been obsoleted
223         - updated rpmdepUpgradePackage() to deal with obsoletes tag
224         - convertdb needed to read rpmrc
225         - fixed ugly bug in package ordering
226         - archivesize tag was incorrect for packages with hard links
227         - moved popt into a separate library
228         - directory created with %doc is now name-version (dropped
229           the release)
230         - added buildarch/buildos macros
231         - added %ghost file option
232         - updated linux.req to only find requirements for exectuable files
233
234 2.4.6 -> 2.4.7:
235         - had some wrong month lengths in changelog date parsing
236         - updated fine-requires (Linux version) to add lines for shell
237           scripts (Donnie Barnes)
238         - didn't package / properly
239         - pre/post script processing had some erroneous free() calls
240         - fixed typos for HP archs in lib/rpmrc.c
241         - uname() results should go through *_canon tables before anything
242           else happens
243         - set -x in debug shells, not -xs
244
245 2.4.5 -> 2.4.6:
246         - added os_canon entries for BSD/OS and NextStep
247         - replaced include of <malloc.h> with includes of <stdlib.h>
248         - fixed md5sum of source packages w/ a buildroot is used
249         - fixed bugs installing version 1 packages
250         - remove hyphens from uname() result (specifically for HP-UX)
251         - hacks to recognize architecture under parisc
252         - RPM_INSTALL_PREFIX wasn't being set properly (this should be
253           fixed now)
254         - replaced temporary file creation to be race-condition safe
255         - prerequisites may not specify versions
256
257 2.4.4 -> 2.4.5:
258         - call getpwnam()/endpwent() once before a chroot(), forcing name 
259           service shared libs to be loaded from outside of the root path
260         - added vesrion stamp to lib/misc.o (and librpm.a by extension)
261         - fixed config.sub, config.guess to recognize i686
262         - ARCHIVESIZE tag didn't get filled in properly, breaking progress
263           meters
264
265 2.4.3 -> 2.4.4:
266         - restore working directory after installing a package w/ a chroot
267         - dump the package stack when a dependency loop is encountered
268         - when a user/group lookup fails, end*ent() and retry 
269         - fixed broken --scripts argument (it was --s2)
270         - only display the packager and url in -qi output if they have defined
271           values
272         - print "(not installed)" as the install time for -p queries rather
273           then "not a number"
274         - almost completely rewrote rcfile parsing; I'm sure this will
275           break things eventually but it's much more flexible now
276         - added buildarch/buildos compatibility tables, listed values
277           in --showrc
278         - added cpio archive building code; GNU cpio is no longer used!
279           packages created w/ rpm 2.4.4 and later cannot be installed with
280           rpm 2.4 - rpm 2.4.3 however (version of RPM before 2.4 will 
281           work fine, however). An "error -2 reading header" happens when
282           this is attempted
283         - removed cpiobin from rpmrc
284         - added rpmrc "provides" tag to allow easy fulfillment of 
285           automatically generated dependencies
286         - look for random() in libm if it can't be found be default
287         - fixed problems in Solaris's autodeps stuff (Eric Mumpower)
288         - --setperms should work properly on directories now
289         - --justdb on install, upgrade, and erasure causes a database
290           update w/o the filesystem being touched
291         - fixed version comparison of a package w/ a serial tag against
292           a package w/o one
293         - added BuildArchitectures: tag to spec file to enable builds
294           for alternate/multiple architectures
295         - look for random() in -lucb
296         - changed the licensing terms for librpm to allow redistribution
297           under the LGPL
298         - applied man page changes from Alex deVries
299         - configure.in builds up LIBS by appending (Benedict Lofstedt)
300         - rpm2cpio reported wrong zlib error string
301         - removed \n from (none) generated by query format code
302         - queries of fssizes w/o fsnames didn't work (Till Bubeck)
303         - added --noorder option to skip package reordering (Elliot Lee)
304
305 2.4.2 -> 2.4.3:
306         - implemented install time prerequisites
307         - repaired %{#TAG} query format
308         - implemented ternary operator as query expression
309         - fixed --scripts to only print information on scripts which
310           are present
311         - check symlink() return for < 0, not != 0 (Bob Tanner)
312         - uses chroot() for installs --root option
313         - archive expansion doesn't create new devices or symlinks when
314           the proper files already exist
315         - added -p to %post (etc) to specify the program which a script
316           is run through
317         - if -p is used w/ an empty script, the specified program is
318           executed directly 
319         - the -p argument (or /bin/sh) is automaticall added as a prereq
320
321 2.4.1 -> 2.4.2:
322         - completely rewrote queryformat code
323         - added fsnames, fssizes virtual query tags
324         - added rpmdbFindByHeader() and rpmdbFindByTag() public functions
325         - added rpmfilename tag to rpmrc to define the filename format to
326           use for binary packages (note the rpmdir is prepended to it)
327         - used pclose() instead of fclose() in -t code
328         - updated man pages
329         - changed "struct rpmdb" to "struct rpmdb_s" for C++
330         - netsharedpath entries shouldn't match partial directory names
331           anymore (a nersharedpath of /usr/lib shouldn't affect /usr/libexec)
332         - don't backup config files on netsharedpaths (take 2)
333         - added "day" query format which is like date, but doesn't print
334           any time
335         - added --changelog alias to query a packages changelog entry
336         - added mntctl() support for AIX (I think, I can't test this)
337         - fflags query type displays 's' for specfiles, 'm' for missingok
338           files, and 'n' for noreplace files
339         - implemented %config(missingok) flag in install
340         - added --allfiles flag for -i and -U, which forces all files (even
341           missingok files) to be installed
342         - implemented %config(noreplace) for the install, but it hasn't
343           been tested in any way
344         - added i18n support to headers
345         - added ppc/rs6000 differntiation for AIX
346         - all IP* from uname() is changed to just IP
347         - IP is considered the same as mips (not sgi)
348         - added IRIX64 OS, it's compatible w/ IRIX
349
350 2.4 -> 2.4.1:
351         - take advantage of lchown() if it's available
352         - fixed configure script to assume chown() doesn't follow symlinks
353           if lchown() isn't available and configure is not being run as root
354         - more header file changes for AIX
355         - added :shescape query format type for strings, which prints strings
356           which will survive a single level of shell expansion
357         - fixed --setperms and --setugids to handle empty packages and 
358           packages with odd filenames
359         - include <sys/time.h> before <sys/resource.h>
360         - include "miscfn.h" first in every file which needs it
361         - created noarch architecture which everything is compatible with
362         - fixed group verification (Benedict Lofstedt)
363         - don't backup config files on netsharedpaths
364         - added info on --build{arch|os} to --help and usage messages
365
366 2.3.11 -> 2.4:
367         - changed RPMNLSDIR directories to and @datadir@ to better
368           conform with autoconf
369         - set RPM_INSTALL_PREFIX environment variable when running 
370           verify scripts
371         - beginnings of SCO support (though I suspect it will take one
372           or two more iterations to get it right)
373         - switched to CVS and updated some Makefile rules
374         - look for gethostbyname() instead of gethostname() in -nsl
375           (this could break some things)
376         - added check for strcasecmp() in -lucb on systems which don't
377           have strcasecmp() in libc
378         - don't build -static on hpux10
379         - don't try and NLS empty strings
380         - changed index() call to strchr() in macro code
381         - include <time.h> in build/spec.c for various platforms
382         - added update-po rule to po/Makefile.in
383         - updated de.po (thanks to Karl Eichwalder)
384         - rpmFindByFile() removes trailing and duplicate /'s
385         - made many string in rpm program (though not yet in the various
386           libraries) translatable
387         - eight character user names could break -qlv
388         - requirements which begin with a leading / require files (in
389           the database!) instead of packages
390         - clean up conflictsindex during --rebuilddb
391         - get path to gzip from /usr/lib/rpmrc rather then just hoping it's 
392           in the path
393         - use dbpath for error messages with include database path in 
394           their text
395         - don't set owner/group if binaries installed by "make install"
396         - include <strings.h> on SCO
397         - don't use cpio when installing packages <gulp>
398         - fixed bug which affected dependencies on the Alpha
399         - made '=' work for long arguments (the switch to popt broke this)
400         - handle solaris systems better
401         - complain if critical rpmrc variables (cpiobin, gzipbin, etc) aren't
402           set anywhere
403         - allow --dbpath for --rebuilddb
404         - added check for systems whose chown() follows symlinks. If configure
405           is run as root, this should get it right, otherwise it assumes
406           chown() does not follow symlinks. You can use --enable-broken-chown
407           to force configure to think chown does indeed follow symlinks.
408         - if chown() follows symlinks, we don't chown() symlinks during cpio
409           unpacking and we don't verify the owner or group of symlinks
410         - added packager and url to default -qi output
411         - look for <sys/select.h> and use it if it's there (for AIX)
412
413 2.3.10 -> 2.3.11:
414         - fixed newlines in --scripts output
415         - fix handling of source files with bad owners/groups
416
417 2.3.9 -> 2.3.10:
418         - --allmatches handling in -e broke some cases
419         - new predefined macros: %SOURCEn %PATCHn %SOURCEURLn %PATCHURLn
420         - fix anomoly with %files -f <file> and %doc
421         - ignore config bit when it's set on directories (which allows
422           users to replace directories with symlinks)
423         - don't set config bit on directories
424         - strip trailing slashes from files (during build)
425         - %tags are now case sensitive (macros too)
426
427 2.3.8 -> 2.3.9:
428         - reworked %setup to allow multiple -a and -b options, which
429           should noticeably ease the task of unapcking multiple tar files
430         - md5 sum's were calculated incorrectly on big endian machines
431           from 2.3.2 through 2.3.8 -- this was fixed and some hacks were
432           done to keep verification working
433         - updated README
434         - added --allmatches to allow erasing multiple versions/releases
435           of a package
436         - changed ftp URL's to use \r\n, not just \n (this should let RPM
437           work w/ some picky (but rfc compliant) ftp servers
438         - fix problem where parts at end of spec file were dropped
439         - added %config(noreplace missingok) (build-side)
440         - simple spec file macros
441         - should now process entire file list before failing
442         
443 2.3.7 -> 2.3.8:
444         - added -t? options to build packages from tarballs which contain
445           .spec files instead of from the .spec files directly
446         - fixed error in man page where ftp URLs are discussed
447         - don't strlen(NULL) in headerAddEntry()
448         - minor portability changes
449         - stopped building oldrpmdb.c as part of rpmlib
450         - added Makefile rule for building rpmconvert (which is almost
451           never needed) -- this isolated gdbm dependence to this target
452         - fixed checking of popt stack overflow
453         - --requires shouldn't imply -q
454         - fixed error message issued when a groupname does not exist
455         - fixed but in changelog processing which made it hang on '*' in a
456           changelog entry
457         - generate S_ISSOCK and S_ISLNK macros on systems w/o them
458         - "rpm --erase" wasn't returning proper error codes w/ package
459           removal failed
460
461 2.3.6 -> 2.3.7:
462         - fixed nasty memory link in -Va
463         - configure checks for -lnsl explicitly rather then linking it
464           to -lsocket (for NCR SysVR4)
465         - configure checks for dirent.h
466         - modified glob.c to include config.h and use HAVE_DIRENT_H
467         - cleanup of LIBS/LIBPATH mess a bit more
468
469 2.3.5 -> 2.3.6:
470         - -Vf uses realpath() now
471         - -Vp lets you use --ftpproxy, --ftpport
472         - changed popt format, breaking all popt alises :-(
473         - added ability to alias character arguments to popt 
474         - moved --requires, --info to /usr/lib/rpmpopt
475         - RPM is more forgiving of blank user names (dumb)
476         - popt searches for aliases in the correct order now
477         - cleanup query code to handle missing uid lists better
478         - cleanup up configure.in a tad
479
480 2.3.4 -> 2.3.5:
481         - %{#TAG} in query format prints the array length
482         - cleanup up protoypes in rpmlib.h
483         - let -Vp work on URLs
484         - don't set umask(0) anymore -- that confused programs which
485           link against rpmlib quite badly
486         - moved print out in "rpm -v -i" to occur after any warnings
487           to pretty up the output a bit
488         - added default optflags for powerpc
489         - run shell for post/pre scripts in debug mode with -sx for
490           some silly shells
491         - installing source packages with --root checked for the 
492           sources/specs directory to exist outside of the root -- fixed
493         - modified toplevel Makefile to run dependency generation only
494           against referenced sources
495         - array size mismatches in --qf should send error to stderr
496         - tried to make the locale stuff a bit more portable (again)
497         - reworked the owner/group setting on installs to be more generic
498           (in preperation for getting rid of cpio)
499         - made verify verify owner and groups by name rather then by id -- if
500           the symbolic names aren't available use the uids
501         - cleaned up relocateFilelist() and related code thanks to
502           new header introduced in 2.3.3 -- this could break relocateable
503           packages but they seem okay
504         - fixed a bug which could cause relocateable packages to not get
505           relocated -- I think this bit some people during hard drive
506           installs of all things (Jason Salopek pestered me consistently
507           enough to keep this on the front burner for me)
508         - removed FILEUIDS and FILEGIDS from the header in the database --
509           we never used it and it jsut wasted room
510         - convert uid/gid lists in v1 headers to symbolic names 
511
512 2.3.3 -> 2.3.4:
513         - %changelog processing
514         - fixed broken requires/conflicts parsing for spec file
515         - vastly improved --rebuilddb's robustness
516         - fixed misplaced free() (only affected inconsistent databases)
517         - added conflicts documentation to docs/dependencies
518         - using multiple query formats has them all concatenated
519         - removed stdin based query and verify selectors
520         - installs rpmpopt in libdir
521         - moved --provides and --scripts to rpmpopt
522         - added --setperms, --setugids
523         - incorporated newer de.po from Karsten Weiss
524         - --resign/--addsign was broken in 2.3.3 from popt conversion
525
526 2.3.2 -> 2.3.3:
527         - Ripped out header internals and redid them. Any compatibility 
528           problems this causes are *bugs* as it should be completley 
529           transparent. If this works the devil better buy some Prestone (TM).
530         - Use "cp -pr" instead of "cp -ar" for %doc expansion
531         - use <string.h> instead of (non standard) <strings.h> in some places
532         - look for non-POSIX (broken) chmod
533         - include local copies of glob/fnmatch
534         - removed getopt() check from configure.in
535         - fixed bug in ftp code which prevented proper logins to some sites
536         - switched to popt from getopt, which allows command line aliasing
537         - read initial aliases from /usr/lib/rpmpopt then /etc/popt and
538           $HOME/.popt
539         - cleanup up rdev verification (only verifies device files, checks
540           device related mode bits as well)
541         - fixed allocation of temporary paths (Eugene Kanter noticed this)
542         - made tools/dumpdb read the rpmrc so it can find the database
543         - added --nomd5 for -V and -K
544         - don't assume mkdir -p will succeed if the dir exists
545         - use RPMNLS* defines to avoid header file conflicts
546         - bunch of minor cleanups to avoid warnings on other OS's
547
548 2.3.1 -> 2.3.2:
549         - fixed bug in new rpmVersionCompare() which made it worse then
550           useless (thanks to Norbert Kiesel)
551         - fixed silly message
552
553 2.3 -> 2.3.1:
554         - changed --help routing to have intelligent line wrapping
555           to make i18n efforts easier
556         - NLSDIR should be used for nls catalogs, not a hardcoded path
557         - NLSDIR should be in share, not lib
558         - renamed sweedish catalog from se to sv
559         - added german catalog
560         - treat RPM_CHAR_TYPE as RPM_INT8_TYPE for queries
561         - made rpmEnsureOlder() internal to lib/install.c
562         - added rpmVersionCompare() to compare version/release/serial numbers
563           for packages -- returns like strcmp()
564         - stdout/stderr were getting closed after running a verify script
565         - relocting packages didn't work w/ the packages contained the
566           directory which was it's prefix
567
568 2.2.11 -> 2.3:
569         - replaced putenv/setenv which calls which malloc() buffer -- these
570           are memory leaks, but the functions are only used between a fork()
571           and exec() so it doesn't matter
572         - created directroies are stamped with mtime from the file list
573
574 2.2.10 -> 2.2.11:
575         - fixed some include file problems for FreeBSD
576         - fixed find-provides script for Linux (silly typo)
577         - -qvl didn't print out sticky bit
578         - linux.prov won't print provides info for symlinks which point
579           to libraries w/ proper sonames
580
581 2.2.9 -> 2.2.10:
582         - changed how installArchive() handles running out of gzread()
583           bytes while the child is still alive
584         - changed tag for Alpha's to "alpha" from "axp" <gulp>
585         - made ./configure look for --quiet support in cpio
586         - netsharedPath's were having mkdir()'s done on them and had
587           bad interactions with rooted directories
588         - made -qp accept '-' to query the package on stdin
589         - dependency checking was broken when no database was being used
590         - don't *ever* let cpio make directories -- we do a better job
591           (esp because we don't kill symlinks!)
592         - plugged memory leaks in upgrade (again thanks to mpr) -- install,
593           erase, upgrade, query, and verify all seem to be leakproof
594         - use select() rather than busy waiting in cpio_gzip()
595         - use half as much temp space during package assembly
596         - fail if spec file check fails
597         - changed canonical name for 68k to m68k (sorry)
598         - integrated FreeBSD changes from Jared Mauch
599         - integrated Irix changes from Hermann Lauer
600         - i18n support can be disabled w/ configure by --disable-nls
601           (thanks to Remy Card)
602         - integrated more AmigaOS patches, played with configure some
603           more to allow cross compiling (Kristof Depraetere)
604         - cleanups to rpm2cpio (closing the gz stream) (Elliot Lee)
605         - made find-provides return filename for libs w/ no soname
606
607 2.2.8 -> 2.2.9:
608         - fixed typo in default rpmrc
609         - made getBooleanVar() a bit better
610         - added triggers to package builds
611         - tagged spec file in source package file list
612         - added %verifyscript (controlled by --noscript, -v flags)
613         - changed pkgReadHeader() mechanism to be more generic
614         - added find-provides for Solaris, made find-provides setup
615           more generic (w/ configure.in picking the right one)
616         - fix -Q
617         - The Great Renaming
618         - use external OS specific script to generate requires lines
619           (should work with ld.so 1.8.x) (find-requries)
620
621 2.2.7 -> 2.2.8:
622         - added --ftpproxy, --ftpport (and wrote about them in rpm.8)
623         - added --nodeps to man page
624         - added --showrc to man page
625         - added conflict checking (use conflicts tag, which looks
626           just like the requires tag)
627         - fixed RPM's return code when package removal fails
628         - cleaned up lib/install.c a bit for readability
629         - plugged a bunch of memory leaks thanks to mpr -- install,
630           uninstall, verify, and query all seem clean now
631         - added support for trees shared over a network via netsharedpath
632           in rpmrc
633         - don't exit when there is an unknown option in an rpmrc, just
634           give an error and continue
635         - tried once again to get things working properly with 2.1's
636           write behavior
637         - added -E option for %patch
638         - added UltraSPARC support to lib-rpmrc
639         - moved default topdir and optflags settings to lib-rpmrc from 
640           /etc/rpmrc
641         - removed /etc/rpmrc from standard distribution
642         - use separate chgrp/chown commands in %setup macro
643         - kill(2) arguments were backwards in lib/install.c
644         - fileFile logging needed stdio to handle NULL args to %s
645         - default docdir (for %doc macro) set in lib-rpmrc rather then
646           hardcoded
647         - removed some of the \n from args to error() [though many are
648           still left]
649         - uninstall should fail if the preuninstall script fails
650         - --root works with --initdb now
651
652 2.2.6 -> 2.2.7:
653         - applied lots of portability patches
654         - builds on Solaris machines now!
655         - will build w/o i18n support if GNU gettext isn't installed
656         - added inet_aton, setenv functions for libmisc
657         - added Sun4c, Sun4m architectures
658         - use vfork() if fork() doesn't exist (for AmigaOS)
659         - look for GNU cpio, complain if it doesn't exist at build time
660         - put path for GNU cpio in /usr/lib/librpmrc
661         - install rpm.shared if rpm wasn't built (for Solaris)
662         - readHeader() in librpm.a should work on sockets (which may
663           return partial reads)
664         - package file query (-q -p) accepts ftp:// style URL's
665         - if gzread returns 0 bytes (at EOF), don't call write w/ 0 byte
666           argument as it's behviour isn't portable
667         - fixed -Vp behavior (doesn't seg fault w/ packages have dependencies)
668
669 2.2.5 -> 2.2.6:
670         - added --rebuilddb to rebuild database, updated man page
671         - fix fd leak in md5sum
672         - fixed group cache bug
673
674 2.2.4 -> 2.2.5:
675         - if rename() for moving .spec file from SOURCES to SPECS fails,
676           try copying it instead
677         - -h and -v work for source package >= V2
678         - -h output is much smoother now
679         - new AutoReqProv: tag in spec file can disable automatic
680           require/provide generation
681         - fixed md5sum problem on big endian machines in a way that's
682           mostly backwards compatible; this hack will be removed someday
683         - added :fflags tag
684         - fixed a couple of minor memory leaks in lib/install.c
685         - --test for building
686
687 2.2.3 -> 2.2.4:
688         - only remove docdir if %doc occurs
689         - allow -R to %patch
690         - moved to use GNU autoconf, though it probably isn't perfect yet
691           (thanks Kristof Depraetere)
692         - spec file sanity: no - chars in version or release,
693           must be a regular file :-)
694         - version specifications for requirements can use "-<release number>"
695         - default lib path, tmp path, topdir, and /usr/lib/rpmrc get set
696           by configure script relative to --prefix
697
698 2.2.2 -> 2.2.3:
699         - fixed script file md5 checking when files are in a root
700         - implemented proper strdup/free logic for dependency conflict
701           lists
702         - strip leading directories from ldd output
703         - fix non-null-terminated readlink() result
704         - fixed sscanf() in ftp code to use proper types
705
706 2.2.1 -> 2.2.2:
707         - added functionality to rpmlib to suggest resolutions for
708           dependency problems
709         - fix stupid allocation problem in exclude/exclusive stuff
710         - fix nasty bug where pointers in to the header were getting
711           stale after some realloc()s in addEntry()
712         - ignore OS tag for v2 packages -- it was wrong anyway
713         - match shared libs on ".so" rather than ".so."
714         - skip blanks from objdump for auto-provide
715         - if objdump gets us _end, provide the file name
716         - do not ldd non-regular files
717         - do not pass leading "/" to ldd
718         - fix ExcludeOs: and ExclusiveOs:
719         - -V verifies dependencies, can be controlled with --nodeps
720           and --nofiles
721         - added information on --nodeps to usage messages
722         - implement --timecheck and rpmrc timecheck:
723         - implement -bl
724         - catch duplicate files in file lists
725         - some random sanity checking on the file list
726
727 2.2 -> 2.2.1:
728         - made rpmRemovePackage() print message in verbose mode
729         - added support for ftp://user:pass@machine.org/ URL's
730           during installation - the password will be prompted for
731           if only the user is given, and anonymous ftp will be used
732           it both user and password are omitted (as before)
733         - Remove Exclusive: Exclude:
734           Replace with: ExclusiveArch: ExclusiveOs:
735                         ExcludeArch: ExcludeOs:
736         - fixed dependency cheking for packages that are installed
737           at the same time
738         - fixed version number dependency checking
739         - fixed problem installing v1 source packages (thanks to
740           Nikita Borisov)
741         - fixed minor spelling/spacing problems (Nikita Borisov)
742         - assume all v1 packages were made for Linux so OS check works
743         - began to implement proxyftp, though it doesn't work yet
744         - fixed spacing when reporting dependency conflicts
745         - fixed bug where a long name (uname()) was mapping to itself
746
747 2.1.2 -> 2.2:
748         - don't fail, and do report, if -K can't find a PGP key
749         - handle file names with quotes and spaces when passed to ldd
750           (still can't have spaces in %files)
751         - do not allow Buildprefix: in sub packages
752         - removed require_group from rpmrc -- groups are always required
753         - removed arch_sensitive from rpmrc -- always on
754         - removed docdir from rpmrc -- always /usr/doc
755         - fixed nasty bug in installing packages with large filelists
756         - made -R work
757         - --provides and --requries don't print anything if no information
758           is present (rather then (none) )
759         - -qi prints Summary now
760         - changed Buildprefix: -> Buildroot: (spec file, rpmrc)
761                   --buildprefix -> --buildroot (command line)
762                   RPM_BUILD_PREFIX -> RPM_BUILD_ROOT
763                                         (%prep, %build, %install, %clean)
764           sorry :-)
765         - allow Prefix: for sub-packages
766         - allow packager: in rpmrc
767         - --arch and --os are now --buildarch and --buildos
768         - magic arch/os handling through arch_canon and os_canon
769           see /usr/lib/rpmrc (in short: uname short_name num)
770         - removed build_arch: from rpmrc
771           Replacing it is buildarchtranslate: and buildostranslate:
772           to allow building with arch/os other than what uname() returns.
773           Can still be overriden with --buildarch and --buildos
774         - rpmrc keywords are now case-insensitive
775         - check os at install time
776         - check return code from gzread() during installs
777         - implemented os_compat
778         - added arch_compat and os_compat information to --showrc (the
779           changes needed to do this removed any lingering questions about
780           the efficiency of the compat lookups for large tables or tables
781           with loops -- it should all work fine)
782         - made -u (--uninstall) exit with an error and not do anything
783         - added --ignoreos
784         - fixed error message given when a file is missing
785         - fixed hashing when multiple packages are being modified
786         - changed man page for readability (thanks to Joseph L. Hartmann, Jr)
787
788 2.1.1 -> 2.1.2:
789         - fixed error message for unrelocateable packages
790         - automatic shared lib provides now work with buildprefix
791         - fixed dependency checking during upgrades to work if the
792           package wasn't previously installed
793         - clean up temp file after signature check
794         - dependencies weren't looking through packages that were
795           being installed at the same time quite right
796
797 2.1 -> 2.1.1:
798         - fixed -qi query format 
799
800 2.0.11 -> 2.1:
801         - added --requires, --whatrequires, --provides and 
802           --whatprovides queries
803         - using a string array tag in a queryformat results in every
804           item in the string being printed out with spaces in between
805           (though this behaviour will probably go away shortly)
806         - all packages are ftp'd before any are installed (required to
807           do proper dependency checking)
808         - if only source packages are being installed, the database is
809           never opened
810         - automatic shared library require/provides tags generated
811         - added --nodeps flag for install and uninstall
812         - added dependency checking for installs and uninstalls
813         - misc fixes to compile with glibc
814         - use PGPPATH if set (and no pgp_path: in rpmrc)
815         - remove pgp_pubring, pgp_secring stuff
816         - new extensible signature
817         - signature section supports multiple signatures
818         - --addsign to add a signature to a package
819         - PGP key no longer limited to 1024 bits
820         - always do at least an MD5 "signature"
821           as a result, -K will always tell you something
822         - signatures now include a simple "header+archive size" check
823           just calling readSignature() checks this
824         - --nopgp (with -K) to skip PGP check, just do MD5
825         - allow '#' comments in preamble and %files section
826         - fixed -qsv to print both the states and the file information  
827         - added --dump option to query to print all file attributes
828         - installs with --root use the /etc/passwd and /etc/group from
829           the target directory
830         - added --initdb to aid in database initialization
831         - --queryformat can print items of type INT8
832         - "sourceless" packages with nosource: and nopatch:
833         - [] now allows interation through query formats
834         - '-' flag for query tags removed
835         - :date and :perms supported as query format specifiers
836         - new rpmrc entries "arch" and "os" to override
837         - --arch and --os on the command line to override
838         - arch and os are now strings in the package header
839         - added arch_compat handling in /etc/rpmrc
840         - added build_arch to /etc/rpmrc
841         - support arch as string
842         - added --ignorearch option
843         - Prefix: in spec file to specify default installation prefix
844         - rpmrc and command line may be used to override the path
845           used for the rpm database
846         - relocatable packages get installed properly
847         - added support for --prefix and RPM_INSTALL_PREFIX environemtn
848           variable
849         - added dependency checking for version numbers
850         - added correct dependency checking for upgrades
851         - added :depflags query format flag
852         - changes --provides, --requires, and --scripts queries to use
853           queryFormats
854
855 2.0.10 -> 2.0.11:
856         - fixed chmod(symlink) bug (since 2.0.9)
857
858 2.0.9 -> 2.0.10:
859         - fixed the fix to rpm -q <num> bug
860           to query by number you now need --querybynumber
861         - made arch_sensitive on by default
862         - handle # comments in preamble
863         - don't barf if we can't canonicalize the hostname during builds
864         - fixed --verify with --root
865
866 2.0.8 -> 2.0.9:
867         - %files -f <file>
868         - prelim Require/Provide handling
869         - prelim strict checking of spec file
870         - removed some bash-isms
871         - fixed globbing/root bug
872         - fixed rpm -q <num> bug
873         - fixed ftw() related bug where symlinks were being
874           followed in %files rather than just being noted!!
875         - pass "upgrade" arg to pre/post scripts when upgrading
876         - use PATH to find cpio when installing
877         - fixed rpm.magic, added sun4, mips, 68k, sgi, sunos, solaris
878         - added %attr(mode owner group) feature to file list
879         - fixed dumb %verify() parse bug
880
881 2.0.7 -> 2.0.8:
882         - explicitly turn off ASCII armor when running PGP
883         - fixed --noscripts logic, which was on by default and 
884           off if you specified it!
885         - uses a temp file to pass filenames to cpio in case when 
886           their are more then 500 filenames in a package
887         - added --rcfile
888         - fixed problem with $HOME/.rcfile not being read
889         - undocumented --search, --where, --keep-temps which
890           will probably won't be implemented in RPM 2.x anyway
891
892 2.0.6 -> 2.0.7:
893         - builds now set umask 022 for all scripts
894         - queries relative paths correctly (thanks to Johnie Stafford)
895         - fixed error codes for failed installs
896         - don't add NULL entry to group index for packages that don't
897           have group information, add it to the "Unknown" group instead
898         - added --scripts query option
899         - added --noscripts for installing and uninstall without using 
900           the pre/post scripts
901         - "rpm -qd" and "rpm -qc" work properly now (they didn't imply
902            -l before)
903
904 2.0.5 -> 2.0.6:
905         - internal changes to error messages
906
907 2.0.4 -> 2.0.5:
908         - added support for generic querying
909         - added --querytags option
910         - updated man page for above two
911         - short-circuit got added before 2.0.5, but I don't know when
912         - query and installs should now return 0 on success and nonzero
913           otherwise (rpm -i should return the number of packages that
914           failed actually)
915         - made rpm -qa fail if extra arguments are passed to it
916
917 2.0.3 -> 2.0.4:
918         - added support for PowerPC, and OSF mklinux ports
919         - added --resign
920         - added --recompile
921         - added verbose error messages from Tyson Sawyer
922         - rpmconvert won't overwrite an existing database
923         - won't core dump querying old format source packages
924         - freed minor memory leak
925         - more descriptive error messages during build
926         - added support for not installing documentation
927
928 2.0.2 -> 2.0.3:
929         - added support for 686, 786, 886, 986
930
931 2.0.1 -> 2.0.2:
932         - fixed ftp.c to return an error code when select timeouts
933         - added basic NLS support, along with a Sweedish message catalog
934           (thanks to Michael Nyquist)
935
936 2.0 -> 2.0.1:
937         - hashing and percentages no longer SIGFPE on 0 byte packages
938         - when an ftp fails, install.c no longer tries to install the package
939         - uses /var/tmp rather then /usr/tmp during for ftp space
940         - added debugging messages to ftp.c
941         - fixed some mistakes in the PGP section of the man page
942         - added mdfile prototype to rpmlib.h - the Python module wants this
943         - fixed struct oldrpmlead to align properly on the alpha
944
945 2.0     - everything done :-)
946
947 2.0b -> 2.0c:
948         - an incredible number of changes - I won't bother trying to 
949           list them
950
951 2.0a -> 2.0b:
952         - moved build stuff to main rpm command, though --rebuild is still
953           not supported
954         - install should work, although replaced files are not marked as
955           replaced
956         - %doc macro fixed
957         - --percent, --hash work for installs
958         - converted databases and packages get the file list in the correct
959           order now
960         - none of this is well tested
961         - rpms are output to proper dirs (which are always arch sensitive)
962         - basic rpmrc functions are implemented, full parsing is present
963         - changed error messages for missing files to include full path
964         - fixed detection of Alpha's
965
966 1.4.6 -> 2.0a:
967         - completely rewritten in C
968         - verification missing
969         - build functionality not in main rpm, in rpmbuild instead
970           (this will be corrected)
971         - an awful lot is still missing - this is an ALPHA release
972
973 1.4.5 -> 1.4.6:
974         - fixed rpmq problem with packages w/o groups (old RPM's would do this)
975         - fixed uninstalling with --root 
976
977 1.4.4 -> 1.4.5:
978         - added support for mips processors
979         - added support for osf1 and irix os's
980
981 1.4.3 -> 1.4.4:
982         - fixed bug in arch detection code which caused i386 failure
983
984 1.4.2 -> 1.4.3:
985         - added tokens for SPARC, MIPS, PowerPC, and 680x0 architectures
986         - fixed sparc arch, added arch sanity check
987
988 1.4.1 -> 1.4.2:
989         - added --root to man page, usage, and help messages
990         - added a " " to the "Creating directory" debug message in install.pl
991         - make --rebuild fail on binary packages
992         - don't output prep/build/install sections if there aren't any
993
994 1.4 -> 1.4.1:
995         - fixed man page
996         - updated corruption messages to not mention --rebuild
997         - added RPM_PACKAGE_VERSION and RPM_PACKAGE_RELEASE variables
998           at build time
999         - no longer allows installing binary packages across architectures
1000         - fixed handling of symlinks marked as config files
1001
1002 1.3.2 -> 1.4:
1003         - make -v the default when using -b and --rebuild
1004         - added %postbuild as an alias for %clean
1005         - added gendiff
1006         - added groups file installed in /usr/lib/rhs/rpm
1007         - made usage message different and more concise then the --help message
1008         - added --version option
1009         - updated man page
1010         - changed C build tree for concurrent building on multiple architectures
1011
1012 1.3.1 -> 1.3.2:
1013         - add -b option to %patch
1014         - fixed install/chroot temp file deleting
1015
1016 1.3 -> 1.3.1:
1017         - fixed bug when doing md5 of erased config file during rpm -u
1018         - fixed spec file searching
1019
1020 1.2 -> 1.3:
1021         - added --search and --where options
1022         - multiarchitecture support
1023         - added --rebuild option
1024         - started C rewrite - rpmq (query options only)
1025
1026 1.1 -> 1.2:
1027         - preuninstalls weren't getting handled properly
1028         - Alpha architecture is now recognized and builds are allowed
1029         - the database open is checked for success before continuing
1030         - rpm -b? checks the SPEC files for package names given as args