2.3.7 -> 2.3.8:
	- added -t? options to build packages from tarballs which contain
	  .spec files instead of from the .spec files directly
	- fixed error in man page where ftp URLs are discussed
	- don't strlen(NULL) in headerAddEntry()
	- minor portability changes
	- stopped building oldrpmdb.c as part of rpmlib
	- added Makefile rule for building rpmconvert (which is almost
	  never needed) -- this isolated gdbm dependence to this target
	- fixed checking of popt stack overflow
	- --requires shouldn't imply -q
	- fixed error message issued when a groupname does not exist
	- fixed but in changelog processing which made it hang on '*' in a
	  changelog entry
	- generate S_ISSOCK and S_ISLNK macros on systems w/o them
	- "rpm --erase" wasn't returning proper error codes w/ package
	  removal failed

2.3.6 -> 2.3.7:
	- fixed nasty memory link in -Va
	- configure checks for -lnsl explicitly rather then linking it
	  to -lsocket (for NCR SysVR4)
	- configure checks for dirent.h
	- modified glob.c to include config.h and use HAVE_DIRENT_H
	- cleanup of LIBS/LIBPATH mess a bit more

2.3.5 -> 2.3.6:
	- -Vf uses realpath() now
	- -Vp lets you use --ftpproxy, --ftpport
	- changed popt format, breaking all popt alises :-(
	- added ability to alias character arguments to popt 
	- moved --requires, --info to /usr/lib/rpmpopt
	- RPM is more forgiving of blank user names (dumb)
	- popt searches for aliases in the correct order now
	- cleanup query code to handle missing uid lists better
	- cleanup up configure.in a tad

2.3.4 -> 2.3.5:
	- %{#TAG} in query format prints the array length
	- cleanup up protoypes in rpmlib.h
	- let -Vp work on URLs
	- don't set umask(0) anymore -- that confused programs which
	  link against rpmlib quite badly
	- moved print out in "rpm -v -i" to occur after any warnings
	  to pretty up the output a bit
	- added default optflags for powerpc
	- run shell for post/pre scripts in debug mode with -sx for
	  some silly shells
	- installing source packages with --root checked for the 
	  sources/specs directory to exist outside of the root -- fixed
	- modified toplevel Makefile to run dependency generation only
	  against referenced sources
	- array size mismatches in --qf should send error to stderr
	- tried to make the locale stuff a bit more portable (again)
	- reworked the owner/group setting on installs to be more generic
	  (in preperation for getting rid of cpio)
	- made verify verify owner and groups by name rather then by id -- if
	  the symbolic names aren't available use the uids
	- cleaned up relocateFilelist() and related code thanks to
	  new header introduced in 2.3.3 -- this could break relocateable
	  packages but they seem okay
	- fixed a bug which could cause relocateable packages to not get
	  relocated -- I think this bit some people during hard drive
	  installs of all things (Jason Salopek pestered me consistently
	  enough to keep this on the front burner for me)
	- removed FILEUIDS and FILEGIDS from the header in the database --
	  we never used it and it jsut wasted room
	- convert uid/gid lists in v1 headers to symbolic names 

2.3.3 -> 2.3.4:
	- %changelog processing
	- fixed broken requires/conflicts parsing for spec file
	- vastly improved --rebuilddb's robustness
	- fixed misplaced free() (only affected inconsistent databases)
	- added conflicts documentation to docs/dependencies
	- using multiple query formats has them all concatenated
	- removed stdin based query and verify selectors
	- installs rpmpopt in libdir
	- moved --provides and --scripts to rpmpopt
	- added --setperms, --setugids
	- incorporated newer de.po from Karsten Weiss
	- --resign/--addsign was broken in 2.3.3 from popt conversion

2.3.2 -> 2.3.3:
	- Ripped out header internals and redid them. Any compatibility 
	  problems this causes are *bugs* as it should be completley 
	  transparent. If this works the devil better buy some Prestone (TM).
	- Use "cp -pr" instead of "cp -ar" for %doc expansion
	- use <string.h> instead of (non standard) <strings.h> in some places
	- look for non-POSIX (broken) chmod
	- include local copies of glob/fnmatch
	- removed getopt() check from configure.in
	- fixed bug in ftp code which prevented proper logins to some sites
	- switched to popt from getopt, which allows command line aliasing
	- read initial aliases from /usr/lib/rpmpopt then /etc/popt and
	  $HOME/.popt
	- cleanup up rdev verification (only verifies device files, checks
	  device related mode bits as well)
	- fixed allocation of temporary paths (Eugene Kanter noticed this)
	- made tools/dumpdb read the rpmrc so it can find the database
	- added --nomd5 for -V and -K
	- don't assume mkdir -p will succeed if the dir exists
	- use RPMNLS* defines to avoid header file conflicts
	- bunch of minor cleanups to avoid warnings on other OS's

2.3.1 -> 2.3.2:
	- fixed bug in new rpmVersionCompare() which made it worse then
	  useless (thanks to Norbert Kiesel)
	- fixed silly message

2.3 -> 2.3.1:
	- changed --help routing to have intelligent line wrapping
	  to make i18n efforts easier
	- NLSDIR should be used for nls catalogs, not a hardcoded path
	- NLSDIR should be in share, not lib
	- renamed sweedish catalog from se to sv
	- added german catalog
	- treat RPM_CHAR_TYPE as RPM_INT8_TYPE for queries
	- made rpmEnsureOlder() internal to lib/install.c
	- added rpmVersionCompare() to compare version/release/serial numbers
	  for packages -- returns like strcmp()
	- stdout/stderr were getting closed after running a verify script
	- relocting packages didn't work w/ the packages contained the
	  directory which was it's prefix

2.2.11 -> 2.3:
	- replaced putenv/setenv which calls which malloc() buffer -- these
	  are memory leaks, but the functions are only used between a fork()
	  and exec() so it doesn't matter
	- created directroies are stamped with mtime from the file list

2.2.10 -> 2.2.11:
	- fixed some include file problems for FreeBSD
	- fixed find-provides script for Linux (silly typo)
	- -qvl didn't print out sticky bit
	- linux.prov won't print provides info for symlinks which point
	  to libraries w/ proper sonames

2.2.9 -> 2.2.10:
	- changed how installArchive() handles running out of gzread()
	  bytes while the child is still alive
	- changed tag for Alpha's to "alpha" from "axp" <gulp>
	- made ./configure look for --quiet support in cpio
	- netsharedPath's were having mkdir()'s done on them and had
	  bad interactions with rooted directories
	- made -qp accept '-' to query the package on stdin
	- dependency checking was broken when no database was being used
	- don't *ever* let cpio make directories -- we do a better job
	  (esp because we don't kill symlinks!)
	- plugged memory leaks in upgrade (again thanks to mpr) -- install,
	  erase, upgrade, query, and verify all seem to be leakproof
	- use select() rather than busy waiting in cpio_gzip()
	- use half as much temp space during package assembly
	- fail if spec file check fails
	- changed canonical name for 68k to m68k (sorry)
	- integrated FreeBSD changes from Jared Mauch
	- integrated Irix changes from Hermann Lauer
	- i18n support can be disabled w/ configure by --disable-nls
	  (thanks to Remy Card)
	- integrated more AmigaOS patches, played with configure some
	  more to allow cross compiling (Kristof Depraetere)
	- cleanups to rpm2cpio (closing the gz stream) (Elliot Lee)
	- made find-provides return filename for libs w/ no soname

2.2.8 -> 2.2.9:
	- fixed typo in default rpmrc
	- made getBooleanVar() a bit better
	- added triggers to package builds
	- tagged spec file in source package file list
	- added %verifyscript (controlled by --noscript, -v flags)
	- changed pkgReadHeader() mechanism to be more generic
	- added find-provides for Solaris, made find-provides setup
	  more generic (w/ configure.in picking the right one)
	- fix -Q
	- The Great Renaming
	- use external OS specific script to generate requires lines
	  (should work with ld.so 1.8.x) (find-requries)

2.2.7 -> 2.2.8:
	- added --ftpproxy, --ftpport (and wrote about them in rpm.8)
	- added --nodeps to man page
	- added --showrc to man page
	- added conflict checking (use conflicts tag, which looks
	  just like the requires tag)
	- fixed RPM's return code when package removal fails
	- cleaned up lib/install.c a bit for readability
	- plugged a bunch of memory leaks thanks to mpr -- install,
	  uninstall, verify, and query all seem clean now
	- added support for trees shared over a network via netsharedpath
	  in rpmrc
	- don't exit when there is an unknown option in an rpmrc, just
	  give an error and continue
	- tried once again to get things working properly with 2.1's
	  write behavior
	- added -E option for %patch
	- added UltraSPARC support to lib-rpmrc
	- moved default topdir and optflags settings to lib-rpmrc from 
	  /etc/rpmrc
	- removed /etc/rpmrc from standard distribution
	- use separate chgrp/chown commands in %setup macro
	- kill(2) arguments were backwards in lib/install.c
	- fileFile logging needed stdio to handle NULL args to %s
	- default docdir (for %doc macro) set in lib-rpmrc rather then
	  hardcoded
	- removed some of the \n from args to error() [though many are
	  still left]
	- uninstall should fail if the preuninstall script fails
	- --root works with --initdb now

2.2.6 -> 2.2.7:
	- applied lots of portability patches
	- builds on Solaris machines now!
	- will build w/o i18n support if GNU gettext isn't installed
	- added inet_aton, setenv functions for libmisc
	- added Sun4c, Sun4m architectures
	- use vfork() if fork() doesn't exist (for AmigaOS)
	- look for GNU cpio, complain if it doesn't exist at build time
	- put path for GNU cpio in /usr/lib/librpmrc
	- install rpm.shared if rpm wasn't built (for Solaris)
	- readHeader() in librpm.a should work on sockets (which may
	  return partial reads)
	- package file query (-q -p) accepts ftp:// style URL's
	- if gzread returns 0 bytes (at EOF), don't call write w/ 0 byte
	  argument as it's behviour isn't portable
	- fixed -Vp behavior (doesn't seg fault w/ packages have dependencies)

2.2.5 -> 2.2.6:
	- added --rebuilddb to rebuild database, updated man page
	- fix fd leak in md5sum
	- fixed group cache bug

2.2.4 -> 2.2.5:
	- if rename() for moving .spec file from SOURCES to SPECS fails,
	  try copying it instead
	- -h and -v work for source package >= V2
	- -h output is much smoother now
	- new AutoReqProv: tag in spec file can disable automatic
          require/provide generation
	- fixed md5sum problem on big endian machines in a way that's
	  mostly backwards compatible; this hack will be removed someday
	- added :fflags tag
	- fixed a couple of minor memory leaks in lib/install.c
	- --test for building

2.2.3 -> 2.2.4:
	- only remove docdir if %doc occurs
	- allow -R to %patch
	- moved to use GNU autoconf, though it probably isn't perfect yet
	  (thanks Kristof Depraetere)
	- spec file sanity: no - chars in version or release,
	  must be a regular file :-)
	- version specifications for requirements can use "-<release number>"
	- default lib path, tmp path, topdir, and /usr/lib/rpmrc get set
	  by configure script relative to --prefix

2.2.2 -> 2.2.3:
	- fixed script file md5 checking when files are in a root
	- implemented proper strdup/free logic for dependency conflict
	  lists
	- strip leading directories from ldd output
	- fix non-null-terminated readlink() result
	- fixed sscanf() in ftp code to use proper types

2.2.1 -> 2.2.2:
	- added functionality to rpmlib to suggest resolutions for
	  dependency problems
	- fix stupid allocation problem in exclude/exclusive stuff
	- fix nasty bug where pointers in to the header were getting
	  stale after some realloc()s in addEntry()
	- ignore OS tag for v2 packages -- it was wrong anyway
	- match shared libs on ".so" rather than ".so."
	- skip blanks from objdump for auto-provide
	- if objdump gets us _end, provide the file name
	- do not ldd non-regular files
	- do not pass leading "/" to ldd
	- fix ExcludeOs: and ExclusiveOs:
	- -V verifies dependencies, can be controlled with --nodeps
	  and --nofiles
	- added information on --nodeps to usage messages
	- implement --timecheck and rpmrc timecheck:
	- implement -bl
	- catch duplicate files in file lists
	- some random sanity checking on the file list

2.2 -> 2.2.1:
	- made rpmRemovePackage() print message in verbose mode
	- added support for ftp://user:pass@machine.org/ URL's
	  during installation - the password will be prompted for
	  if only the user is given, and anonymous ftp will be used
	  it both user and password are omitted (as before)
	- Remove Exclusive: Exclude:
	  Replace with: ExclusiveArch: ExclusiveOs:
		        ExcludeArch: ExcludeOs:
	- fixed dependency cheking for packages that are installed
	  at the same time
	- fixed version number dependency checking
	- fixed problem installing v1 source packages (thanks to
	  Nikita Borisov)
	- fixed minor spelling/spacing problems (Nikita Borisov)
	- assume all v1 packages were made for Linux so OS check works
	- began to implement proxyftp, though it doesn't work yet
	- fixed spacing when reporting dependency conflicts
	- fixed bug where a long name (uname()) was mapping to itself

2.1.2 -> 2.2:
	- don't fail, and do report, if -K can't find a PGP key
	- handle file names with quotes and spaces when passed to ldd
	  (still can't have spaces in %files)
	- do not allow Buildprefix: in sub packages
	- removed require_group from rpmrc -- groups are always required
	- removed arch_sensitive from rpmrc -- always on
	- removed docdir from rpmrc -- always /usr/doc
	- fixed nasty bug in installing packages with large filelists
	- made -R work
	- --provides and --requries don't print anything if no information
	  is present (rather then (none) )
	- -qi prints Summary now
	- changed Buildprefix: -> Buildroot: (spec file, rpmrc)
		  --buildprefix -> --buildroot (command line)
		  RPM_BUILD_PREFIX -> RPM_BUILD_ROOT
					(%prep, %build, %install, %clean)
	  sorry :-)
	- allow Prefix: for sub-packages
	- allow packager: in rpmrc
	- --arch and --os are now --buildarch and --buildos
	- magic arch/os handling through arch_canon and os_canon
	  see /usr/lib/rpmrc (in short: uname short_name num)
	- removed build_arch: from rpmrc
	  Replacing it is buildarchtranslate: and buildostranslate:
	  to allow building with arch/os other than what uname() returns.
	  Can still be overriden with --buildarch and --buildos
	- rpmrc keywords are now case-insensitive
	- check os at install time
	- check return code from gzread() during installs
	- implemented os_compat
	- added arch_compat and os_compat information to --showrc (the
	  changes needed to do this removed any lingering questions about
	  the efficiency of the compat lookups for large tables or tables
	  with loops -- it should all work fine)
	- made -u (--uninstall) exit with an error and not do anything
	- added --ignoreos
	- fixed error message given when a file is missing
	- fixed hashing when multiple packages are being modified
	- changed man page for readability (thanks to Joseph L. Hartmann, Jr)

2.1.1 -> 2.1.2:
	- fixed error message for unrelocateable packages
        - automatic shared lib provides now work with buildprefix
	- fixed dependency checking during upgrades to work if the
	  package wasn't previously installed
	- clean up temp file after signature check
	- dependencies weren't looking through packages that were
	  being installed at the same time quite right

2.1 -> 2.1.1:
	- fixed -qi query format 

2.0.11 -> 2.1:
        - added --requires, --whatrequires, --provides and 
	  --whatprovides queries
	- using a string array tag in a queryformat results in every
	  item in the string being printed out with spaces in between
	  (though this behaviour will probably go away shortly)
	- all packages are ftp'd before any are installed (required to
	  do proper dependency checking)
	- if only source packages are being installed, the database is
	  never opened
	- automatic shared library require/provides tags generated
	- added --nodeps flag for install and uninstall
	- added dependency checking for installs and uninstalls
	- misc fixes to compile with glibc
	- use PGPPATH if set (and no pgp_path: in rpmrc)
	- remove pgp_pubring, pgp_secring stuff
	- new extensible signature
	- signature section supports multiple signatures
	- --addsign to add a signature to a package
	- PGP key no longer limited to 1024 bits
	- always do at least an MD5 "signature"
	  as a result, -K will always tell you something
	- signatures now include a simple "header+archive size" check
          just calling readSignature() checks this
	- --nopgp (with -K) to skip PGP check, just do MD5
	- allow '#' comments in preamble and %files section
	- fixed -qsv to print both the states and the file information	
	- added --dump option to query to print all file attributes
	- installs with --root use the /etc/passwd and /etc/group from
	  the target directory
	- added --initdb to aid in database initialization
	- --queryformat can print items of type INT8
	- "sourceless" packages with nosource: and nopatch:
	- [] now allows interation through query formats
	- '-' flag for query tags removed
	- :date and :perms supported as query format specifiers
	- new rpmrc entries "arch" and "os" to override
	- --arch and --os on the command line to override
	- arch and os are now strings in the package header
	- added arch_compat handling in /etc/rpmrc
	- added build_arch to /etc/rpmrc
	- support arch as string
	- added --ignorearch option
	- Prefix: in spec file to specify default installation prefix
	- rpmrc and command line may be used to override the path
	  used for the rpm database
	- relocatable packages get installed properly
	- added support for --prefix and RPM_INSTALL_PREFIX environemtn
	  variable
	- added dependency checking for version numbers
	- added correct dependency checking for upgrades
	- added :depflags query format flag
	- changes --provides, --requires, and --scripts queries to use
	  queryFormats

2.0.10 -> 2.0.11:
        - fixed chmod(symlink) bug (since 2.0.9)

2.0.9 -> 2.0.10:
	- fixed the fix to rpm -q <num> bug
	  to query by number you now need --querybynumber
	- made arch_sensitive on by default
	- handle # comments in preamble
	- don't barf if we can't canonicalize the hostname during builds
	- fixed --verify with --root

2.0.8 -> 2.0.9:
	- %files -f <file>
	- prelim Require/Provide handling
	- prelim strict checking of spec file
	- removed some bash-isms
	- fixed globbing/root bug
	- fixed rpm -q <num> bug
	- fixed ftw() related bug where symlinks were being
	  followed in %files rather than just being noted!!
	- pass "upgrade" arg to pre/post scripts when upgrading
	- use PATH to find cpio when installing
	- fixed rpm.magic, added sun4, mips, 68k, sgi, sunos, solaris
	- added %attr(mode owner group) feature to file list
	- fixed dumb %verify() parse bug

2.0.7 -> 2.0.8:
	- explicitly turn off ASCII armor when running PGP
	- fixed --noscripts logic, which was on by default and 
	  off if you specified it!
	- uses a temp file to pass filenames to cpio in case when 
	  their are more then 500 filenames in a package
	- added --rcfile
	- fixed problem with $HOME/.rcfile not being read
	- undocumented --search, --where, --keep-temps which
	  will probably won't be implemented in RPM 2.x anyway

2.0.6 -> 2.0.7:
        - builds now set umask 022 for all scripts
	- queries relative paths correctly (thanks to Johnie Stafford)
	- fixed error codes for failed installs
	- don't add NULL entry to group index for packages that don't
	  have group information, add it to the "Unknown" group instead
	- added --scripts query option
	- added --noscripts for installing and uninstall without using 
	  the pre/post scripts
	- "rpm -qd" and "rpm -qc" work properly now (they didn't imply
	   -l before)

2.0.5 -> 2.0.6:
	- internal changes to error messages

2.0.4 -> 2.0.5:
	- added support for generic querying
	- added --querytags option
	- updated man page for above two
	- short-circuit got added before 2.0.5, but I don't know when
	- query and installs should now return 0 on success and nonzero
	  otherwise (rpm -i should return the number of packages that
	  failed actually)
	- made rpm -qa fail if extra arguments are passed to it

2.0.3 -> 2.0.4:
	- added support for PowerPC, and OSF mklinux ports
	- added --resign
	- added --recompile
	- added verbose error messages from Tyson Sawyer
	- rpmconvert won't overwrite an existing database
	- won't core dump querying old format source packages
	- freed minor memory leak
	- more descriptive error messages during build
	- added support for not installing documentation

2.0.2 -> 2.0.3:
	- added support for 686, 786, 886, 986

2.0.1 -> 2.0.2:
	- fixed ftp.c to return an error code when select timeouts
	- added basic NLS support, along with a Sweedish message catalog
	  (thanks to Michael Nyquist)

2.0 -> 2.0.1:
	- hashing and percentages no longer SIGFPE on 0 byte packages
	- when an ftp fails, install.c no longer tries to install the package
	- uses /var/tmp rather then /usr/tmp during for ftp space
	- added debugging messages to ftp.c
	- fixed some mistakes in the PGP section of the man page
	- added mdfile prototype to rpmlib.h - the Python module wants this
	- fixed struct oldrpmlead to align properly on the alpha

2.0	- everything done :-)

2.0b -> 2.0c:
	- an incredible number of changes - I won't bother trying to 
	  list them

2.0a -> 2.0b:
	- moved build stuff to main rpm command, though --rebuild is still
	  not supported
	- install should work, although replaced files are not marked as
	  replaced
	- %doc macro fixed
	- --percent, --hash work for installs
	- converted databases and packages get the file list in the correct
	  order now
	- none of this is well tested
	- rpms are output to proper dirs (which are always arch sensitive)
	- basic rpmrc functions are implemented, full parsing is present
	- changed error messages for missing files to include full path
	- fixed detection of Alpha's

1.4.6 -> 2.0a:
	- completely rewritten in C
	- verification missing
	- build functionality not in main rpm, in rpmbuild instead
	  (this will be corrected)
	- an awful lot is still missing - this is an ALPHA release

1.4.5 -> 1.4.6:
	- fixed rpmq problem with packages w/o groups (old RPM's would do this)
	- fixed uninstalling with --root 

1.4.4 -> 1.4.5:
	- added support for mips processors
	- added support for osf1 and irix os's

1.4.3 -> 1.4.4:
	- fixed bug in arch detection code which caused i386 failure

1.4.2 -> 1.4.3:
	- added tokens for SPARC, MIPS, PowerPC, and 680x0 architectures
        - fixed sparc arch, added arch sanity check

1.4.1 -> 1.4.2:
	- added --root to man page, usage, and help messages
	- added a " " to the "Creating directory" debug message in install.pl
	- make --rebuild fail on binary packages
	- don't output prep/build/install sections if there aren't any

1.4 -> 1.4.1:
	- fixed man page
	- updated corruption messages to not mention --rebuild
	- added RPM_PACKAGE_VERSION and RPM_PACKAGE_RELEASE variables
	  at build time
	- no longer allows installing binary packages across architectures
	- fixed handling of symlinks marked as config files

1.3.2 -> 1.4:
	- make -v the default when using -b and --rebuild
	- added %postbuild as an alias for %clean
	- added gendiff
	- added groups file installed in /usr/lib/rhs/rpm
	- made usage message different and more concise then the --help message
	- added --version option
	- updated man page
	- changed C build tree for concurrent building on multiple architectures

1.3.1 -> 1.3.2:
	- add -b option to %patch
	- fixed install/chroot temp file deleting

1.3 -> 1.3.1:
	- fixed bug when doing md5 of erased config file during rpm -u
	- fixed spec file searching

1.2 -> 1.3:
	- added --search and --where options
	- multiarchitecture support
	- added --rebuild option
	- started C rewrite - rpmq (query options only)

1.1 -> 1.2:
	- preuninstalls weren't getting handled properly
	- Alpha architecture is now recognized and builds are allowed
	- the database open is checked for success before continuing
	- rpm -b? checks the SPEC files for package names given as args
