Home | Back
5.3.11 -> 5.3.12
    - devzero2000: added missing ac_config_files per openmamba vendor macro
    - devzero2000: Sort file list for debuginfo extraction.
      (inspired by Robert Schiele http://lists.rpm.org/pipermail/rpm-list/2011-May/000894.html)
    - proyvind: update doxygen input filename paths.
    - proyvind: fix assertion error when trying to install packages without
required permissions.
    - devzero2000: add openmamba macro to the rpm spec file
    - devzero2000: add openmamba macro to configure.ac so it is distributable.
      Also use AC_SUBSTS RPMCANONVENDOR configure variable in openmanba.in  
      : i think this is preferable to hardwiring redundant description
      already found in configure phase
    - devzero2000: document --whatneeds and --needswhat
      (ref. https://bugzilla.redhat.com/show_bug.cgi?id=142651)
    - proyvind: fix an extremely subtle, corner-case memleak in parsePreamble.c
    - mdawkins: openmamba - devtool.conf --with-expat --without-perlembed --without-ruby
    - jbj: openmamba: --with-neon=internal needs libs to be added explicitly
to linkage.
    - mdawkins: applied vendor Openmamba patches
    - devzero2000: in configure.ac distinguish properly redhat from fedora
    - devzero2000: add preliminary change for momonga buildboot
    - devzero2000: fix typo in repackage_dir for  macros/openmamba.in
    - devzero2000: fix bugurl for  macros/openmamba.in
    - mdawkins: a few fixes for macros/openmamba.in
    - mdawkins: added macros/openmamba.in
    - mdawkins: tagged 5.3.11 release in configure.ac

5.3.10 -> 5.3.11
    - mdawkins: i18n update cs.po da.po de.po es.po fi.po fr.po id.po is.po it.po ja.po
ko.po nb.po nl.po pa.po pl.po pt.po pt_BR.po ru.po sk.po sl.po sr.po sv.po tr.po
uk.po vi.po zh_TW.po
    - devzero2000: permit in configure phase to
      --enable-rpmvercmp-digits-beat-alpha for reverting to the old rpmvercmp
      behavior where digits beat alpha as used by Mandriva, Fedora, Suse
      and other (ref https://blueprints.launchpad.net/rpm/+spec/rpm-split-vendor-config-in-autofu)
    - proyvind: add a uClibc(...) dependency for libraries linked against
uClibc to avoid conflicting duplicates (mandriva only for now)
    - devzero2000: get rid of rindex everywhere: use SUSv3 strrchr instead
    - devzero2000: add more gpg keys to thkp.c test program
    - jbj: verify: re-add digest/signature checks.
    - jbj: move multiarch* to mandriva.in.
    - jbj: put "devel(libfoo)" deps under RPM_VENDOR_MANDRIVA.
    - proyvind: merge multiarch-utils from mandriva.
    - proyvind: macros: sync with updated python macros from mandriva.
    - proyvind: rpmfc: add internel dep generator helper for kernel modules.
    - provyind: kmod-deps.sh: add dependency extractor from mandriva.
    - proyvind: rpmds: implement devel(libfoo) symlink dependencies from
Mandriva, but with proper ELF SONAME checking.
    - jbj: add a --nofsync popt alias (caveat: experimental & risky).
    - jbj: checksig: check explictly for per-item failures after iterating.
    - jbj: build: fix: resurrect %description -l XY yet again.
    - jbj: build: fix: attempt arbitrary '%foo' tag iff '%' is seen.
    - mdawkins: tagged 5.3.10 release in configure.ac

5.3.9 -> 5.3.10
    - proyvind: rpmjs: port to SpiderMonkey 1.8.5 API.
    - mdawkins: updated changelog information for snapshot releases in rpm.spec.in
    - mdawkins: i18n update cs.po da.po de.po es.po fi.po fr.po id.po
is.po it.po ja.po ko.po nb.po nl.po pa.po pl.po pt.po pt_BR.po
ru.po sk.po sl.po sr.po sv.po tr.po uk.po vi.po zh_TW.po
    - proyvind: mandriva: filter overlapping depencies.
    - proyvind: rubygems.rb: add/provide ruby(abi) dependencies for non-gems.
    - proyvind: rpmfc: add classifiers for gstreamer plugins & dep generator.
    - proyvind: use pythoneggs.py for python deps generated by internal generator.
    - proyvind: rpmfc: enable ruby file classifier & internal dep generator.
    - devzero2000: misread the review, repost as the original patch
    - devzero2000: change the order for the _initddir macro assignment
    - proyvind: mandriva: add systemd macros (mdvbz#62741, from Andrey Borzenkov).
    - proyvind: dbconvert: fix conversion to older hash database format
resulting in "missing" package from rpmdb.
    - devzero2000: add missing merge from HEAD of
      --enable-rpm-lua-extensions-based-on-rpmlib patch
    - devzero2000: add %_initddir macro for Mandriva
      (ref http://lists.mandriva.com/maintainers/2011-03/msg00252.php)
    - jbj: fix: reduce false positives checking for
      duplicate keys (mdvbz#62822).
    - jbj: uuid: permit --qf '%{RPMTAG:uuid}' UUIDv1/UUIDv5 output display.
    - jbj: uuid: rework for single exit return.
    - devzero2000: permit in configure phase to enable the
      --enable-rpm-lua-extensions-based-on-rpmlib used by OpenPKG today
      and, for rpm.vercmp, by rpm.org (ref https://blueprints.launchpad.net/rpm/+spec/rpm-split-vendor-config-in-autofu)
    - proyvind: always run %clean so it won't be required in .spec file.
    - jbj: checksig: check explictly for per-item failures after iterating.
    - jbj: install: check explictly for per-item failures after iterating.
    - jbj: rpmgi: save per-item failures separately from iteration returns.
    - jbj: display the exit code when -vv is used.
    - devzero2000: document the actual semantic of rpm5 %exclude
    - proyvind: rubygems.rb: change dependency 'ruby >= ruby_version' to
'ruby(abi) = ruby_version'
    - devzero2000: flip a toy test from the %exclude and check unpackaged file issue
    - proyvind: check whether provides are duplicate of package first (without
distepoch), also ensures that package is always at end of %provideversion.
    - jbj: add "| cpio -dim" to the rpm2cpio.8 examples.
    - mdawkins: tagged 5.3.9 release in configure.ac

5.3.8 -> 5.3.9:
    - mdawkins: updated changelog information for snapshot releases in rpm.spec, rpm.spec.in
    - mdawkins : i18n update sl.po sv.po
    - jbj: i18n: update fi.po files (Translation Project).
    - devzero2000: permit in configure phase to disable (via --disable-dirname-and-symlink-deps)
      the optional-dirname-and-symlink-deps used by Mandriva and Ark today
      (ref https://blueprints.launchpad.net/rpm/+spec/rpm-split-vendor-config-in-autofu)
    - proyvind: use expanded %{___NVRA} for 'rpm --last'.
    - devzero2000: merge Suse patch. Set "%_specfile" macro in the build so that people can
do specfile manipulation/data extraction in the build.
    - proyvind: set mi->mi_count in rpmmiCount() when db cursor exists rather
than always doing it in rpmmiNext()
    - jbj: rpmrc: fix: add missing nref++ on rpmdsFromPRCO() return segfault.
    - proyvind: set mi->mi_count when rpmmiNext() initializes db cursor so that
rpmmiCount() won't break (mdvbz#62267)
    - proyvind: fix rpmmiCount() not resetting db cursor after use, breaking
iterator (mdvbz#62279)

5.3.7 -> 5.3.8:
    - devzero2000: update INSTALL.developer with some jbj consideration
      on how to use multiple rpm version.
    - jbj: fix: set RUNNING_ON_VALGRIND if AWOL.
    - proyvind: python: export rpmEVRparse() & rpmEVRcompare() in evrSplit() &
evrCompare().
    - proyvind: fix return code for ignored signals breaking ie. rpmbuild with
gnome-terminal (mdvbz#62262)
    - proyvind: add tools/dbconvert for rpmdb conversion to/from hash/btree &
        little/big endian (to handle upgrade/downgrade to/from older rpm versions)
    - jbj: remove fsync(2) after file install, its intolerably slow.
    - jbj: simplify the lookup3.c valgrind logic.
    - jbj: condition mdvbz#61746 on RPM_VENDOR_MANDRIVA.
    - proyvind: rpmdb: set and create default log directory so that it doesn't
get changed ie. when installing to a fresh chroot and no DB_CONFIG
exists, with transaction logs ending up in a path that changes later.
    - proyvind: perl: fix typo breaking RPM::Transaction->problems().
    - devzero2000: Fix null requirement produced by mono-find-requires
      by Silvan Calarco
    - jbj: omp: avoid thread overhead for a single digest.
    - proyvind: fix noarch sub-packages not having it's corresponding platform
tag (mdvbz#61746).
    - proyvind: lookup3: fix runtime valgrind check and make it local.
    - proyvind: lookup3: fix valgrind #ifdef and perform runtime check for
valgrind in stead.

5.3.6 -> 5.3.7:
    - jbj: remove markReplacedFiles.
    - jbj: i18n: update po files (Translation Project).
    - jbj: fix: %config handling broken while refactoring a loop.
    - jbj: rpmmi: lazily instantiate the basenames header set.
    - jbj: re-add the lazy creator avoiding self LOOP's in ordering pkgs
during installs using parentdir relations.
    - proyvind: rpmts: don't default rootDir to "" if set to NULL, as it
confusing rpm checks on NULL & "/" only, without "", making ie.
%posttrans scriptlets fail where NULL is used (mdvbz#61696).
    - jbj: fix memory leak on user lookup error.
    - proyvind: rubygems: only add runtime dependencies (Rémy Clouard).
    - proyvind: export rpmbf.h & rpmgi.h to public API.
    - proyvind: rpm4compat: add RPMTAG_FILENAMES & RPMDBI_LABEL.
    - proyvind: perl: start on adding back some missing functionality from RPM4:
RPM::Sign, RPM::Transaction::importpubkey, RPM::Transaction::checkrpm.
    - proyvind: rpmconstant: update constants.
    - proyvind: rpmconstant: fix rpmh2tbl to error out for constants not found.

5.3.5 -> 5.3.6:
    - jbj: release rpm-5.3.6 (in a *.src.rpm).
    - jbj: i18n: update po files (Translation Project).
    - jbj: rpmdb: minimalistic lock object scaling.
    - jbj: rpmdb: re-open with DB_RECOVER iff DB_RUNRECOVERY.
    - proyvind: add a first prototype scripts/dbconvert.sh for handling rpmdb
        conversion during upgrades.
    - jbj: cooker: fix: legacy RPM_CHAR_TYPE needs to be retrofitted on --erase.
    - jbj: openssl: older openssl-0.9.7a uses OPENSSL_NO_EC disabler.
    - jbj: openssl: older openssl-0.9.7a lacks 2 keygen methods.
    - jbj: nss: older nss-3.12.2.0 lacks certain error returns.
    - jbj: autofu: fix: older elfutils (centos4) doesn't have gelf_getnote().
    - jbj: tests: add a check-convert target.
    - jbj: rpmdb: double the defaults  for locking tunables.
    - jbj: rpmdb: fix: don't bother excluding RPM_CHAR_TYPE sanity check.
    - jbj: rpmdb: fix: don't bother converting to RPM_UINT8_TYPE.
    - jbj: put the rpm -qf 1-liner under #ifdef RPM_VENDOR_MANDRIVA for now.
    - proyvind: fix issue with 'rpm -qf' on unowned file not being
reported. (launchpad #669130)
    - proyvind: fix assert failure with Fadvise() on non-existing files.
    - proyvind: ditch %gem_unpack macro and make %setup automatically handle
ruby gem extraction in stead.
    - proyvind: mandriva: fix 'Conflicts: dependencies without release
misfire'. (mdvbz#55810)
    - proyvind: make sure to expand %buildroot from main package.
    - jbj: devtool: don't distribute internal pcre.
    - proyvind: filetriggers: don't bother w unneeded chroot.
    - devzero2000: add an --setfscontext popt alias (lp#660406)

5.3.4 -> 5.3.5:
    - jbj: release 5.3.5.
    - jbj: stub-in a disabler for "FILE ACID".
    - jbj: i18n: update po files (Translation Project).
    - jbj: beecrypt: fix: polluted builds due to my brain fart. revert.
    - jbj: popt: permit builds with --with-popt=internal all over again. todo++.
    - jbj: tests: fix: eliminate the need to jump start "make check"
by copy macros from within tree to /usr/lib/rpm.
    - jbj: tests: lose all the *.spec build peculier macros just added.
    - proyvind: add gem_helper.rb and it's corresponding macros %gem_unpack,
%gem_build & gem_install for simplifying & streamlining ruby gem
packaging.
    - proyvind: add cmake macros from fedora/mandriva.
    - proyvind: add tcl macros from mandriva.
    - proyvind: add ruby macros from mandriva.
    - proyvind: add macros from mandriva that's fairly generic enough to
possibly be of use to others, in mandriva/macros.
    - jbj: spewage: use RPMTAG_SHA1HEADER as the primary retrieval key.
    - jbj: rpmpopt: fix: permit popt aliases to be used w "make check".
    - jbj: pgp: add a 2nd parameter to pgpDigNew to generate a keypair.
    - jbj: rpmbc: refactor rpmbcExport{Pubkey,Signature} out of rpmbuild code.
    - jbj: mongo: add --json to spew document structured metadata in JSON.
    - jbj: mongo: add --qf templates for primary/filelists/other imports.
    - jbj: spewage: add :jsonescape header format extension.
    - jbj: db: specify only db-5.1.19 external for building, remove the cruft.
    - jbj: tests: resurrect the "check-ACID" target using external db51_utils.
    - jbj: db: build against external db-5.1.19 using --with-db/--with-dbsql.
    - jbj: rpmlio: disable for now, needs --with-db=internal.
    - jbj: db_tool: disable for now, needs --with-db=internal.
    - jbj: db: target db-5.1.19 using --with-db=external.
    - proyvind: rpm46compat: mostly(?) fix rpmtd iterator
    - jbj: add Fadvise wrapper for posix_dadvise(2).
    - jbj: fix: eliminate dueling --noorder options.
    - jbj: solvedb's never need a chroot prefix.

5.3.3 -> 5.3.4:
    - jbj: release 5.3.4.
    - jbj: i18n: update po files (Translation Project).
    - jbj: rpmrepo: finish refactoring tools/rpmrepo.c.
    - jbj: move package.c from lib -> rpmdb.
    - jbj: rpmrepo: move from rpmio -> rpmdb to finish tools/rpmrepo.c gutting.
    - devzero2000 : added --withoutcheck popt alias (#lp:634104) (#mdvbz:35423)
    - jbj: perl: don't automate use RPM, @INC issues need to be solved first.
    - jbj: macosx: avoid <unistd.h> uuid_t typedef, permit --with-uuid.
    - jbj: macosx: add -fnested-functions (when available).
    - jbj: i18n: update po files (Translation Project).
    - jbj: ruby: stick with ruby-1.8.6 (1.9.2p0 needs work).
    - jbj: yarn: add yarnLaunchStack() to create a yarnThread with a stack.
    - jbj: ruby: don't load stringio for now, there's a segfault here.
    - jbj: ruby: wire-up a global interpreter always.
    - jbj: autofu: hot-wire ruby-1.9.2p0 embedding.
    - jbj: ruby: add a ruby-config helper for RPM_CHECK_LIB().
    - jbj: tests: mark mtree breakage on rhel6 for fixing.
    - jbj: mongo: handle endianness at runtime, remove MONGO_BIG_ENDIAN.
    - jbj: mongo: replace internal md5 digest with rpmDigestInit().
    - jbj: mongo: refactor to export from -lrpmio (with no AutoFu!).
    - jbj: mongo: stub-in a mongo spewage alias as --wdj:srpm.mongo.
    - jbj: gpsee: replace WITH_JS everwhere with WITH_GPSEE. GPSEE->JS always.
    - jbj: update api-sanity-autotest.pl to 1.10.
    - jbj: permit building --without-sqlite again.
    - bero: Support building with Python 2.7.x

5.3.2 -> 5.3.3:
    - jbj: finalize for release.
    - jbj: beecrypt: finish up --with-beecrypt=internal wiring into -lrpmmisc.
    - jbj: neon: finish up --with-neon=internal wiring into -lrpmmisc.
    - jbj: misc: add ne_* symbols to loader map for --with-neon=internal.
    - jbj: grep: leave rpmgrep internal, autopoint gets heartburn.
    - jbj: pcre: upgrade to pcre-8.10.
    - jbj: db: upgrade to db-5.0.26.
    - jbj: snapshot rpm-5.3.3 release tarball.
    - jbj: update po files (Translation Project).
    - jbj: solve: commit to a test framework based on EDOS and Poky.
    - jbj: solve: use RPMTAG_PACKAGEORIGIN paths when available.
    - jbj: neon: fix: permit building w neon-0.25.x.
    - jbj: ssl: fix: permit building w/o ECDSA.
    - jbj: ruby: fix: retrofit RSTRING_PTR/RSTRING_LEN into ruby-1.8.5.
    - jbj: solve: loop over solve db's in a bag.
    - jbj: solve: stub-in toy add/del methods.
    - jbj: solve: permit multiple solvedb's in a rpmbag.
    - jbj: solve: generalize %_dbpath to permit multiple rpmdb's.
    - jbj: solve: flip --aid "opt-in" behavior to --noaid "opt-out".
    - jbj: solve: fix: don't free the package file name when depsolving.
    - jbj: fix: debugedit produce empty list file on MIPS.

5.3.1 -> 5.3.2:
    - jbj: pgp: fix: algo parameters to signature/pubkey with msbits().
    - jbj: pgp: use the pubkey from header when installing.
    - jbj: pgp: retrieve pubkey from package header (if present).
    - jbj: pgp: add pgpArmorUnwrap to parse a pubkey from a buffer.
    - jbj: i18n: update po files (Translation Project).
    - jbj: fix: handle the V4 signature plaintext correctly.
    - jbj: add the DSA pubkey/signature to all packages produced by rpmbuild.
    - jbj: bc: disable DSA signhash16 checks for now.
    - jbj: bc: convert DSA digest from binary, no hex needed.
    - jbj: pgp: stub-in a pubkey octet pointer/length.
    - jbj: pgp: fix: expiry subpkts are relative, not absolute.
    - jbj: auto-sign all built packages with a non-repudiable DSA keypair.
    - jbj: ltc: implement RSA/DSA/ECDSA methods (RSA still has issues).
    - jbj: crypto: add --usecrypto options for libtomcrypt/cdsa.
    - jbj: crypto: stub in wrappers for libtomcrypt & Apple CDSA.
    - jbj: autofu: detect libtomcrypt (needs custom-crafted tomcrypt.pc).
    - jbj: pgp: add ECDSA generate/sign/verify tests using gcrypt/openssl.
    - jbj: pgp: buff the chrome.
    - jbj: nss: add a strerror to decode errors to something meaningful.
    - jbj: nss: generate "real" PQG params for DSA.
    - jbj: nss: add RSA/DSA sign/generate methods.
    - jbj: ssl: resurrect RSA verification. RSA breaks my brain every time.
    - jbj: ssl: add RSA/DSA sign/generate methods.
    - jbj: tests: stub-in generate/sign/verify test cases for RSA/DSA.
    - jbj: bc: use rpmpricrt() for signing, 3x-4x faster.
    - jbj: bc: resurrect RSA verification. RSA breaks my brain every time.
    - jbj: tests: per-crypto implementation tests for hkp:// retrieval.
    - jbj: bc: add RSA/DSA sign/generate methods.
    - jbj: ssl: plug a memory leak.
    - jbj: nss: use common sec_key/pub_key/sig structures.
    - jbj: pgp: add method to set Elgamal hash.
    - jbj: pgp: add methods for per-implementation cipher/digest/pubkey checks.
    - jbj: pgp: add methods for per-implementation pubkey algo dispatch.
    - jbj: gc: poplate sign/generate methods.
    - jbj: pgp: add methods for ElGamal signatures.
    - jbj: hmac: fix: permit HMAC's to be clone'd (salt size was incorrect).
    - jbj: ssl: populate set/verify/sign/generate methods for ECDSA.
    - jbj: ecdsa: stub-in sign/generate methods for {ECDSA,RSA,DSA}.

5.3.0 -> 5.3.1:
    - jbj: hkp: only verify the signhash, not the signature, with V3 signatures.
    - jbj: hkp: fix: avoid encoding issues in user id: truncate to 256b.
    - jbj: hkp: fix: unbreak V3 package signatures (and attempt V3 validation).
    - jbj: hkp: fix: validate rpmdb pubkeys too.
    - jbj: hkp: lazily setup/teardown the global awol/crl Bloom filters.
    - jbj: hkp: use rpmhkp methods for pubkey imports.
    - jbj: hkp: use rpmhkp methods for package signatures..
    - jbj: hkp: use rpmhkp methods for clear-signed run-time dependency probes.
    - jbj: hkp: use rpmhkpLoadSignature.
    - jbj: hkp: expose rpmhkpLoadSignature.
    - jbj: pgp: expose the pgpPkt_s internals.
    - jbj: hkp: test for RPMRC_OK when validating.
    - jbj: hkp: richer return codes from rpmhkpValidate.
    - jbj: hkp: expose more methods, add industrial strength debugging spewage.
    - jbj: hkp: eliminate pgpPrtPkts to load pubkey material.
    - jbj: hkp: refactor pubkey material from rpmts -> rpmhkp.
    - jbj: hkp: fix: unbreak package signatures (but creepy logic todo++).
    - jbj: hkp: pull the trailing "...=0x" out of _hkp_keyserver_query.
    - jbj: hkp: retrofit macro madness disablers for hkp:// lookups.
    - jbj: hkp: permit string lookups.
    - jbj: iob: increase max. buffer from 256Kb to 1Mb for pubkeys.
    - jbj: hkp: add a rpmhkp object to manage hkp:// pubkey lookup/validate.
    - jbj: digest: fix: don't count the trailing NUL for ascii digests.
    - jbj: gc: truncate DSA digests to 160bits.
    - jbj: bc: truncate DSA digests to 160bits.
    - jbj: bc: fix: eliminate static buffer overflow.
    - jbj: ssl: ensure RSA/DSA parameters are set.
    - jbj: hkp: expose pubky/signature parameter setters.
    - jbj: hkp: add a NULL sentinel to pgpGrabPkts packaet array.
    - jbk: hkp: add PGPSIGTYPE_KEY_BINDING handling. never seen one *shrug*.
    - jbj: hkp: expose pgpGrabPkts in loader maps.
    - jbj: hkp: permit fingerprints on public subkeys.
    - jbj: gcrypt: fix: convert hash as signed for RSA, unsigned for DSA.
    - jbj: fix: save chroot value across embedded scriptlet execution.
from Przemyslaw Iskra <sparky@pld-linux.org>.
    - jbj: tests: "make check" for CentOS5.4 passes.
    - jbj: permit --with-neon=internal.
    - jbj: beecrypt: permit --with-beecrypt=internal (w manual checkout/autogen)

5.3a1 -> 5.3.0
    - jbj: tag the rpm-5.3.0 tarball.
    - jbj: tests: "make check" for ubuntu 10.04 passes.
    - jbj: perl: repair "make test" by changing the tests.
    - jbj: dist: don't bother distributing tbdb.c
    - jbj: lua: fix: attempt to create %{pkgbindir} if it doesn't exists.
    - jbj: i18n: update po files (Translation Project).
    - jbj: rpmdb: fix: replace assert failures with RPMRC_FAIL returns.
    - jbj: dbi: rework the error message to supply copious debug details.
    - jbj: dbi: fix: --import as non-root assert failure.
    - jbj: DB_CONFIG: fix: add mutex_set_max 8000. better scaling needed, todo++.
    - jbj: tests: re-enable additional build options.
    - jbj: tests: "make check" for RHEL6 beta passes.
    - jbj: tests: add band-aid to resurrect "make check-Caixa" CM12>CM14 upgrade
    - jbj: tests: use /usr/bin/wget to avoid discussing transport issues.
    - jbj: tests: fix: re-add %__check_files that dropped out somewehere.
    - jbj: logio: hack up a #define for bdb built w/i --with-uniquename=_rpmdb.
    - jbj: rpmsql: test version to avoid sqlite3_sourcid() AWOL symbol.
    - jbj: rpmsql: hack-o-round -lsqlite3 disabled modules loading (CM14).
    - jbj: upgrade from db-4.8.26 to db-5.0.21.
    - jbj: misc: expose st_foreach/st_free_table in loader maps. cpuinfo #ifdef?
    - jbj: tests: fix: invoke check-files from in-tree w "make check".
    - jbj: devtool: stub-in a configuration for Caixa Magica 14.
    - jbj: rpmfps: don't bother w file fingerprints for *.src.rpm installs.
    - jbj: rpmbf: sanity checks on rpmbfParam(n,e) arguments.
    - jbj: resurrect "make distcheck" (fails as always in file/*).
    - jbj: resurrect "make dist".
    - jbj: i18n: update po files (Translation Project).
    - jbj: retrofit (and resurrect) a rpm-5_3 branch w db-4.8.26.

5.2b1 -> 5.3a1
    - jbj: rpmvt: add header virtual table (no arrays/blobs yet).
    - jbj: rpmvt: add rpmtags virtual table.
    - jbj: rpmvt: permit column data types.
    - jbj: rpmvt: resurrect Nixdb against db.sqlite ValidPaths(path).
    - jbj: rpmvt: stub-in a loadable libsqldb.so module.
    - jbj: rpmvt: stub-in a loadable libsql.so module.
    - jbj: rpmvt: stub-in a loadable libsqlio.so module.
    - jbj: rpmsql: rewire rpmvt/rpmvc objects so sqlite/mutexes interoperate.
    - jbj: rpmsql: stub-in virtual table/cursor framework.
    - jbj: tests: update check-sql tests.
    - jbj: build: permit %post -p "<sql> OPTS ARGS" syntax.
    - jbj: rpmsql: use rpmio for input.
    - jbj: rpmsql: use rpm's multiline (i.e. esacped \n) fgets(3) instead.
    - jbj: rpmsql: use rpmio for log/trace as well, manage output fd's the same.
    - jbj: rpmsql: stub-in the other "%post -p <sql>" embedding.
    - jbj: rpmsql: try to read ~/.sqliterc sanely.
    - jbj: rpmsql: use rpmio for output, more refactoring.
    - jbj: rpmsql: another rafactoring pass adding doxygen/splint markup.
    - jbj: rpmsql: fix: always reload db ptr after lazy _rpmsqlOpenDB() calls.
    - jbj: rpmsql: stub-in statistical aggregate functions.
    - jbj: rpmsql: stub-in math.h functions.
    - jbj: rpmsql: stub-in a set of string "slice-n-dice" functions.
    - jbj: rpmsql: set the prompt(s) from basename(argv[0]).
    - jbj: rpmsql: eliminate the shellstatic function, concatenatente instead.
    - jbj: tests: stub-in a "make check-sql" target.
    - jbj: rpmsql: stub-in an "expand" function tied to macro expansion.
    - jbj: rpmsql: resurrect building --without-sqlite.
    - jbj: sqlite: stub-in a framework for creating functions.
    - jbj: sqlite: add a "sqlite3" executable linked against external -lsqlite.
    - jbj: sqlite: INTERACTIVE chrome buffing to add helpful prompt nags.
    - jbj: sqlite: haul out the construction scaffholding trash.
    - jbj: sqlite: return the output as the macro expansion value.
    - jbj: dbsql: incremental step toward the desired rpmsql object API.
    - jbj: rpmsql: add rc checking for sqlite3_foo() calls (a la rpmrepo.c).
    - jbj: dbsql: disembowel tools/dbsql.c and push the offal into rpmsql.c.
    - jbj: dbsql: send spewage to stdout or append to an iob, as needed.
    - jbj: dbsql: move popt tables into -lrpmo for use by rpmsql ctor.
    - jbj: dbsql: refatoring to get an rpmsql object passed on callbacks.
    - jbj: dbsql: use popt for CLI processing.
    - jbj: swipe sql/sqlite/src/shell.c -> tools/dbsql.c, prep for popt surgery.
    - jbj: sqlite: stub-in an sqlite3 embedding.
    - jbj: dbtool: include db_log_verify too.
    - jbj: rpmdb: handle the db_sql -> db_sql_codegen renaming in 5.0.21.
    - jbj: rpmdb: remove db-3.x.y, add db-5.0.21, changes.
    - jbj: nix: stub-in rpmnix{Env,Hash,Instantiate,Store,Worker} noop methods.
    - jbj: nix: refactor xiu-hash/xiu-instantiate/xiu-store popt tables.
    - jbj: nix: use the refactored popt tables in -lrpmio.
    - jbj: nix: stub-in the '%{nix foo ...:}' macro expansion embedding.
    - jbj: nix: handle both "nix-foo" and "nix foo" invocations in rpmnix ctor.
    - jbj: nix: refactor popt tables into -lrpmio.
    - jbj: nix: avoid deadlock, live with a leak, for rpmnix object. todo++.
    - jbj: ispras: stub in macro configuration attaching automated ISPRAS tests.
    - jbj: fix: don't display usage with "rpm -v", it clutters --eval output.
    - jbj: rpmdav: fix: rename url -> u using --without-neon. (John Thomson).
    - jbj: nix: add --xiu:stdenv query format template.
    - jbj: nix: add --nix:meta query format template.
    - proyvind: add rubygem(...) extractors from mandriva.
    - jbj: qf: add --wdj:srpm query format template.
    - jbj: add api-sanity-autotest.pl (GPL->LGPLv2 expected on next release).
    - jbj: _RequestPass: convert assert to returning "" if no password.
    - jbj: mireRegexec: return -1 error instead of segfault when mis-used.
    - jbj: argv: use stricter RPMstr_t/RPMint_t types instead of void *.
    - devzero2000: add an rpm-arg-max-doc.spec toy test spec in tests
    - proyvind: python: make sure that we always use our own rpm build and
macros.
    - proyvind: filetriggers: don't pass filename as argument to scripts,
(all) filenames are passed through stdin already.
    - rpm.org: swipe Tarjan's loopy scissors for hacking.
    - jbj: rpmts: add pluggable check/order/run method vectors.
    - jbj: hkp: add keys.rpm5.org as the default pubkey server.
    - jbj: fix: split NV iff V starts with digit string in lookupPackage().
    - jbj: fix: remove the inheirited %description before adding explicitly.
    - jbj: use a Bloom filter so that build sanity checks scale.
    - jbj: fix rpmInstallSourcePackage() refcnts and memory leaks.
    - jbj: fix: don't segfault on --rebuild. the better fix is to eliminate
rpmInstallSourcePackage() entirely, todo++.
    - jbj: rpmio: teach rpmGetPath() to append explicit pesky trailing '/'.
    - jbj: hrmib: fix: add lazy Mkdir to instantiate in chroot's.
    - jbj: begin to finalize upgrade fingerprint handling.
    - jbj: satsify Requires: / internally & always, SuSE doesn't package "/".
    - jbj: change rpmlib(PayloadIsLzma) version from 4.4.6 -> 4.4.2 a la SuSE.
    - jbj: rpmts: refactor rpmtsRun() into smaller routines a la rpm.org.
    - bero: rpm4compat.h: Adjust to changes in the rest of rpm5
    - jbj: rpmdb: refactor dbiSync as internal per-table, eliminate rpmdbSync.
    - jbj: rpmbf: fix: return -1 error on NULL pointers.
    - jbj: gpsee: finish refactoring gsr -> rpmjs.c.
    - jbj: gpsee: more refactoring gsr -> rpmjs.c.
    - jbj: poptIO: add _rpmio_posix_context_flags before adding arg everywhere.
    - jbj: gpsee: bury the JS interpreter popt table in -lrpmio.
    - jbj: reserve (1<<31) in all embedded interpreters to mark global.
    - jbj: gpsee: remove the --without-gpsee JS interpreter.
    - jbj: gpsee: use gpsee_{create,destroy}Interpreter() throughout RPM.
    - jbj: gpsee: convert the rest of the modules to use GPSEE module loading.
    - jbj: gpsee: convert the first 12 modules to use GPSEE module loading.
    - jbj: gpsee: install ~12 of the simpler and more standalone modules.
    - jbj: gpsee: add GPSEE_MODULE_WRAP to all JS modules.
    - jbj: gpsee: proof-of-concept for rpmbf module loading.
    - jbj: js: fix: external JS still needs to build in internal js subdir.
    - jbj: js: switch to linking external TraceMonkey (from GPSEE).
    - jbj: js: switch to linking external GPSEE (with added panic routine).
    - jbj: js: stub in sufficient AutoFu to build --with-gpsee=internal.
    - jbj: js: prepare to use GPSEE as embedded JS interpreter.
    - jbj: js: switch print method to use JS_FN (Fast Native) w/o a stack frame.
    - jbj: js: allow --with-js=/usr/lib:/usr/include/js w external TraceMonkey.
    - jbj: rpmdb: sync DB_CONFIG.in with what "make check" is using.
    - jbj: js: guesstimate a set of modules that might be portable/functional.
    - jbj: fts: fully initialize FTSENT (for JS use).
    - jbj: js: don't bother doing rpmts check/order/run if no elements.
    - jbj: rpmdb: fix: ensure that rpmdb pool allocations are set to zero.
    - jbj: tests: add a check-sign target w DSA/RSA coverage.
    - jbj: sign: fix: add a killref to plug a header memory leak.
    - jbj: tests: add a check-ACID target w db_tool coverage tests.
    - jbj: rpmdb: fix: reduce the scope of db->db_h caching optimization
(multiple headerLoad's are avoided) so that non-existent secondary
indices can be lazily rebuilt as needed.
    - afb: JS: use libjs 1.7.0 on FreeBSD.
    - jbj: tests: configure an rpmdb using DB_CONFIG with reasonable tuning.
    - jbj: add --with-db-sql.
    - jbj: permit building with db-4.7.25.
    - jbj: rpmfi: add a getter for _fnbf;
    - jbj: xar: rescuscitate --with-xar=external (using xar-1.5.2).
    - jbj: bash: rescuscitate --with-bash=internal.
    - jbj: tests: add genpgp.sh/tpgp test(s) for DSA/RSA clearsigned plaintext.
    - jbj: lua: install executables and library.
    - jbj: perl: change --macros to point to ../macros/macros now.
    - jbj: verify: fix: no parent txn running %verifyscript/%sanitycheck.
    - jbj: rpmfi: fix: memory leak running %pretrans.
    - jbj: rpmdb: fix: add proper rc for RPMTAG_FILEPATHS w no files.
    - jbj: augtool: add error checking.
    - jbj: augeas: fix: aug_match no longer returns matches with argv sentinel.
    - jbj: js: fix: sort out module <-> library targets.
    - jbj: js: fix: make dependencies prevented "make distcheck".
    - jbj: ruby: rescusitate.
    - jbj: i18n: update po files (Translation Project).
    - jbj: i18n: update POTFILES.in.
    - jbj: js: fix: give print() a "" return value instead of JSVAL_VOID.
    - jbj: cli: fix: --eval could access before beginning of array.
    - jbj: ficl: resurrect as --with-ficl=internal. external is wonky w no *.la.
    - jbj: perl: rescuscitate embedding (w /etc/ld.so.conf.d/perl.conf assist).
    - jbj: js: build jscpucfg/jskwgen helpers w/o libtool assistance.
    - jbj: lua: build bin2c helper w/o libtool assistance.
    - jbj: rc: rescusictate.
    - jbj: macros: add a few more rpm-peculier execuctables.
    - jbj: mtree: avoid mtime.tv_usecs differences for now.
    - jbj: pubkeys: fix: all headers, including pubkeys, need PACKAGECOLOR.
    - jbj: pubkeys: fix: rpmdbAdd() needs to be transactionally protected.
    - jbj: cudf: fiddle up some methods for cudftool-equiv in JS.
    - jbj: cudf: move rpmcudp/rpmcudv typedef's and structures into rpmcudf.h.
    - jbj: cudf: add JS methods and some silly unit tests.
    - jbj: cudf: build & install cudftool iff --with-cudf AutoFu.
    - jbj: cudf: move cudftool innards to -lrpmio. silly methods atm, todo++.
    - jbj: cudf: stub-in cudftool with -lcudf AutoFu.
    - jbj: change sonames to 5.3.
    - jbj: rpmbf: estimate optimal {m,k} parameters given {n,e}.
    - jbj: mire: fix: use strncmp, rpmdb string keys are not NUL terminated.
    - rpm.org: port addFingerprints.
    - rpm.org: port a copy of fpLookupSubdir.
    - jbj: rpmdb: Stub-in RPMDBI_REPACKAGES/RPMDBI_REPOSITORY stores.
    - jbj: rpmdb: Eliminate RPMDBI_LABEL. Use RPMTAG_NVRA instead.
    - jbj: rpmmi: Prepare for multiple primary stores w mi_index -> mi_primary.
    - jbj: dbi: Prepare for multiple primary stores w dbi_index -> dbi_primary.
    - jbj: dbi: Eliminate verify_on_close/noload/byteswapped coprolites.
    - jbj: rpmdb: Permit patterns on (little used) secondary indices.
    - jbj: rpmdb: Stub-in an event_notify callback.
    - jbj: rpmdb: Wire up DB_RECOVER progress feedback callback.
    - jbj: rpmlio: Register logio dispatch handler with db_recover.
    - jbj: rpmdb: Switch to inplace rpmtsRebuildDB(), eliminate rpmdbRebuild().
    - jbj: rpmmi: Eliminate rpmmiSetHdrChk(), get ts out of the rpmdb layer.
    - jbj: rpmdb: Eliminate signature/digest checks on rpmdb header blobs.
    - jbj: rpmdb: swab integer secondary keys when retrieving through rpmmi.
    - jbj: js: add rpmmi unit tests for common accesses including patterns.
    - jbj: js: fix: add a newref for headers retrieved using rpmmi.
    - jbj: rpmdb: use network order for all integer secondary keys.
    - jbj: rpmdb: fold rpmdbMireApply into dbiMireKeys.
    - jbj: rpmmi: optimize NVRA range queries using a *RE stem.
    - jbj: rpmdb: inline rpmdbOpenAll for inplace --rebuilddb. sadly
DB->associate(..., DB_CREATE) is not free threaded w -fopenmp. oh well.
    - jbj: rpmts: take checkpoints beroe and after --rebuilddb.
    - jbj: rpmdb: do in-place rebuilddb, opt-in for now.
    - jbj: rpmdb: lazily create non-existent secondary indices.
    - jbj: rpmdb: consolidate primary key swabbing to network order.
    - jbj: rpmdb: re-open dbenv w DB_RUNRECOVER rather than remove/verify.
    - jbj: rpmdb: handle optional .A just like optional -V and -R patterns.
    - jbj: rpmdb: use RPMTAG_NVRA patterns for RPMDBI_LABEL rpmmi iterators.
    - jbj: rpmdb: permit anchored patterns on RPMDBI_LABEL retrieves. strings
are escaped and anchored. Still only RPMTAG_NAME, RPMTAG_NVRA next.
    - jbj: perform checkpoint after every successful transaction.
    - jbj: rpmtxn: expose rpmtxnCheckpoint.
    - rpm.org: Only report disk space/inode issues for affected packages.
    - jbj: rpmdb: mark code to renumber primary keys when needed.
    - jbj: rpmmi: fix: return native endian, but store big endian, primary keys.
    - jbj: DB_CONFIG: create /var/lib/rpm/tmp subdir.
    - jbj: DB_CONFIG: move log files to /var/liog/rpm/log subdir.
    - jbj: DB_CONFIG: configure set_lk_max_{locks,lockers,objects} to 4000.
    - jbj: bspatch: use bzip2 through -lrpmio.
    - jbj: rpmbz: expose sufficient methods to uncouple bspatch from bzip2.
    - bero: Fix configure script for autoconf 2.65 without breaking 2.63
    - jbj: bsdiff: use bzip2 through -lrpmio.
    - jbj: rpmbz: expose sufficient methods to uncouple bsdiff from bzip2.
    - jbj: add bsdiff/bspatch from bsdiff-4.3.
    - jbj: rpmlio: add "opt-in" enablers for syscall/scriptlet logging.
    - jbj: rpmlio: add --rpmliodebug spewage valve.
    - jbj: rpmlio: add syscall/scriplet logging to -lrpmdb API for rework.
    - jbj: revert the change for autoconf-2.65, breaks w autoconf-2.63.
    - devzero2000: complete changing db2offset data type to uint32_t everywhere
    - bero: Fix generation of configure script with autoconf 2.65
    - jbj: rpmdb: don't recurse within dbiFindByLabel.
    - jbj: rpmdb: use PCRE patterns on Name index for package queries.
    - devzero2000: don't permit using b0rken configure option
    - jbj: rpmdb: fix: ensure Seqno h# counter is initialized to 1 when created.
    - proyvind: add %distepoch back to provideversion, leave legacy
compatibility for adopters to care about.
    - devzero2000: fix hardwired docdir in rpmfc
    - proyvind: fix assert fail with Mandriva filetriggers in case of
installing src.rpm with no triggers queue. (from David Smid/Unity Linux)
    - jbj: rpmmi: rework iterator instance filtering as a Bloom filter.
    - jbj: rpmdb: eliminate signature/digest checks on rpmdb Header blobs.
    - jbj: rpmbf: permit non-string Bloom filters, s/char/void/ in prototypes.
    - jbj: rpmdb: eliminate rpmdbFlags hysteria.
    - jbj: rpmdb: use Seqno to assign Packages primary keys.
    - jbj: rpmdb: save Packages primary key in network order always.
    - jbj: rpmdb: eliminate --verifydb (except for rpmtsVerifyDB error stub).
    - jbj: rpmdb: eliminate --initdb (except for rpmtsInitDB error stub).
    - jbj: rpmdb: assign the primary key to installed headers persistently.
    - jbj: rpmdb: use a Bloom filter not a bitmap to determine if header
signature/digest was checked. Header instances no longer need to
be small integers.
    - jbj: rpmdb: begin phasing out RPMDBI_LABEL with patterns on keys.
    - jbj: rpmdb: fix: resurrect queries with duplicate packages. happy yum ...
    - jbj: rpmdb: remap rpmdbCount -> dbiCount, eliminate dbiIndexSet usage.
    - jbj: rpmdb: fix: rpmmiCount() -> dbiCCount() with early dbcOpen().
    - jbj: rpmmi: eliminate mi->mi_filenum & rpmmiFilenum(), join keysi
are history.
    - jbj: rpmmi: add mi->mi_count preparing to bulldoze struct _dbiIndexItem.
    - jbj: rpmdb: eliminate --initdb and --verifydb, lazy creation and db_verify
are preferred.
    - jbj: rpmdb: eliminate dead code associated with database indices.
    - jbj: rpmdb: add assertions before always using secondary indices.
    - jbj: rpmdb: change from a CDB to ACID database behahvior.
    - jbj: rpmdb: eliminate the custom Basenames retrieval code.
    - jbj: rpmdb: eliminate the Basenames index.
    - jbj: rpmdb: abandon RPMTAG_BASENAMES lookup, use RPMTAG_FILEPATHS instead.
    - jbj: rpmts: stub-in a grandparent transaction.
    - jbj: poptDB: wire up --rpmtxndebug, collect other rpmdb debugging options.
    - jbj: rpmte: stub-in a parent transaction.
    - jbj: rpmtxn: add a parent transaction argument.
    - jbj: rpmtxn: add abstract typedef and drill throughout the API.
    - jbj: rpmtxn: expose the existing rpmtxn API for refactoring work.
    - jbj/glen: strip possible chroot prefix from db opened paths in
Open(2) wrapper. LP#347749
    - jbj: dbi: tear out the rpmdb->db_rebuilding construction scaffholding.
DB->associate() cascaded callbacks to generate bulk secondary index key
stores are now functional with --rebuilddb.
    - jbj: add uniqification filtering for argv/uint32_t/uint64_t secondary keys.
DB_DUPSORT can likely be free;y applied as a schema qualifier.
    - jbj: dbi: add currently existing secondary key filtering and transforms
through the DB->associate() callback.
    - jbj: dbi: Backout the PRCO EVR/F tables, the PRCO assertion tables won't need no
steenkin' joins.
    - jbj: dbi: add tables for PRCO dependency assertions based on YAML spewage.
rude & crude but "works".
    - jbj: rpmtag: make sure that he->tag contains the assigned tag numbers.
    - jbj: rpmtag: assign numbers to the YAML PRCO tags to index assertions.
    - jbj: rpmbf: pass string length where needed.
    - jbj: dbi: commit to DB->associate() secondary indices as default
(w exceptions, todo++).
    - jbj: dbi: commit to DB_DUP/DB_DUPSORT as default (w exceptions, todo++).
    - jbj: dbi: commit to dbi->dbi_jlen == 4 as default (w exceptions, todo++).
    - jbj: dbi: commit to DB_BTREE as default (w exceptions, todo++).
    - jbj: dbi: permit tag tables to be secondary indices with dupes.
    - devzero2000: add security CFLAGS for GCC if supported
    - jbj: dbi: configure new indices with 4b join keys and duplicates.
    - jbj: dbi: generate additional indices.
    - jbj: dbi: add db->associate_foreign.
    - devzero2000: add rpm-genenerate-loop-test-harness.sh
    - devzero2000: add INSTALL.developer
    - jbj: order: fix: check current package for files/dirs before other packages.
    - jbj: order: fix: avoid self-looping for man-pages (and pkgs w no requires)
    - jbj: rpmdb: use DB_CONFIG.
    - jbj: rpmdb: install DB_CONFIG if not already present.
    - jbj: rpmdb: revert the DBENV->set_data_dir() attempt when re-opening. Not
the right fix, and spews an error on 4.8.24 with lazy opens in chroot.
    - jbj: rpmdb: stub-in DB_CONFIG.in (no parameters and uninstalled for now).
    - jbj: upgrade to db-4.8.24.
    - jbj: spook: install spooktool next to semodule.
    - jbj: spook: embed the "spook" DSL just like augeas (nee "augtool").
    - jbj: augeas: change the DSL embedding syntax from "augtool" to "augeas".
    - jbj: haul out some trash.
    - jbj: augtool: morph the rpmioC command table to popt.
    - jbj: spooktool: morph the rpmioC command table to popt.
    - jbj: add spooktool (i.e. semodule with an augtool-like interpreter).
    - jbj: rpmsm: ensure pool memory is initialized correctly.
    - jbj: rpmaug: use the rpmio parser.
    - jbj: rpmio: expose the toy parser and command table used by augtool.
    - jbj: retrofit getline for augtool to build more portably.
    - jbj: retrofit asprintf for augtool to build more portably.
    - jbj: AutoFu for -lreadline to be included in spooktool(8).
    - jbj: rpmsm: stub-in a state machine for handling policy operations lazily.
    - jbj: rpmsm: add RPMSM_FLAGS_CONNECT for Tresys dain bramaged patches.
    - jbj: rpmsm: use an iob to return spewage.
    - jbj: rpmsm: permit *RE's with -l,--list command. hmmm, semodule todo++.
    - jbj: rpmsm: return "N-V" as moudular policy identifier string.
    - jbj: rpmsm: drill a string result pointer into semodule methods.
    - jbj: add semodule helper.
    - jbj: rpmsm: add rpmsmRun() method for semodule.
    - jbj: rpmsp: open and load a policydb from a file.
    - jbj: js: stub-in Sm/Sp classes for rpmsm/rpmsp objects.
    - jbj: stub-in a wrapper for -lsepol methods.
    - jbj: use RPM_CHECK_LIB() to detect -lsepol.
    - jbj: rpmsm: add creator/destructor methods to populate the wrapper.
    - jbj: stub-in a wrapper for -lsemanage methods.
    - jbj: use RPM_CHECK_LIB() to detect -lsemanage.
    - jbj: use RPM_CHECK_LIB() to detect -lselinux.
    - jbj: retrofit TIMFOO_TO_TIMEBAR macros for the truly deprived.
    - jbj: retrofit *BSD st_[acm]timespec names if possible.
    - jbj: use HAVE_STRUCT_STAT_ST_BIRTHTIME, retrofit st_ctime for the deprived.
    - jbj: use the AutoFu.
    - jbj: system: add AutoFu for S_ISTXT <-> S_ISVTX *shrug*.
    - jbj: use the new rpmio wrappers.
    - jbj: rpmio: add Lchmod/Chflags/Lchflags/Fchflags wrappers.
    - jbj: permit HMAC's to be substituted for digests in *.rpm.
    - jbj: reserve a bit to mark file HMAC's.
    - jbj: rpmdigest: add --fips140 to verify Fedorable HMAC's.
    - jbj: rpmio: add fdInitHmac()/rpmHmacInit() methods for HMAC generation.
    - jbj: rpmio: stub-in the data elements needed for keyed hashes.
    - jbj: rpmio: fix: unbreak --alldigests.
    - jbj: rpmio: factor digest insturmentation out of loops for --stats.
    - jbj: attach buildids to file provides in header metadata.
    - jbj: fix: ensure new ordering queue additions follow older using a
generation counter.
    - jbj: macros: split rpmbuild macros into /usr/lib/rpm/macros.rpmbuild.
    - jbj: macros: automagic dependency extractors are now per-interpreter.
    - jbj: macros: refactor perl/php/python peculier config into separate file.
    - jbj: macros: expand %{load:...} immediiately/recursively when loading.
    - jbj: macros: gather "default" config into macros/ dir for refactoring.
    - proyvind: rpmevr: make rpmEVRparse() work with missing values.
    - proyvind: rpm46compat: Implement RPM 4.6 API wrapper providing ~seamless
API compatibility for the function wrappers provided. :)
    - proyvind: python: start on implementing proper regression tests.
    - proyvind: js: fix internal build on Linux.
    - proyvind: filetriggers: fix missing file suffix for scripts. (from unity linux).
    - proyvind: rpm4compat: add wrappers for renamed rpmdb*->rpmmi* functions.
    - proyvind: python: add te.D() to return element distepoch.
    - jbj: blake: validate 224/256 reference blake against 8bit 0x00.
    - proyvind: python: handle None values in labelCompare() again.
    - proyvind: python: handle DISTEPOCH in labelCompare().
    - jbj: rpmdigest: add ECHO 224/256/384/512.
    - jbj: rpmdigest: add FUGUE 224/256/384/512.
    - jbj: rpmdigest: add SHAVITE3 224/256/384/512.
    - jbj: rpmdigest: add LANE 224/256/384/512.
    - jbj: rpmdigest: add HAMSI 224/256/384/512.
    - jbj: rpmdigest: add GROESTL 224/256/384/512.
    - jbj: rpmdigest: add JH 224/256/384/512.
    - jbj: rpmdigest: add CHI 224/256/384/512.
    - jbj: rpmdigest: add LUFFA 224/256/384/512.
    - jbj: rpmdigest: add ARIRANG 224/256/384/512 (all test vectors fail, todo++).
    - jbj: rpmdigest: add SIMD 224/256/384/512 (ShortMsgKAT_384.txt is nonsense).
    - jbj: rpmdigest: add TIB3 224/256/384/512.
    - jbj: rpmdigest: add Blake 224/256/384/512 (224/256 fail test vectors, todo++).
    - jbj: rpmdigest: add Shabal 224/256/384/512.
    - jbj: rpmdigest: add BlueMidnightWish 224/256/384/512.
    - jbj: keccak: optimizations for 32/64 bit merged.
    - jbj: md6: set rounds/parallel passes parameters from ctx->flags.
    - jbj: cubehash: set rounds/blockbytes parameters from ctx->flags.
    - jbj: cubehash: optimize with -msse2.
    - jbj: rpmdigest: use md6sum, not NIST, for MD6 test vectors.
    - jbj: rpmdigest: re-assign digest algo numbers, handle 224/256/384/512/1024
parameters within the digest algo name.
    - jbj: rpmdigest: add md6 224/256/384/512 (tests failing atm, todo++).
    - jbj: rpmdigest: add cubehash 224/256/384/512.
    - jbj: rpmdigest: add keccak 224/256/384/512.
    - jbj: rpmdigest: add edon-r 224/256/384/512.
    - rpm.org: don't segfault with empty --qf '[]lala' iterator.
    - jbj: rpmdigest: add skein 256/512/1024.
    - jbj: rpmio: eliminate md4, use beecrypt-4.2.0 instead.
    - jbj: rpmsx: wrap getfilecon/lgetfilecon.
    - jbj: rpmsx: add persistent/lazy matchpathcon_{init,free}.
    - jbj: rpmsx: refactor the existing SELinux implementation.
    - jbj: python: fix: missing changelog in repo-md can segfault (David Smid).
    - jbj: rpmdav: oops, WebDAV is different code path, revert some changes.
    - jbj: rpmdav: compute st_nlink correctly for plain HTTP dirs.
    - jbj: rpmavx: fix: alloc an extra byte for pesky trailing '/'.
    - jbj: rpmdav: fix: refill/restart if forward parse runs out of data.
    - jbj: rpmhtml: fix: ... and don't forget to reinitialize all fields.
    - jbj: yarn: convert rpmhtml to usage mutex with refcounts.
    - rse: fix building under RPM_VENDOR_OPENPKG/switch-from-susr-to-musr-on-srpm-install
    - jbj: rpmio: fix: compute url length in rpmGenPath() w/o using pointers.
    - jbj: yarn: convert rpmavx to usage mutex with refcounts.
    - jbj: rename avContext to rpmavx.
    - jbj: rpmio: functional dir stream positioning.
    - jbj: rpmpgp: elimate msg argument, use __FUNCTION__ everywhere instead.
    - jbj: rpmio: eliminate sha224 and ripemd*, use beecrypt-4.2.0 instead.
    - jbj: rpmio: refactor dir stream handling from HTTP/DAV transport.
    - jbj: rpmio: add DIR stream positioning wrappers.
    - jbj: rpmio: add rpmdir.[ch] to refactor DIR handling routines.
    - jbj: rpmbf: add union/intersect of filters.
    - jbj: rpmfc: reduce the amount of debugging noise with lots of files.
    - jbj: rpmbf: use lookup3.c hash pairs with k linear combinations.
    - jbj: rpmbf: stub-in a Bloom filter.
    - jbj: selinux: fix: disabler bit toggle sense was inverted.
    - jbj: js: add getters/setters to handle defvar() variables.
    - jbj: js: add methods and unit tests for the Aug class.
    - jbj: augtool: finish proof-of-concept embedding. stdout capture todo++.
    - devzero2000: macros.in: add _datarootdir e _lispdir for GNU standard
    - jbj: augtool: capture stdout in aut->iob, return through rpmaugRun().
    - jbj: debugedit: handle DWARF-3 changes (#505774).
    - jbj: augtool: use rpmaug globals where useful.
    - jbj: rpmaug: add rpmaugPoptTable and global parameters.
    - jbj: rpmaug: add global augtool interpreter.
    - jbj: argv: add a separator character argument to argvJoin.
    - jbj: augeas: add "no brainer" rpmaug wrappings onto augeas methods.
    - jbj: rpmbuild: fix: ensure dependency EVR strings have only 0 or 1 dashes.
    - jbj: augeas: add aug_init() and aug_close() calls to the rpmaug wrapper.
    - jbj: js: stub-in a Aug class.
    - jbj: augeas: stub-in rpmaug object with ctors/dtors.
    - jbj: augeas: add AutoFu to find augeas libraries.
    - jbj: js: stub-in requires/loadModule global methods.
    - jbj: js: save the rpmjs interpreter pointer in rt private data.
    - jbj: add the Fedorable tag(s) for file digests.
    - jbj: reserve ~1K in  RPMSIGTAG_PADDING for now.
    - jbj: squirrel: capture stdout in an iob.
    - jbj: squirrel: add --with-squirrel for embedding squirrel.
    - jbj: rpmgi: remove duplicated code.
    - jbj: header: add getter/setter for header parent.
    - jbj: add RPMSIGTAG_PADDING to force metadata header alignment in file.
    - jbj: save %pre/%post scriptlet's exit code and duration.
    - jbj: add header to rpmdb after, not before, %post is run.
    - jbj: replace freeSpec/freePackage with defines, eliminate symbols in ABI.
    - rse: upgrade build environment to GNU automake 1.11 and GNU m4 1.4.13
    - jbj: performance tweaks.
    - jbj: change default dep whiteout to ensure filessystem before setup.
    - jbj: prepare to save install scriptlet states/metrics.
    - jbj: build: add build scriptlet status/duration to SRPM headers.
    - jbj: build: use rpmsqExecve to run build scriptlets.
    - jbj: build: tear down _pkgPool/_specPool before exiting.
    - jbj: rpmsw: add an output FILE * argument.
    - jbj: build: put a stopwatch on build scriptlets.
    - jbj: rpmio: wrap posix_fallocate(3) / fallocate(2) (for rpmdb creation).
    - jbj: eliminate useless rebuilddb legacy "sanity check" hysteria.
    - jbj: display rebuilddb progress using ps(1) and top(1).
    - jbj: mark rebuilddb legacy hysteria for destruction.
    - jbj: add RPMTAG_SHA1HEADER to rpmdb pubkeys.
    - jbj: remove first (of 3) rpm-5.2.0 release process be-bugging flaws.
    - jbj: fix: resuscitate --nodigest/--nosignature w --rebuilddb.
    - jbj: pick-up some orphan check-ins.
    - jbj: header: remove (unused) headerUsageCount.
    - jbj: header: fix: re-initialize headers from pool more carefully.
    - jbj: rpmps: fix: remove the hack-o-round, handle rpmps like other pools.
    - jbj: yarn: convert dbiIndex to usage mutex with refcounts.
    - jbj: yarn: convert Package to usage mutex with refcounts.
    - jbj: yarn: convert Spec to usage mutex with refcounts.
    - jbj: yarn: convert DIGEST_CTX to usage mutex with refcounts.
    - jbj: eliminate (unused) DB_DBT_MALLOC flag while loading rpmdb headers.
    - jbj: bump sonames to libfoo-5.2.
    - jbj: rpmmi: rename the other methods for the match iterator object.
    - proyvind: make it possible to set macro files to load predefines from by
defining PREMACROFILES at build time.
    - jbj: rpmmi: rename the typedef and rpmmi{Init,Next,Free} methods.
    - jbj: rpmmi: split out a pool destructor (prior to using).
    - jbj: mire: handle items from _mirePool like all other pools.
    - bero: adjust find-debuginfo.sh to new location of debugedit
    - jbj: rpmds: dereference/flush global items earlier, before pool teardown.
    - jbj: rpmds: use _rpmdsPool, not heap, for rpmdsThis/rpmdsSingle as well.
    - jbj: rpmds: fix: rpmdsThis/rpmdsSingle assume ds->i = 0
(i.e. actively iterating).
    - jbj: inline rpmlog() to avoid arglist overhead when -O2 is used.
    - jbj: add --with-valgrind homeopathy to measure existing RPM
insturmentation effects on performance.
    - jbj: don't reset to -O0 with --enable-build-debug and GCC.
    - proyvind: rpmsyck: clean up, use rpmioPool and add destructor.
    - proyvind: rpmhash: add htGetKeys() for retrieving the keys of the hash table.
    - jbj: bash: wire-up internal bash build with RPM AutoFu.
    - jbj: rc: toss the n00b embedding into the -lrpmmisc kitchen sink.
    - jbj: grep: fix: don't segfault if no usage mutex or pool attached.
    - proyvind: remove %distepoch from %provideversion as it will break
compatibility with rpm <= 4.5.
    - proyvind: rpm4compat: add a wrapper function for headerFormat().
    - rse: align semantics of Lua function rpm.hostname() with the C API function buildHost()

=============================================================================

5.2a4 -> 5.2b1:
    [...]
    - proyvind: cpuinfo: move out cpuinfo feature dependencies to YAML.
    - proyvind: rpmsyck: first shot at YAML parser in pure C.
    - proyvind: get rid of parallel %___NVRDA macro, just merge it with %___NVRA in stead.
    - jbj: add RPMSENSE_RPMLIB to new tracking dependencies. at least its
consistent even if useless.
    - jbj: fix: rpmdsMerge() shouldn't leave a result that seems to have
active iteration in progress. There are side effects from macro
expanding {N,EVR} that aren't correct.
    - proyvind: cpuinfo: change name of '%_prefer_buildarchs' macro to '%_prefer_target_cpu'.
    - proyvind: cpuinfo: change delimiter for %_prefer_buildarchs from ':' to ' '.
    - jbj: js: add AutoFu to build --with-js=internal.
    - jbj: ruby: fix: global interpreter with contained object refcnts needs
early cleanup in rpmcliFini(), not in rpmioClean().
    - proyvind: cpuinfo: allow to enable from configure again since it's usable
now. (although still room for improvements...)
    - jbj: ruby: stub-in the minimal necessary AutoFu to attempt ruby bindings.
    - jbj: add AutoFu to detect fallocate(2) and posix_fallocate(3).
    - jbj: js: add rpmMCExpand() for per-context macro expansion.
    - jbj: yarn: convert rpmdbMatchIterator to usage mutex with refcounts.
    - jbj: js: fix: global interpreter with contained object refcnts needs
early cleanup in rpmcliFini(), not in rpmioClean().
    - jbj: rpmio: re-enable the memory leak warning with included explanation.
    - jbj: js: stub-in a rpmts class.
    - jbj: js: start js module for RPM objects.
    - jbj: js: wire up the File class.
    - jbj: js: replace NSPR with rpmio in the File class.
    - jbj: js: stub in the File class before ripping NSPR (SpiderMonkey).
    - jbj: js: add toy uuid.{generate,describe} object and methods.
    - jbj: js: add version/options/load methods (SpiderMonkey).
    - jbj: js: add an "environment" object (SpiderMonkey).
    - jbj: js: add a "arguments" array (SpiderMonkey).
    - jbj: js: add a print method (swiped from SpiderMonkey js shell).
    - rse: RPM_VENDOR_OPENPKG: stick with local RPM sanity checking for reasonable warning messages
    - jbj: js: simplify the embedding to the JSAPI examples, not the js shell.
    - jbj: ficl: capture stdout from ficl vm.
    - jbj: ficl: wire-up %post -p <ficl>.
    - jbj: ficl: wire-up %{ficl:...}. capturing stdout todo++ ...
    - jbj: ficl: add a FICL interpreter wrapper.
    - jbj: js: wire-up %post -p <js>. much more todo++.
    - jbj: js: wire-up %{js:...}. much more todo++.
    - jbj: js: stub-in a javascript interpreter wrapper.
    - jbj: tcl: load and use $argv and $argc.
    - jbj: tcl: fix: don't append multiple newlines.
    - jbj: perl: load and use @ARGV. Note that shell $1 ends up in perl $ARGV[0]
    - jbj: ruby: load and use ARGV. Note that shell $1 ends up in ruby ARGV[0].
    - jbj: python: load and use sys.argv.
    - jbj: ruby: finish converting to WITH_RUBYEMBED.
    - jbj: use poptParseArgvString, not argvSplit, for shell arg escaping.
    - jbj: rework the embedded interpreter API's preparing to handle args.
    - jbj: permit args in PHP like %{python a b c:...} syntax.
    - jbj: map NULL interp to lazily instantiated globally persistent instance.
    - rse: RPM_CHECK_LIB: correctly handle library names like "libpython2.6" and "libdb-4.7"
    - rse: place XZ code under WITH_XZ (RPM_CHECK_LIB based) instead of HAVE_LZMA_H (standard Autoconf header check)
    - rse: place BZip2 code under WITH_BZIP2 (RPM_CHECK_LIB based) instead of HAVE_BZLIB_H (standard Autoconf header check)
    - rse: RPM_CHECK_LIB: support --with-<name>=system to enable a library but control detection via flags only
    - rse: let Lua's lregex_lposix to build against PCRE POSIX out of the box
    - jbj: inject $1/$2 into embedded tcl/perl/python/ruby interpreter contexts.
    - jbj: perl: add use RPM; so that perl bindings are available.

5.2a3 -> 5.2a4:
    - rse: fix building without BZip2
    - rse: fix release tarball rolling after recent addition of local copies of XZ, PCRE and Syck
    - rse: forward port all build infrastructure fixes from RPM 5.1
    - rse: eliminate compile-time warnings introduced with recent embedded language support
    - afb: rename --with-ruby to --with-rubyembed, to match Perl/Python.
    - jbj: perl: attach stdout to macro expansion buffer with IO::String.
    - rse: use new POPT 1.15 from devtool environment
    - jbj: tcl: attach rpmtclIO to macro expansion buffer with Tcl_StackChannel.
    - jbj: ruby: attach $stdout to macro expansion buffer using StringIO.
    - jbj: python: attach sys.stdout to macro expansion buffer using cStringIO.
    - jbj: tpython: permit interactive shells.
    - jbj: fix: permit rpmiobSlurp() to be used on stdin.
    - jbj: lua: revert -E /path/to/file.lua wrapping.
    - jbj: popt: remove retrofits for popt < 1.14. use popt internal if needed.
    - jbj: ruby: wire-up %post -p <ruby>. arg1/arg2, persistent interp, todo++.
    - jbj: ruby: wire-up %{ruby:...}. the string result is bogus, todo++.
    - jbj: ruby: add --with-ruby for embedding ruby.
    - jbj: yarn: convert rpmluav to usage mutex with refcounts
    - jbj: yarn: convert rpmlua to usage mutex with refcounts
    - jbj: python: wire-up %post -p <python>. arg1/arg2, persistent interp, todo++.
    - jbj: python: wire-up %{python:...}. the string result is bogus, todo++.
    - jbj: python: add --with-pythonembed for embedding python.
    - jbj: perl: wire-up %post -p <perl>. arg1/arg2, persistent interp, todo++.
    - jbj: perl: wire-up %{perl:...} with a string result.
    - jbj: perl: add --with-perlembed for embedding perl.
    - jbj: tcl: wire-up %post -p <tcl>. arg1/arg2, persistent interp, todo++.
    - jbj: tcl: wire-up %{tcl:...} with a string result.
    - jbj: tcl: add --with-tcl for embedding tcl.
    - jbj: mire: teardown for platpat on exit needs to be done in order.
    - jbj: rpmwget: move to tools.
    - jbj: wire-up RPMTAG_FILEDIGESTALGO. wotta waste to pretend "compatible" ...
    - jbj: yaml: add build scriptlet tags for --yaml/--xml display.
    - jbj: yaml: permit --without-syck, add some mac os x AutoFu/gcc fiddle-ups.
    - jbj: yaml: add lsyck lua module to parse YAML.
    - jbj: yaml: mix syck into the misc melange ...
    - jbj: misc: get rid of splitFoo prototypes, bury the last use in rpmfi.c.
    - jbj: PCRE in -lrpmmisc, LUA in -lrpmio linking -lrpmmisc, instead.
    - jbj: fix: --noscripts/--nofdigests/--nocontexts need to use popt callback.
    - jbj: rpmiob: fix: return iob to _rpmiobPool instead.
    - jbj: yarn: convert mire to usage mutex with refcounts
(unifying array <-> element mutexes by copying use/pool
pointers throughout the array).
    - jbj: rpmku: rework rpmiob handling to avoid extra malloc's.
    - jbj: rpmiob: fix: add a newref in rpmiobNew.
    - jbj: yarn: convert rpmiob to usage mutex with refcounts.
    - rse: add RPM Lua function rpm.hostname()
    - jbj: fix: handle ./../foo paths correctly (#491388).
    - jbj: rpmlib: rescusitate splint annotations.
    - jbj: rpmdb: rescusitate splint annotations.
    - jbj: rpmtsOrder: fully enable parentdir deps when ordering.
    - jbj: EVRtuple: fix: dig out the one time mire allocation leak.
    - jbj: use rpmioFreePoolItem for rpmds, eliminate rpmdsFree.
    - jbj: finish up using rpmioFreePoolItem() for rpmts and Header objects.
    - devzero2000: continuing for refcount rewrite : add define of fooFree to rpmioFreePoolItem
    - devzero2000: begin change programming style for refcount : rpmtsFree and headerFree
    - jbj: rpmio: rescusitate splint annotations.
    - jbj: getdate: ignore internalState changes.
    - jbj: poptIO: add --htdebug.
    - jbj: yarn: convert rpmfc to usage mutex with refcounts.
    - jbj: yarn: convert hashTable to usage mutex with refcounts.
    - jbj: yarn: convert rpmmg to usage mutex with refcounts.
    - jbj: yarn: convert rpmwf refcount to usage mutex.
    - jbj: rpmdb: don't bother with the silly structure assignment initialize.
    - jbj: yarn: wire up rpmdsFini, mark rpmdsFree for destruction.
    - jbj: yarn: wire up rpmtsFini, mark rpmtsFree for destruction.
    - jbj: yarn: for now, don't assert fail, just print FIXME.
    - jbj: yarn: wire up headerScrub, eliminate header{Link,Unlink}.
    - devzero2000: fix: add autofu AC_CPP_FUNC portability macro in the acinclude.m4
    - devzero2000: add autofu AC_CPP_FUNC portability macro
    - jbj: yarn: wire up rpmteFini, eliminate rpmteFree.
    - jbj: yarn: wire up rpmsxFini, eliminate rpmsxFree.
    - jbj: yarn: wire up rpmfiFini, eliminate rpmfiFree.
    - jbj: yarn: wire up rpmgiFini, eliminate rpmgiFree.
    - jbj: rpmtsi: use __FUNCTION__ rather than adding a 2nd arg everywhere.
    - jbj: pgpDig: fix: rpmioFreePoolItem() can return non-NULL, clear ts->dig.
    - jbj: rpmio: add --pgpdebug for pgpDig debugging.
    - jbj: yarn: wire up rpmtsiFini, eliminate rpmtsiFree.
    - jbj: yarn: wire up rpmpsmFini, eliminate rpmpsmFree.
    - jbj: yarn: wire up rpmxarFini, eliminate rpmxarFree.
    - jbj: yarn: wire up pgpDigFini, eliminate pgpDigFree.
    - jbj: yarn: wire up urlFini, eliminate XurlFree.
    - jbj: yarn: wire up fdFini, eliminate XfdFree.
    - jbj: url: fix: u->use clobbers the lock from the pool.
    - jbj: rpmds: fix: rpmdsDup needs to go through rpmdsGetPool() too.
    - jbj: yarn: move rpmioItem to <rpmiotypes.h>
    - jbj: yarn: use void * use, not yarnLock use, to hide the details.
    - jbj: yarn: wrap use/pool into a per-object "struct rpmioItem_s _item".
    - jbj: yarn: stub in (*init)() and (*fini)() pool item methods.
    - jbj: yarn: add a (*dbg)() formatter to make fdLink() generic.
    - jbj: yarn: stub-in rpmmi pool handling under NOTYET.
    - jbj: QNX: avoid conflicting db defines for __mutex_lock/__mutex_unlock.
    - jbj: yarn: convert rpmdb refcount to usage mutex.
    - jbj: yarn: convert psm refcount to usage mutex.
    - jbj: yarn: convert rpmxar refcount to usage mutex.
    - jbj: yarn: convert pgpDig refcount to usage mutex (avoid recurse deadlock).
    - jbj: yarn: convert rpmts refcount to usage mutex (avoid recurse deadlock).
    - jbj: rpmps: fix: avoid reusing items from pool for now.
    - proyvind: libcpuinfo may now return 64bit feature only if PER_LINUX_32BIT
personality isn't set, so don't check un.machine anymore.
    - jbj: yarn: convert rpmtsi refcount to usage mutex.
    - jbj: yarn: convert rpmsx refcount to usage mutex.
    - jbj: yarn: convert rpmps refcount to usage mutex.
    - jbj: rpmds: fix: avoid pooling rpmdsThis/rpmdsSingle for now ...
    - jbj: headerReload: fix: don't free the header blob.
    - jbj: yarn: convert rpmte to a usage mutex (no refcounts).
    - jbj: yarn: convert rpmgi refcount to usage mutex.
    - jbj: yarn: use the pool changes where possible.
    - jbj: yarn: add generic Link/Unlink refcount diddlers.
    - jbj: yarn: add debugging, reuse counter, and zlog to rpmioPool.
    - jbj: yarn: trick up a __FILE__:__LINE__ from caller when failing too.
    - jbj: yarn: use EINVAL, not -1, for --without-pthreads portability.
    - jbj: yarn: glibc pthreads (at least) returns errno's, strrerror decodes.
    - jbj: yarn: fix: assert fail instead of exit on error.
    - jbj: yarn: use the pool allocator.
    - jbj: yarn: add a pool allocator.
    - devzero2000: add mkdtemp portability function to -lrpmmisc
    - proyvind: do lazy mkdir of %_builddir, %_rpmdir & %_srcrpmdir when doing
--install for src.rpms as well.
    - jbj: yarn: convert Header refcount to usage mutex.
    - jbj: zlog: rework trace log with a refcount mutex instead.
    - proyvind: do lazy mkdir of %_topdir, %_builddir, %_rpmdir & %_srcrpmdir
when doing '--rebuild' so that it should mostly work easily for user.
    - proyvind: make it possible to set preferred build architectures when using
libcpuinfo with ie. '%_prefer_buildarchs x86_64:i686:i586'.
    - proyvind: get the list of compatible archs printed with '--showrc' from
mire platform patterns.
    - proyvind: use cpuinfo() probe for detecting platform rather than
libcpuinfo directly.
    - jbj: delete ancient header+payload RSA signatures too using GPG (#488953).
    - jbj: rpmio: install rpmzlog.h and yarn.h, carry with rpmio.h.
    - jbj: rpmio: don't include glob.h.
    - devzero2000: fix --orphandirs port alias ; add --danglinglink popt alias
    - proyvind: add support for cpuinfo() probe through libcpuinfo.
    - proyvind: perl: make sure to link against all required libraries to fix
build with --no-undefined.
    - proyvind: only provide PayLoadIsLzma and PayLoadIsXz features when enabled.
    - proyvind: xzdio: kill backwards compatibility with ancient lzma utils.
    - proyvind: fix order of archs added throuh libcpuinfo so that
rpmPlatformScore() will return correct value.

5.2a2 -> 5.2a3:
    - rse: use Pthreads under --with-pthreads controlled WITH_PTHREADS and not <pthreads.h> existance-derived HAVE_PTHREADS_H
    - jbj: update po files (Translation Project).
    - jbj: yarn: lobotomize yarn.c conditioned on HAVE_PTHREAD_H.
    - jbj: rpmz: toss the pbzip2 carcass into the compression cassoulet ...
    - rse: upgrade devtool environment to: GNU m4 1.4.12, Perl 5.10.0, OpenSSL 0.9.8j, NEON 0.28.4, SQLite 3.6.11, File 5.00
    - rse: finally switch devtool from LZMA to XZ, too.
    - rse: remove ugly --with-lzma to --with-xz hack (really not needed)
    - rse: cleanup a few recently introduced compile-time warnings
    - jbj: rpmz: add attribution and debugging to rpmzq.
    - jbj: rpmz: carve out job queue and buffer pool management from pigz.
    - jbj: rpmz: carve out an opaque trace logging subsystem from pigz.
    - glen: markLinkedFailed if rpm file reopen failed during transaction to avoid losing old pkg info from db
    - jbj: bzdio: finish abstraction between FD_t <-> rpmbz methods.
    - jbj: bzdio: stub-in an abstraction between FD_t <-> rpmbz methods.
    - jbj: bzdio: hmm, revert the pop/replace patch, there's more todo++ ...
    - jbj: bzdio: pop/replace ufdio with bzdio (including a fdno).
    - jbj: bzdio: take out the rubbish.
    - jbj: bzdio: stage the multi-block BZIP2 payload code for debugging.
    - jbj: bzdio: populate rpmbz with all but bz->fp, rearrange code to taste.
    - jbj: bzdio: use the rpmbz container to carry around BZFILE *bzfile.
    - jbj: bzdio: add annotation for bzip2, add (unused) rpmbz container.
    - jbj: rpmz: add a modified version of rpmpigz (before merging with rpmz).
    - jbj: rpmz: add Fchown/Fchmod, attempt to preserve owner/perms/timestamp.
    - jbj: rpmz: swipe xz AutoFu to detect timestamps.
    - jbj: rpmz: swipe xz AutoFu to detect physmem/ncpus.
    - jbj: yarn: add to rpmio.
    - jbj: rpmz: stub in argv[0] processing to set operation mode.
    - jbj: rpmz: stub in RPMZ envvar option processing.
    - jbj: fix: eliminate a argvSplit() memory leak.
    - jbj: rpmz: gather args from multiple manifests (ala rpmwget).
    - jbj: rpmz: stub in --files manifest handling (ignore --files0 for now).
    - jbj: rpmz: stub in signal handling.
    - jbj: rpmz: handle gzip/bzip2/xz/lzma compression in 1 executable.
    - proyvind: create %mipsel and also add more generations to the mips macros.
    - jbj: fix: avoid the assertion failure w LZMA lzdio by upgrading to XZ.
    - proyvind: add initial support for detecting automatically detecting
architecture through libcpuinfo.
    - jbj: stub-in /usr/lib/rpm/helpers/makeshlibs proof-of-concept.
    - proyvind: add %mips & %mipsx macros for mips archictecture.
    - jbj: add rpmdsNSType() to -lrpm loader map.
    - jbj: rpmtsOrder: enable parentdir/linkto ordering relations.
    - jbj: rpmrepo: initialize Packages/Sources markup.
    - jbj: rpmrepo: initialize ".yaml" markup, add pre/post oneshot vectors.
    - jbj: rpmrepo: compile in deb_{Packages,Sources} queryformats.
    - jbj: rpmrepo: compile in wnh_{primary,filelists,other}_yaml queryformats.
    - jbj: stub in deb:{Packages,Sources} queryformt templates.
    - jbj: install/use deb:control queryformat. todo++
    - jbj: install/use deb:{md5sums,preinst,postinst,prerm,postrm} queryformats.
    - jbj: install/use wnh:{primary,filelists,other}.yaml queryformats.
    - jbj: attempt --yum:other.yaml markup definition (gud enuf for now).
    - jbj: finish up yum:{primary,filelists}.yaml header extension tags.
    - jbj: rpmrepo: compile in queryformat strings.
    - jbj: add doublequotes around queryformats for #include use in rpmrepo.c.
    - jbj: blueprint/use yum:{primary,filelists,other}.sqlite queryformats.
    - jbj: blueprint/use yum:{primary,filelists,other}.xml queryformats.
    - jbj: install yum:{primary,filelists,other}.xml queryformats.
    - jbj: use poptReadFile with retrofit for popt < 1.15.
    - jbj: rude & crude backing store for --queryformat templates.
    - proyvind: xzdio: accept compression level 0 - 9 (new '0' = former '1' etc.).
    - proyvind: don't wipe out $DOCDIR when using %doc as it will wipe out any
files that would happen to be installed during %install.
    - jbj: add POPT_ARGFLAG_TOGGLE sufficient to test (invisible w popt < 1.15).
    - jbj: enable the PLD dependency filtering.
    - jbj: PLD: rpm-pld-autodep: add run-time disablers, attempt miRE's instead.
    - jbj: PLD: rpm-noexpand: Don't expand macros in %changelog.
    - jbj: PLD: rpm-pld-autodep: merge and simplify. entirely dysfunctional ...
    - jbj: PLD: rpm-notsc: Don't use rdtsc timing.
    - jbj: PLD: rpm-popt-aliases: Add --downgrade/--norepackage aliases.
    - jbj: PLD: rpm-epoch0: Always add Epoch: 0 to packages.
    - jbj: handle "config(N) = E:V-R" within rpmns.c (but treat as a string).
    - rpm.org: Don't try to create "" directories.
    - rpm.org: Don't bother calculating string sizes manually.
    - rpm.org: memory used by lua gets freed (just remove comment).
    - rpm.org: repeated read config -> free config needs globalLuaState == NULL.
    - rpm.org: Fix buffer overflow on oversized filelist entries(susebz#397006).
    - jbj: rpmdigest: avoid segfault on named pipes and other uglix fauna.
    - jbj: pcre: finalize --with-pcre=internal building.
    - jbj: pcre: punish PLD with internal bloat until the trivial AutoFu exists.
    - jbj: rpmbuild: use anchored patterns for data validation.
    - jbj: move rpmgrep and man page from rpmio/ to tools/ and install.
    - jbj: EVRtuple: eliminate the old EVR parser.
    - jbj: rpmbuild: enumerate all the lexical patterns in parsePreamble().
    - jbj: rpmbuild: enable pattern validation for simple package identifiers.
    - jbj: rpmbuild: add tag data validation pattern checks.
    - jbj: EVRtuple: handle EVR_t opaquely in python labelCompare().
    - jbj: EVRtuple: postpone committing to single "missing" value for now.
    - jbj: EVRtuple: attempt rpmEVRparse() during parseRCPOT().
no error returns from rpmEVRparse() to trigger the message yet, todo++.
    - jbj: EVRtuple: teach --whatneeds/--needswhat to use EVR_t opaquely.
    - jbj: EVRtuple: add rpmEVR{new,free} creator and destructors.
    - jbj: EVRtuple: mark the old EVRD parser for destruction.
    - jbj: EVRtuple: use the new EVRD pattern parser, reverse the assert check.
    - jbj: EVRtuple: precedence permutation for rpmdsCompare().
    - jbj: EVRtuple: precedence permutation for rpmVersionCompare().
    - jbj: EVRtuple: blueprint new <-> old parsers with an assert.
    - jbj: EVRtuple: parse EVRD using RPMMIRE_REGEX & evr_tuple_match.
    - jbj: EVRtuple: wire up evr_tuple_match RE pattern match.
    - jbj: EVRtuple: wire up evr_tuple_order precedence permutation.
    - jbj: EVRtuple: use array for tuple storage.
    - rse: EVRtuple: macro configuration parameterization.
    - proyvind: rpmio: include lzma.h header so that LZMA_VERSION actually gets
defined and can be compared (fixes xzdio breakage).
    - proyvind: xzdio: add a couple of missing print messages.
    - proyvind: add %__xz macro.
    - proyvind: rpmdb/tjfn: fix build breakage.
    - proyvind: lib/tgi: fix build breakage.
    - proyvind: rpmio/rpmz: merge with recent xz code to work with recent liblzma API
changes.
    - proyvind: rpmio/lookup3: fix build breakage.
    - proyvind: rpmio/tpw: fix linking against librpm.
    - proyvind: rpmio/rpmtar: fix build breakage.
    - proyvind: rpmio/rpmcpio: fix build breakage.
    - proyvind: rpmio/tmacro: fix build breakage.
    - proyvind: perl: clean out rest of warnings.
    - proyvind: check return value for functions declared with attribute
warn_unused_result. (some inspired by rpm.org)
    - proyvind: debugedit: perform some cleanups and pull in some from rpm.org
as well while at it.
    - proyvind: move comparision of DISTEPOCH under NOTYET &
RPM_VENDOR_MANDRIVA for now.
    - proyvind: only do DISTEPOCH comparision if RELEASE is equal.
    - proyvind: set DISTEPOCH to "" if not present in rpmVersionCompare().
    - proyvind: perl: "fix" segfault with RPM::PackageIterator.
    - proyvind: perl: add destructor function for RPM::PackageIterator.
    - proyvind: add new DistEpoch tag.
    - jbj: merge "support-wildcards-in-EVR-comparison" patch (OpenPKG).
    - jbj: invert the sense of a <-> b comparison, change sign of Mandriva override.
    - jbj: bury MDV file triggers under RPM_VENDOR_MANDRIVA.
    - jbj: use poptSaneFile() when available (popt-1.15).
    - jbj: use poptReadConfigFiles() when available (popt-1.15).
    - provyind: python: build with -fno-strict-aliasing.
    - proyvind: tevr: fix build issues.
    - proyvind: add RPMTAG_DISTTAG to optionalTags so that it may be used as
%{disttag}.
    - rpm.org: add %{_default_patch_flags} macro for patch options
    - proyvind: add -Werror=format-security to gcc warning flags.
    - proyvind: xzdio: rename from lzdio.
    - proyvind: lzdio: set memlimit for decoding to 100MiB.
    - proyvind: add support for xz for all tools shipped with rpm.
    - proyvind: lzdio: add support for xz format. (removes liblzma 4.999.3 support)
    - jbj: rpmgc: display errors with gcry_strerror().
    - jbj: rpmnss: eliminate pubkey type wrapping methods.
    - jbj: stub in pgpImpl{Set,Verify}ECDSA methods.
    - jbj: rpmnss: fix: correct RSA/SHA512 cut-n-paste error.
    - jbj: rpmssl: don't bother with (unused) NID_foo.
    - jbj: use digest names in debugging messages.
    - jbj: name digests according to RFC 4880 section 9.4.
    - jbj: rename s/hdrmd5ctx/hdrctx/ used by RSA to avoid legacy confusions.
    - jbj: fix: RSA V4 signed *.rpm plaintext hash was not generated correctly.
    - jbj: ensure that digest agrees with signature hash algorithm.
    - jbj: digest: add getters for digest name/algo/ANS1oid.
    - jbj: rpmssl: functional RSA verify --usecrypto ssl for signature(...) probe.
    - jbj: rpmgc: functional RSA verify --usecrypto gc for signature(...) probe.
    - jbj: rpmgc: bulldoze the RSA compost. still not working yet ...
    - jbj: rpmpgp: add ASN1 goop for SHA-224, add to bc/gc/nss/ssl.
    - jbj: bury file actions into iosm, replace XFA_SKIPPING with a
iosmFileActionSkipped() call.
    - rpm.org: Add "deptype" format extension.
    - rpm.org: Fix segfault on packages without separate scriptlet program tags
(rhbz#475214).
    - jbj: don't attempt install if rpmgiNext() returns RPMRC_FAIL.
    - jbj: transFlags: regroup bits together in poptI table.
    - jbj: transFlags: use POPT_SET_BIT consistently, no callbacks needed.
    - jbj: transFlags: add --nopretrans/--noposttrans disablers.
    - jbj: lua: disable embedded socket/crypto/xmlrpc modules. external instead.
    - jbj: sketch in %remove file flag, surely gonna change before finished.
    - jbj: transFlags: eliminate --nomd5, use --nofdigests instead.
    - jbj: sketch in arbitrary per-package Transflags: tag.
    - jbj: transFlags: add RPMTRANS_FLAGS_NORPMDB and --norpmdb disablers.
    - jbj: transFlags: eliminate (never implemented) RPMTRANS_KEEP_OBSOLETES.
    - jbj: python: remove compile warnings from rpmWriteHeaders() addition.
    - afb: rpmrepo: fix installed size bug (wrong value being written)
    - pixel: handle posttrans p with no body.
    - proyvind: python: add writeHeaderListToFD() & writeHeaderListToFile().
(improved version of TurboLinux patch)
    - proyvind: rpm4compat: disable warnings about unused variables.
    - proyvind: Mandriva: Always treat file conflicts during install (rpm -i)
as errors. (dont-filter-install-file-conflicts)
    - proyvind: perl: clean out some mess.
    - proyvind: perl: don't add rpath to module.
    - proyvind: lua: fix linking against internal lua.
    - jbj: perl: add a sentinel to rpmdsSingle() rather than exporting rpmdsDup().
    - jbj: fix: better choice for paths to add (#473814 comment #4).
    - proyvind: perl: add api doc for RPM::Spec->icon() & RPM::Spec->icon_url().
    - jbj: fix: include build dirname to find multiple *.pc (#473814).
    - proyvind: perl: always do initSourceHeader() (fixes RPM::Spec->srcheader()
& RPM::SPEC->check()).
    - jbj: lua: inline a copy of getdate.c
    - jbj: lua: change paths to extend lua with external modules on linux.
    - jbj: WR: lua: display "rpm:lua:foo" progname w chkconfig/useradd/groupadd
errors.
    - jbj: WR: fix: sqlite assertion failure while sequentially retrieving keys.
    - bero: Ark: create --with-vendor=ark, borrow some Mandriva patches, add
        use-gnu-tar-compression-detection patch for vendor ark
    - jbj: eliminate --with-vendor arguments that are not in use.
    - jbj: eliminate rpmal debugging code.
    - jbj: lua: disable mkdtemp(3) bindings, no solaris portability atm.
    - jbj: lua: bind mkdtemp(3) in lposix.c
    - jbj: macros: add %{mkdtemp:...} primitive (consistent leading whitespace too).
    - jbj: devtool: provision a fedora host sufficiently to build from cvs.
    - jbj: add cudf-tests example packaging.
    - jbj: include tests/*.src.rpm, exclude tests/ref/CVS/*, with "make dist".
    - proyvind: lua: explicitly link against libexpat as assumption on implicit
linking cannot be guaranteed.
    - proyvind: add --with-extra-path-macros configure option that adds
additional macro file paths without overriding existing defaults.
    - proyvind: add --with-vendor configure option to define RPM_VENDOR_*.
    - proyvind: Mandriva: make loglevel for dependency loop detection
overridable, debug-level by default. (loop-detection-optional-loglevel)
    - jbj: fix: __OpenBSD__ insque(3) needs rpmsq rock initialized.
    - jbj: add #ifdef's needed to compile on __OpenBSD__.
    - proyvind: Mandriva: make directory & symlink dependencies optional with
%{_check_symlink_deps} & %{_check_dirname_deps}. (optional-dirname-and-symlink-deps)
    - proyvind: Mandriva: prefer file extension for detecting file compression.
(extension-based-compression-detection)
    - proyvind: Mandriva: disable buildrequires checking for building src.rpms.
(no-deps-on-building-srpms)
    - proyvind: Mandriva: disable preservation of file ownership for source rpms.
(no-owner-group-on-srpm-install)
    - rpm.org: Add posix.mkstemp() to Lua posix lib.
    - jbj: fix: apply _dependency_whiteout to erased relations too.
    - jbj: lua: display rudimentary info about lua with --showrc.
    - jbj: lua: preload "crypto" in rpmlua.c.
    - jbj: lua: lom.lua has requires("lxp"), so preload "lxp" in rpmlua.c.
    - jbj: WRlua: preserve forward linkage by avoiding vmefail/get_date.
    - jbj: lua: add virgin luasocket-2.0.2 lua bindings (unused atm).
    - jbj: lua: add license, and compile lxplib.
    - jbj: lua: add lom.lua wrapper for lxplib.
    - jbj: lua: diddle bin2c.c to permit multiple *.lua args.
    - jbj: lua: add virgin lxplib lua bindings (unused atm).
    - jbj: lua: add license, hotwire CRYPTO_OPENSSL, and compile lcrypto.
    - jbj: lua: add virgin lcrypto lua bindings (unused atm).
    - jbj: lua: ensure that internal lua has all the right files.
    - jbj: add a relation to to force install-before-erase.
    - jbj: display dependency loops as an error for now.
    - rpm.org: add %{_default_patch_fuzz} macro for patch --fuzz
    - afb: make buildroot path configurable, but keep old defaults
    - rpm.org: add %{_buildrootdir} macro for use with %{buildroot}

5.2a1 -> 5.2a2:
    - jbj: permit --whatconflicts/--whatobsoletes to be displayed with --help.
    - jbj: add flag to keep trailing slash in dirnames dependency set.
    - jbj: fix a memory leak by calling mireClean().
    - jbj: save rpmdb trigger patterns in psm.c, eliminating 2nd retrieve.
    - jbj: use generic retrieval code for --group and --triggerdby too.
    - jbj: attempt generic retrieval code using --whatconflicts/--whatobsoletes.
    - jbj: add --whatconflicts/--whatobsoletes, hidden for now.
    - jbj: generate Obsoletename index in rpmdb.
    - jbj: use rpmdsMatch to detect rpmdb trigger firing.
    - jbj: add rpmdsMatch to match dependency against set.
    - jbj: refactor the sumNN wrappers out of digest.c too.
    - jbj: include crc routines in a standalone file.
    - jbj: fix: unmatched file/dir path triggers were firing.
    - jbj: fire file trigger patterns symmetrically.
    - jbj: fire trigger patterns against filepaths. still asymmetric, todo++.
    - proyvind: perl: add icon() & icon_url() to RPM::Spec.
    - bero: Python 2.6 support in configure.ac

5.1.0 -> 5.2a1:
    - jbj: update osgideps.pl (#466111).
    - jbj: generate Filepaths index in rpmdb.
    - jbj: fix: he->tag was returning RPMTAG_BASENAMES, not RPMTAG_FILEPATHS.
    - proyvind: install rpmbuild.h & rpmspec.h on system again (needed by urpmi).
    - jbj: avoid mtab info leakage problems (#457940).
    - proyvind: perl: add back installsrpm() function from old RPM4 bindings.
    - proyvind: python: in case of RPMRC_NOTFOUND, return Py_None without
      rpmlog printing error.
    - proyvind: rpm4compat: add a fdSize() wrapper which uses Fstat().
    - proyvind: rpm4compat: add urltype & prototype for urlPath() since it's
      used by rpmfiBuildFNames. (Why does only C++ complaint about this???)
    - proyvind: rpm4compat: add rpm_machtable_e since it's been moved out of
        the api.
    - proyvind: rpm4compat: explicitly cast to HE_t (C++ compatibility).
    - proyvind: rpm4compat: define all _RPM*_INTERNALs before inclusion of any
      rpm headers at all to ensure that these actually has any effect.
    - jbj: print last problem added w platform affinity failure.
    - jbj: lazily create ts problem set.
    - jbj: selinux: resurrect lsetfilecon using libselinux API.
    - jbj: use macro, not /bin/bash, in scriptlet_requires.
    - jbj: don't run empty transactions, avoiding obscure error msg.
    - jbj: permit a negative index as alias for the last problem added to set.
    - jbj: warn if package is not added because of platform affinity patterns.
    - proyvind: lzdio: fix build with recent api changes.
    - jbj: fix: initialize next element of rpmlog store correctly.
    - rpm.org: python: cleanup & exit callback immediately on error.
    - jbj: add FNM_EXTMATCH to default flags w RPMMIRE_GLOB.
    - jbj: update {nl,id,pl}.po (Translation Project).
    - jbj: rpmio: permit adler32/crc32/crc64 in spite of --without-zlib.
    - jbj: rpmio: eliminate HAVE_ZLIB_H tests, use WITH_ZLIB tests instead.
    - rse: rpmio: allow newer fnmatch to build on non-Linux platforms, too.
    - jbj: rpmio: upgrade  fnmatch to version that implements FNM_EXTMATCH.
    - jbj: rpmpsm: simplify runTriggers() by adding rpmTriggersLoop().
    - jbj: rpmpsm: extract trigger tags once, simplify code, consistent naming.
    - jbj: rpmpsm: extract NVRA and INSTALLPREFIXES lazily & persistently.
    - jbj: speed up dirname triggers from glob patterns. almost spiffy ...
    - jbj: rpmdb: add rpmdbMireApply to retrieve primary keys from index.
    - jbj: fire dirname triggers from glob patterns (pig slow, fixing todo++).
    - jbj: rpmfi: add storage and getters for exclude/include patterns.
    - jbj: rpmds: add storage and getters for exclude/include patterns.
    - jbj: rpmpsm: retrieve triggers lazily.
    - jbj: use parent dirnames index if triggername ends with '/'.
    - jbj: fire triggers on package file paths.
    - jbj: use rpmio Readlink everywhere consistently.
    - rpm.org: fix error messages in processScriptFiles().
    - jbj: fire triggers on parent directory paths.
    - jbj: use rpmds iterator and getters for trigger->N parse side effects.
    - jbj: hdrfmt: triggerconds header extension display was incorrect.
    - jbj: expose rpmdsType() in rpmds ABI.
    - jbj: add rpmdsType() to name dependency sets status quo ante.
    - jbj: common approach to ensure triggers fire only once.
    - jbj: fire triggers from Provides: dependency set.
    - jbj: rpmio: add argiCmp and argiSort.
    - jbj: loop over 1 element NEVRA dependency set when firing triggers.
    - jbj: permit rpmdsNew() to create RPMTAG_NAME rpmds, simplify ds->Type.
    - jbj: permit multiple triggers to fire from packages.
    - jbj: don't install symclash.* to avoid picking up a dependency on python.
    - jbj: fix: check added file names against installed conflicts.
    - jbj: update nl.po (Translation Project).
    - rpm.org: permit hardlinks only with regular files.
    - jbj: fix: tagType() with multiple aliases returned the wrong type.
    - rpm.org: don't allow multiple definition of PatchX or SourceX
    - proyvind: install headers required by other installed headers. (FIXME!)
    - proyvind: unbreak rpm4compat.h wrt c++ function overrides.
    - proyvind: fix pointer type mismatch with 64 bit in glob.c.
    - proyvind: fix a couple of compile warnings in python bindings.
    - proyvind: remove references in autotools to removed files.
    - rse: upgrade build environment to GNU libtool 2.2.6
    - jbj: lua: fix: don't unlink a non-existent scriptlet file.
    - jbj: display error msg for lusers attempting "rpm -qp /bin" (#461362).
    - jbj: WR: remove version from config paths.
    - jbj: lua: fix: don't close dup'd stdout running lua scripts.
    - jbj: macosx: avoid multiple definitions of _program_name.
    - rse: upgrade embedded Lua from version 5.1.3 to 5.1.4
    - jbj: WR: remove --with-path-versioned in devtool targets.
    - jbj: WR: remove $(VERION) from macros paths in devtool targets.
    - jbj: WR: add devtool windriver-{host,target} configuration targets.
    - jbj: WR: fix: cleanup patch integration thinkos.
    - jbj: WR: mark wrs-rpm-enable-macro-validation.patch (but leave disabled).
    - jbj: WR: fix: add rt-reloc-wrapper.sh to EXTRAS_DIST.
    - jbj: rescusitate w make distcheck.
    - jbj: update po files.
    - jbj: adopt AM_PATH_PYTHON AutoFu variables. AM_PATH_PYTHON will be used eventually.
    - rse: simplify conditional code and remove compile-time warnings in rpmio/rpm{nss,gc,ssl}.c
    - jbj: python: simplify Makefile.am
    - jbj: display sysinfo path with --showrc.
    - jbj: remove internal zlib.
    - jbj: WR: eliminate most compiler warnings.
    - jbj: WR: eliminate duplicated AutoFu boilerplate, use system.h instead.
    - jbj: WR: eliminate getdate.[ch], use same from rpmio instead.
    - jbj: WR: eliminate dueling AutoFu defines from shadow_config.h, use RPM's
config.h (through system.h) instead.
    - jbj: WR: eliminate xmalloc.c, use system.h defines instead.
    - jbj: WR: rename config.h to shadow_config.h, include "system.h" instead.
    - at: rpmdb.c: enable/disable rpmsq signal handlers with respect to rpmdbRock
    - jbj: WR: run-time discovered configuration goopiness, take 1.
    - jbj: WR: rely on PATH to find pkg-config.
    - jbj: WR: don't spew error messages with internal lua shadow module.
    - jbj: WR: add shadow/chkconfig internal lua modules.
    - jbj: WR: Color/arch affinity while upgrading on multilib platforms.
    - jbj: WR: Permit configurable arch strings.
    - jbj: WR: Use %{_host_vendor} and %{_host_os} for platform.
    - jbj: WR: fakeroot maps devices to files. avoid /dev/* in checkfiles.
    - jbj: lua: don't exit chroot if already within running script.
    - at: gzdio: fixed and re-enabled rsyncable_gzwrite()
    - jbj: rpmku: create opaque keyutils keyring.
    - jbj: keyutils: permit configurable keyring.
    - rse: fix building under --with-lzma by providing the necessary 64-bit defines for inclusion of <lzma.h>
    - jbj: QNX: use strtouq() instead of strtoul() in rpmmtree.
    - jbj: QNX: retrofit asprintf.h (from XAR) for the deprived. rpmmtree uses
(rewrite to eliminate asprintf is an alternative).
    - jbj: QNX: supply missing typedef's for uint32_t.
    - jbj: add alternative %{sparcx} macro shorthand (bz #455972).
    - jbj: rpmio: add new link/unlink methods to loader map.
    - jbj: python: add rpm.Keyring/rpm.Pubkey subtype methods for rpmkeyring.
    - jbj: python: convert rpmtd-py to rpm style includes.
    - jbj: filetriggers: rewite w splint annotations. much more todo++ here.
    - jbj: keyring: (re-)port keyring.[ch] w refcounts.
    - rpm.org: (re-)steal rpmkeyring.[ch] with added refcounts.
    - jbj: python: add rpm.td subtype methods for rpmtd.
    - jbj: rpmtd: expose symbols needed by python rpm.td.
    - jbj: rpmtd: rework rpmtdFormats lookup. more todo++.
    - jbj: rpmtd: initial port.
    - rpm.org: steal rpmtd.[ch] modules for porting.
    - rpm.org: steal rpmkeyring/rpmtd modules for porting work.
    - jbj: fix: use the uint64_t callback args, not the legacy compat copies.
    - rpm.org: Adjust for rpmps interface change.
    - rpm.org: Adjust callback for amount+total type change.
    - rse: upgrade "devtool" build environment to GNU shtool 2.0.8
    - bero: Fix hang when using rpmdsSingle and rpm4compat.h from C++
    - proyvind: clean out all build warnings for perl & python bindings.
    - jbj: gzdio: quadruple check with external -lz. still no fix => disabled.
    - jbj: gzdio: integrate the cpio tracking patch (needs to be done elsewhere)
    - jbj: gzdio: disable rsync flushing until a fix can be attempted.
    - jbj: gzdio: remove c99'ism.
    - proyvind: disable filetriggers for src.rpms.
    - jbj: band-aid test for tag->tagno != NULL for now. better needs doing.
    - jbj: fix: --changelog segfault from rpmpopt.in typo.
    - rse: fallback to xmalloc+strncpy if strndup is not available in filetriggers code
    - proyvind: adapt filetriggers to use miRE in stead of regex(3).
    - proyvind: merge pixel's filetriggers support.
    - rse: configure: do not complain with "python: file not found" on platforms without python(1) in PATH
    - rpm.org: use "Mono/.Net assembly" for mono magic.
    - jbj: rpmdav: OPTIONS on every new dir needs thought. per-session for now.
    - jbj: rpmdav: on 302, append the trailing '/' and retry. wotta pita.
    - jbj: rpmdav: grab Location: and ETag: if available.
    - jbj: rpmhtml: convert %2A et al in href's while parsing.
    - jbj: rpmwget: wire up --output-file/--append-output options.
    - jbj: rpmdav: add html parser to extract plain http href's.
    - at: gzdio: return partial "best effort" bytes written with gzfoo errors.
    - at: gzdio: do gzflush only after RSYNC_WIN boundaries.
    - at: gzdio: push gzFile into a private container.
    - jbj: rpmio: mark "server awol" disconnected state for graceful error
handling.
    - jbj: rpmrepo: avoid double'd error message.
    - jbj: rpmrepo: terminate immediately, rather than "best-effort" continue,
on I/O error.
    - jbj: rpmrepo: terminate on short read, don't bother with extra EOF read.
    - jbj: rpmwget: turn on --limit-rate. overdamped afaict, todo++ ...
    - jbj: rpmwget: move most of the calculations into the notify callback.
    - jbj: rpmurl: add send/recv/total accumulators.
    - jbj: add --whatneeds/--needswhat popt aliases.
    - jbj: make gzdio.c standalone.
    - rpm.org: Make verifyAttrs and virtualFileAttributes static.
    - rpm.org: Teach Fflush about lzdio.
    - jbj: add _flush to FDIO_t, make bzdio.c standalone.
    - jbj: rpmio: start deconstructing the ancient URL callback.
    - jbj: rpmwget: ... display connection state in wgetNotify.
    - jbj: rpmdav: pass the neon callback thru (*u->notify) to ...
    - jbj: rpmurl: devise a passthru connection progress callback.
    - jbj: rpmwget: preliminaries for -o/-a output file logging.
    - jbj: rpmwget: wire up --quota.
    - jbj: rpmsw: change bytes accumulator to unsigned long long.
    - jbj: rpmwget: wire up --limit-rate. more to do ...
    - jbj: rpmwget: wire up --progress; only "bar|none" args implemented.
    - jbj: rpmwget: add rate/eta calculation to progress bar and logging.
    - jbj: rpmdav: prepare to tie wget logging into davNotify transitions.
    - at: rpmfi: new function: size_t rpmfiFNMaxLen(rpmfi).
    - at: rpmbuild: check for unpackaged subdirectories.
    - jbj: fix: resurrect cpuinfo() probe, hack-o-rounds for both /proc & libio.
    - jbj: rpmio: remove fdSize, rewrite rpmioSlurp to use Fstat(2) instead.
    - jbj: rpmdav: display connection state transitions while debugging.
    - jbj: rpmdav: add davDisconnect() to clean active requests before caching.
    - jbj: rpmwget: add a progress bar. no I/O rates or ETA yet.
    - jbj: install: retry callback reopen URI once to handle timeouts.
    - jbj: pkgio: use Fstat(2) for size check. more to do still ...
    - jbj: psm: fix: avoid lazy Stat(2) on active URI request.
    - jbj: rpmrpc: add Fstat(2) to map URI info into header statbuf early.
    - at: rpmbuild: check if the same files are packaged into a few sub-packages.
    - jbj: rpmwget: add --foodebug options, more wget-style spewage.
    - jbj: rpmdav: capture connection state transitions w wget-style spewage.
    - jbj: rpmdav: add global rpmioHttpConnectTimeoutSecs (unused) for now.
    - jbj: rpmdav: run OPTIONS once, repeat for every directory, through a URI.
    - jbj: rpmdav: add global rpmioHttp{Accept,ReadTimeoutSecs,UserAgent} for now.
    - jbj: rpmwget: wire up --spider to Stat(2) running HEAD.
    - rpm.org: single point to control how callbacks are made.
    - rpm.org: Don't leak memory on python expandMacro().
    - jbj: rpmgpg: stub in gpg options using popt.
    - rpm.org: get/set transaction keyring methods.
    - jbj: rpmio: add rpmkeyring API.
    - rpm.org: swipe the abstract keyring API.
    - jbj: rpmio: add Content-Disposition: handling (for rpmwget eventually).
    - jbj: rpmwget: rework logic to avoid Stat(2) running HEAD.
    - jbj: rpmio: set st_blksize = 2048 iff html with Stat(http://)
    - jbj: rpmio: add Content-Type/Last-Modified to FD_t.
    - jbj: rpmwget: wire up -i,--input-file URI manifests.
    - jbj: rpmwget: handle lower/UPPER ofn transforms, stub in retry logic.
    - jbj: rpmwget: stub in a minimal (but functional) URI copy.
    - jbj: rpmwget: refactor options into a static structure.
    - jbj: fix: specspo lookup broke because of 2nd tagName call side-effect.
    - jbj: rpmwget: parse all wget options.
    - jbj: rpmio: stub in rpmwget options using popt.
    - jbj: rpmio: stub in rpmcurl options using popt.
    - jbj: rpmio: delete rpmrepo/rpmmtree, they live in tools/ now.
    - jbj: rpmz: fix some typos.
    - jbj: rpmdigest: parse/verify 0install manifest format.
    - jbj: rpmdigest: resurrect rpmdigest -c manifest before attempting
0install manifest verification.
    - jbj: rpmdigest: add sha256 (and other) digests to 0install manifests.
    - jbj: rpmdigest: achieve "sha1new" 0install manifest spewage for trees.
    - jbj: rpmdigest: generalize to do multi-rooted Fts(3) traversal.
    - jbj: rpmdigest: pull in mtreeCwalk() for 0install dir args tree spewage.
    - jbj: rpmdigest: achieve 0install manifest spewage for file args.
    - jbj: rpmdigest: refactor to prepare for 0install manifest spewage.
    - jbj: rpmrepo: put a --stats stopwatch on the mmap digest cost as well.
    - jbj: rpmrepo: add repoFclose(), accumulate I/O stats into a ts.
    - jbj: rpmrepo: enable --stats display using transaction set.
    - jbj: add RPMTAG_NEEDSWHAT header extension.
    - jbj: don't revisit headers that RPMTAG_WHATNEEDS has already processed.
    - jbj: add RPMTAG_WHATNEEDS header extension.
    - jbj: move rpmns.[ch] to -lrpmdb for use with header format extensions.
    - jbj: pass rpmdb to header format extenensions with header.
    - jbj: move rpmevr.[ch] to -lrpmdb for use with header format extensions.
    - jbj: fix: "%description -n foo-bar" needs an additional comparison.
    - jbj: add non-{GIF,XPM} formats opaquely using arbitrary Icon: tagno.
    - jbj: fix: allocate Icon: buffer after iconsize is initialized.
    - jbj: permit configurable POSIX behavior for parameterized macros
  (Marcin Kowalczyk<qrczak@knm.org.pl>).
    - jbj: add getter/setter methods to pass a rpmdb using a header argument.
    - jbj: tests: wire up plain HTTP manifest query.
    - jbj: http: ignore 501 from OPTIONS attempt to non-DAV server.
    - jbj: two copies of rpmrepo.c/rpmmtree.c is too many.
    - jbj: tests: add probes-test package to exercise dependency probes.
    - jbj: fix: skip %exclude/%ghost files to get more accurate RPMTAG_SIZE.
    - rse: fix portability by providing own RPM_LIST_XXX macros in rpmmtree.c
    - jbj: fix: RPMTAG_SIZE is incorrect with %exclude and %ghost directives
(Alexey Tourbin<at@altlinux.ru>).
    - jbj: fix: Install-Size: spewage in Kb, not bytes. everone gotta be different.
    - jbj: permit *.deb syntax as arbitrary tags.
    - jbj: add *.deb format dependency tag header extensions.
    - jbj: fix: return 1 rather than assertion failing on Suggests: header ext
query of package with no Requires:.
    - rse: unbreak building without LZMAUtils library
    - jbj: add --deb:foo aliases for *.deb spewage.
    - jbj: rework :strsub find-and-replace to use mire patterns.
    - jbj: mire: add REG_NEWLINE to default regex compilation.
    - jbj: add :strsub format extension find-and-replace using posix RE's.
    - jbj: fix: reattach RPMMIRE_DEFAULT as posix regex, not strcmp, pattern.
    - jbj: lzdio: start using -llzma instead.
    - jbj: tests: add coverage for %pretrans et al scriptlets.
    - rse: upgrade the embedded lrexlib Lua library from version 2.2.0 to 2.3.0
    - rse: apply upstream vendor patches from 2008-05-08 for Lua 5.1.3
    - jbj: tests: verify upgrades using the edos-test packages.
    - jbj: parser: inherit group/summary/description if not specified in subpkg.
    - jbj: parser: permit identically named sub-pkgs with different versions.
    - jbj: parser: trim comments where it makes sense to do so.
    - jbj: tests: add check-install target to attempt --relocate install.
    - jbj: tests: enhance the devtool-sanity package with scripts and a file.
    - jbj: tests: verify -Kv output using popt.
    - jbj: tests: verify setup using --version/--querytags/--showrc.
    - jbj: display noisy getconf()/uname() info with -vv --showrc instead.
    - jbj: shorten debugging messages, --queryformat strings passed to
headerSprintf are getting huge.
    - jbj: fix: NUL terminate dst on EXPR->ARRAY parser state transition
(see --yum:primary.yaml spew for reproducer)
    - jbj: restore deploop diagnostic message (Kacper Kornet kornet@camk.edu.pl).
    - jbj: install rpmmtree.8, update POTFILES.in & Doxyfiles.in.
    - jbj: add %_build_iconsize macro to permit configuration.
    - jbj: trash-and-restore macro config for multiple CLI arg builds.
    - rpm.org: use same code for creating the digest object on iteration and method call,
    - jbj: rpmrepo: correct requiressqlentry tag name typo.
    - jbj: fix: handle '%{arch}\' with \ at end-of-string correctly.
    - jbj: tests: verify ref/* data using rpmdigest/rpmmtree.
    - jbj: move rpmdigest/rpmmtree/rpmrepo back to tools/ for installation.
    - jbj: tests: verify rpmrepo XML spewage using popt-1.14.
    - jbj: tests: verify XML/YAML markup queries using popt-1.14.
    - jbj: tests: download popt-1.14 packages for use in tests.
    - jbj: yaml: fix: single element string arrays had extra "- ".
    - jbj: yaml: remove the hotwired hack for SRPM dirnames indentation.
    - jbj: add expanded build scripts for --specsrpm --queryformat spewage.
    - jbj: update Russian PO file (from Translation Project).
    - jbj: rpmdb: fix: limit RUNRECOVERY attempts, not every lazy open.
    - jbj: make sure the open path is set when using [bgl]zdOpen vector too.
    - jbj: lzdio: rework the layering to be more similar to gzdio/bzdio.
    - jbj: rpmrepo: fix: --lzma segfault, lzdFdopen was not saving path.
    - jbj: permit upgrade erasure of old -debuginfo iff all other packages
built from same *.src.rpm are not present. Note that this patch
assumes that -debuginfo will be added after all other packages
built from same *.src.rpm.
    - jbj: add automagic erasures of -debuginfo packages (#447708).
    - jbj: enable -lgcrypt through ./devtool system.
    - jbj: hdrfmt: achieve coverage over new header format extensions.
    - jbj: rpmrepo: add baseurl to the repo markup.
    - jbj: rpmrepo: populate sqlite schema with PACKAGESIZE and PACKAGEDIGEST.
    - jbj: simple parameterized namespace URI for Pkgid/Hdrid UUID generation.
    - jbj: rpmrepo: compute digests for both compressed & uncompressed
repository markup components.
    - jbj: legacy: eliminate (unused) domd5(). use dodigest instead.
    - jbj: update sv.po from the Translation Project.
    - jbj: add SOURCERPM name at end-of-parse for --specfile queries and errmsg.
    - jbj: upgrade to DB 4.7.25:
Change to 4.6 -> 4.7 in configure.ac & tools/Makefile.am
Rename to rep_auto.c in tools/Makefile.am
    - jbj: autogen.sh: change the USAGE strings to simplify maintenance. tool
versions only need to be edited in one place.
    - jbj: autogen.sh: fix arg stripping for 1.* libtoolize.
    - rse: enhance RPM_CHECK_LIB to query pkg-config(1) --libs-only-L to get -L<dir> options, too.
    - rse: be smart and allow one to still build RPM from CVS with old GNU libtool 1.5.x
    - rse: explicitly let one to force one of BeeCrypt/GCrypt/NSS/OpenSSL as the crypto implementation
    - rse: implicitly choose one of BeeCrypt/GCrypt/NSS/OpenSSL as the crypto implementation
    - rse: add an Autoconf --with-usecrypto={beecrypt,gcrypt,nss,openssl} build-time option
    - rse: allow one to build against the GCrypt based crypto implementation out-of-the-box
    - rse: more robust argument checking for CLI option --usecrypto
    - rse: add support for "lib<name>-config" and "lib<name>.pc" in RPM_CHECK_LIB
    - jbj: debuginfo: refactor 2 existing upgrade policy rules before
adding a new contextually sensitive rule for -debuginfo packages.
    - jbj: debuginfo: add general rpmdbCount() to get number of items for
any tag index, not just RPMTAG_NAME as was in rpmdbCountPackages().
    - jbj: add --with-openssl to devtool system target to enable the ssl
digital signature implementation in rpmio/rpmssl.c at runtime.
    - jbj: rpmte: add rpmteSourcerpm() (for use as a -debuginfo buildset key).
    - jbj: fix: skip the :extractor/|transformer mark checking :xml/:yaml.
    - jbj: splint: annotate argvAppend differently.
    - jbj: hdrfmt: return failure if PACKAGE{ORIGIN,DIGEST} do not exist.
    - afb: standalone: file "magic" was installed in wrong directory
    - afb: fix VPATH builds finding rpmversion.h (in perl, with MakeMaker)
    - afb: fix VPATH builds finding rpmversion.h (in python)
    - afb: internal liblzma was not properly in autoconf/automake
    - afb: fix VPATH builds of lua finding "system.h" from popt (not rpm)
    - afb: fix VPATH builds finding rpmversion.h (in tools)
    - jbj: fix: rpm-python h['filenames'] needs tagName(0x54aafb71) to
return "Filenames" in order to find the filepathsTag extension.
    - jbj: add enabler options to chase down headerLoad() hot-spots.
    - jbj: add a missing newline to a debug message.
    - jbj: revert rpmtsOpenDB on --checksig path, rely on the lazy open
in rpmtsFindPubkey instead.
    - jbj: fix: rpm -qp returns NOKEY because rpmdb is not yet open. Do a lazy
open in rpmtsFindPubkey.
    - jbj: add :rpn formatter to do simple arithemetic on input.
    - jbj: python: fix: insure that ts.setProbFilter() return is initialized.
    - jbj: fix: insure no access before buffer if fgets(3) returns NUL.
    - jbj: tevr: add missing level of ht indirection, free input strings.
    - jbj: fix: --triggers segfault, don't depend on he->p.ptr = NULL after
headerGet() failed return.
    - jbj: try ":foo" == extractor, "|foo" == transformer, format extensions.
    - jbj: permit :stat(foo) extraction from RPMTAG_PACKAGESTAT.
    - jbj: add RPMTAG_PACKAGESTAT, and store persistently in a rpmdb Header.
    - jbj: rpmrepo: achieve {primary,filelists,other}.xml spew parity w createrepo.
    - jbj: rpmrepo: compute origin *.rpm file digest while reading.
    - jbj: preserve stat(2) & digest through headerReload().
    - jbj: get rid of copy-n-paste typos, add "l" type markers to rpmtag.h.
    - jbj: add RPMTAG_PACKAGEDIGEST extension as RPM_STRING_TYPE.
    - jbj: add digest of origin *.rpm to Header internal store.
    - jbj: add RPMTAG_PACKAGESIZE extension as RPM_UINT64_TYPE.
    - jbj: rework RPMTAG_PACKAGETIME extension as RPM_UINT64_TYPE.
    - jbj: rework header{Get,Set}Time as header{Get,Stat}Statbuf methods.
    - jbj: add stat(2) of origin *.rpm to Header internal store.
    - jbj: permit file digests through (e.g.) :stat(sha512) format extension.
    - jbj: add :uuid(vN) format. UUIDv5 URI design & tag type coercion todo++.
    - jbj: rpmuuid: add i18n to error messages.
    - jbj: fix: blessed NUL termination for Readlink return.
    - jbj: retrofit v5 UUID's for hdrid/pkgid digests as tag extensions.
    - jbj: retrofit v1 UUID's for time stamps as tag extensions.
    - jbj: replace "diskstat" tag with :stat format extension instead.
    - jbj: add :digest(foo) format. :fdigest(algo) for rpmrepo spew soon ...
    - jbj: generalize :utf8 to :iconv(UTF-8) iconv(3) conversions.
    - jbj: permit :foo(A,B,C) parameters to be passed to extension formats.
    - jbj: permit :base64 encoding to be applied to all tag data types.
    - jbj: apply multiple tag extension formats in L->R serial order.
    - jbj: use loops instead of inline for sigtags (adapted from rpm.org).
    - jbj: fix: is_selinux_enbled() > 0 is the correct test.
    - rpm.org: Avoid entirely unnecessary static temp string buffer.
    - rpm.org: Mask signals while moving rebuilt rpmdb into place.
    - rpm.org: Restore rpmdb selinux contexts to default after rebuild (#442149).
    - jbj: tests: coverage results at http://wraptastic.org/pub/jbj/rpm-lcov.
    - jbj: tests: add devtool-sanity (and other) tests.
    - jbj: rpmio: add additional tests.
    - jbj: add lcov targets throughout.
    - jbj: add (empty) SUBDIRS = # tests throughout.
    - jbj: add (empty) check-local: targets throughout.
    - jbj: rpmio: add lco/gcov coverage targets with rpm "make check".
    - jbj: rpmrepo: add :bncdata extension format for <location> display.
    - jbj: pass dataEnd to regionSwab() when unloading.
    - jbj: disable the headerLoad speedup's until headerUnload changes are done.
    - jbj: swab integer tag data in headerGet, not headerLoad (measured 6.9% rpm-V speedup ymmv).
    - jbj: compute tag store w subtract (measured 26.3% rpm -qa speedup ymmv).
    - jbj: initialize ts->PRCO lazily (measured 20.4% rpm -qa speedup ymmv).
    - glen: print error when makeTempPath fails due missing temp dir
    - jbj: add _fdopen to FDIO_t, expose fdbg(), make lzdio.c standalone.
    - jbj: expose XfdLink/XfdFree/XfdNew, nuke the FDIO_t vectors.
    - jbj: eliminate unused FDIO_t vectors. XfdLink/XfdFree/XfdNew need nuking.
    - jbj: create lzdio.c to carry lzma comprssion, possibly w dlopen().
    - jbj: merge OpenSUSE lzma.diff patch.
    - jbj: preliminary support for internal -lzma (non-functional atm).
    - jbj: add lzma checkout to devtool system target.
    - jbj: disable loop unraveling error msgs for now. better needs to be done.
    - jbj: permit firefox debugging by creating an empty dir (#444310).
    - afb/rse: add initial "devtool standalone" and Autoconf support for building against LZMA Utils
    - jbj: add --enable-build-gcov for CFLAGS -fprofile-arcs -ftest-coverage.
    - jbj: header: free tag data on error retrurn with damaged data.
    - rpm.org: rpmsw: insure that time has passed while calibrating (#435309).
    - jbj: header: fix: avoid double free with damaged data (#442761).
    - jbj: rpmte: revert to individual tags instead of RPMTAG_NVRA.
    - jbj: rpmte: fix: snip ".arch" from "-release", same NEVRA check broke.
    - afb: fix VPATH builds finding rpmversion.h (in build)
    - afb: fix parallel build of rpmdigest (automake quirk)
    - afb: disable intl/iconv for popt 1.14 under Mac OS X
    - nkukard: support building under Linux/uClibc in addition to Linux/GLIBC
    - jbj: update {nl,pl,sl,sv,vi}.po from Translation Project.
    - rse: replace obsolete AC_AIX and AC_MINIX checks with newer AC_USE_SYSTEM_EXTENSIONS to get rid of Autoconf warnings
    - proyvind: improve %_smp_mflags so that it will correctly detect number of cpus on macos, while defaulting to 1 cpu if unable to detect
    - proyvind: move some macros that's identical for each platform macros to standard macros
    - rse: upgrade build environment to GNU autoconf 2.62
    - rse: use latest POPT 1.14 for building with "devtool standalone"
    - rse: prepared build-tree for RPM 5.2 development after branching

=============================================================================

5.1.7 -> 5.1.8:
    - jbj: adjust loader maps for lua.
    - rse: fix building under all combinations (none/internal/external) of Lua and PCRE
    - rse: upgrade devtool.conf and INSTALL to the latest tools from HEAD
    - jbj: EVRtuple: eliminate the old EVR parser.
    - jbj: yarn: convert rpmluav to usage mutex with refcounts
    - jbj: yarn: convert rpmlua to usage mutex with refcounts
    - jbj: popt: remove retrofits for popt < 1.14. use popt internal if needed.
    - jbj: mire: teardown for platpat on exit needs to be done in order.
    - jbj: rpmwget: move to tools.
    - jbj: rpmio: more random line noise reduction, diff'ing against HEAD.
    - jbj: rpmio: backport HTTP transport from HEAD.
    - jbj: rpmio: add additional data elements for HTTP transport.
    - jbj: rpmiob: yet another place to use rpmiobSlurp instead.
    - jbj: backport rpmspecdump from HEAD.
    - jbj: lib: more random line noise reduction, diff'ing against HEAD.
    - jbj: delete ancient header+payload RSA signatures too using GPG (#488953).
    - jbj: rpmrepo: compile in queryformat strings.
    - jbj: install/use deb:{md5sums,preinst,postinst,prerm,postrm} queryformats.
    - jbj: install/use yum:{primary,filelists,other}.sqlite queryformats.
    - jbj: install/use yum:{primary,filelists,other}.xml queryformats.
    - jbj: install/use wnh:{primary,filelists,other}.yaml queryformats.
    - jbj: use poptReadFile with retrofit for popt < 1.15.
    - devzero2000: fix --orphandirs port alias ; add --danglinglink popt alias
    - jbj: fix: eliminate a argvSplit() memory leak.
    - jbj: stub-in /usr/lib/rpm/helpers/makeshlibs proof-of-concept.
    - jbj: rude & crude backing store for --queryformat templates.
    - jbj: PLD: rpm-popt-aliases: Add --downgrade/--norepackage aliases.
    - jbj: PLD: rpm-notsc: Don't use rdtsc timing.
    - jbj: enable the PLD dependency filtering.
    - jbj: PLD: rpm-pld-autodep: add run-time disablers, attempt miRE's instead.
    - jbj: PLD: rpm-pld-autodep: merge and simplify. entirely dysfunctional ...
    - jbj: lib: start reducing random line noise, diff'ing against HEAD.
    - jbj: add prototypes to remove compiler warnings.
    - jbj: bury file actions into iosm, replace XFA_SKIPPING with a
        iosmFileActionSkipped() call.
    - jbj: rpmdb: random line noise reduction, diff'ing against HEAD.
    - jbj: wire-up RPMTAG_FILEDIGESTALGO. wotta waste to pretend "compatible" ...
    - jbj: yaml: add build scriptlet tags for --yaml/--xml display.
    - jbj: eliminate rpmal debugging code.
    - jbj: PLD: rpm-epoch0: Always add Epoch: 0 to packages.
    - jbj: handle "config(N) = E:V-R" within rpmns.c (but treat as a string).
    - jbj: yaml: backport the YAML analogue tag extensions to repo-md XML.
    - jbj: yaml: permit --without-syck, add some mac os x AutoFu/gcc fiddle-ups.
    - jbj: yaml: add lsyck lua module to parse YAML.
    - jbj: finish backport and enable SUPPORT_DEBUGINFO_UPGRADE_MODEL.
    - jbj: misc: get rid of splitFoo prototypes, bury the last use in rpmfi.c.
    - jbj: PCRE in -lrpmmisc, LUA in -lrpmio linking -lrpmmisc, instead.
    - jbj: update file manifests with backported files.
    - jbj: perl: fix: no need to include stringbuf.h any more.
    - jbj: fix: --noscripts/--nofdigests/--nocontexts need to use popt callback.
    - jbj: rpmiob: fix: return iob to _rpmiobPool instead.
    - rse: add RPM Lua function rpm.hostname()
    - jbj: yarn: convert mire to usage mutex with refcounts
(unifying array <-> element mutexes by copying use/pool
pointers throughout the array).
    - jbj: rpmku: rework rpmiob handling to avoid extra malloc's.
    - jbj: rpmiob: fix: add a newref in rpmiobNew.
    - jbj: rpmiob: backport the rpmiob interface into rpmku too.
    - jbj: rpmiob: backport the remainder of rpmiob, eliminate StringBuf.
    - jbj: backport HAVE_PTHREADS_H -> WITH_PTHREADS AutoFu logic.
    - jbj: more hack-o-rounds for LUA <-> PCRE, add --disable-static for now.
    - jbj: backport rpmiotypes.h/rpmiob.c, use rpmiobSlurp instead.
    - jbj: fix: handle ./../foo paths correctly (#491388).
    - jbj: rpmlib: rescusitate splint annotations.
    - jbj: rpmdb: rescusitate splint annotations.
    - jbj: rpmtsOrder: fully enable parentdir deps when ordering.
    - jbj: rpmtsOrder: enable parentdir/linkto ordering relations.
    - jbj: initialize ts->PRCO lazily (measured 20.4% rpm -qa speedup ymmv).
    - jbj: EVRtuple: fix: dig out the one time mire allocation leak.
    - jbj: use rpmioFreePoolItem for rpmds, eliminate rpmdsFree.
    - jbj: finish up using rpmioFreePoolItem() for rpmts and Header objects.
    - devzero2000: continuing for refcount rewrite : add define of fooFree to rpmioFreePoolItem
    - devzero2000: begin change programming style for refcount : rpmtsFree and h
eaderFree
    - jbj: rpmio: rescusitate splint annotations.
    - jbj: getdate: ignore internalState changes.
    - jbj: zlog: use struct rpmioItem_s use/pool container.
    - jbj: poptIO: add --htdebug.
    - jbj: yarn: convert rpmfc to usage mutex with refcounts.
    - jbj: yarn: convert hashTable to usage mutex with refcounts.
    - jbj: yarn: convert rpmmg to usage mutex with refcounts.
    - jbj: yarn: convert rpmwf refcount to usage mutex.
    - jbj: rpmdb: don't bother with the silly structure assignment initialize.
    - jbj: yarn: wire up rpmdsFini, mark rpmdsFree for destruction.
    - jbj: yarn: wire up rpmtsFini, mark rpmtsFree for destruction.
    - jbj: yarn: for now, don't assert fail, just print FIXME.
    - jbj: yarn: wire up headerScrub, eliminate header{Link,Unlink}.
    - jbj: make misc identical to HEAD (hmm @WITH_PCRE_LDFLAGS@ is AWOL)
    - devzero2000: add mkdtemp portability function to -lrpmmisc
    - jbj: yarn: wire up rpmteFini, eliminate rpmteFree.
    - jbj: yarn: wire up rpmsxFini, eliminate rpmsxFree.
    - jbj: yarn: wire up rpmfiFini, eliminate rpmfiFree.
    - jbj: yarn: wire up rpmgiFini, eliminate rpmgiFree.
    - jbj: rpmtsi: use __FUNCTION__ rather than adding a 2nd arg everywhere.
    - jbj: pgpDig: fix: rpmioFreePoolItem() can return non-NULL, clear ts->dig.
    - jbj: rpmio: add --pgpdebug for pgpDig debugging.
    - jbj: yarn: wire up rpmtsiFini, eliminate rpmtsiFree.
    - jbj: yarn: wire up rpmpsmFini, eliminate rpmpsmFree.
    - jbj: yarn: wire up rpmxarFini, eliminate rpmxarFree.
    - jbj: yarn: wire up pgpDigFini, eliminate pgpDigFree.
    - jbj: yarn: wire up urlFini, eliminate XurlFree.
    - jbj: yarn: wire up fdFini, eliminate XfdFree.
    - jbj: url: fix: u->use clobbers the lock from the pool.
    - jbj: rpmds: fix: rpmdsDup needs to go through rpmdsGetPool() too.
    - jbj: yarn: use void * use, not yarnLock use, to hide the details.
    - jbj: yarn: wrap use/pool into a per-object "struct rpmioItem_s _item".
    - jbj: yarn: stub in (*init)() and (*fini)() pool item methods.
    - jbj: yarn: add a (*dbg)() formatter to make fdLink() generic.
    - jbj: yarn: stub-in rpmmi pool handling under NOTYET.
    - jbj: QNX: avoid conflicting db defines for __mutex_lock/__mutex_unlock.
    - jbj: yarn: convert rpmdb refcount to usage mutex.
    - jbj: yarn: convert psm refcount to usage mutex.
    - jbj: yarn: convert rpmxar refcount to usage mutex.
    - jbj: yarn: convert pgpDig refcount to usage mutex (avoid recurse deadlock).
    - jbj: yarn: convert rpmts refcount to usage mutex (avoid recurse deadlock).
    - jbj: rpmps: fix: avoid reusing items from pool for now.
    - jbj: yarn: convert rpmtsi refcount to usage mutex.
    - jbj: yarn: convert rpmsx refcount to usage mutex.
    - jbj: yarn: convert rpmps refcount to usage mutex.
    - jbj: rpmds: fix: avoid pooling rpmdsThis/rpmdsSingle for now ...
    - jbj: headerReload: fix: don't free the header blob.
    - jbj: yarn: convert rpmte to a usage mutex (no refcounts).
    - jbj: yarn: convert rpmgi refcount to usage mutex.
    - jbj: yarn: use the pool changes where possible.
    - jbj: yarn: add generic Link/Unlink refcount diddlers.
    - jbj: yarn: add debugging, reuse counter, and zlog to rpmioPool.
    - jbj: yarn: trick up a __FILE__:__LINE__ from caller when failing too.
    - jbj: yarn: use EINVAL, not -1, for --without-pthreads portability.
    - jbj: yarn: glibc pthreads (at least) returns errno's, strrerror decodes.
    - jbj: yarn: fix: assert fail instead of exit on error.
    - jbj: yarn: use the pool allocator.
    - jbj: yarn: add a pool allocator.
    - jbj: yarn: convert rpmfi refcounts to usage mutexes.
    - jbj: yarn: convert rpmds refcounts to usage mutexes.
    - jbj: yarn: convert Header refcounts to usage mutexes.
    - jbj: yarn: convert urlInfo refcounts to usage mutexes.
    - jbj: yarn: convert FD_t refcounts to usage mutexes.
    - jbj: zlog: backport from HEAD.
    - jbj: yarn: backport from HEAD (likely --with-pthreads needed todo++).
    - jbj: bzdio: handle multiblock compressed payloads transparently.
    - jbj: xzdio: backport the remaining xzdio contexxtual changes. worksforme.
    - jbj: xzdio: backport XZ changes from HEAD.
    - jbj: rename lzdio.c -> xzdio.c.

5.1.6 -> 5.1.7:
    - jbj: update po files (Translation Project).
    - jbj: eleminate duplicate rpmVersionCompare() routines.
    - afb: backport macosx ldflags fixes.
    - glen: markLinkedFailed if rpm file reopen failed during transaction to avoid losing old pkg info from db
    - jbj: add rpmdsNSType() to -lrpm loader map.
    - jbj: update po files (Translation Project).
    - jbj: update PO and doxygen manifests.
    - jbj: include rpmgrep.1 with "make dist".
    - rpm.org: Don't try to create "" directories.
    - rpm.org: Don't bother calculating string sizes manually.
    - rpm.org: memory used by lua gets freed (just remove comment).
    - rpm.org: repeated read config -> free config needs globalLuaState == NULL.
    - rpm.org: Fix buffer overflow on oversized filelist entries(susebz#397006).
    - jbj: pcre: finalize --with-pcre=internal building.
    - jbj: pcre: punish PLD with internal bloat until the trivial AutoFu exists.
    - jbj: rpmdigest: avoid segfault on named pipes and other uglix fauna.
    - jbj: rpmbuild: use anchored patterns for data validation.
    - jbj: run "make check" to self consistency. worksforme.
    - jbj: add --whatneeds/--needswhat popt aliases.
    - jbj: backport the test harness for signature(). worksforme.
    - jbj: rpmbuild: enumerate all the lexical patterns in parsePreamble().
    - jbj: rpmbuild: enable pattern validation for simple package identifiers.
    - jbj: rpmbuild: add tag data validation pattern checks.
    - jbj: EVRtuple: handle EVR_t opaquely in python labelCompare().
    - jbj: EVRtuple: postpone committing to single "missing" value for now.
    - jbj: EVRtuple: attempt rpmEVRparse() during parseRCPOT().
        no error returns from rpmEVRparse() to trigger the message yet, todo++.
    - jbj: EVRtuple: teach --whatneeds/--needswhat to use EVR_t opaquely.
    - jbj: EVRtuple: add rpmEVR{new,free} creator and destructors.
    - jbj: EVRtuple: mark the old EVRD parser for destruction.
    - jbj: EVRtuple: use the new EVRD pattern parser, reverse the assert check.
    - jbj: EVRtuple: precedence permutation for rpmdsCompare().
    - jbj: EVRtuple: precedence permutation for rpmVersionCompare().
    - jbj: EVRtuple: blueprint new <-> old parsers with an assert.
    - jbj: EVRtuple: parse EVRD using RPMMIRE_REGEX & evr_tuple_match.
    - jbj: EVRtuple: wire up evr_tuple_match RE pattern match.
    - jbj: EVRtuple: wire up evr_tuple_order precedence permutation.
    - jbj: EVRtuple: use array for tuple storage.
    - rse: EVRtuple: macro configuration parameterization.
    - jbj: add FNM_EXTMATCH to default flags w RPMMIRE_GLOB.
    - jbj: rpmsw: change bytes accumulator to unsigned long long.
    - proyvind: add new DistEpoch tag.
    - jbj: add getter/setter methods to pass a rpmdb using a header argument.
    - jbj: transFlags: regroup bits together in poptI table.
    - jbj: transFlags: use POPT_SET_BIT consistently, no callbacks needed.
    - jbj: transFlags: add --nopretrans/--noposttrans disablers.
    - jbj: transFlags: eliminate --nomd5, use --nofdigests instead.
    - jbj: transFlags: add RPMTRANS_FLAGS_NORPMDB and --norpmdb disablers.
    - jbj: transFlags: eliminate (never implemented) RPMTRANS_KEEP_OBSOLETES.
    - jbj: use poptSaneFile() when available (popt-1.15).
    - jbj: use poptReadConfigFiles() when available (popt-1.15).
    - jbj: rename s/hdrmd5ctx/hdrctx/ used by RSA to avoid legacy confusions.
    - jbj: backport misc. changes from HEAD.
    - jbj: backport OpenPKG no-hard-coded-ugid.
    - jbj: rpmku: create opaque keyutils keyring.
    - jbj: keyutils: permit configurable keyring.
    - jbj: rpmgc: display errors with gcry_strerror().
    - jbj: rpmnss: eliminate pubkey type wrapping methods.
    - jbj: rpmnss: fix: correct RSA/SHA512 cut-n-paste error.
    - jbj: rpmssl: don't bother with (unused) NID_foo.
    - jbj: name digests according to RFC 4880 section 9.4.
    - jbj: digest: add getters for digest name/algo/ANS1oid.
    - jbj: rpmssl: functional RSA verify --usecrypto ssl for signature(...) probe.
    - jbj: rpmgc: functional RSA verify --usecrypto gc for signature(...) probe.
    - jbj: rpmgc: bulldoze the RSA compost. still not working yet ...
    - jbj: rpmpgp: add ASN1 goop for SHA-224, add to bc/gc/nss/ssl.
    - jbj: rpmdigest: parse/verify 0install manifest format.
    - jbj: rpmdigest: resurrect rpmdigest -c manifest before attempting
0install manifest verification.
    - jbj: rpmdigest: add sha256 (and other) digests to 0install manifests.
    - jbj: rpmdigest: achieve "sha1new" 0install manifest spewage for trees.
    - jbj: rpmdigest: generalize to do multi-rooted Fts(3) traversal.
    - jbj: rpmdigest: pull in mtreeCwalk() for 0install dir args tree spewage.
    - jbj: rpmdigest: achieve 0install manifest spewage for file args.
    - jbj: rpmdigest: refactor to prepare for 0install manifest spewage.
    - jbj: rpmrepo: avoid double'd error message.
    - jbj: rpmrepo: terminate immediately, rather than "best-effort" continue,
        on I/O error.
    - jbj: rpmrepo: terminate on short read, don't bother with extra EOF read.
    - jbj: move rpmns.[ch] to -lrpmdb for use with header format extensions.
    - jbj: move rpmevr.[ch] to -lrpmdb for use with header format extensions.
    - jbj: move rpmgrep and man page from rpmio/ to tools/ and install.
    - jbj: rpmfi: add storage and getters for exclude/include patterns.
    - jbj: perl: add a sentinel to rpmdsSingle() rather than exporting rpmdsDup().
    - jbj: update po files (Translation Project).
    - jbj: fix: don't display lua info if compiled --without-lua.
    - jbj: rpmds: add storage and getters for exclude/include patterns.
    - jbj: rpmds: expose rpmdsType() in rpmds ABI.
    - jbj: rpmds: add rpmdsType() to name dependency sets status quo ante.
    - afb: rpmrepo: fix installed size bug (wrong value being written)
    - jbj: fix: better choice for paths to add (#473814 comment #4).
    - jbj: fix: include build dirname to find multiple *.pc (#473814).
    - jbj: lua: inline a copy of getdate.c
    - jbj: WR: lua: display "rpm:lua:foo" progname w chkconfig/useradd/groupadd
errors.
    - jbj: WR: fix: sqlite assertion failure while sequentially retrieving keys.
    - jbj: update INSTALL to indicate that external zlib is preferred now.
    - at: fix: initialize msbits of erased package keys to zeroes on 64b hosts.
    - jbj: lua: bind mkdtemp(3) in lposix.c
    - jbj: macros: add %{mkdtemp:...} primitive (consistent leading whitespace too).
    - jbj: include tests/*.src.rpm, exclude tests/ref/CVS/*, with "make dist".
    - jbj: fix: __OpenBSD__ insque(3) needs rpmsq rock initialized.
    - jbj: add #ifdef's needed to compile on __OpenBSD__.
    - jbj: fix: permit " number %d" to be translated.
    - jbj: fix: apply _dependency_whiteout to erased relations too.
    - jbj: lua: display rudimentary info about lua with --showrc.
    - jbj: WRlua: preserve forward linkage by avoiding vmefail/get_date.
    - jbj: add a relation to to force install-before-erase.
    - jbj: display dependency loops as an error for now.

5.1.5 -> 5.1.6:
    - jbj: verify trigger tests have same result as HEAD.
    - jbj: backport rpmds functionality needed for file/dir triggers from HEAD.
    - jbj: backport file/directory triggers from HEAD.
    - jbj: add rpmdsMatch to match dependency against set.
    - jbj: rpmdb: add rpmdbMireApply to retrieve primary keys from index.
    - jbj: rpmio: add argiCmp and argiSort.
    - jbj: add --whatconflicts/--whatobsoletes.
    - jbj: fix: adding Fstat() broke perl builds.
    - jbj: generate Obsoletename index in rpmdb.
    - jbj: generate Filepaths index in rpmdb.
    - bero: Python 2.6 support in configure.ac
    - jbj: refactor the sumNN wrappers out of digest.c too.
    - jbj: include crc routines in a standalone file.
    - jbj: use a switch on errno to make leakage pathology filtering easier.
    - jbj: use Stat(2) for --rpmiodebug tracing.
    - jbj: fix: resurrect cpuinfo() probe, hack-o-rounds for both /proc & libio.
    - jbj: rpmio: rewrite rpmioSlurp to use Fstat(2) instead.
    - jbj: rpmrpc: add Fstat(2).
    - jbj: fix: he->tag was returning RPMTAG_BASENAMES, not RPMTAG_FILEPATHS.

5.1.4 -> 5.1.5:
    - jbj: update sk.po (Translation Project).
    - jbj: avoid mtab info leakage problems (#457940).
    - jbj: selinux: resurrect lsetfilecon using libselinux API.
    - jbj: use macro, not /bin/bash, in scriptlet_requires.
    - jbj: don't run empty transactions, avoiding obscure error msg.
    - jbj: permit a negative index as alias for the last problem added to set.
    - jbj: warn if package is not added because of platform affinity patterns.
    - proyvind: lzdio: fix build with recent api changes.
    - jbj: fix: initialize next element of rpmlog store correctly.
    - jbj: update {nl,id,pl}.po (Translation Project).
    - rse: rpmio: allow newer fnmatch to build on non-Linux platforms, too.
    - jbj: rpmio: upgrade fnmatch to version that implements FNM_EXTMATCH.
    - jbj: hdrfmt: triggerconds header extension display was incorrect.
    - jbj: don't install symclash.* to avoid picking up a dependency on python.
    - jbj: fix: check added file names against installed conflicts.
    - jbj: update nl.po (Translation Project).
    - rpm.org: permit hardlinks only with regular files.
    - jbj: fix: tagType() with multiple aliases returned the wrong type.
    - jbj: sqlite: fix: insure that tagType() returns result from stable sort.
    - rse: upgrade build environment to GNU libtool 2.2.6
    - jbj: lua: fix: don't unlink a non-existent scriptlet file.
    - jbj: display error msg for lusers attempting "rpm -qp /bin" (#461362).
    - jbj: WR: remove version from config paths.
    - jbj: lua: fix: don't close dup'd stdout running lua scripts.
    - jbj: macosx: avoid multiple definitions of _program_name.
    - jbj: merge po files.
    - jbj: don't expand removed python/rpm/Makefile.in.
    - rse: upgrade embedded Lua from version 5.1.3 to 5.1.4
    - jbj: WR: remove --with-path-versioned in devtool targets.
    - jbj: WR: remove $(VERION) from macros paths in devtool targets.
    - jbj: WR: fix: cleanup patch integration thinkos.
    - jbj: WR: mark wrs-rpm-enable-macro-validation.patch (but leave disabled).
    - jbj: WR: fix: add rt-reloc-wrapper.sh to EXTRAS_DIST.
    - jbj: rescusitate w make distcheck.
    - jbj: update po files.
    - jbj: don't attempt openssl memleak cleanup w/o openssl.
    - jbj: WR: add devtool windriver-{host,target} configuration targets.
    - jbj: adopt AM_PATH_PYTHON AutoFu variables. AM_PATH_PYTHON will be used eventually.
    - jbj: python: simplify Makefile.am
    - afb: check that crc32_combine/adler32_combine really exist, for murky old
zlib.
    - afb: remove undefined references too
    - jbj: WR: run-time discovered configuration goopiness, take 1.
    - jbj: display cpuinfo path with --showrc.
    - jbj: display sysinfo path with --showrc.
    - jbj: remove internal zlib.
    - jbj: WR: add %windriver target to devtool.conf.
    - jbj: WR: eliminate most compiler warnings.
    - jbj: WR: eliminate duplicated AutoFu boilerplate, use system.h instead.
    - jbj: WR: eliminate getdate.[ch], use same from rpmio instead.
    - jbj: WR: eliminate dueling AutoFu defines from shadow_config.h, use RPM's
        config.h (through system.h) instead.
    - jbj: WR: eliminate xmalloc.c, use system.h defines instead.
    - jbj: WR: rename config.h to shadow_config.h, include "system.h" instead.
    - jbj: WR: rely on PATH to find pkg-config.
    - jbj: WR: don't spew error messages with internal lua shadow module.
    - jbj: WR: add shadow/chkconfig internal lua modules.
    - jbj: WR: Color/arch affinity while upgrading on multilib platforms.
    - jbj: WR: Permit configurable arch strings.
    - jbj: WR: Use %{_host_vendor} and %{_host_os} for platform.
    - jbj: WR: fakeroot maps devices to files. avoid /dev/* in checkfiles.
    - jbj: db_tool: remove gcc whinings.
    - at: gzdio: fixed and re-enabled rsyncable_gzwrite()
    - rse: fix building under --with-lzma by providing the necessary 64-bit defines for inclusion of <lzma.h>
    - jbj: gzdio: quadruple check with external -lz. still no fix => disabled.
    - jbj: gzdio: integrate the cpio tracking patch (needs to be done elsewhere)
    - jbj: gzdio: disable rsync flushing until a fix can be attempted.
    - jbj: gzdio: remove c99'ism.
    - jbj: QNX: use strtouq() instead of strtoul() in rpmmtree.
    - jbj: QNX: retrofit asprintf.h (from XAR) for the deprived. rpmmtree uses
        (rewrite to eliminate asprintf is an alternative).
    - jbj: QNX: supply missing typedef's for uint32_t.
    - at: gzdio: return partial "best effort" bytes written with gzfoo errors.
    - at: gzdio: do gzflush only after RSYNC_WIN boundaries.
    - at: gzdio: push gzFile into a private container.
    - jbj: make gzdio.c standalone.
    - rpm.org: Teach Fflush about lzdio.
    - jbj: add _flush to FDIO_t, make bzdio.c standalone.
    - jbj: move glob/fnmatch into -lrpmio from -lrpmmisc.
    - jbj: lua: don't exit chroot if already within running script.
    - jbj: rescusitate "make check".
    - jbj: permit building with older libtool-1.5.26 (back port from HEAD).
    - bero: Fix hang when using rpmdsSingle and rpm4compat.h from C++
    - rse: configure: do not complain with "python: file not found" on platforms without python(1) in PATH

5.1.3 -> 5.1.4:
    - jbj: http: ignore 501 from OPTIONS attempt to non-DAV server.
    - jbj: fix: "%description -n foo-bar" needs an additional comparison.
    - jbj: add non-{GIF,XPM} formats opaquely using arbitrary Icon: tagno.
    - jbj: fix: allocate Icon: buffer after iconsize is initialized.
    - jbj: permit configurable POSIX behavior for parameterized macros
(Marcin Kowalczyk<qrczak@knm.org.pl>).
    - jbj: fix: skip %exclude/%ghost files to get more accurate RPMTAG_SIZE.
    - jbj: fix: RPMTAG_SIZE is incorrect with %exclude and %ghost directives
        (Alexey Tourbin<at@altlinux.ru>).
    - rse: fix portability by providing own RPM_LIST_XXX macros in rpmmtree.c

5.1.2 -> 5.1.3:
    - rse: enhance RPM_CHECK_LIB to query pkg-config(1) --libs-only-L to get -L<dir> options, too.
    - rse: add support for "lib<name>-config" and "lib<name>.pc" in RPM_CHECK_LIB
    - rse: unbreak building without LZMAUtils library
    - jbj: fix: reattach RPMMIRE_DEFAULT as posix regex, not strcmp, pattern.
    - jbj: lzdio: start using -llzma instead.
    - jbj: tests: add coverage for %pretrans et al scriptlets.
    - rse: upgrade the embedded lrexlib Lua library from version 2.2.0 to 2.3.0
    - rse: apply upstream vendor patches from 2008-05-08 for Lua 5.1.3
    - jbj: tests: verify upgrades using the edos-test packages.
    - jbj: parser: inherit group/summary/description if not specified in subpkg.
    - jbj: parser: permit identically named sub-pkgs with different versions.
    - jbj: parser: trim comments where it makes sense to do so.
    - jbj: tests: add check-install target to attempt --relocate install.
    - jbj: tests: enhance the devtool-sanity package with scripts and a file.
    - jbj: tests: verify -Kv output using popt.
    - jbj: tests: verify setup using --version/--querytags/--showrc.
    - jbj: display noisy getconf()/uname() info with -vv --showrc instead.
    - jbj: shorten debugging messages, --queryformat strings passed to
headerSprintf are getting huge.
    - jbj: fix: NUL terminate dst on EXPR->ARRAY parser state transition
(see --yum:primary.yaml spew for reproducer).
    - jbj: restore deploop diagnostic message (Kacper Kornet kornet@camk.edu.pl).
    - jbj: fix: is_selinux_enbled() > 0 is the correct test.
    - rpm.org: Mask signals while moving rebuilt rpmdb into place.
    - rpm.org: Restore rpmdb selinux contexts to default after rebuild (#442149)
    - jbj: debuginfo: refactor 2 existing upgrade policy rules before
        adding a new contextually sensitive rule for -debuginfo packages.
    - jbj: debuginfo: add general rpmdbCount() to get number of items for
any tag index, not just RPMTAG_NAME as was in rpmdbCountPackages().
    - jbj: add %_build_iconsize macro to permit configuration.
    - jbj: trash-and-restore macro config for multiple CLI arg builds.
    - jbj: rpmrepo: correct requiressqlentry tag name typo.
    - jbj: fix: handle '%{arch}\' with \ at end-of-string correctly.
    - jbj: tests: verify ref/* data using rpmdigest/rpmmtree.
    - jbj: move rpmdigest/rpmmtree/rpmrepo back to tools/ for installation.
    - jbj: tests: verify rpmrepo XML spewage using popt-1.14.
    - jbj: tests: verify XML/YAML markup queries using popt-1.14.
    - jbj: tests: download popt-1.14 packages for use in tests.
    - jbj: yaml: fix: single element string arrays had extra "- ".
    - jbj: yaml: remove the hotwired hack for SRPM dirnames indentation.
    - jbj: add expanded build scripts for --specsrpm --queryformat spewage.
    - jbj: backport --queryformat pipeline syntax from HEAD.
    - jbj: update Russian PO file (from Translation Project).
    - jbj: upgrade to db-4.7.25.
    - jbj: rpmdb: fix: limit RUNRECOVERY attempts, not every lazy open.
    - jbj: backport assorted rpmio changes from HEAD to stay in sync.
    - jbj: make sure the open path is set when using [bgl]zdOpen vector too.
    - jbj: lzdio: rework the layering to be more similar to gzdio/bzdio.
    - jbj: rpmrepo: fix: --lzma segfault, lzdFdopen was not saving path.
    - jbj: rpmrepo: add baseurl to the repo markup.
    - jbj: rpmrepo: populate sqlite schema with PACKAGESIZE and PACKAGEDIGEST.
    - jbj: simple parameterized namespace URI for Pkgid/Hdrid UUID generation.
    - jbj: rpmrepo: compute digests for both compressed & uncompressed
repository markup components.
    - jbj: update sv.po from the Translation Project.
    - jbj: add SOURCERPM name at end-of-parse for --specfile queries and errmsg.
    - jbj: splint: annotate argvAppend differently.
    - jbj: add _fdopen to FDIO_t, expose fdbg(), make lzdio.c standalone.
    - jbj: expose XfdLink/XfdFree/XfdNew, nuke the FDIO_t vectors.
    - jbj: eliminate unused FDIO_t vectors. XfdLink/XfdFree/XfdNew need nuking.
    - jbj: create lzdio.c to carry lzma comprssion, possibly w dlopen().
    - jbj: add --enable-build-gcov for CFLAGS -fprofile-arcs -ftest-coverage.

5.1.1 -> 5.1.2:
    - rse: upgraded build environment to GNU libtool 2.2.4
    - afb: standalone: file "magic" was installed in wrong directory
    - jbj: add toplevel lcov-foo Makefile targets. Current coverage at
http://wraptastic.org/pub/jbj/rpm-5.1.DEVEL-lcov
    - jbj: add --enable-build-gcov for CFLAGS -fprofile-arcs -ftest-coverage.
    - jbj: hot-wire a top level "make check". noisy sanity check atm, todo++.
    - jbj: backport top level tests/* for "make check". No tests in Makefile
SUBDIRS targets yet ...
    - jbj: rpmrepo: add doxygen markup throughout, adjust splint annotations.
    - jbj: update i18n from Translation Project.
    - jbj: update po/POTFILES.in
    - jbj: rpmuuid: add i18n to error messages.
    - jbj: fix: rpm-python h['filenames'] needs tagName(0x54aafb71) to
return "Filenames" in order to find the filepathsTag extension.
    - jbj: add a missing newline to a debug message.
    - jbj: revert rpmtsOpenDB on --checksig path, rely on the lazy open
     in rpmtsFindPubkey instead.
    - jbj: fix: rpm -qp returns NOKEY because rpmdb is not yet open. Do a lazy
     open in rpmtsFindPubkey.
    - jbj: python: fix: insure that ts.setProbFilter() return is initialized.
    - jbj: fix: --triggers segfault, don't depend on he->p.ptr = NULL after
headerGet() failed return.
    - jbj: add RPMTAG_PACKAGESTAT, and store persistently in a rpmdb Header.
    - jbj: disable loop unraveling error msgs for now. better needs to be done.
    - jbj: rpmrepo: achieve {primary,filelists,other}.xml spew parity w createrepo.
    - jbj: rpmrepo: compute origin *.rpm file digest while reading.
    - jbj: preserve stat(2) & digest through headerReload().
    - jbj: get rid of copy-n-paste typos, add "l" type markers to rpmtag.h.
    - jbj: add RPMTAG_PACKAGEDIGEST extension as RPM_STRING_TYPE.
    - jbj: add digest of origin *.rpm to Header internal store.
    - jbj: add RPMTAG_PACKAGESIZE extension as RPM_UINT64_TYPE.
    - jbj: rework RPMTAG_PACKAGETIME extension as RPM_UINT64_TYPE.
    - jbj: rework header{Get,Set}Time as header{Get,Stat}Statbuf methods.
    - jbj: add stat(2) of origin *.rpm to Header internal store.
    - jbj: permit file digests through (e.g.) :stat format extension.
    - jbj: add :uuid format. UUIDv5 URI design & tag type coercion todo++.
    - jbj: fix: blessed NUL termination for Readlink return.
    - jbj: retrofit v5 UUID's for hdrid/pkgid digests as tag extensions.
    - jbj: retrofit v1 UUID's for time stamps as tag extensions.
    - jbj: replace "diskstat" tag with :stat format extension instead.
    - jbj: add :digest format.
    - jbj: generalize :utf8 to :iconv iconv(3) conversions.
    - jbj: permit :base64 encoding to be applied to all tag data types.
    - jbj: fix: use rpmlog instead of rpmError for messages.
    - glen: print error when makeTempPath fails due missing temp dir

5.1.0 -> 5.1.1:
    - jbj: permit firefox debugging by creating an empty dir (#444310).
    - jbj: header: free tag data on error retrurn with damaged data.
    - rpm.org: rpmsw: insure that time has passed while calibrating (#435309).
    - jbj: header: fix: avoid double free with damaged data (#442761).
    - afb: fix VPATH builds finding rpmversion.h (in build)
    - afb: fix parallel build of rpmdigest (automake quirk)
    - jbj: rpmte: revert to individual tags instead of RPMTAG_NVRA.
    - afb: macosx: fix thinko in previous xar linking workaround

5.1b2 -> 5.1.0:
    - jbj: rpmte: fix: snip ".arch" from "-release", same NEVRA check broke.
    - nkukard: support building under Linux/uClibc in addition to Linux/GLIBC
    - jbj: update id.po from Translation Project.
    - rse: merge OpenPKG-specific "extension-based-compression-detection" change
    - afb: disable intl/iconv for popt 1.14 under Mac OS X
    - jbj: update {nl,pl,sl,sv,vi}.po from Translation Project.

5.1b1 -> 5.1b2:
    - rse: use latest POPT 1.14 for building with "devtool standalone"
    - rse: replace obsolete AC_AIX and AC_MINIX checks with newer AC_USE_SYSTEM_EXTENSIONS to get rid of Autoconf warnings
    - rse: upgrade build environment to GNU autoconf 2.62

---- 5.2 FORK POINT ----

5.0.0 -> 5.1b1:
    - jbj: update PO files from Translation Project for rpm-5.1 inclusion.
    - jbj: permit installing 3.0.x SRPMS.
    - jbj: rpmio: fix: add rpmluaFiles to loader map.
    - jbj: fix: avoid assertion failure with entry->info.offset == 0.
    - jbj: merge "support-rpmlua-option" patch from OpenPKG.
    - jbj: merge "support-rpmpopt-option" patch from OpenPKG.
    - jbj: merge "security-sanity-check-rpmpopt-and-rpmmacros" patch from OpenPKG.
    - jbj: merge "no-extra-terminating-newline-on-eval" patch from OpenPKG.
    - jbj: merge "explicit-source-fetch-cli-option" patch from OpenPKG.
    - jbj: merge "download-source-files-from-original-location" patch from OpenPKG.
    - jbj: merge "support-external-download-command" patch from OpenPKG.
    - jbj: merge "support-srcdefattr" patch from OpenPKG.
    - jbj: fix: RPMTAG_NVRA w .src/.pubkey in error msg is bogus.
    - jbj: permit noarch sub-packages. Pattern match guaranteee next ...
    - rpm.org: Enhance error message on failed ts lock acquire (rhbz#427064).
    - jbj: fix the rpm.org memory leak.
    - rpm.org: Don't use static buffers to communicate between funcs, avoid buffer overflows.
    - rpm.org: Use more meaningful variable names than res2 and res3.
    - rpm.org: Make signature verification result not depend on rpm verbosity level, ick.
    - rse: upgraded build environment to use GNU libtool 2.2.2
    - rse: replace %as format specifier with malloc(3) plus %s under non-GLIBC sscanf(3)
    - rse: various code cleanups related to pre-processor macros and C types
    - rse: step back to the LZMA SDK 4.32 (which is identical to LZMA SDK 4.57), but with the rpm5.org cleanups still applied
    - rse: resolve type conflict between Zlib and Lzma after upgrade to latest LZMA SDK 4.40
    - jbj: rpmdigest: s/--all/--alldigests/ w rpmio "make check".
    - jbj: fix: segfault from clobbering RPMMIRE_STRCMP mode w platform string.
    - proyvind: update to latest lzma sdk (4.40)
    - rpm.org: Avoid entirely unnecessary static buffer + string copy.
    - jbj: fix: reverse arrows on erasure dependency graph.
    - rse: provide the necessary pre-processor macros to allow misc/err.h to compile with Sun Studio 12 under Solaris 10
    - jbj: rpmrepo: be kind to the sqlite3 deprived.
    - jbj: rpmrepo: cleanly separate SQL representation from execution.
    - jbj: rpmrepo: populate other.sqlite with live data.
    - jbj: rpmrepo: populate filelists.sqlite with live data (w schema hackery).
    - jbj: rpmrepo: populate primary.sqlite with live data.
    - jbj: add :sqlescape for use in SQL statements generated by --qf.
    - jbj: rework --yum:primary.sqlite to include quoting.
    - jbj: add header extensions similar to xml for sql.
    - jbj: rename the primary.xml et al header extensions, adding "xml".
    - jbj: add :utf8 format conversion, use with :cdata format too.
    - jbj: rpmrepo: unsnarl the data from the methods.
    - jbj: rpmrepo: populate repomd.xml.
    - jbj: rpmrepo: populate other.xml, add --yum:other.xml alias.
    - jbj: rpmrepo: populate filelists.xml, add --yum:filelists.xml alias.
    - jbj: rpmrepo: populate primary.xml.
    - jbj: rpmdb: fix: initialize mireRegexec() pattern match buffers.
    - jbj: set the values for the blanks while reading a package.
    - jbj: add get/set methods to fill in remaining blanks in XML mark up.
    - jbj: add :cdata format to permit strings to be included in XML CDATA.
    - jbj: add --yum:primary popt alias to spew a primary.xml approximation.
    - jbj: add header extensions for primary.xml <rpm:entry> markup.
    - jbj: rpmfi: add 2 getter(s) and an additional (stubbed) iterator method.
    - jbj: rpmmtree: functional multi-rooted specifications and verification.
    - rse: fix macro option/argument parsing (again), this time by using POPT_CONTEXT_POSIXMEHARDER
    - afb: fix endianness detection when compiling Mac OS X Universal Binaries.
    - jbj: install rpmmtree in bindir, its at least as functional as mtree(8).
    - jbj: add rpmmtree (from mtree(8) in OpenBSD).
    - jbj; revert the unhelpful & pugly __attribute__((__unused__)) UNUSED() macro.
    - jbj: add -Wno-missing-field-initializers -Wno-unused-parameter to stop spew.
    - jbj: QNX: retrofit u_int32_t typedef where needed.
    - jbj: add random arch name feelgood fluffiness (#432496).
    - jbj: prepare for Fedorable dependency loops (#437041).
    - rse: upgraded from GNU libtool 1.5.x to 2.2
    - jbj: rpmtar: use (if built) rpmtar feeble tests in "make check".
    - jbj: rpmtar: splint annotations.
    - jbj: rpmtar: nuke ttar.c/tdeb.c prototypes for rpmtar.
    - jbj: rpmtar: abuse --format {ar,cpio,tar,ustar} as a selector for now.
    - jbj: rpmtar: lash in -z/-j/-y/-Z compression options using popt.
    - jbj: rpmtar: add stoopid file suffix detector for gzip/bzip2/lzma detect.
    - jbj: rpmtar: abandon rpmtar -cvf for now, noop tar_mode_c().
    - jbj: rpmtar: move getdate.y lib -> rpmio for rpmtar linkage.
    - jbj: mark write padding for possible refactoring to common code.
    - jbj: ar: verify archive magic.
    - jbj: ar: arSetup is only needed when creating archives. read EOF is wonky.
    - jbj: verify that cpio/tar payloads can be created and installed.
    - jbj: psm: fix: adding ar payloads broke install payload detection.
    - jbj: use _IOSMRC macro to ensure read/write rc are handled consistently.
    - jbj: make sure cpio/tar/ar are as similar as possible.
    - jbj: keep tar.c parallel to ar.c coding conventions. cpio.c next.
    - jbj: clean up most rpmio gcc -W warnings.
    - jbj: clean up iosm/fsm gcc -W warnings.
    - jbj: enable gcc -W warnings, fix most of the no-brainers.
    - jbj: iosm: init file contexts during setup, not with missing dirs.
    - jbj: iosm: add iosm->{nofdigests,nofcontexts} to avoid rpmts access.
    - jbj: iosm: increase rdbuf/wrbuf size to 128K.
    - jbj: iosm: better fix: use fi->isSource. use IOSM_MAP_{UID,GID} not yet...
    - jbj: poptIO: move --usecrypto from poptALL.
    - jbj: poptIO: fix: leave macro handling in poptALL.c for now.
    - jbj: iosm: fix: don't call headerIsEntry().
    - jbj: fix: --eval was expanding twice (dueling poptIO <-> poptALL tables.)
    - afb: avoid using the freed (realloced) value of msg for logging callback.
    - afb: configure the path to the magic file, avoids external file assert().
    - afb: silence automake warnings about using variables with special meaning.
    - proyvind: add rpm 4 API compatibility wrapper (currently adds support for at least urpmi, apt-get, ruby-rpm, rpmstats, rpmtools, & deltarpm)
    - jbj: pass low-level stateless operations from fsmStage -> iosmStage.
    - jbj: chain poptcliAllPoptTable -> rpmioAllPoptTable, start removing dupes.
    - jbj: fsm: simplify fsm.c => rpmte.h dependency.
    - jbj: perl: fix: include rpmio.h before rpmlib.h (for rpmRC returns).
    - jbj: start creating I/O State Machine(IOSM) in rpmio/iosm.c.
    - jbj: verify.c: use rpmProblemGetAltNEVR() to make rpmProblem opaque.
    - jbj: fsm: use rpmfi iterators in several loops.
    - jbj: rpmfi: add rpmfiSetHeader() so verify.c doesn't need _RPMFI_INTERNAL.
    - jbj: rpmdav: refactor davOpendir et al on top of avOpendir.
    - jbj: handle (GNU-style) ar(1) long member names.
    - jbj: permit ar(1) payloads (file names are truncated atm).
    - jbj: rpmmg: fix: avoid false failure using <pcreposix.h>.
    - jbj: macro: use popt rather than getopt(3), get rid of POSIXLY_CORRECT.
    - jbj: rpmio: splint fiddles.
    - rpm.org: Rip ancient, unused setperms + unsetgid make targets.
    - rpm.org: Add %{sources} and %{patches} macros to build.
    - rpm.org: Remove some ancient dead code.
    - jbj: fix: eliminate librpmdb->librpm from dosetenv, use setenv(3) instead.
    - jbj: fix: rpmtsCheck non-zero return doesn't print failed build deps.
    - jbj: handle mireRegexec return change internal to rpm code.
    - jbj: mire: change mireRegexec() return: >=0 match, -1 nomatch, else error.
    - jbj: rpmgrep: start untwisting PCRE from rpmgrep (broken w/o PCRE atm).
    - jbj: rpmgrep: add --stats benchmark insturmentatian (patterns soonishly).
    - jbj: rpmdigest: add --stats benchmark insturmentation.
    - jbj: rpmio: add common --stats option.
    - proyvind: add some extra functionality to gendiff (ancient Mandriva patch by Chmouel Boudjnah)
    - pixel: do check free size when bavail is 0
    - jbj: add variadic checks, remove warnings.
    - jbj: refactor rpmcliErase to use same code as rpmtsInstall.
    - jbj: fix: rpmtsCheck non-zero return prevents --erase.
    - jbj: fix: avoid {pre,post}trans scrareMem assert failure.
    - jbj: rpmio: add self-consistent rpmdigest --all verify test.
    - jbj: rpmdigest: do algo name -> number with optionsTable instead.
    - jbj: rpmio: add rpmdigest checks, fix some obvious deficiencies.
    - rpm.org: make find-lang --with-gnome picks up omf files (rhbz#251400)
    - jbj: rpmdigest: add digest verification from manifests a la coreutils.
    - jbj: rpmio: increase no. of digests from 4 => 32 for rpmdigest --all.
    - jbj: rpmio: ops, actually add rpmdigest.c.
    - jbj: refactor digest algorithm popt tables into poptIO.[ch].
    - jbj: move rpmdigest tools/ -> rpmio/ for "make check" purposes.
    - jbj: use Realpath(3) so that RPMTAG_PACKAGEORIGIN has absolute path.
    - jbj: rpmio: add Realpath(3).
    - jbj: fix: header ext for PACKAGEORIGIN needs xstrdup.
    - jbj: use header ext to permit %{PACKAGEORIGIN} for -qp to show *.rpm path.
    - jbj: mire: make mireClean mode specific. PCRE additions aren't initialized
    - jbj: doxygen: make a pass removing many warnings ...
    - jbj: rpmio: tglob added to EXTRA_PROGRAMS.
    - jbj: add rpmgrep.c and poptIO.c to PO and doxygen file lists.
    - jbj: sync translations (Translation Project).
    - jbj: add "make updatepo" to simplify PO file maintenance.
    - rpm.org: Improve header i18n locale matching.
    - jbj: url: parse ?query#fragment from URI's.
    - jbj: mire: add mireLoadPatterns() routine.
    - jbj: mire: add mireAppend() routine.
    - jbj: mire: add mireApply() and mireFreeAll() routines.
    - jbj: rpmgrep: attempt LZMA decompress with ".lzma" suffix.
    - jbj: rpmgrep: apply multiple --include/--exclude patterns to paths.
    - jbj: rpmgrep: permit multiple --file, --exclude, and --include options.
    - jbj: rpmgrep: collapse option booleans into a grepFlags bit set.
    - jbj: rpmgrep: fix last 2 "make check" failures.
    - jbj: rpmgrep: install in bindir with man page.
    - rpm-maint: fix: limit exit codes to 254 to keep xargs happy.
    - jbj: mire: add vallen argument to mireRegexec().
    - jbj: borrow pcregrep.c from pcre-7.6, rename as rpmgrep.c.
    - jbj: rpmio: use tmire.c, not -DSTANDALONE, so librpmio doesnt rebuild.
    - jbj: rpmio: add tmire to noinst_PROGRAMS.
    - jbj: rpmio: add --regex/--pcre/--fnmatch/--strcmp tmire match options
    - jbj: mire: add RPMMIRE_PCRE for the pcre(3) inclined.
    - jbj: tweak up tmire with rpmioAllPoptTable.
    - jbj: rpmio: add global __debug to use common rpmioAllPopt --debug option.
    - jbj: use poptIO with rpmio noinst_PROGRAMS.
    - jbj: rpmio: clone poptIO.[ch] from poptALL.c for rpmio noinst_PROGRAMS.
    - jbj: rpmcli: remove duplicate nolibio entry in poptALL.c
    - jbj: permit %{___NVRA} to parameterize the displayed NVRA while installing.
    - jbj: create %___NVRA to split external <-> internal package names.
    - rpm.org: Mass convert (back) to rpmTag as it's usable everywhere now
    - rpm.org: Use rpmSigTag enum for signature tags everywhere, more or less..
    - jbj: import a modified copy of testHTML.c from libxml2.
    - rpm.org: make gendiff sort the file list, so comparing the results is easier.
    - jbj: rpmio: test programs link only -lrpmio -lrpmmisc.
    - jbj: map tdir/tglob/tfts errors into exit codes.
    - jbj: dav{Stat,LStat,Opendir) return ENOENT with malformed URI (including
no pesky trailing /).
    - jbj: rpmdav: fix: supply davOpendir->davHEAD a statbuf to avoid tdir/tfts
segfaults on plain http. (only . and .. in directory).
    - jbj: tweak up tglob debugging spew, add a Glob(3) stopwatch.
    - jbj: tweak up tget debugging spew, trick in a Stat(2) on path,
add Stat(2)/Fread(3) stopwatches, display same as "ls -island" output.
    - proyvind: python: add back RPMSENSE_FIND_REQUIRES, needed by rpmlint
    - jbj: use hashFunctionString on URI path for st->st_ino/dp->d_ino values.
    - jbj: rpmhash: expose hash{Equality,Function}String routines.
    - jbj: tweak up tdir debugging spew, add a Opendir(3) stopwatch,
append pesky /.
    - jbj: tweak up tfts debugging spew, add a Fts(3) stopwatch, append pesky /.
    - jbj: rpmsw: add rpmswPrint to display stopwtch results.
    - jbj: rpmdav: fix: check the pesky trailing '/' on collections correctly.
    - jbj: rpmdav: add _dav_noption OPTIONS disabler, cache 1st result from URI.
    - proyvind: trim multiple slashes from buildroot for check-files script (from Nanar/Olivier Thauvin)
    - proyvind: make rpmdb cpp compliant (from spturtle/Christiaan Welvaart)
    - jbj: "+bing": glob'd directory roots need trailing '/' for DAV URI's.
    - jbj: "+bing": fix: check for glob'd directory roots before traversing.
    - jbj: rpmio: rescuscitate tglob.c.
    - jbj: rpmio: rescuscitate tdir.c.
    - jbj: rpmio: fix: cvtfmode access beyond end-of-string with "r" fmode.
    - jbj: rpmio: rescuscitate tget.c.
    - jbj: fix: (again) rpmtsCheck() needs to return 1 when problems exist.
    - jbj: install rpmcache in bindir, not pkglibdir.
    - jbj: fix: Fopen: heh, I swear I had a rpmExpand() on fmode somewhen ...
    - jbj: rpm.spec: nuke the xar.1 man page.
    - jbj: rpmrpc: split stat(2) prints so valgrind can detect uninitialized.
    - jbj: rpmcache: fix: don't check fo ".i386" suffix if name is too short.
    - jbj: rpmcache: use file:///, not clunkier file://localhost/, url.
    - jbj: rpmcache: add --cache opt-in, rather than --nocache opt-out, for now.
    - proyvind: add sparcv9v2 (Niagara 2) architecture
    - proyvind: add arch macros for alpha and sparc
    - afb: workaround for "uuid_t" type conflict, between <unistd.h> and "uuid.h"
    - jbj: fix: python: re-add rpm.archscore() for smart depsolving usage.
    - jbj: test for POPT earlier to avoid popt being blamed for neon configure failures.
    - jbj: add --with-uuid=external, --with-pcre=external to devtool "system".
    - rse: ensure that RPM Lua function util.rsplit("", ...) returns an empty table
    - jbj: "+bing" -- handle no *.rpm package found condition correctly.
    - jbj: "+bing" -- limit Fts(3) recursion to target directory traversal only.
    - jbj: "+bing" -- define "%NEVRA bing" on-the-fly for use by glob patterns.
    - jbj: "+bing" -- permit colon separated glob directory patterns.
    - jbj: macro.c: include rpmuuid.h to remove warning.
    - jbj: macro.c: add %{!?load:...} syntax, display error if %{load:...} fails.
    - jbj: updated sv.po (Translation Project).
    - jbj: fix: permit #%patchN comments by forcing single line expansion.
    - jbj: document newer macro builtins (%{@foo:...}, %{uuid:...}, and %{lua:...} todo).
    - jbj: fix: poldek in PLD needs replacement for headerGetRawEntry().
    - jbj: add rpmcliWalkFirst() to search (possibly multiple) dirs.
    - rse: add _rpmgi_pattern_{glob,regex} macros for "+N" arg-to-path rewrite.
    - jbj: functional "+N-V-R.A" path-to-repository expansions with -i/-U.
    - jbj: mire.c: add STANDALONE test exerciser.
    - jbj: use struct timeval timestamp for INSTALL{TID,TIME} and ORIGIN{TID,TIME}.
Note: TID.usec field is always 0 atm.
    - rse: add new RPM macro "%{uuid:[<version>[, <ns>, <data>]]}" for generating UUIDs of version 1, 3, 4 or 5
    - rse: add new C API function rpmuuidMake() for generating UUIDs of version 1, 3, 4 or 5
    - rse: provide both ORIGINTIME (based on INSTALLTIME) and ORIGINTID (based on INSTALLTID)
    - jbj: pedantic identification of Foo (not foo) syscalls in --fsmdebug spew.
    - jbj: fix: --rollback PSM_INIT changes added fstates before initialize.
    - rse: ensure macro option parsing is done correctly also under GLIBC by not allowing option/argument permutations
    - jbj: retrieve old originTime earlier to include identical package replace.
    - jbj: fix: functional "-N-V-R.A" erasures-within-upgrade transactions.
    - jbj: fix: retrieve originTime from old, not new, header.
    - jbj: permit "-N-V-R.A" erasure args within install/upgrade transactions.
    - jbj: propagate the time a package was first installed through upgrades (available via tag "ORIGINTIME").
    - jbj: replace sr.po from translation project.
    - jbj: fix: rpmtsCheck() needs to return 1 when problems exist.
    - rse: (again) replace u_int32_t with uint32_t to be consistent across the code base
    - jbj: use RPM_OS_NTOQNX as manifest constant.
    - jbj: updated nl.po (Translation Project).
    - rpm.org: Missing space in russian translation (mdvbz#36974).
    - rpm.org: Quote find-debuginfo builddir to avoid whitespace issues.
    - jbj: generalize to verify(*) => -Va and verify(/path) => -Vf /path.
    - jbj: fix: no output performing verify(...) probe.
    - jbj: fix: insure valid exit code for verify(...) probe.
    - jbj: add verify(N) = E:V-R runtime dependency probe. more to do ...
    - jbj: stub in RPMTAG_FILESTAT and RPMTAG_STAT extensions, w-i-p.
    - jbj: re-add PayloadFilesHavePrefix/CompressedFileNames w --lsb.
    - rse: provide %{shrink:<body>} macro for removing leading+trailing and removing intermediate whitespaces
    - rse: allow sub-shell and Lua independent speedy lookup of environment variables via %{getenv:<name>} in macros
    - jbj: QNX needs defines for fts.c.
    - rse: upgrade from Lua 5.1.2 to Lua 5.1.3 (external and internal)
    - jbj: include <pthread.h> everywhere.
    - jbj: rpmsq.h doesn't need pthread condvar/mutex any more.
    - jbj: QNX does not have insque/remque.
    - jbj: QNX does not have d_off.
    - rse: add RPM Lua function rpm.debug() to complement rpm.verbose()
    - mej: catch EOF returned as RPMRC_NOTFOUND correctly.
    - rse: add support for QNX by adjusting to its 3-parameter based makedev(2)
    - jbj: resurrect rpm.spec.in.
    - jbj: fix: permit %{lua:...} to recurse.
    - rse: allow to compile without <langinfo.h> and its nl_langinfo(3)
    - rse: provide RPM Lua function posix.glob(<pattern>)
    - rse: make older C compiler happy by not declaring a variable in the middle of a block in rpmconstant/constant.c
    - rse: let RPM Lua init procedure load all init scripts configured with new Autoconf option --with-path-rpmlua
    - rse: fix Autoconf procedure by running python(1) based checks only under --with-python
    - rse: provide RPM Lua function rpm.realpath(<path>) to complement RPM macro %{realpath:<path>}
    - rse: unconditionally provide RPM Lua functions posix.{setenv,unsetenv}
    - jbj: proof-of-concept rpmbuild --lsb implementation. ptooey!
    - jbj: unbreak rpm-python, preserve existing symbol in released versions.
    - jbj: fix several typos noticed by the translation project.
    - jbj: add --noautoreq/--noautoprov options to rpmbuild.
    - proyvind: Rename rpmcliImportPubkey() -> rpmtsImportPubkey() (from and for a hint of rpm.org API compatibility;)
    - proyvind: expose more functions in rpmps API (as rpm.org, initially based on us ;p)
    - jbj: fix: plug memory leak with digest algos array.
    - jbj: fix: --relocate no longer needs to copy dirIndexes data.
    - proyvind: make perl install directory overriddable from configure as an argument (--with-perl=vendor/site)
    - proyvind: fix install location of man pages for perl bindings
    - proyvind: fix install location of pkgconfig & python bindings (lib64 fix)
    - jbj: don't follow symlinks using chown/chgrp from --setugids pipe.
    - jbj: sync *.po with the translation project (sr@latin.po needs work).
    - rse: add a RPM Lua function rpm.sleep() as a trivial frontend to sleep(3)
    - rse: fix PGP clearsign signature verification by correctly skipping RFC2440 "dash-escapes"
    - rse: fix line-continuation handling in macro definition parsing
    - rse: implement RPM Lua function util.textwrap() for auto-wrapping junks of larger text messages
    - rse: upgrade RPM Lua functions util.rmatch(), util.rsubst() and util.rsplit() to new lrexlib 2.2
    - rse: upgrade the RPM Lua extension lrexlib from ancient version 1.1x to latest version 2.2
    - jbj: permit opt-in network access using %_rpmgio macro.
    - jbj: fix: deny rpmioSlurp network access (like all other Fopen call's).
    - rse: add RPM Lua function rpm.slurp() for slurping in the whole content of a file or an URL
    - rse: add OSSP uuid support to RPM Lua via functions uuid.generate() and uuid.describe()
    - rpm.org: Assorted int -> size_t corrections for string lengths.
    - rpm.org: More assorted int -> size_t uses.

=============================================================================

5.0.3 -> 5.0.4:
    - jbj: QNX: retrofit u_int32_t typedef where needed.
    - jbj: add random arch name feelgood fluffiness (#432496).
    - jbj: prepare for Fedorable dependency loops (#437041).
    - proyvind: add more compatibility adaptions to rpm4 compatibility wrapper (making deltarpm & ruby-rpm work)
    - proyvind: add rpmfiBuildFNames() to rpm4 compatibility wrapper (needed by rpmstats)

5.0.2 -> 5.0.3:
    - proyvind: add rpm 4 API compatibility wrapper (urpmi & apt-get succesfully ported with this so far \o/)
    - afb: python: backport fix for rpm.archscore() and add rpm.platformscore().
    - jbj: fix: eliminate librpmdb->librpm from dosetenv, use setenv(3) instead.
    - jbj: fix: rpmtsCheck non-zero return doesn't print failed build deps.
    - proyvind: add some extra functionality to gendiff (ancient Mandriva patch by Chmouel Boudjnah)
    - pixel: do check free size when bavail is 0
    - jbj: refactor rpmcliErase to use same code as rpmtsInstall.
    - jbj: fix: rpmtsCheck non-zero return prevents --erase.
    - jbj: fix: avoid {pre,post}trans scrareMem assert failure.
    - rpm.org: make find-lang --with-gnome picks up omf files (rhbz#251400)
    - proyvind: python: add back RPMSENSE_FIND_REQUIRES, needed by rpmlint
    - proyvind: trim multiple slashes from buildroot for check-files script (from Nanar/Olivier Thauvin)
    - proyvind: make rpmdb cpp compliant (from spturtle/Christiaan Welvaart)
    - jbj: fix: (again) rpmtsCheck() needs to return 1 when problems exist.
    - rse: add support for QNX by adjusting to its 3-parameter based makedev(2)
    - proyvind: add sparcv9v2 (Niagara 2) architecture
    - proyvind: add arch macros for alpha and sparc

5.0.1 -> 5.0.2:
    - jbj: fix: python: re-add rpm.archscore() for smart depsolving usage.
    - jbj: backport %{shrink:...} and %{getenv:...} builtin macros.
    - jbj: updated sv.po (Translation Project).
    - jbj: fix: permit #%patchN comments by forcing single line expansion.
    - jbj: document newer macro builtins (%{@foo:...}, %{uuid:...}, and %{lua:...} todo).
    - jbj: fix: poldek in PLD needs replacement for headerGetRawEntry().
    - rse: ensure macro option parsing is done correctly also under GLIBC by not allowing option/argument permutations
    - jbj: pedantic identification of Foo (not foo) syscalls in --fsmdebug spew.
    - jbj: fix: --rollback PSM_INIT changes added fstates before initialize.
    - rse: allow to compile without <langinfo.h> and its nl_langinfo(3)

5.0.0 -> 5.0.1:
    - jbj: replace sr.po from translation project.
    - rse: fix Autoconf procedure by running python(1) based checks only under --with-python
    - jbj: fix: rpmtsCheck() needs to return 1 when problems exist.
    - jbj: use RPM_OS_NTOQNX as manifest constant.
    - jbj: updated nl.po (Translation Project).
    - jbj: resurrect rpm.spec.in.
    - jbj: automake for xar internal.
    - jbj: re-add PayloadFilesHavePrefix/CompressedFileNames w --lsb.
    - jbj: QNX needs defines for fts.c.
    - jbj: include <pthread.h> everywhere.
    - jbj: rpmsq.h doesn't need pthread condvar/mutex any more.
    - jbj: QNX does not have insque/remque.
    - jbj: QNX does not have d_off.
    - jbj: proof-of-concept rpmbuild --lsb implementation.
    - mej: catch EOF returned as RPMRC_NOTFOUND correctly.
    - jbj: fix: permit %{lua:...} to recurse.
    - jbj: unbreak rpm-python, preserve existing symbol in released versions.
    - jbj: fix several typos noticed by the translation project.
    - proyvind: Rename rpmcliImportPubkey() -> rpmtsImportPubkey() (from and for a hint of rpm.org API compatibility;)
    - proyvind: expose more functions in rpmps API (as rpm.org, initially based on us ;p)
    - jbj: fix: plug memory leak with digest algos array.
    - jbj: fix: --relocate no longer needs to copy dirIndexes data.
    - proyvind: make perl install directory overriddable from configure as an argument (--with-perl=vendor/site)
    - proyvind: fix install location of man pages for perl bindings
    - proyvind: fix install location of pkgconfig & python bindings (lib64 fix)
    - proyvind: fix install location of rpm.pc (lib64 fix)
    - jbj: don't follow symlinks using chown/chgrp from --setugids pipe.
    - jbj: sync *.po with the translation project (sr@latin.po needs work).
    - rse: fix PGP clearsign signature verification by correctly skipping RFC2440 "dash-escapes"
    - rse: fix line-continuation handling in macro definition parsing
    - jbj: permit opt-in network access using %_rpmgio macro.
    - jbj: fix: deny rpmioSlurp network access (like all other Fopen call's).
    - rpm.org: Assorted int -> size_t corrections for string lengths.
    - rpm.org: More assorted int -> size_t uses.

---- 5.1 FORK POINT ----

5.0b4 -> 5.0.0:
    - rse: final polishing of NEWS document
    - rse: align "rpm [--verbose] --version" output with the syntax used in mostly all GNU tools nowadays
    - mgh: allow --ignoresize when doing an erase
    - rse: fix database configuration for recently added indices "Nvra" and "Sourcepkgid"
    - jbj: differentiate %warn and %error (now stops) behavior (from openpkg).
    - jbj: merge %{realpath:...}. won't hurt a thing (from openpkg).
    - jbj: set macro_BUFSIZ as 16K independent of BUFSIZ (from openpkg).
    - rse: add RPM Lua function util.rsplit() for flexibly splitting strings into tokens based on regex
    - rse: add rpmlogGetCallback() function to allow one to restore the complete rpmlog() callback information
    - rse: add rpmluaGetGlobalState() function to allow foreign code to further extend the RPM Lua environment
    - rse: add RPM Lua function rpm.verbose() to be able to check CLI option --verbose
    - rse: add often required RPM Lua convenience function util.slurp()
    - rse: add PCRE to "devtool standalone" procedure
    - rse: make RPM configuration in "devtool standalone" procedure more flexible

5.0b3 -> 5.0b4:
    - jbj: fix: calculate clearsign'd text digests correctly.
    - jbj: fix: display RPMRC_NOKEY failures explicitly.
    - jbj: rip --predefine entirely, add comment re macro added both global/CLI.
    - jbj: link tpgp against rpmnsProbeSignature() instead.
    - jbj: add (hidden) --usecrypto option.
    - jbj: add a (unused) flags arg to rpmnsProbeSignature.
    - jbj: change rpmnsProbeSignature to return rpmRC (note: success is 0 now).
    - jbj: add --rpmnsdebug to see rpmnsProbeSignature() spew.
    - jbj: permit URI's in signature(...) arguments.
    - jbj: fix: argvSplit was doing ltrim and skipping spans of seperators.
    - rse: improve RPM Lua function util.rsubst(): perform repeated substitutions and honor prolog/epilog parts
    - jbj: re-add all the debugging spew under --rpmnsdebug for now.
    - jbj: functional signature(...) name space probe.
    - jbj: add rpmnsProbeSignature() & "signature(/text:/sig) = /pub:id" probe.
    - jbj: pgpReadPkts: truncate binary encoded pgp pktlen to actual length.
    - jbj: pgpReadPkts: identify binary encoded pgp pkts correctly.
    - jbj: fix: remove unused assertion.
    - jbj: fix: undo deliberate damage from rpm's RHL8 security audit. ptooey!
    - rse: allow assertion of a particular GnuPG signing key via "gnupg(<path>) = <fingerprint>" in dependencies
    - rse: fix invocaction of GnuPG's gpg(1) command for gnupg(<path>) dependency assertions
    - afb: hide the rpmlib Version/Timestamp/Vendor markers spew unless verbose.
    - rse: fix %{@foo} macro stack expansion including also the value at the stack bottom
    - rse: remove the confusing additional --predefine behaviour when --define is used as the first CLI option
    - jbj: simplify expandFIFO().
    - jbj: use "\n", not ",", as the default for %@foo expansion.
    - jbj: fixup %{@foo:, } per rse comments.
    - jbj: convert %{@foo:|} to "foo|bar|quux" tuple. %@foo assumes CSV comma.
    - rse: implement "rpm --undefine <macro>" as the counterpart to "rpm --define '<macro> <value>'"
    - afb: added %__objext,%__libext,%__shlibext,%__exeext for file extensions.
    - rse: make size of line buffer for .spec file parsing run-time configurable via macro _spec_line_buffer_size
    - rse: improve %patch macro implementation: less expansion redundancy and macro namespace collision avoidance
    - rse: fix %{uncompress:<file>.lzo} by passing the required "-dc" options to LZOP's lzop(1)
    - rse: fix %{uncompress:<file>.lzma} by passing the required "-dc" options to LZMA Utils' lzma(1)
    - rse: support arbitrary hash algorithm via the originally intended syntax "digest([<algorithm>:]/path) = hex"
    - rse: compare MD5 hex value on "digest(/path) = hex" dependency case-insensitive to be less restrictive in syntax
    - rse: merge scripts/lua-dump.lua directly into lua/local/llocal.lua to make it always easily available
    - rse: add local Lua functions util.rmatch() and util.rsubst() for regex matching/substitution
    - rse: improve rex.new Lua object by using PCRE if possible and fallback to POSIX regex only
    - rse: fix loading of "local" Lua extension: it has to come after the other extensions as uses them
    - rse: add error handling to the Lua script loading code generated by bin2c
    - rse: add an RPM Lua function rpm.load() for loading external RPM macro definition file
    - rse: provide RPM Lua function rpm.undefine() based on the C function rpmUndefineMacro
    - rse: provide rpmUndefineMacro API function to complement the existing rpmDefineMacro API function
    - rse: add scripts/lua-dump.lua, a recursive dumper for Lua data structures
    - rse: fix parsing of the table key in RPM Lua function rpm.macros()
    - rse: add an RPM Lua function rpm.source() for loading and executing external Lua script file
    - rse: output "Fetching(SourceX): <url>" to clearly indicate that something is fetched remotely
    - rse: try to download missing source files from remote location only if %{_Rxxxx} is really defined
    - jbj: permit rpm -q --qf '%{track}\n' --specsrpm foo.spec queries.
    - jbj: fix: supply additional indentation for forced array[1] with --yaml.

5.0b2 -> 5.0b3:
    - afb: make find-lang.sh work with sed that doesn't have \+ in regexps.
    - afb: make sure to dereference symlinks for the python library paths.
    - jbj: fix: permit -bt on specfiles w/o %track, remove an assertion.
    - rse: fix paths to stringbuf.[ch]
    - pixel: fix http://qa.mandriva.com/show_bug.cgi?id=27417.
    - jbj: expedient fix for http://qa.mandriva.com/show_bug.cgi?id=31680.
    - jbj: functional rpmbuild -bt foo.spec (if %track is present in foo.spec).
    - jbj: fix: insure that %{name} is expanded correctly in srpm paths.
    - jbj: using tagValue() rather than tagGenerate() permits changing the tagno
to & from arbitrary transparent. likely more needs doing.
    - jbj: reimplement %track as an arbitrary section.
    - jbj: generalize tagStore to keep track of arbitrary tag name/content.
    - jbj: move stringbuf lib -> rpmio for use by tagStore.
    - jbj: preliminaries for %foo arbitrary section parsing (not added yet).
    - jbj: start using rpmParseState typedef rather than int.
    - jbj: fix: explicitly add mkdir -p to spec_install_pre.
    - jbj: explicitly compare against PART_NONE, avoid RPMRC_FOO collisions.
    - jbj: fold in patch-as-plain-macro changes.
    - jbj: fix some minor memory leaks.
    - jbj: XAR magic is detected when reading packages, --xar is superfluous.
    - jbj: eliminate development construction scaffholding.

5.0b1 -> 5.0b2:
    - rse: DJBX33A hash with unrolling is more better (no need to measure).
    - afb: made it compile on Cygwin too.
    - jbj: add Foo:Bar:Baz indices for now.
    - jbj: permit arbitrary tags to be indexed by "Name", not Tag_0x12345678.
    - jbj: permit tag aliases in rpmdb index names (Filedigests <-> Filemd5s).
    - jbj: remember (and use) the configured dbi names, not tagName() returns.
    - jbj: fix: configure rpmdb indices using Filedigests, not older Filemd5s.
    - jbj: insure that he->tag is set for use by format extensions.
    - rse: do not segfault on invalid usages like "rpm -qa '!name=foo'"
    - jbj: fix: explicit rpmtsOpenDB on -Kvv code paths.
    - jbj: more bleeping newlines.
    - jbj: put newlines back into the format now that rpmpkg msgs don't supply.
    - rpm.org: Add getter methods for rpmlogRec items (message + level).
    - jbj: another attempt to identify the RPM_I18NSTRING_TYPE flaw.
    - jbj: attempt to measure performance improvement using binary tag search.
    - jbj: trade an I18NSTRING assert failure for a memory leak for the moment.
    - jbj: push rpm2cpio w-i-p into cvs, try to measure linear <-> bsearch win.
    - rpm.org: Logging enhancements (not the best fix, much more needs doing).
    - rpm.org: Make rpmLogRec opaque.
    - rpm.org: Fix misleading indentation.
    - rpm.org: Add python method for for retrieving (without setting) ts vsflags.
    - jbj: re-enable preferring rpmnss (if WITH_NSS is defined).
    - jbj: fix: --rebuilddb needs an explicit open for Pubkeys lookup.
    - rpm.org: Register the new SCRIPT_ERROR callback value to python.
    - jbj: leave behind the heavy duty debugging goop for the next --qf buggery.
    - jbj: fix: consume the escaped character after copy, wotta pita.
    - jbj: simplify *Format routines, he->p is now reliably populated and const.
    - jbj: rewrite shescapeFormat to count # escapes needed, not sloppy realloc.
    - jbj: add debugging hack to test a hypothesis re rpm-5.0beta1 segfault.
    - jbj: Leopard claims to have functional stat64. Let's find out ...

5.0a4 -> 5.0b1:
    - rpm.org: Yet More RPMRC_OK returns from functions.
    - rpm.org: use RPMRC_OK, not 0, returns in many functions.
    - rpm.org: @return, not @returns, in doxygen markup.
    - rpm.org: Don't do tilde expansion if HOME not set.
    - rpm.org: Add RPMCALLBACK_SCRIPT_ERROR callback type (not the best fix).
    - jbj: relax the current header sanity checks, permit 1Gb headers.
    - jbj: refactor some final \n out of msgs into rpmlog format instead.
    - jbj: add global pgpDigVSFlags, nuke unused pgpDig{Get,Set}VSFlags.
    - jbj: punt on minor issues for beta1.
    - jbj: rpm2cpio: fail http/https transport attempts with error.
    - jbj: install /usr/bin/rpm2cpio executable.
    - jbj: install /usr/lib/rpm/rpm2cpio shell script.
    - jbj: install /usr/lib/rpm/vcheck.
    - jbj: RPMTAG_TRACK tag is being added to srpms.
    - jbj: fix: display canonical "Headeri18ntable" tag name correctly.
    - jbj: pop RPMTAG_TRACK work-in-progress into CVS. push "segfault on HEAD".
    - jbj: stub in Requires: sanitycheck(N) probe. needs to run the script, duh.
    - jbj: drill sanitycheck exec into psmStage() like %verifyscript.
    - jbj: --rebuilddb has too many NOKEY's using rpmnss. use rpmbc in beta1.
    - jbj: fix: rpmbuild --sign needed to test for password entry.
    - jbj: display the rpmlib Version/Timestamp/Vendor markers lest I forget.
    - jbj: macro expand all scriptlet bodies before execution. W00t!
    - jbj: populate RPMTAG_BUILDMACROS. implementation took 6+ years ...
    - jbj: add %sanitycheck scriptlet to packages. more wiring needed todo++.
    - jbj: add %track section/scriptlet. Hmmm, not in *.rpm content yet, todo++.
    - jbj: add RPMTAG_CLASS as one more spec file tag. arbitrary tag next ...
    - jbj: rpmssl.c w DSA is gud enuf to go into beta1 (but disabled/unused).
    - rse: provide --with-name=NAME Autoconf option to allow packagers to "brand" RPM
    - rse: apply all remaining OpenPKG patches -- fully disabled by default under defined(RPM_VENDOR_OPENPKG)
    - jbj: flesh out rpmssl implementation. DSA seems OK, no clue RSA yet.
    - jbj: flesh out rpmgc implementation. stil buggy ...
    - jbj: stub in rpmgc/rpmssl for gcrypt & openssl signature verification.
    - rse: add XAR support to "devtool standalone"
    - jbj: fix: s/RPM_/RPMLIB_/ in rpmversion.h.in. That should "stick" now.
    - rpm.org: credit for the original NSS hacks.
    - jbj: no-brainer AutoFu for WITH_NSS enabling, add rpmnss.[ch] to rpmio.
    - jbj: tkey indicates functional DSA verification with rpmnss.c.
    - jbj: fix: debug the stoopids in rpmnss.c.
    - jbj: eliminate dueling typdef byte, beecrypt "owns" the typedef.
    - jbj: make sure that yum can upgrade zlib-devel. Trash the DEAD code.
    - jbj: resurrect rpmMergeHeadersFromFD goop. Yah, mon, DEAD code ...
    - jbj: re-add symbols needed for rpm-python import to loader map.
    - jbj: stub in WITH_NSS define to try rpmnss. Yep, borked, but now tested.
    - jbj: complete rpmnss.[ch] implementation (untested).
    - jbj: stub in the rpmnss.[ch] implementation.
    - jbj: pluggable RSA/DSA signature verification framework.
    - rpm.org: Rename _rpmdbMatchIterator -> rpmdbMatchIterator_s.
    - jbj: split out implementation specific storage from pgpDig.
    - jbj: create rpmbc.c and rpmbc.h to hide beecrypt signature internals.
    - jbj: hide additional beecrypt RSA/DSA signature verification.
    - jbj: add toy methods to hide beecrypt RSA/DSA signature verification.
    - rpm.org: Split digest-stuff out of rpmio_internal to separate header.
    - rpm.org: Eliminate copy-paste fd digest stealing, stuff into rpmio_internal.
    - rpm.org: Add doxygen grouping to rpmte methods.
    - rpm.org: Add doxygen grouping to rpmds methods.
    - rpm.org: Lose the useless rpmrc python stuff, group macro handling to rpmmacro-py.
    - rpm.org: rpmpgp doxygen tagging.
    - rpm.org: Add bunch of missing rpmts doxygen groupings.
    - rpm.org: Move file state defs to rpmfi where they logically belong.
    - rpm.org: Move file type enums to rpmfi where it logically belongs.
    - rpm.org: Move RPMFILE_* file attributes to rpmfi.h.
    - rpm.org: Move file action enums to rpmfi where they logically belong.
    - rpm.org: Move rpmprobFilterFlag enums to rpmps where they logically belong
    - rpm.org: Move rpmtransFlags enums to rpmts.h where it logically belongs.
    - jbj: hijack rse's versioning name space, add to *.rpm packages too.
    - jbj: fix: rpmbuild -ba dir/foo.spec was broken.
    - jbj: arbitrary tags w RPM_STRING_ARRAY_TYPE default type, append assumed.
    - jbj: eliminate tagName "(unknown)" failure, return "Tag_0x12345678"
    - jbj: re-enable binary, not linear, tag lookups.
    - jbj: strip leading "RPMTAG_" prefix, in tagValue lookup.
    - jbj: test arbitrary bit, not tag lookup failure, for --yaml/--xml display.
    - afb: pass level on, to %{__lzma}.
    - jbj: revert binary search, todo++.
    - jbj: using tagValue instead permits queries of arbitrary tags.
    - jbj: do binary, not linear, search for tag name/type/value.
    - jbj: lazy arbitrary tag array initialization in rpmTags methods instead.
    - jbj: eliminate hard-wired static nameBuf for tag strings.

5.0a3 -> 5.0a4:
    - rse: provide RPM version in API via macros RPM_{VERSION,TIMESTAMP,VENDOR} and functions rpm_{version,timestamp,vendor}
    - jbj: pkgio: hdlist readers need RPMRC_NOTFOUND EOF indicator.
    - jbj: pkgio: drill in sufficient debugging to sort per/python I/O issues.
    - jbj: re-add symbols for perl "make test". hmm, headerRead failure todo++.
    - jbj: parse arbitrary tags permitted by _arbitrary_tags white list.
    - jbj: fix: renumber rpmParseState_e to avoid rpmRC error returns.
    - rpm.org: remove unnecessary includes.
    - jbj: stub in arbitrary tag methods.
    - jbj: fix: ditto, for *.src.rpm as well.
    - jbj: fix: RPMTAG_BUILDTIME is type RPM_UINT32_TYPE, not RPM_STRING_TYPE.
    - jbj: fix: getBuildTime returns uint32_t *, not uint32_t.
    - jbj: rpmbuild: more memory leak plugging.
    - jbj: rpmbuild: plug some memory leaks.
    - jbj: fix: return 0, not -1, with unsigned changes as error.
    - jbj: add HEADERGET_NOEXTENSION disabler, kill off headerGetEntry.
    - jbj: 1 down, 2 to go, to get rid of headerGetEntry.
    - jbj: limit headerGetEntry usage to -lrpmdb only.
    - jbj: Eliminate header.h and hdrinline.h.
    - jbj: insure that HE_t in headerGet/headerNext is initialized sanely.
    - jbj: python: lose rpmMergeHeaderFoo methods.
    - jbj: eliminate headerFreeData, w00t!, just free all tag data.
    - jbj: finalize headerInit/headerNext/headerFini, add to the ABI.
    - jbj: include <header.h> only where needed, doco remaining destruction.
    - jbj: finalize headerMod, add to the ABI, remove HME_t goop.
    - jbj: finalize headerDel, add to the ABI, remove HRE_t goop.
    - jbj: finalize headerPut, add to the ABI, remove HAE_t goop.
    - jbj: finalize headerGet, add to the ABI, remove HGE_t goop.
    - jbj: re-add headerSprintf to the ABI, removing wrappers/methods.
    - jbj: move headerSprintf goop out of header.c into hdrfmt.c.
    - jbj: python: hmmm, add header extensions to dictionary correctly.
    - jbj: terminate on headerTagTable sentinel, don't use rpmTagTableSize.
    - jbj: use NULL default, not rpmTagTable, arg to headerSprintf everywhere.
    - jbj: hdrfmt.c: relocate (and extend) rpmDisplayQueryTags.
    - jbj: add tag{Clean,Name,Value,Type} methods to librpmdb.
    - jbj: lose header.h in favor of rpmtag.h several places.
    - jbj: make "struct headerTagTableEntry_s" opaque.
    - jbj: rpmte.h: mark the diagnostic routines with _RPMTE_INTERNAL.

5.0a2 -> 5.0a3:
    - jbj: remove signature header padding issue from the TODO.
    - jbj: fix: --querytags as uint32, not int32, display array return type.
    - jbj: add level of chaining indirection => opaque headerSprintfExtension_s.
    - jbj: casts to remove compiler signedness warnings.
    - jbj: display 1st 8 bytes of content for XAR archive members.
    - jbj: remove newlines in pkgio messages.
    - jbj: fix: padding between signature <-> metadata headers wrong, grr.
    - jbj: rpmxar.c: rearrange the messy markup and defines.
    - jbj: remove messy HAVE_XAR_H from installed rpmxar.h include.
    - jbj: retrofit 3 needed typedef's when compiling w/o HAVE_XAR_H.
    - jbj: rescusitate txar, pass private buffer through rpmxarPush.
    - jbj: re-add rpm2cpio.c.
    - jbj: spiffy error msgs for the XAR challenged users.
    - jbj: splint fiddles for rpmxar and rpmTag.
    - jbj: bury timedRead in pkgio.c, eliminate everywhere else.
    - jbj: eliminate (unused) hPTR_t.
    - jbj: hmm, a memory leak, add doco to the TODO file.
    - jbj: eliminate hTAG_t, use "rpmTag *" instead.
    - jbj: drill rpmTag everywhere needed in header methods.
    - jbj: unsnarl header.h from everything else.
    - jbj: eliminate hRET_t, use rpmTagData instead.
    - jbj: fix: files.c: pass union ptr, not 1st element, address.
    - jbj: eliminate hTYP_t and hCNT_t typedefs everywhere.
    - jbj: fix: python: pass pgpDig, not rpmts, as 1st arg to  headerCheck.
    - jbj: fix: python: include pkgio.h for rpmpkgRead prototype.
    - jbj: fix: package.c: pass pointer to msg, not NULL, calling rpmpkgRead.
    - jbj: eliminate rpm peculier int typedefs, use stdint types instead.
    - jbj: convert all remaining uses of int_XY to stdint types.
    - jbj: revert HEADER_XARALLOCATED gloopiness.
    - jbj: functional (and leak free) -Kvv of both *.rpm and *.xar.
    - jbj: revert xar handling to rpmio model, buffer handling in rpmxar.
    - jbj: fix: add RPMRC_FAIL where needed using -Kvv.
    - jbj: functional (and leak free) queries of both *.rpm and *.xar.
    - jbj: transparently recognize XAR magic when reading.
    - jbj: eliminate rpmpkgClean, rpmxar memory free on Fclose instead.
    - jbj: use refcounted rpmxar attached to FD_t to handle xar state.
    - jbj: switch to using rpmxar instead of rpmwf most everywhere.
    - jbj: stub in rpmio/rpmxar.c xar payload extraction.
    - jbj: create rpmWriteHeader with error msg returns.
    - jbj: use rpmReadHeader with error msg returns.
    - jbj: eliminate HDRread/HDRwrite vectors.
    - jbj: revert "rebase rpmParseState_e +256", more than rebasing needs doing.
    - jbj: convert+remove headerRead() from the API, use rpmpkgRead instead.
    - jbj: rebase rpmParseState_e +256 to permit rpmRC to be returned too.
    - jbj: remove headerWrite() from the public API, use rpmpkgWrite instead.
    - jbj: convert last headerWrite to use rpmpkgWrite instead.
    - jbj: conver 2 (of 9 remaining) headerRead's to use rpmpkgRead instead.
    - jbj: add newlines to error message spew from pkgio.
    - jbj: fix: read from the input, not the output, fd.
    - jbj: bury rpmReadHeader underneath rpmpkgRead("Header", ...).
    - jbj: use the fd attached pgpDig everywhere necessary.
    - jbj: attach pgpDig to the fd being used to verify signatures.
    - jbj: splint fiddles for refcounted storage.
    - jbj: add refcounts to rpmwf and pgpDig, they're gonna be snarly.
    - jbj: eliminate the headerCheck recursion check. not seen w rpm code paths.
    - jbj: pass dig, not ts, through pkgio.c header routines.
    - jbj: eliminate 2 of 3 remaining uses of headerWrite.
    - jbj: fix: initialize _nolead to 0, not 1.
    - jbj: add "struct utimbuf" and "struct utsname" to eliminate perl wanings.
    - jbj: adjust includes throughout.
    - jbj: move popt.h from rpmlib.h to rpmcli.h, most routines don't need.
    - jbj: don't include rpmcb.h from rpmlib.h, explcit includes instead.
    - jbj: update Doxyfile.
    - jbj: rename rpmmessages.h -> rpmcb.h consistent with callback content.
    - jbj: doScript: use pid_t, not int.
    - jbj: eliminate rpmerr.h, use rpmlog.h instead.
    - jbj: eliminate rpmMessage and RPMMESS_FOO constants, use rpmlog instead.

5.0a1 -> 5.0a2:
    - jbj: fix: don't add RPMTAG_ARCH to pubkeys, pubkeys cannot be erased.
    - afb: make devtool %standalone include the required %{_rpmhome}/magic.
    - jbj: fix: handle absolute paths to spec files again.
    - jbj: fix: don't attempt header sanity checks on pubkeys.
    - jbj: fix: don't loop on failed lookup by instance.
    - jbj: Eliminate SUPPORT_RPMV3_PROVIDE_SELF Provies: N = E:V-R retrofit.
    - jbj: Eliminate SUPPORT_RPMV3_BASENAMES_HACKS file path conversions.
    - jbj: Eliminate SUPPORT_RPMV3_VERIFY_{RSA,DSA} header+payload signatures.
    - jbj: Eliminate SUPPORT_RPMV3_SIGN_{RSA,DSA} header+payload signatures.
    - jbj: Eliminate SUPPORT_PGP_SIGNING signing with pgp/pgp5 code.
    - jbj: Eliminate SUPPORT_RPMV3_BORKEN busted md5 digest tag code.
    - jbj: revert the noisy tag data type validation. explicit typing for 5.0.
    - jbj: add HEADERFLAG_SIGNATURE, revert he->signature access markers.
    - afb: upgrade internal rsyncable zlib, from 1.2.2.4 to 1.2.3
    - jbj: fix: segfault with corrupted rpm reported at http://qa.mandriva.com/show_bug.cgi?id=33735
    - jbj: handle --root/--dbpath variants, with/without URL, using --rebuilddb.
    - jbj: rpmdb: casts for integral conversions.
    - jbj: lib: identify and repair several minor flaws caught by splint.
    - jbj: rpmio: casts for integral conversions.
    - jbj: rpmio: casts for character <-> integral conversions.
    - jbj: first pass through header.c converting to uint32_t everywhere.
    - jbj: get rid of splint spew before chasing header.c integers.
    - jbj: use splint to check integral types, eliminate the easy stuff.
    - jbj: splint fiddles for rpmdb.
    - jbj: don't cache unsatisfied Suggests:.
    - jbj: fix the last memory leak with -Kvv, recheck install/query paths.
    - jbj: functional -Kvv *.xar header-only DSA verify.
    - jbj: disable tagTypeValidate on --addsig and --delsig paths.
    - jbj: remap rpmlog levels to status quo ante.
    - jbj: functional -Kvv *.xar header SHA1 and header+payload MD5 verify.
    - jbj: eliminate all but 1 of the memory leaks with -Kvv *.xar.
    - jbj: add he->signature tagTypeValidate disabler, sigtags no workie.
    - jbj: add (tenative) patch to handle cached chroot paths.
    - jbj: change %system to --with-xar=internal, adding xar_* to loader map.
    - jbj: hmmm, markReplacedFiles() breaks here, todo++. noone will notice.
    - jbj: eliminate headerGetEntryMinMemory(), use headerGet{Entry,Extension}.
    - jbj: invent pubkey/pubkey arch/os convention to avoid missing value pain.
    - jbj: use RPM_I18NSTRING_TYPE where needed for pubkey imports.
    - rse: relocate <stdint.h> usage to "system.h", too.
    - rse: relocate <inttypes.h> usage to "system.h" and add corresponding Autoconf check
    - rse: fix type mismatches between function prototype and function definitions related to uint64_t
    - rse: replace still existing u_int32_t with uint32_t to get building under Solaris
    - rse: remove warnings in rpmdb/dbconfig.c when building an SQLite-only RPM
    - rse: fix building against external Berkeley-DB under Solaris (where -lrt is required)
    - rse: fix distribution tarball by adding the missing misc/librpmmisc.vers
    - jbj: hmmm, tagno's 261 and 269 are fishy, skip tagTypeValidate for now.
    - jbj: add tagTypeValidate sanity check before flipping to implicit typing.
    - jbj: fix: "RPMTAG_FILESTATES has RPM_CHAR_TYPE=1 instead of 2".
    - jbj: eliminate headerGetLangs, query RPMTAG_HEADERI18NTABLE instead.
    - jbj: eliminate headerGetRawEntry(), noone can possibly need.
    - jbj: eliminate headerDump, query with --xml or --yaml instead.
    - jbj: hmmm RPMTAG_FILESTATES has RPM_CHAR_TYPE=1 instead of 2. todo++;
    - jbj: eliminate RPM_CHAR_TYPE, use RPM_UINT8_TYPE instead.
    - jbj: eliminate RPM_NULL_TYPE, use 0 instead.

4.5 -> 5.0a1:
    - rse: start providing a high-level NEWS document for RPM 5
    - rse: first cut for properly integrate XAR support into the build environment
    - rse: allow RPM to be built without XAR support again
    - jbj: functional header-only signature verify of *.xar.
    - jbj: add --rpmwfdebug.
    - jbj: clean up rpmpkg memory leaks.
    - jbj: functional queries of *.xar packages, on to payload.
    - jbj: lash up rpmwf implicit iteration for Lead/Signature/Header reads.
    - jbj: add rpmwf getter/setter to FD_t for now.
    - jbj: add --xar to read *.xar for now, magic later.
    - jbj: txar.c: use rpmwfFoo from -lrpmdb.
    - jbj: hotwire -lxar linkage for the moment.
    - jbj: add proof-of-concept rpmwf "wrapper format" to rpmdb.
    - jbj: move rpmReadHeader from lib/package.c to rpmdb/pkgio.c.
    - jbj: remove HGE_t casts everywhere.
    - jbj: hmmm, rpm-perl seems to have issues on BIGENDIAN non-int32 retrieves.
    - jbj: use HE_t instead of individual args. dunno HGE_t et al desired ...
    - jbj: eek, rpm-perl not being built here.
    - rpm.org: Change strntoul to using size_t for sizes.
    - rpm.org: Remove refs to "file/src".
    - rpm.org: Clarify rpm manpage wrt rpmbuild binary vs package (rhbz#233232).
    - rpm.org: Clarify rpmtsCheck() documentation (rhbz#159638).
    - rpm.org: Remove bunch of unnecessary rpmio_internal includes.
    - jbj: include rpmtag.h, not rpmlib.h, if only tag names are needed.
    - jbj: change int_32 to evrFlags and uint32_t in rpmfc.c and rpmds.c.
    - rpm.org: Remove two unnecessary legacy.h includes.
    - rpm.org: Remove bunch of unnecessary misc.h includes, document others.
    - rpm.org: Remove useless "var" parameter from setup helpers.
    - rpm.org: Remove dead & unused RPMTAG_ARCHIVESIZE addition code ...
    - rpm.org: Remove rpmSetMachine() from API.
    - jbj: hmmm, headerGetExtension should not leak memory on failure. hack it.
    - jbj: more memory leak canoodling.
    - jbj: plug a couple of memory leaks.
    - jbj: rearrange the steaming piles of ick into an aesthetic constellation.
    - jbj: squeaky clean SSL memory cleanup. Ick.
    - rpm.org: start hiding rpmsq internals.
    - jbj: fix: "trade a double free for a modest memory leak for the moment."
    - jbj: add headerModifyExtension everywhere.
    - jbj: add header{Init,Next,Free}Extension almost everywhere.
    - jbj: add headerRemoveExtension everywhere.
    - jbj: finish converting to headerAddExtension() everywhere.
    - jbj: change names of header tag integer types: s/INT32/UINT32/ etc.
    - jbj: finish bulldozing headerAddEntry throughout rpmbuild.
    - jbj: start bulldozing headerAddEntry throughout rpmbuild.
    - jbj: use HAE_t for signature tags, change int_32 to uint32_t where needed.
    - rpm.org: rpmhash.c: use size_t for keySize.
    - rpm.org: remove unnecessary rpmShowProgress() prototype.
    - jbj: add all-mode --macrosused option, debug rpmGetMacroEntries().
    - jbj: access all tag data integers as "unsigned", using <stdint.h> types.
    - rpm.org: fix segfault in %{lua: ...}'s rpm_print, no newline.
    - jbj: add lua/python getMacros bindings (mostly from <pjones@redhat.com>).
    - jbj: add a getter to retrieve macros with used and/or pattern filtering.
    - jbj: macro macro table/element internals opaque.
    - jbj: fix --rebuilddb --root /path.
    - rse: fix linking of RPM against PCRE's POSIX API under --with-pcre
    - jbj: upgrade to F8 & fix rpm-python. i18n tags w hdr_subscript are b0rked.
    - jbj: update loader maps for python lazy loads. rpm-python fixing to do.
    - jbj: insturment headerNextIterator() statistics.
    - jbj: trade a double free for a modest memory leak for the moment.
    - jbj: fix: install modes broken by forgetting to add '\0'.
    - jbj: mostly unbork HEAD. --install modes still non-functional.
    - jbj: don't modify strings exposed by method wrappers (#349091).
    - jbj: drill headerAddExtension everywhere.
    - jbj: header.c: insturment headerGet{Entry,Extension} switch, debug goop.
    - jbj: rpmchecksig.c: wrap headerAddEntry. headerAddOrAppend next ...
    - jbj: rpmfc.c: wrap headerAddEntry.
    - jbj: psm.c: wrap headerAddEntry.
    - jbj: hmm, still segfaults, more to do.
    - jbj: change headerGetEntry prototype, use headerGetExtension instead.
    - jbj: fix: hae needs he->p.ptr, not he->p, as 4th arg.
    - jbj: start rearranging header.h prior to moving typedefs to rpmtag.h.
    - jbj: rewrite several toy routines to use HE_t instead.
    - jbj: replace hRET_t with rpmTagType, avoiding "hRET_t *" issues for now.
    - jbj: hmmm, b0rken --fileclass et al extensions in lib/format.c, todo++.
    - jbj: mark private extension handling for destruction, enabled for now.
    - jbj: permit headerSprintf tbls/exts args tp be NULL using sane default.
    - jbj: start using headerGetExtension under headerSprintf.
    - jbj: prime the tag data cache earlier.
    - jbj: enable Plan B tag data caching.
    - jbj: grr, Plan B: cache w sprintfTag, not sprintfToken.
    - jbj: use tag data cache.
    - jbj: add tag data cache.
    - jbj: eliminate rpmec data type.
    - jbj: merge rpmec into HE_t.
    - jbj: not yet for binary search retrieve using tagValue.
    - jbj: unbork --yaml.
    - rpm.org: rpmpsi iterator.
    - jbj: mark myTagName() and myTagValue() linear lookup for destruction.
    - jbj: create rpmdb/rpmtag.h, split from lib/rpmlib.h.
    - jbj: make the --info field colons align correctly, more (#323221).
    - jbj: fix :time and :date formats, pad --info spewage.
    - jbj: eliminate padding & formatPrefix, strings is strings now.
    - jbj: bury hex dump in intFormat defaults, refactor common code.
    - jbj: hmmm, --yaml is b0rken atm, todo++;
    - jbj: add assert's to control tag container values.
    - jbj: teach formatValue() to create an element tag container.
    - jbj: change the common integer format from int_32 to int_64 everywhere.
    - jbj: teach intFormat() to handle strings.
    - jbj: add he->ix, eliminate the less egregious he->freeData overload hack.
    - jbj: remove useless HE_t indirection with (*he->p).ptr, he->p.ptr instead.
    - jbj: fix several indirection problems.
    - jbj: eliminate data arg in (*headerTagFormatFunction).
    - jbj: start simplifying the world's most complicated sprintf.
    - jbj: fix: trigger conditions not displayed correctly.
    - jbj: trade-in element overload hack for another, less egregious, hack.
    - jbj: eliminate element arg in (*headerTagFormatFunction).
    - jbj: eliminate type arg in (*headerTagFormatFunction), use he->t instead.
    - jbj: drill HE_t through (*headerTagFormatFunction).
    - jbj: debugedit segfault (#336951,#337011) see #337051 too.
    - jbj: commit to hge(h, he, ...) extraction in API. ABI not yet.
    - jbj: remove the pointless ;-) indirection in *(HE_t) for type/count.
    - jbj: drill rpmTagData everywhere.
    - jbj: start regularizing hae/hme calls.
    - jbj: drill rpmTagCount everywhere.
    - jbj: change hPTR_t to hRET_t in ABI, revert to const void * in API.
    - jbj: drill hPTR_t through prototypes. hRET_t * refactor next.
    - jbj: drill rpmTagCount through rpmdb/* files.
    - jbj: preliminaries to encapsulate headerSprintf goop.
    - rpm.org: Fix broken doxygen comment.
    - rpm.org: Don't unnecessarily include stdio.h
    - jbj: extract verifyscript when available. more to do ...
    - jbj: fix: %verifyscript broken by scaremem elimination.
    - jbj: another missed level of indirection. leave the bandaid, won't hurt.
    - jbj: bandaid for a --import hge recursion problem. real fix soon.
    - jbj: fix: missed a level of indirection.
    - bero: Initialize arch and os in rpmtsAddInstallElement, fixing crash when
      installing a src.rpm
    - jbj: fix: typo broke i32p indices when sizeof(void *) != sizeof(int_32).
    - jbj: add RPM_INT64_TYPE rpmdb indices (untested).
    - jbj: ah, there's the rpmdb basenames memory leak (but leave disabled).
    - jbj: mark (and disable) rpmv3 Provides: N = E:V-R retrofit.
    - jbj: mark (and disable) rpmv3 basenames hacks (likely fixing rpmdb leak).
    - jbj: ditto for python/* too.
    - jbj: for now, revert to headerGetEntry where needed, avoid recursions.
    - jbj: drill HE_t down through the header extension tags.
    - jbj: drill rpmTagType everywhere.
    - jbj: move rpmTag typedef and HGE_t et al protos to header.h.
    - jbj: lose the rpmfi hge/hae/hme/hre/hfd vectors.
    - jbj: yet more hge fixups.
    - jbj: reqprov.c: use headerGetExtension everywhere.
    - jbj: parsePreamble.c: use headerGetExtension everywhere.
    - jbj: pack.c: use headerGetExtension everywhere.
    - jbj: files.c: fix: append to pkg->fileList.
    - jbj: files.c: use headerGetExtension everywhere.
    - jbj: transaction.c: eliminate hge warning.
    - jbj: rpmds.c: eliminate hge warning.
    - jbj: psm.c: eliminate a warning, simplify hge usage.
    - jbj: package.c: use headerGetExtension everywhere (fix double free).
    - jbj: fix: grr, headerGetEntry return code is backwards.
    - jbj: clean up some warnings.
    - jbj: change HGE_t prototype to see what remains to be fixed.
    - jbj: rpmsignature.c: use headerGetExtension everywhere.
    - jbj: rpmrollback.c: use headerGetExtension everywhere.
    - jbj: use (*hge), not headerGetExtension, everywhere.
    - jbj: psm.c: use headerGetExtension everywhere.
    - jbj: rpminstall.c: use headerGetExtension everywhere.
    - jbj: rpmfc.c: use headerGetExtension everywhere.
    - jbj: rpmte.c: use headerGetExtension everywhere.
    - jbj: depends.c: use headerGetExtension everywhere.
    - jbj: rpmts.c: use headerGetExtension everywhere.
    - jbj: nuke fi->keep_header.
    - jbj: rpmfi.c: use headerGetExtension everywhere. Ptooey! pita ...
    - jbj: scareMem = 0 everywhere FINALLY! Yippie!
    - jbj: rpmds.c: use headerGetExtension everywhere.
    - jbj: eliminate rpmtsSetSig(), use pgpSetSig() instead.
    - jbj: fix: trade a double free for a ~100b/header memleak.
    - jbj: fprint.c: use headerGetExtension everywhere.
    - jbj: hdrNVR.c: use headerGetExtension everywhere.
    - jbj: pkgio.c: use headerGetExtension everywhere.
    - jbj: signature.c: use headerGetExtension everywhere.
    - jbj: rpmdb.c: use headerGetExtension everywhere.
    - rse: fix va_copy fallback macros.
    - jbj: rpmdb.c: retrofit HE_s.
    - jbj: rpmte.c: use headerGetExtension.
    - jbj: add HE_s typedef to get rid of alloca baggage.
    - bero: Make rpm2cpio work for packages with payloads other than gzip
    - jbj: change to hRET_t for existing headerGetExtension uses.
    - bero: Add %optional flag on files (packages a file if it is there,
      but doesn't error out if it isn't there)
    - bero: Support multiple %files files per package (%files -f f1,f2,...)
    - bero: Detect Ark Linux as RPMCANONVENDOR
    - rpm.org: have selinux disabled imply RPMTRANS_FLAG_NOCONTEXTS.
    - jbj: plug --rebuilddb memory leaks. headerGetExtension() est arrive!
    - jbj: fix: set FD_CLOEXEC in Open() and fdDup().
    - jbj: eliminate rpmMessage, rpmlog instead.
    - jbj: finish eliminating rpmError, rpmlog instead.
    - jbj: switch rpmdbRemove to use headerGetExtension.
    - jbj: switch rpmdbAdd to use headerGetExtension. ~1Mb leaks w --rebuilddb.
    - jbj: fix: headerGetExtension failed to return p.str correctly.
    - jbj: start eliminating rpmError.
    - jbj: fail empty and non-printable manifests.
    - jbj: headerGetExtension: handle lookup failure cases too.
    - jbj: headerGetExtension: include \0 when dup'ing string.
    - jbj: start converting rpmdb.c to use headerGetExtension instead.
    - jbj: expose hRET_t through headerGetExtension prototypes.
    - jbj: unbork/simplify hRET_t indirections, too much acid in the Kool-Aid.
    - jbj: rpmdeps: unhide various CLI options.
    - jbj: rpmdeps: invoke rpm, not /bin/rpm.
    - bero: fix: RPMRC_FAIL, not non-existent RPMRC_BAD, return.
    - jbj: teach headerGetExtension() to allocate all returned data.
    - jbj: attempt using a pedantically correct union for header data.
    - jbj: mark --initdb and --verifydb code paths for destruction.
    - jbj: start making miRE abstract and refcounted.
    - jbj: convert rel to abs linkto depedency iff directory is known.
    - rpm.org: correct typo in comment.
    - rse: remove all compile-time warnings caused by recent changes
    - jbj: fix: add, not delete, the just read signature data.
    - jbj: update sv.po (Translation Project).
    - jbj: insure rpmlib -> rpmdb forward linkage only.
    - jbj: eliminate (*hdrchk) vector everywhere, use headerCheck() instead.
    - jbj: add metadata header stubs to pkgio.c.
    - jbj: move rpmtsFindPubkey() and rpmtsOp() to rpmdb for forward linkage.
    - jbj: add _RPMTS_PRINT to keep rpmrollback.c happy.
    - jbj: rearrange package.c internals to new locations.
    - jbj: start eliminating rpmtsSetSig by inlining.
    - jbj: eliminate rpmtsSigFoo() getters.
    - jbj: finish refactoring vsflags out of rpmts.
    - rpm.org: rename fileTypes_e and whatis() (for name spacing).
    - jbj: move (largely unused) fileTypes into rpmfi.h.
    - jbj: remove whatis() from rpmlib, use S_ISFOO() instead.
    - jbj: ensure that PLD setup & FHS packages install correctly.
    - jbj: wrapper for open(2).
    - rpm.org: ensure that yum's broken transaction checks "work" (#259961).
    - jbj: handle more white space in paths.
    - jbj: make the rpm hacker's entrance exam buggery harder (#281391).
    - jbj: don't punish monkeys who insist on "My Widdle .spec" naming.
    - jbj: permit -ta spec file extraction from zip/lzo/lzma compressed balls.
    - jbj: add %{?__tar_wildcards} to pass Fedora automated regression tests.
    - jbj: use %{__tar} with -ta builds to assist morons who cannot set PATH.
    - jbj: add %{mkstemp: ... } macro primitive.
    - rse: fix po/POTFILES.in and tools/Makefile.am to reflect recent changes (fixes "make dist", too)
    - rpm.org: cleanup main() definitions in tests and tools
    - rse: include <netinet/in.h> and/or <arpa/inet.h> for htonl(3)
    - jbj: uncouple signature verification from transaction sets.
    - jbj: add (*findPubkey) (_ts, _dig) callback in pgpDig.
    - jbj: fix: headerUnload() size implies HEADER_MAGIC_NO, no hackery needed.
    - jbj: sum per-dig digest/signature stats into ts stats in rpmtsCleanDig.
    - jbj: initialize pgpVSFlags with pgpNewDig(vsflags).
    - jbj: add pgpVSFlags for pgpDig control disablers. ugh.
    - jbj: re-add rpmtsCleanDig() to preserve opaque rpmts.
    - jbj: add pgpStatsAccumulator, not fully wired yet.
    - jbj: refactor signature components from ts into dig container.
    - jbj: add size_t *lenp to headerUnload().
    - jbj: consistent naming in rpmdb/pkgio.c
    - jbj: eliminate rpmNewSignature() and rpmFreeSignature().
    - jbj: bury rpmReadSignature/rpmWriteSignature.
    - jbj: rip rpmtsCleanDig() inlining the code.
    - jbj: refactor headerVerifyInfo().
    - jbj: pour the amber over the corpse of the rpmlead. Ptooey! R.I.P.
    - jbj: stub in rpmpkgFoo() i/o methods.
    - jbj: refactor rpmlead I/O routines into rpmdb/pkgio.c.
    - jbj: protect rpmdb contents from cluelesser morons.
    - jbj: add sourcepkgid index and permit queries of the (non-existent) tag.
    - rpm.org: permit mire RE's against binary data. Useless ... (#277161).
    - rpm.org: mire RE against missing data now mis-matches rather than matches.
    - jbj: remove ancient %verifyscript tag != 1079 retrofit.
    - rpm.org: fix whitespace-in-files issues in find-debuginfo.sh.
    - rpm.org: new debuginfo script.
    - jbj: update known arch's.
    - jbj: use rpmGetPath() to simplify generating filenames, nuke alloca.
    - jbj: pubkey headers were misidentified as source, not binary, headers.
    - rpm.org: report open error on signing explicitly (#155079).
    - rpm.org: fix for debugedit -l.
    - afb: handle Mac OS X 10.3.9 statvfs deviance.
    - rse: make devtool %standalone fully modular for allowing its modules to be reused in other devtool targets
    - jbj: assume that mount(2) et al are linux-peculier for the moment.
    - jbj: add rpmio Mount/Umount/Umount2 stubs.
    - jbj: permit keyutils caching disable, don't re-add if already cached.
    - jbj: use keyutils for pubkey cache.
    - jbj: update id.po (Translation Project).
    - jbj: teach --querytags to chain through headerCompoundFormats.
    - rse: apply upstream vendor Lua 5.1.2 patches 1-7
    - rse: add support for building against NEON >= 0.27.0
    - jbj: use keyutils to get password out of rpm's address space.
    - jbj: start ripping availablePackages.
    - jbj: rpmtsDbmode() and rpmtsSetDbmode() added for rpmts-py.c opaqueness.
    - jbj: start marking availablePackages for destruction.
    - jbj: make a pass checking rpmts opaqueness.
    - jbj: rpmtsGoal() and rpmtsSetGoal() added.
    - jbj: add rpmgiGetFlags() for opaque rpmgi queries.
    - jbj: permit --ftswalk on sign/verify paths. not yet install ...
    - jbj: use ftsOpts from CLI where rpmgi is used.
    - jbj: insure srpm file dispositions are FA_CREATE.
    - jbj: enable Header performance metrics, tied to --stats.
    - jbj: add Header performance metrics, disabled for now.
    - jbj: eliminate headerNVR, use headerNEVRA instead.
    - jbj: eliminate the rpmrbFoo, use rpmcliInstallFoo instead.
    - jbj: load/unload header macros for %{_sourcedir} et al expansions.
    - jbj: don't open rpmdb O_RDWR iff srpm to permit non-root installs.
    - jbj: prepare for open as a macro in bleeding edge glibc-2.6.90+.
    - jbj: permit mixed binary/source installation transactions.
    - jbj: re-add rpmcache/rpmcmp/rpmdigest tools.
    - jbj: more rpmInstall refactoring.
    - jbj: use rpmgi for --addsign/--checksig arg iteration.
    - jbj: repair a minor rpmInstall and major matchpathcon_init() memleaks.
    - jbj: unbreak --install/--upgrade/--freshen, memleaks checked.
    - jbj: use rpmgi for --install/--upgrade/--freshen. non-functional atm.
    - jbj: add getter/setter for header magic to hide _newmagic construction.
    - jbj: functional sign/verify on --nolead --newmagic packages.
    - jbj: no-operation code paths for --nolead --nosigh packages.
    - jbj: functional sign/verify on --nolead packages.
    - jbj: add rpmkey, a keyctl(1) clone.
    - jbj: disable RPMv3 RSA/DSA signing.
    - jbj: mark RPMv3 code for optional compilation.
    - jbj: snarf /usr and /var values from auto fu to predefine macro values.
    - jbj: disable rpmbuild --sign for now.
    - afb: extract provides from .jnilib's (Fink).
    - afb: always include system.h first (Leopard fix? Fink).
    - afb: include "byte" typedef from beecrypt.
    - afb: preserve passed CFLAGS for zlib.
    - afb: support python 2.3 on Mac OS X.
    - jbj: trash a butt load of passphrase goop.
    - jbj: disable PGP signing to untwist program flow from signature ident.
    - jbj: unbreak signatures.
    - jbj: start using syscall wrappers everywhere.
    - jbj: pass mode_t, not ptr, to matchpathcon.
    - jbj: mark header+payload signature/digest code for destruction.
    - rse: use Autoconf newer $(MKDIR_P) instead of older $(mkinstalldirs) in Makefile.am
    - rse: use __MKDIR_P instead of MKDIR_P for RPM's own specially determined "mkdir -p" to not conflict with Automake MKDIR_P
    - rse: various cleanups and fixes to the test programs
    - jbj: oops, "RPMTAG_FILENAMES" still needed.
    - jbj: extension tags in hdrfmt.c now can be passed NULL. Start the fixing.
    - jbj: rpmtfs-py.c needs _free from rpmio.h, not rpmlib.h
    - jbj: add RPMTAG_{FILE,ORIG}PATHS to not revisit old expectations.
    - jbj: _FINALLY_ get rpmfiBuildFNames() out of rpm libraries. w00t!
    - jbj: add headerGetExtension(RPMTAG_FILENAMES), and rpmdb/hdrfmt.c orphan.
    - jbj: use headerGetExtension(RPMTAG_NVRA) most everywhere.
    - jbj: use headerGetExtension() for mire matching. memleaks next.
    - jbj: compute extension cache index correctly with chained tables.
    - rse: upgrade lua/local/lrexlib.c from version 1.x (nov00-06oct03) to latest version 1.19 (may04-18dec04)
    - jbj: teach headerGetExtension() to lookup extensions.
    - jbj: chain through new headerCompundFormats.
    - jbj: refactor most header extensions from -lrpm to -lrpmdb. heh, no filenames, very sick and sad.
    - jbj: add headerGetExtension(), mapped to gud old stuff for now.
    - jbj: skeletal configgery for standalone index tables.
    - jbj: another header-extension-less hack-a-round.
    - jbj: hack up a NVRA retrival w/o extensions, sigh.
    - jbj: add RPMTAG_NVRA header extension.
    - jbj: python ds.Uname getter for uname(...) dependencies.
    - jbj: use rpmmg magic wrapper.
    - jbj: add rpmmg magic wrapper.
    - jbj: unsnarl __FUNCTION__ from system.h AutoFu.
    - rse: make sure RPM is also linked against libm if external Lua is used (as liblua required libm)
    - rse: support building against PCRE for its regcomp(3) emulation API pcreposix(3) -- used by RPM internally
    - rse: support building against PCRE for its native API pcre(3) -- used by the Lua "rex" extension library
    - jbj: query w/o lead/sigh w newmagic (using --nolead --nosigh --newmagic).
    - jbj: query of packages w/o lead/sigh (using --nolead --nosigh).
    - jbj: query of packages w/o lead (using --nolead).
    - jbj: --newmagic enabler to add new signature/metadata magic to headers.
    - jbj: nobrainer --nolead & --nosigh disablers.
    - jbj: get rid of convertdb1.
    - jbj: HEADER_MAGIC_YES always: remove the enum and arguments everywhere.
    - jbj: HEADER_MAGIC_YES always: eliminate HEADER_MAGIC_NO usages.
    - rse: provide support for GNU binutils ld(1)'s --as-needed via Autoconf option --enable-build-maxextlibdep
    - jbj: rip CentOS3/x86_64 gcc-3.2.3-49.x86_64 hack-a-round. Fix gcc!
    - jbj: upgrade to db-4.6.18.
    - rse: drop MARK64 hack as it isn't RPM's business to decide for lib64 -- for this there is Autoconf option --libdir
    - rse: with --with-db-tools-integrated one can now build (and install) a db_tool which integrates all db_xxx BDB tools
    - jbj: add RPMTAG_DBINSTANCE header extension.
    - jbj: rip deep ia64 emulated triarch multilib hacks. worth millions to vendor, not me.
    - jbj: rip Depends index and dependency result caching.
    - rse: ported to DragonFly BSD (1.8.1)
    - rse: add the necessary Autoconf glue for using the ancient (and nowadays resurrected by POSIX) insque(3)
    - rse: ported to IBM AIX (5.3)
    - rse: ported to Mac OS X (10.4), aka Darwin (8.10)
    - rse: re-implement --force option (on installation) with a simple POPT alias instead of twisted and spreaded code
    - rse: for libraries prefer "pkg-config foo" before "foo-config" as pkg-config(1) provides more precise CPPFLAGS/CFLAGS
    - rse: unbreak rpm(1) short-hand option "--force" on package installation
    - rse: use implicit internal library dependencies by default, but allow disabling via --disable-build-intlibdep
    - rse: use implicit external library dependencies by default, but allow disabling via --disable-build-extlibdep
    - rse: remove GNU libtool *.la files during installation only if --disable-build-lafiles is used
    - rse: on --rebuilddb remove (currently) unused database files to avoid mixed formats on backend upgrades and switches
    - jbj: adjust signal polling for python exit purposes <pmatlai@redhat.com>.
    - rse: provide a first cut for an librpmconstant.vers ld(1) version script
    - jbj: reapply 2.127 with more careful rpmExpand() fix.
    - jbj: scale _macro_BUFSIZE as 2 * BUFSIZ (16384) everywhere but rpmExpand()
    - jbj: use _macro_BUFSIZ, not compiled in BUFSIZ, to size expansion targets.
    - jbj: enable %{dirname:...} macro primitive.
    - nanardon: add the librpmconstant library which provides RPM API constants (usually to language bindings)
    - jbj: rescuscitate rpm-perl, include <rpmio.h> explicitly.
    - jbj: perl.prov fiddles (#249135).
    - jbj: rescuscitate rpm-python, include <rpmio.h> explicitly.
    - jbj: adopt rpm.org signal handling <pmatlai@redhat.com>.
    - jbj: fix a --import memory leak.
    - rse: unbreak big-endian handling in memory and cryptography functions by Autoconf providing WORDS_BIGENDIAN and fixing usage
    - rse: cleanup and fix the code to compile under *non*-GCC compilers (e.g. Sun Studio and Intel C/C++)
    - rse: fix building under --with-dmalloc with DMalloc 5.5.2 where "x{malloc,calloc,realloc,free}" are also overridden
    - rse: provide convenience --enable-build-debug Autoconf option for building RPM with debugging instrumentation
    - rse: fix memory leak and segfault in lib/psm.c related to dirname(3) usage
    - rse: fix distribution tarball by including the python/ subdir content as Autoconf unconditionally operates on it
    - jbj: improved brp-nobuildrootpath script (vallimar).
    - jbj: consistent usage is the start of determining the best fix.
    - rse: use %{_rpmdir}/repackage as the default for %{_repackage_dir} instead of a hard-coded /var/spool/repackage
    - rse: remove one more hard-coded reference to /etc/rpm/sysinfo with a macro and SYSCONFIGDIR based approach
    - rse: add (partially untested) platform support for AIX, IRIX and Tru64 based on OpenPKG patchset.
    - rse: provide an RPM_OS_XXX define for allowing us to compiler independent check for a platform in the C code
    - rse: move remaining _D_EXACT_NAMLEN fiddling from public rpmio/fts.h to private rpmio/fts.c
    - rse: allow building without POSIX pthreads (explicitly through --without-pthreads or if platform doesn't support it)
    - rse: provide "install-sh" script in %{_rpmhome} as a companion to "mkinstalldirs"
    - rse: fix %{__mkdir_p} macro fallback value by installing missing "mkinstalldirs" into %{_rpmhome}
    - rse: consistently use %{__mkdir_p} macro instead of its pre-defined value @MKDIR_P@ to allow overriding
    - mgh: Update configure.ac to use target instead of host values for configuration
    - rse: fix build environment to correctly support building RPM from outside its source tree
    - rse: remove RH-specific "_vsflags_up2date" macro, use "_vsflags" in Python bindings instead
    - rse: make --with-path-rpmpopt a colon-separated path to allow "rpmpopt" files be similar to "macros" files
    - rse: allow the path to the RPM package sources be overridden via Autoconf option --with-path-sources
    - rse: allow the path to the RPM database directory be overridden via Autoconf option --with-path-database
    - jbj: refactor rpmio.h include out of header files.
    - jbj: patch macro seems sufficiently functional, delete the old "stuff".
    - jbj: add stub vectors for rpmio I/O API.
    - jbj: add (preliminary) WR configuration.
    - rse: support building against external stock Lua 5.1.2, too
    - rse: upgraded the local Lua copy from version 5.0.2 to 5.1.2
    - jbj: remove network transport from all rpm libraries.
    - jbj: don't close stdout by mistake (OpenSuSE).
    - jbj: run checkfiles even if failure is imminent (OpenSuSE).
    - jbj: rip compiled in %patch, breaking remote patch fetching.
    - jbj: fixup %patchNN rewrite.
    - jbj: add osgi automagic dependency extractors <klee@redhat.com>.
    - jbj: debugedit warning removal <pmatlai@redhat.com>.
    - jbj: free 5 bits in FCOLOR_e for future use.
    - jbj: add arbitrary tag strings to header metadata.
    - mgh: transform %patchNN to %patch -P NN
    - jbj: add mono automagic dependency extractors.
    - jbj: insure that RPMFILE_EXISTS is set for %config files.
    - jbj: revert the _GetPass() hack-a-round.
    - jbj: set a default 0022 umask value always (#83006).
    - rse: remove the already obsolete rpm.c
    - rse/jbj: eliminated all major compile-time warnings
    - rse: cleanup API by changing argument 2 of rpmDigestFinal() from "void **" to "void *"
    - rse: make directory checking for %docdir more strict to avoid false positives
    - jbj: perform fsync(2) before closing installed file.
    - jbj: default RPMCANONCOLOR to 3 everywhere but ia64 and mips*.
    - rse: remove now unused LIBDIR (--with-path-lib) from Autoconf and rename --with-path-usrlib to --with-path-lib
    - jbj: hardwire _GetPass() to avoid --addsign (*Getpass) segfault for now.
    - jbj: eliminate rpmrc.in file itself.
    - jbj: revert routines that were re-added for ABI compat after rpm-4.4.7.
    - jbj: eliminate the voo-doo asm arch identification.
    - jbj: eliminate recursive parser helpers.
    - jbj: expunge every occurence of Rcfiles.
    - jbj: eliminate rcfile reading everywhere.
    - jbj: eliminate last known internal usage of rpmrc files.
    - jbj: generate per-platform macros for major CPU-linux platforms.
    - mgh: Stop the python module from using rpmrc files
    - mgh: Change python configuration to allow for --with-python 2.x, 2.4 or 2.5. (no value will scan as it previously did)
    - jbj: parameterize upgrade/obsoletes tag. Panu's Big Mistake imho.
    - jbj: reset errno to 0 in rpmgiOpen to eliminate false ENOENT failure.
    - rse: do not build and install NLS data under po/ at all in case of --disable-nls
    - jbj: add new-fangled debugedit patch (#246404).
    - mgh: When the rpmfc_magic_path is not set or can't be expanded, act as if there is no magic file
    - mgh: add lib32 as a valid directory in rpmfc
    - mgh: change uses of @USRLIBRPM@ to %{_usrlibrpm} (needed for runtime relocation)
    - mgh: ensure the rpm python module is linked the same as the rest of RPM
    - rse: prune the 23MB large db/docs/ third-party subtree to no longer ship it in RPM distribution tarballs.
    - rse: allow installation paths to be overridden via "configure" options --with-path-xxx.
    - rse: re-generate lib/getdate.c with newer GNU bison 2.3
    - rse: detect if a script cannot be run because fork(2) failed.
    - rse: use the "ustar" format defined by POSIX 1003.1-1988 to roll the distribution tarball.
    - mgh: resolve namespace conflict with "__stdchrnul" in fnmatch.c
    - mgh: change db3 configure wrapper to process one argument at a time
    - rse: add SQLite RPM DB support for "tmpdir=<path> excl cachesize=<bytes> pagesize=<bytes> temporary private perms=<bitmask>"
    - mgh: allow rpm to be built w/o neon
    - rse: remove unused rpmio/sexp/ sub-library
    - rse: add "errno" information to be more informative in error message when lstat(2) on verification fails.
    - rse: correctly restore SIGILL signal handler in machine detection code.
    - pmatilaj: nuke antique Red Hat Linux "reference" "baddeps" list (in lib/depends.c)
    - rse: allow one to explicitly select the RPM DB API with --with-dbapi={db,sqlite}
    - rse: provide automatically Autoconf chosen RPM DB API selection and configuration
    - rse: allow one to build an SQLite-only RPM with "--without-db --with-sqlite=external"
    - rse: allow Berkeley-DB/SQLite-specific RPM DB per-tag parameters according to dynamically selected DB API
    - rse: introduce --with-bugreport=<email-address> and require this before unsupported Autoconf operations
    - rse: simplify internal Berkeley-DB handling in rpmdb/ and allow (unsupported) --with-db=external
    - pmatilaj: remove hardcoded "libtermcap" vs. Bash kludge in lib/psm.c
    - rse: implement --without-file, i.e., building RPM without File/magic support
    - rse: use regular LIBS for linking against SELinux library
    - rse: no longer re-build db_xxx utilities in rpmdb/ -- use already built db3/ versions instead
    - rse: no longer any librpm* libraries against external third-party libraries (rely on pkg-config)
    - rse: link all internal third-party libraries into librpmmisc exclusively
    - rse: install a pkg-config(1) specification "rpm.pc" for correctly linking against the RPM C API
    - rse: consistently move libraries from Automake _LDFLAGS to _LIBADD variables
    - rse: move misc/*.c from rpmio/stubs.c into misc/librpmmisc.c and build regular librpmmisc.la
    - rse: support building without ZLib via --without-zlib
    - rse: in rpmio for LZMA use %{__lzma} macro instead of hard-coded /usr/bin/lzma when possible
    - rse: use explicit enable/disable of Perl and Python APIs
    - rse: cleanup elf(3) API related Autoconf glue
    - rse: use --enable-maintainer-mode to enable Automake rebuilds for maintainers only
    - rse: cleanup Automake specifications replace old-style INCLUDES with AM_CPPFLAGS
    - rse: allow one to control/override the /usr/lib64 use via Autoconf option --enable-build-lib64
    - rse: rename Autoconf --enable-ld-version-script to --enable-build-versionscript for consistency reasons
    - rse: make PIC/PIE/warnings build flags controllable via Autoconf --enable-build-{pic,pie,warnings}
    - rse: cleanup Autoconf glue for static linking by resurrecting functionality under --enable-build-static
    - rse: replace too weak Autoconf glue for C99 va_copy(3) with a more sophisticated solution
    - jbj: add patch macro, renamed to Xpatch until fully wired.
    - jbj: remove support for patch-2.1.
    - rse: allow actually used tar(1) and patch(1) tools to be set via %__tar and %__patch
    - rse: add support for patch(1)'s "-d" option to internal macro %patch
    - mgh: allow -bb --short-circuit
    - rse: allow leading whitespaces on %setup and %patch lines in *.spec files
    - rse: resolve portability issue related to double definition of mergesort(3)
    - rse: fix building under UnixWare (blind port)
    - rse: fix building under FreeBSD 7-CURRENT
    - rse: fix building under NetBSD 3.1
    - rse: partially cleaned up the "configure.ac" scripts.
    - rse: improve Autoconf glue to flexibly build against third-party libraries (RPM_CHECK_LIB)
    - jbj: collect CentOS5 redhat-rpm-config changes for reference composting.
    - rse: calculate timezone directly, don't rely on timezone variable.
    - rse: remove the hysterical bzip2 interface.
    - rse: add the missing Autoconf glue code for using mmap(2) in the code
    - rse: (temporarily) remove partial Lua/libsyck support from build environment
    - jbj: refactor fi->replaced to persistent rpmte storage.
    - jbj: bump library and API versions to 5.0.
    - rse: provide portability fallbacks for sighold(3), sigrelse(3) and sigpause(3)
    - rse: allow RPM to build again even if iconv(3) is not available
    - rse: provide --with-db-{largefile,rpc,mutex} options for flexibly building DB
    - rse: portability: replace hard-coded -ldl (Linux) for Lua with Autoconf checks
    - rse: added devtool/devtool.conf build environment helper
    - rse: pruned tree from third-party libraries (except for zlib, db and lua)
    - goeran: updated "sv" translation.
    - rse: cleaned up the "autogen.sh" scripts.
    - jbj: skip packages/headers with unverifiable signatures.
    - start rpm-5.0 development.

4.4.9 -> 4.5:
    - jbj: fix ptr alignment problem seen on pld/sparc64.
    - jbj: re-add /usr/bin/rpmbuild for now, poptBT option wiring needs fixing.
    - jbj: pass -F fnum to patch (#243720).
    - jbj: refactor _free() from rpmlib.h -> rpmio.h.
    - jbj: add _rpmhome macro, revector helper paths through _rpmhome.
    - jbj: hack a version into magic install path. better needs to be done.
    - jbj: start consistent versionlibdir usage in all Makefile.am files.
    - jbj: fail packages with invalid signature version <pmatlai@redhat.com>.
    - jbj: fix reference count on python rpmmi object <pmatlai@redhat.com>.
    - jbj: populate /usr/lib/rpm/@VERSION@/ instead of foo-@VERSION@ files.
    - jbj: move gendiff into the scripts directory.
    - jbj: don't include perl/CVS with "make dist".
    - jbj: remove rpmbuild and rpmb helper for now.
    - update README to point to new rpm5.org home.
    - upgrade to file-4.21 (CVE-2007-2026, CVE-2007-2799).
    - build against rpm5.org cvs,
    - fix: swap PART_INSTALL and PART_CLEAN automagic cleanup.
    - keys: add Getpass stub vector.
    - solaris: add clearenv stub.
    - fix: avoid accessing freed memory.
    - start rpm-4.5 development.

=============================================================================

4.4.8 -> 4.4.9:
- start rpm-4.4.9 devel.
- replace rpm2cpio with a shell script (#229422).
- debugedit: canonicalize_path was broken (#232222).
- permit clean scriptlet element overrides.
- add RPMTAG_REPOTAG.
- non-linux: avoid all mutexes if waitpid is used for reaping.
- use pipe(2) for SIGCHLD receipt signalling.
- python: teach labelCompare that missing epoch is same as 0 (#227860).
- add source rpm file attributes, eliminate RPMBUILD_ISFOO.
- populate sourceHeader with build restrictions early instead.
- add --specsrpm to permit querying parsed source rpm header.
- populate sourceHeader with source/patch tags for query (#227513).
- make sure srpm header is initialized exactly once while refactoring.
- add Keywords: and BuildPlatforms: syntax.
- perform an RPMTAG_ICON tracheotomy.
- perl: extract dependencies from *.pm iff on /usr/lib* (#234691).
- refactor header subroutines out of -lrpmlib into -lrpmdb.
- add RPMTAG_PACKAGECOLOR at install time, retrofit on --rebuilddb.
- add Packagecolor index to handle multilib scriptlet instance counts.
- convert indices with ordering properties from DB_HASH to DB_BTREE.
- add findfplistexclude.diff patch from <mls@suse.de> (#140055).
- add taggedfileindex.diff patch from <mls@suse.de> (#103204).
- rework above 2 patches to be runtime, not compile time, configgerable.
- open existing rpmdb indices with either DB_BTREE or DB_HASH.
- don't add RPMTAG_RHNPLATFORM to packages and headers.
- stop adding ancient rpmlib(...) tracking dependencies to headers.
- python: eliminate rhnLoad/rhnUnload methods.
- fix: change dbi_type from DB_UNKNOWN iff DB_CREATE is set.
- add %%{load:/path/to/macros} to read macros from a file during parse.
- fix: initialize file verify flags for %doc (#235353).
- solaris: add #ifdef _sun so librpmio needn't export glob/globfree.
- fix: --verify displays mis-leading dependency checks (#223642).
- debugedit: canonicalize_path was broken again (#232222).
- popt: convert gnome UTF-8 to current encoding with --help (#178413).
- popt: fix compilation on x86_64 from previous patch.
- rollback: add explicit upgrade pkgid chain marker.
- rollback: convert assertion to a test.
- rollback: create rpmrollback.c, refactoring out of rpminstall.c.
- multilib: _prefer_color macro to choose elf32/elf64 files (#235757).
- rollback: add (*rbCheck), (*rbOrder), (*rbRun) vectors.
- strip rpmvercmp down to bare metallic C code.
- treat all printable non-digits except '.' as alpha comparisons.
- rpmds: add data elements and methods to handle Name.Arch compounds.
- rpmds: add opaque EVR parsing vector and container.
- rpmds: use the parsing vector and container.
- rpmds: expose methods to parse and compare EVR ala rpm.
- rpmds: add methods to compare EVR ala dpkg.
- fix: rpmEVRparser was not terminating epoch correctly.
- fix: rpmdsSearch() end-of-loop test incorrect at end-of-array.
- fix: use dgettext, not gettext, everywhere.
- fix: install preferred color packages first (#214737, #220348).
- rpmns: create rpmns.c/rpmns.h.
- fix: there are no leading zeros in the digit string "0".
- rpmns: refactor .arch suffix table from rpmts.c -> rpmns.c.
- rpmns: support for Requires: name.arch (#235755).
- rpmns: parse namespace(...) probe markers.
- rpmns: macro expand all dependency names.
- rpmns: add user/group lookup probes.
- rpmns: add mounted/diskspace lookup probes.
- rollback: rewrite and simplify.
- yaml: expose embedded syck parser in rpmio.
- fix: don't segfault on header without RPMTAG_NAME (#239557).
- upgrade to file-4.20 internal.
- rollback: re-add blink's and installtid's to repackaged headers.
- rpmns: add digest probe.
- rpmevr: remove lib/rpmvercmp.c, use rpmEVRcmp() instead.
- rpmns: add gnupg probe.
- argv: add argvFgets() to build argv array from stdin lines.
- argv: permit argvSplit() default whitespace separators.
- argv: use xmalloc, not alloca, in argvSplit().
- rpmevr: refactor logical operator parsing, hide implementation.
- rpmevr: add RPMSENSE_NOTEQUAL and wire up the condition tests.
- rpmns: negative existence tests as Requires: !foo, take 1.
- rpmal: avoid rpmns allocates while iterating added provides.
- rpmns: finalize '!' as a dependency assertion negation operator.
- rpmns: add macro()/envvar() probes as existence tests.
- rollback: add REMOVETID subdir to insure unbroken upgrade chain.
- rpmns: add running() probe with scwewy unexpected non-root behavior.
- rpmns: classify negated probes correctly.
- rpmns: add envvar() comparisons.
- solaris: rpmds.c rearrangements to build against solaris gelf API.
- rollback: add link terminator to all upgrade chains.
- rollback: assertion checks for all header additions.
- fix: don't clobber dependency flags, or the comparison bits instead.
- fix: convert python->rpmlib missing values before rpmEVRcompare().
- release 4.4.9.

4.4.7 -> 4.4.8:
- start rpm-4.4.8 development.
- remove files that are ancient and historical.
- start simplifying rpm.spec.in.
- move rpmfc.[ch] from -lrpmbuild to -lrpmlib.
- solaris: various non-gcc fixes.
- fix: detecting repackaged assumed sizeof(void *) == sizeof(int_32).
- run old->triggerpostun case when erasing (#210626).
- fix: invert platform initialize order.
- fix: flush query format buffer before listing files (#212833).
- don't add rpmlib(FileDigestParameterized) dependency if MD5.
- resize rpmExpand() buffer instead of using BUFSIZ.
- remove extraneous :depflags white space in non-versioned dependencies.
- add parameters from db-4.5.20.
- permit multiple identically named packages with --install (#171970).
- query: don't attempt manifest open on non-existent files (#215712).
- ignore Fopen and fopen(3) extensions if not glibc-2.3.3 or later.
- attempt mmap'd Fopen's for hdlist queries.
- add %_query_hdlist_path for rpm -qH.
- fix: refactor depflags options, re-add to query/verify modes.
- fix: illegal accesses seen when expanding into a 1 byte buffer.
- re-add symbols removed in rpm-4.4.7 for now.
- add symclash.sh/symclash.py.
- fix: classification by suffix broken by cut-n-paste.
- fix: assume "." if getcwd returns NULL when building.
- don't fail if/when unsetting non-existent envvars in scriptlets.
- add ~/etc/.rpmmacros to rpmrc macrofiles: configgery.
- add /usr/src/examples and %{_examplesdir} to docdirs.
- add php classification (phpdeps.sh is still missing).
- FreeBSD portability fiddles.
- don't read .rpmnew/.rpmorig/.rpmsave or *~ macro files.
- change "python(abi)"  criteria to be more precise/robust.
- rollback: force rollback and transaction id's to be identical.
- rollback: change exclude scoping to accomodate multi-pkg transactions.
- rollback: check NEVRA before hdrid/pkgid links, simpler debug.
- rollback: no rollbacks attempted unless repackaging.
- rollback: add ia->no_rollback_links to handle check/order failures.
- rollback: simplify rpmtsDoARBGoal for check/order failures only.
- display arch in file conflicts.
- make peace with autoconf-2.60 and automake-1.10.
- handle spaces in file path arguments correctly (#217258);
- permit variable length file digests in rpmdb.
- check all header strings to resize buffer CVE-2006-5466 (#212833).
- plug some minor memory leaks.
- add php(...) extractors from PLD.
- add robustness to posix shared mutexes.
- discard stale read locks when opening an rpmdb environment.
- popt: add POP_ARGFLAG_RANDOM using random(3) for a random value.
- add --{r,w}segfault options to randomly interrupt rpm execution.
- add rpmdbVerifyAllDBI() to separate open from verification.
- do db->verify detect and dbenv->remove repair w stale write locks.
- add multiversion and other config arcana from db-4.5.20.
- display errors as "db4" not "db3", only the cognoscenti need dbi_api.
- make peace with gettext-0.16.
- make peace with python-2.5.
- python: toy methods for rpmsqCaught and rpmdbCheckSignals.
- use rpmPRCO container transaction element dependency sets.
- multiple fixes from <pixel@mandriva.com>.
- fix: http error path was missing a reference on a url (#220392).
- solaris: permit using native libelf.
- solaris: first stab at probe dependencies through /usr/bin/crle.
- generalize sysinfo to read multiple tag files from directory.
- create (and check) per-transaction Requires:/Conflicts: dependencies.
- permit macros for scriptlet interpreters and dependencies.
- rpmgi: add (*walkPathFilter) for rpmcache use.
- permit "/X\ Y" in %_topdir use in scripts (#220449).
- fix: rpmInstallSourcePackage() still needs scareMem=1.
- rpmgi: add (*stash) for rpmcache use.
- move more memory cleanup to rpmcliFini().
- automagic unpacking of *.lzo sources/patches using lzop.
- include the PLD .lzdio patch to support lzma payload compression.
- automagic unpacking of *.lzma sources/patches using lzma.
- skip EACCESS returns from stat(2) on mount points (#220991).
- permit files with glob characters in *.rpm packages (#142771,#147383).
- gendiff: permit $DIFF override, add -p to default diff. (#146981).
- rpmio: use HEAD for servers that don't support PROPFIND (#206066).
- rpmio: add RPMURL_SERVER_* server capability flags.
- fix: report "not installed" for pkg.bogusarch (#124016).
- don't treat '?' as a glob character in http URI's (#143885).
- rewrite macroized interpreter test to avoid %verifyscript segfault.
- display the verifyscript interpreter with --scripts.
- load/unload NEVRAO macros while creating binary sub-packages.
- move rmphash.[ch] into librpmio.
- fix: add error message on non-existent sources/patches.
- resuscitate build against external -lmagic.
- add lookup3.c hash (http://www.burtleburtle.net/bob/c/lookup3.c).
- popt: mark POPT_AUTO{HELP,ALIAS} strings for translation (#102254).
- treat duplicate *.rpm added consistently as warning (#180996).
- permit relative paths for --dbpath (#21703).
- strip trailing '/' to permit --root -D'_rpmdb_dbpath /path' (#90033).
- add SHA-224, RIPEMD-{256,320} digests.
- change hashFunctionType to accommodate crc-32, adler-32, and jlu-32.
- add SALSA-{10,20} with CBC chaining to create 512 bit digest.
- build and install rpmdb_hotbackup.
- vet db-4.5.10 symbols being re-exported through -lrpmdb.
- add rpmPlatform to rescusitate platform scoring.
- popt: free option defaults with --help (#119782).
- refactor miRE pattern matching into librpmio.
- fix: don't set MARK64 if libdir already ends in 64 (#205939).
- convert '-' to '_' within --define macro names (#124995).
- fix: fts_close double free traversing an active tree (#222089).
- use ".ufdio" as rpmio default, remove ".ufdio" markers.
- add rpmPlatformScore to check for upgrade pkg platform affinity.
- refactor the W_OK check out of rpmMkdirPath.
- push/pop expanded %buildroot before/after per-subpkg macro define(s).
- fix: query foo.bogusarch for #124016 needs to be done differently.
- fix: don't unlink non-temp file in FSM_UNDO (#223931).
- compile with -fpie instead of -fPIC -DPIC, link with -pie.
- fix: check for failing dependency scripts (#226751).
- lua: expand %{_usrlibrpm} to locate lua configuration files.
- change RPMCONFIGDIR to USRLIBRPM everywhere.
- fix: inherit _target_cpu macro rather than setting to "unknown".
- format unkown tag names as "Tag_0x01234567" w --xml/--yaml (#227333).
- yaml: display Dirnames: in SRPM's correctly.
- handle \r\n as well as \n line termination with armored pubkeys.
- use _target_vendor instead of _vendor.
- add _build_platform and _host_platform macros.
- restore -fPIC -DPIC for libraries, -fpie -pie for executables only.
- assign mips n32 elf32 as color 4.
- emit Requires: pkgconfig automagically for pkgs that contain *.pc.
- don't create .rpmnew for symlinks.
- check digest/readlink iff db and fs file type is same (#194246).
- hupdate de.po.
- permit build against neon-0.24.7 API.
- release 4.4.8.

4.4.6 -> 4.4.7:
- start 4.4.7 development.
- use zlib's unrolled crc-32 and adler32, add crc-64, checksums.
- fix: build error msg had reversed args.
- add md2, md4, and tiger192 digests.
- teach --scripts about pre- and post-transaction scriptlets.
- add /usr/bin/rpmdigest.
- IPv4/6 and EPSV support by Arkadiusz Miskiewicz <arekm@pld-linux.org>.
- permit autofetch for virgin sources.
- add AI_IDN flag to getaddrinfo().
- fix: lazy mkdir for local _sourcedir.
- add _patchdir macro similar to _sourcedir.
- permit autofetch for patches.
- fetch all (even unused) sources/patches at %prep start.
- bolt in syck, add to librpmio.
- absorb lsyck.c (and libsyck.la) into internal lua.
- use RPMTAG_FILELINKTOS to detect dangling symlinks at run time.
- fix: free dirnames/linktos dependency sets.
- consolidate per-mode options into single structure.
- make dbiTags per-rpmdb rather than global.
- permit rpmgi to iterate over indices.
- teach rpmtsSolve() about dirnames/linktos dependencies.
- add rpmdbBlockDBI() to disable index access.
- automagically extract scriptlet executable dependencies.
- fix: don't close stdin exec'ing pgp/gpg, harmless warning (#197602).
- permit waitpid to be used instead of reaping SIGCHLD (#163151).
- add tracking dependency for parameterized file digests.
- fix: hide dbiFoo() internals from C++'s inability to promote void *.
- fix: default _D_EXACT_NAMLEN(d) to strlen((d)->d_name) on non-linux.
- debugedit: permit -debuginfo extraction for executables with -O0.
- remove SELinux context verification (#193488).
- perl.req: avoid extracting bogus deps in q{} sections (#198033).
- add macro for the path to the magic file used for classification.
- handle DT_GNU_HASH dependencies.
- avoid __typeof__ and __alignof__ usage portably.
- fix: explicitly terminate readlink(2) return.
- ppc: bogus unhandled relocations in debugedit.c (#199473).
- automatically fix and retry dbenv->open() on DB_VERSION_MISMATCH.
- fix: insure that %config files are removed on erasure.
- solaris: portability fiddles.
- avoid multiple lstat(2) calls installing %config files.
- avoid digest checks on sparse files handling %config dispositions.
- fix: missing epoch == 0 for --freshen (#143301).
- avoid access(2) quirks querying symlinks, lstat(2) instead (#60288).
- fix: don't open temporary db files before chroot entry (#103852).
- spew --usage to stderr, not stdout (#164021).
- populate internal copy of struct statvfs with all (linux) fields.
- add --target option for all rpm modes (#127729).
- use global rpmcliTargets for build/query modes.
- don't verify existence of sources/patches when --specfile querying.
- set all rpmrc/macro goop from --target (if present).
- incorporate latest gcc flags into per-arch rpmrc defaults.
- kill off rpmMachineScore() functionality.
- kill off rpmGet{Arch,Os}Info() and rpmGetMachine().
- use rpmcliInit() in main(), trash the duplicated code.
- remove rpm{Get,Set}Var from the rpmlib API.
- preserve --rcfile/--target options when re-reading goop.
- don't process rpmrc files unless --rcfile is explicitly given.
- eliminate unused check-prereqs script (#203182).
- eliminate ancient convertrpmrc.sh conversion script.
- eliminate unused get_magic.pl, magic.{prov,req}, use libmagic instead.
- eliminate "traditional behavior" freshen.sh.
- add default value for buildroot macro.
- permit macros to be marked as readonly (i.e. cannot be redefined).
- ignore BuildRoot: and %clean from spec files.
- make rpmvercmp a vector, add a (*EVRcmp) vector to rpmds.
- open all rpmdb indices before entering chroot (#94250, #173285).
- lua: establish CWD == "/" for running of scripts.
- add rpm2lsb boilerplate, dumps both package headers in YAML.
- fix: last 8 bytes of RSA modulus is keyid for V3 pubkeys (#205080).
- updated sv.po translations.
- permit file:// URL's in binary packages.
- rpmio: add Chown/Lchown/Chmod/Mkfifo/Mknod/Utime/Symlink/Chroot stubs.
- use rpmio Chdir et al stubs everywhere.
- fix: permit chdir in lua scripts.
- maintain net-snmp HR-MIB info in /var/cache/hrmib.
- update to db-4.5.20 internal.
- merge install/erase interface flags.
- eliminate RPMTRANS_FLAG_REVERSE.
- split rpmtsCheck() and rpmtsOrder() flags from transFlags -> depFlags.
- add --noparentdirs and --nolinktos rpmtsCheck() disablers.
- add --noupgrade/--norequires/--noconflicts/--noobsoletes disablers.
- rpm-4.4.7 release.

4.4.5 -> 4.4.6:
- start 4.4.6 development.
- perl: fix exuberant cut-n-paste.
- macosx: remove compile nits.
- dirty hacks to handle neon-0.26.0.
- make rpmps internals opaque.
- make rpmdb internals opaque.
- fix: hGetNEVRA segfault if missing arch tag (i.e. pubkeys).
- updated RU man pages (#185260).
- fix: tag sort is stable iff identical prefixes, nuke RPMTAG_D alias.
- add :yaml query format extension.
- fix: segfault brain fart with query format extension.
- start making rpmRelocation opaque.
- push rpmHeaderGetEntry() into rpm-python bindings.
- trick up --yaml output to avoid parsing problems from data.
- force utf-8 encoding for yaml/xml spewed strings.
- fix autogen.sh and configure.ac breakage.
- permit --without-lua.
- assign expected {scalar,array} return types to header tags.
- permit sha1/sha256/sha384/sha512 file digests as well as md5.
- fix: obscure segfault erasing multiply installed packages.
- fix: set file contexts on non-packaged dirs iff selinux enabled.
- add RIPEMD-160 and RIPEMD-128 digest support.
- drop almost all dependency whiteout from default rpm configgery.
- eliminate skipDirs fingerprint band-aid.
- eliminate support for _noDirTokens, refactoring as appropriate.
- eliminate SOURCEPACKAGE tag, use non-existence of SOURCERPM instead.
- add macros to parameterize rpmds probe dependency defaults.
- tsort for erased packages (#89500).
- refactoring to integrate erasure ordering.
- create RPMTAG_DIRNAMES dependency set, attach to transaction element.
- lash up for checking synthesized dependencies on parent directories.
- attempt (and abandon) parent directories as ordering relation.
- dports: add Variant:, Xmajor:, and Xminor: tags.
- permit separate configgery for source/binary file digests.
- release rpm-4.4.6.

4.4.4 -> 4.4.5:
- nolibio: reopen FD_t to insure attached FILE * reading manifests.
- rollback: insure that rpmtsRollback excluded tid is correct.
- rollback: don't bother erasing rollback repackages, just don't create.
- fix: solaris d->d_reclen is unreliable in certain cases (#128593).
- fix: perldeps and prov.pl not to emit perl(main) (#177960)
- build against FC5t2+.
- irix: avoid NULL environ segfault with non-gcc sgi compiler (#178133).
- ppc: detect certain cpu's as "ppc", not "ppciseries" (#128604).
- rollback: make default configuration opt-out rather than opt-in.
- build against sqlite-3.3.3.
- build against neon-0.25.5.
- rollback: revert opt-out config, not ready for prime time yet.
- debuginfo: follow symlinks when copying source files (#149113).
- lua: don't link -lreadline and -lhistory (#147013).
- add tweaks to permit building in subdir, more to do yet (#81196).
- fix: don't process package manifest if HTML is found (#75774).
- fix: teach GNUconfigure about configure.[ac][in] (#170961).
- fix: insure that netsharedpath basename contains no '/' (#52725).
- popt: handle POPT_ARGFLAG_OPTIONAL correctly (#71147).
- python: doco strings for te.{Depth,Breadth}.
- upgrade to db-4.4.20.
- handle trailing delimiters in rpmvercmp more carefully (#178798).
- remove sqlite from the rpm-4_4 branch.
- encapsulate mounted file system handling in fs.[ch].
- sum package file sizes into uint_64 accumulator for fssizes.
- fix: skip mount points with ESTALE return from stat(2).
- handle files up to 4Gb in packages.
- don't install on rdonly file systems (#119185).
- pass disk space errors using 64 bits.
- solaris: avoid diff -d in check-files (#130394).
- fix: payload reposition not needed for skipped symlinks in archive.
- remove hoary /usr/lib/{rpmpopt,rpmrc} legacy symlinks.
- x86_64: remove gcc warning cruft.
- detect missing re-install elements in a rollback transaction and exit.
- release rpm-4.4.5.

4.4.3 -> 4.4.4:
- start rpm-4.4.4 development.
- re-enable libtool/pkgconfig/python/java automagic requires extractors.
- re-enable pubkey server configuration.
- perl: diddle Makefile.PL to build/link within rpm source tree.
- perl: add build dependency on perl(ExtUtils::MakeMaker) >= 6.17.
- don't build rpmgetconf by default.
- don't enable the fcntl transaction lock by default.
- popt R++.
- complete forking perl-RPM2/* to perl/* module name "RPM".
- upgrade to db-4.4.16 internal.
- rollback: move score board into transaction elements and eliminate.
- rollback: adjust installed package counts when rollback downgrading.
- rollback: don't force erase rpmdb headers, rollback downgrade will do.
- remove (broken) test programs trb.c and tgi.c.
- add fsm vectors for cpio peculier routines.
- make the fcntl transaction lock sensitive to --root (#151255).
- add --noconfig and --nodoc to query/verify modes.
- perl: install in vendor dir.
- support for tar payloads (hardlinks still need work).
- fix: remove faux error msg when fcntl transaction lock is disabled.
- functional tar payload creation in *.rpm packages.
- functional tar payload extraction from *.rpm packages.
- automated cpio/tar payload detection installing *.rpm packages.
- fix: mireSkip returned false positive match for non-existent tags.
- display dependency loops with rpm -qvT.
- popt: assume utf-8 encoding for untranslated strings (#172155).
- release rpm-4.4.4.

4.4.2 -> 4.4.3:
- start 4.4.3 devel.
- put a --stats stopwatch on rpmReadPackageFile() I/O.
- ignore %excluded files for size
- add debugging labels for pre/post trans scriptlet execution.
- sqlite: path to find internal sqlite3.h
- debuginfo: canonicalize paths (#165434).
- debuginfo: pass --remove-comment switch (#165418).
- java: add automagic req/prov extractors and closure helper (#164953).
- statically link rpmi and rpm again again again.
- update uk.po (#142740).
- fix: check-prereqs typo (#147196).
- remove all uses of RPMSENSE_PREREQ.
- fix: revert to older/slower perldeps avoid getOutputFrom() error.
- zlib: uniqify several more symbols.
- add symbol versions everywhere, proof-of-concept.
- don't re-export zlib-in-rpmio and bdb-in-rpmdb symbols.
- remove gcc warning from popt and rpmio compilation.
- rpmdb.c: remove need to include rpmio_internal.h.
- add --dupes popt alias.
- identify headers from whence they came.
- fix: don't fire triggers on test (#25756).
- rpmluaFree: substitute globalLuaState for NULL arg.
- add path to *.rpm package into rpmdb/repackaged headers.
- track many-to-many relation between installed and erased packages.
- eliminate rpmtsGetKeys() and ancient ts.getKeys() python method.
- upgrade to db-4.3.29.
- add --target to rpm queries.
- rollback: add --rbexclude tid option.
- rollback: merge latest hackery for composting.
- upgrade same NEVR with --force if not literally identical (#134388).
- add cpuinfo(foo) dependency name space to map /proc/cpuinfo provides.
- add rpmlib(foo) dependency name space to map rpmlib provides.
- eliminate rpmCheckRpmlibProvides(), use rpmdsSearch() instead.
- eliminate rpmGetRpmlibProvides(), use rpmdsRpmlib() instead.
- eliminate rpmShowRpmlibProvides(), print rpmdsRpmlib() instead.
- add system configurable provides read from /etc/rpm/sysinfo.
- display sysinfo/cpuinfo provides with --showrc iff --verboose.
- fix: boundary case segfault in rpmdsSearch.
- python: bindings for rpmds{Search,Cpuinfo,Rpmlib,Sysinfo}.
- use generic /usr/src/rpm path for building instead.
- don't check /usr/local routinely when configuring (#116709).
- permit Requires: hints.
- convert changelogs to utf8 on input and output (#140050).
- clean up build environment, better than macro overloading (#132907).
- add getconf(1) provides as a dependency name space set.
- upgrade to db-4.4.11 internal.
- add /etc/ld.so.cache provides as a dependency name space set.
- fix: remove context markers from :depflags format modifier.
- permit Requires:/Conflicts: macro expand probes during rpmtsCheck().
- Suggests: and Enhances: spec syntax, synonym(s) for Requires(hint):.
- add suggests/enhances header extensions with --query.
- add --suggests and --enhances popt aliases for header extensions.
- implement %triggerprein scriptlets.
- fix: unlink __db* files if dbenv->open returns EINVAL.
- fix: attempt solvedb open only once.
- python: change ts.check callback, pass rpmds, not TagN, N, EVR, Flags.
- python: set pkgorigin in hdr by extracting from yum (h,path) pkgkey.
- fix: handle file:///var/lib/rpm in %_dbpath correctly for queries.
- update to file-4.16 internal.
- add access(2) run-time probe dependencies.
- eliminate --nogpg and --nopgp, use --nosignature instead.
- python: add python peculier build macros (#120635).
- popt: support for lone dashes (#129944).
- permit Build{Suggests,Enhances}: and BuildRequires(hint): (#114338).
- divvy up locale specific man pages between sub-pkgs (#146842).
- perl: handle the 'v' in "use v5.6.0" (#140597).
- add run-time perl(...) provides name space dependency set.
- add -lresolv and build on CentOS3.
- fix: wipe setuid/setgid bits on updated files (#125517).
- python: add optional transaction id goal to ts.IDTX{load,glob}.
- use bsearch to speed up tagname() and tagvalue().
- display tag value and type with rpmquery -v --querytags.
- remove tag{Name,Value,Type} from the ABI, rpmTags vectors instead.
- add Requires: %%{rpm_license_check} to rpm packaging.
- add Requires: getconf(GNU_LIBPTHREAD_VERSION) = NPTL to rpm packaging.
- resurrect a rpm-perl subpackage from perl-RPM2-0.66.
- autogenerate libtool *.la dependencies (#159221).
- autogenerate pkgconfig *.pc dependencies (#159235).
- add brp-nobuildrootpath to scrub $RPM_BUILD_ROOT from *.la and *.pc.
- fix: rescusitate doxygen doco, don't bother tools/dump.c.
- generate executable(foo) run-time shell requirements, opt-in for now.
- fix: python/rpmte-py.c te.Key() return needs Py_INCREF(Key).
- fix: stablize tagValue() sort, prefer longest name.
- eliminate RPMTAG_{SERIAL,COPYRIGHT} names (for sort stability ;-).
- don't display "(none)\n" in --queryformat '[...]' (i.e. --conflicts).
- add dependency result int array to dependency sets.
- lazy malloc for dependency set color/refs/result on 1st setter call.
- set boolean result in rpmdsSearch (if malloc'd).
- fix: set transaction autorollback goal from popt on --install.
- truncate changelogs to no. of entries or date (default: 1y) (#147362).
- rpmdb: expose dbiTagsInit, rpmdbNew, rpmdbOpenDatabase symbols.
- rpmrc: eliminate RPMVAR_PROVIDES, use /etc/rpm/sysinfo instead.
- add uname(foo) dependency name space to map uname(2) provides.
- link all rpm executables statically.
- refactor rpmfcELF() to rpmdsELF() to extract ELF dependencies.
- add soname(/path/to/libfoo.so) run-time dependency probe.
- fix: strip ${RPM_BUILD_ROOT} in libtooldeps.sh --provides.
- fix: simpler python peculier macros, multilib aware (#120635).
- ornament the rpmds API with diagnostic helpers.
- rpmdeps: add --{cpuinfo,rpmlib,sysinfo,getconf,elf,ldconfiguname } options.
- display -Va dependency failures as Requires: or Conflicts: (#172878).
- fix: ignore %ghost vs. %ghost file conflicts (#155256).
- autogenerate java *.(jar|class) dependencies (#117382).
- fix: add flink (pkgid,hdrid,nevra) to repackaged packages correctly.
- fix: if install element fails, don't erase any linked element.
- fix: repackaged payloads can be missing files, continue unpacking.
- hpux: use _GLOB_INCLUDED as well as _GLOB_H (#113340).
- hpux: test for (__hpux) everywhere that hpux was tested (#101717).
- rollback: use explicit no. of args comparing header flink/blink data.
- rollback: plug IDTXglob header memory leak.
- rollback: use earlier of arbgoal and rbtid times.
- don't generate libtool/pkgconfig/java/python Requires: by default.
- establish/expose default macro configuration for --rollback.
- update de.po.
- rpm-4.4.3 release.

4.4.1 -> 4.4.2:
- start 4.4.2 devel.
- sqlite3: revert cClose scoping, data is freed in cClose unlike db4.
- build against sqlite3-3.1.2.
- sqlite3: update encode/decode from sqlite-2.8.16.
- add --xml popt alias for query modes.
- remove _rpmdb now that python2.[34] are commonly available.
- remove remnant -I/opt/local hacks, --prefix=/usr is recommended.
- rework configure.ac et al to lose internal library baggage flexibly.
- updated sv.po <goeran@uddrborg.se>.
- permit gpg to be used for RSA signatures.
- permit RSA key sizes larger than 1024 bits.
- permit RSA/{sha1,sha256,sha384,sha512} signature verification.
- updated de.po (#162756).
- added CVSId: tag and SVNId: alias (#162807).
- added brp-java-gcjcompile build helper.
- fix: java compiled with -O0 confuses debugedit (#161722).
- fix: % at end-of-line overflow (#161091).
- *_terminate_build macros set per-pkg, not per-invocation (#161081).
- use perldeps.pl, phase out perl.{req,prov} (#161921).
- fix: make sqlite3 rpmdb endian-neutral (#159425).
- fix: permit sqlite3 rpmdb with chroot (#159424).
- fix: find-debuginfo.sh not handling set[ug]id ELF files (#100963).
- fix: find-debuginfo.sh kernel voo-doo tweaks (#159346).
- fix: initialize variables used in debug msg (#160458).
- permit zlib in rpm to be built with make -j (#159404).
- avoid '?' for zero length file mmap failure doing md5 (#159405).
- permit scriptlet includes from builddir for spec files w/o %setup.
- upgrade to zlib-1.2.2.4 internal.
- macosx: avoid minigzip build failures.
- upgrade to file-4.14 internal.
- fix: magic_file() closes stdin when given directory path.
- use perldeps.pl, phase out perl.{req,prov} (again).
- document __vsflags (#147489).
- release rpm-4.4.2.

4.4 -> 4.4.1:
- force *.py->*.pyo byte code compilation with brp-python-bytecompile.
- automagically detect and emit "python(abi) = 2.4" dependencies.
- popt 1.10.1 to preserve newer.
- use package color as Obsoletes: color.
- upgrade to db-4.3.27.
- revert MAGIC_COMPRESS, real fix is in libmagic (#143782).
- upgrade to file-4.12 internal.
- mac os x patches (#131943,#131944,#132924,#132926).
- mac os x patches (#133611, #133612, #134637).
- build against external/internal neon.
- add https://svn.uhulinux.hu/packages/dev/zlib/patches/02-rsync.patch
- changes to build on Mac OS X using darwinports neon/beecrypt.
- blueprint rpm-4_4 and HEAD to minimize diff spew.
- add missing #if defined(ENABLE_NLS) (#146184).
- python: force dbMatch() h# key to be 32 bit integer (#146477).
- add sqlite internal (build still expects external sqlite3-3.0.8).
- sqlite: revert to original narrow scoping of cOpen/cClose.
- fix: length of gpg V4 hash seed was incorrect (#146896).
- add support for V4 rfc-2440 signatures.
- sqlite3: run-time endian test rather than chasing <endian.h> (#146752).
- discover and use getmntinfo if present.
- perform callbacks as always (#147537).
- permit build scriptlet interpreters to be individually overridden.
- zlib: uniqify certain symbols to prevent name space pollution.
- macosx: include <sys/types.h> so that python sees the u_char typedef.
- macosx: change to --prefix=/usr rather than /opt/local.
- use waitpid rather than SIGCHLD reaper.
- rip out DB_PRIVATE revert if not NPTL, it's not the right thing to do.
- don't classify files in /dev (#146623).
- don't build with sqlite3 if <sqlite3.h> is missing.

4.3.3 -> 4.4:
- pentium3/pentium4 arch support (pluto@PLD).
- cpuid() cleanups for PIC/non-PIC and gcc 3.4 (pluto@PLD).
- rpmGlob() is now locale independent (wiget@PLD).
- conditional build support/unification (jajcus,malekith,qboosh,wiget@PLD).
- fix: readelf.c breakage on some non x86 arches (qboosh@PLD).
- find-lang.sh: implemented --with-kde (finds KDE help files);
- add --all-name option (finds every lang file); drop defattr()
  from *.lang files (arekm,mkochano,pascalek,wiget@PLD).
- add type to tag array.
- add Disttag: syntax to spec file parser and header content.
- define Suggests:/Enhances: and Priority: tag values.
- prevent RPMSENSE_PREREQ from being set or tested.
- python: add rpm.ps() object to carry problem set info.
- python: permit rpm.ds() analogue to hdr.dsFromHeader() creator.
- python: permit rpm.fi() analogue to hdr.fiFromHeader() creator.
- silently add default %defattr(-,root,root) for all packages.
- fix: don't set handler if SIG_IGN is already set (#134474).
- disable expensive header+payload verifies in default config.
- adjust digest/signature stats to count #pkgs and bytes.
- obsolete Serial:, Copyright:, and RHNPlatform: syntax in spec files.
- permit Obsoletes: /path/to/file.
- permit Conflicts: /path/to/file.
- free rpmrc when looping on --target arches (#127730).
- fix: handle non-unique dirnames in rpmalAdd().
- integrate rpmgi "generic iterator" with query/verify.
- bump popt version to 1.10.
- attempt dependency tree breadth, take 1.
- use external libneon for http/https transport.
- add --delsign to purge packages of digital signatures.
- neon used by default for http/https transport.
- upgrade to db-4.3.21 final internal.
- remove noNeon runtime switch, http through neon only.
- remove http put to be able to build against upstream neon.
- bump soname into libfoo-4.4.so everywhere.
- sparcv8: optflags changed to -mtune=ultrasparc (#140420).
- add BuildRequires: neon-devel.
- fix: chunked davRead returns 0 is EOF.
- python: bleeping keywords broke labelCompare.
- add support for automagic pubkey retrieval using HKP.
- detect and return errors from neon through Ferror.
- use package color as Obsoletes: color.

4.3.2 -> 4.3.3:
- bump micro version.
- make peace with libtool-1.5.10 and automake-1.9.3.
- python: add python 2.4 support.
- selinux: use rpm_execcon, not execv, to run scriptlets (#136848).
- fix: segfault on --verifydb (#138589).
- sparcv8: optflags changed to -mtune=ultrasparc (#140420).
- port to internal file-4.10 libmagic rather than libfmagic.
- move global /var/lock/rpm/transaction to dbpath.
- permit fcntl path to be configured through rpmlock_path macro.

4.3.1 -> 4.3.2:
- use /etc/selinux/targeted/contexts/files/file_contexts for now.
- disable file contexts into package metadata during build.
- fix: "/path/foo.../bar" was losing a dot (#123844).
- lua embedded in rpmio.
- use lua to identify desired selinux file context regexes.
- add 'requires' and 'conflicts' tag aliases.
- python: return ds, not tuple, for ds iteration.
- python: permit integer keys to ts.dbMatch().
- xml: use <foo/> markup for empty tags.
- xml: <integer/> instead of <integer>0</integer> markup.
- fix: disable fingerprint generation on kernel paths.
- add ppc8[25]60 arches.
- fix: evaluate rather than default file_contexts path. (#127501).
- avoid "can't happen" recursion while retrieving pubkeys.
- add ppc32dy4 arch.
- make peace with automake 1.9.1.
- fix: defattr for rpm-libs (#130461).
- print dependency loops as warning iff --anaconda is specified.
- fix: mark uninstalled elf32 files in rpmdb to disable -Va checks.
- ia64: add autorelocate_dcolor to macros.in.
- disable static linking until libc*.a provides symbols.
- fix: revert Obsoletes: "fix" (#134497).
- fix: work around for dangling symlinks not globbed (#134362).
- display caught signals to diagnose #134474 (gonna be SIGPIPE).
- display N-V-R.A in dependency failure messages.
- selinux: set "rpm_script_t" always, not just for /bin/sh.
- honor inherited SIG_IGN when establishing rpmdb signal exit (#134474).
- don't add time stamp to compressed man pages (#132526).
- python: remove ".A" from creaky ts.check() tuple return (#135008).
- python: fix RPMPROB_BADRELOCATE segfault return in ts.check (#137116).
- revert selinux patch until fc3 release.
- reprise file conflicts yet again, flip/flop/flip/flop ...
- fix: buffer overrun displaying ko_KR (#135389).

4.3 -> 4.3.1:
- fix: don't add leading space to %* argv expansion (#119059).
- scareMem = 0 everywhere, document deprecation phase out.
- fix: add u+w to FIXPERMS.
- add buildtime to rpmds, methods to retrieve.
- python: hide labelCompare() underneath ds.cmp(a,b).
- fix: segfault on --recontext if file_contexts unreadable (#117374).
- fix: /etc/security/selinux/file_contexts is default path.
- fix: no transaction lock if --test was specified (#119783).
- perl: skip new-fangled head[34] while generating deps (#118243).
- perl: use __perl for perl variable macros (#115156).
- make peace with libtool-1.5.6.
- fix: follow current is_selinux_enabled() return (#121004).
? fix: exit fail when erasing multiple identical packages (#120519).
        - add aurora/sparc patches (#124469).
- use poll(2) if available, avoid borked aurora/sparc select (#124574).

4.2.3 -> 4.3:
- upgrade to zlib-1.2.beta7.
- fix: short option help missing string terminator.
- permit secondary tag match patterns with RPMQV_ALL.
- fix: cut-n-paste error setting nopromote for Conflicts: (#81965).
- don't use error string after gzclose (Dmitry V. Levin).
- only internal Berkeley db from now on.
- revive "make dist".
- fix: added index size wrong iff _transaction_color != 0/3 (#103865).
- fix: escape '+' in regex patterns through RPMMIRE_DEFAULT (#103851).
- RPMMIRE_DEFAULT is overkill, use RPMMIRE_STRCMP instead (#103851).
- don't use mktemp if mkstemp is available (#103850).
- python: return None for NEVRAO, [] for everything else.
- python: throw exception on bad arg to labelCompare (#113661).
- re-add --enable-posixmutexes to build.
- fix: set fcontext from pkg when file_contexts doesn't exist (#114040).
- fix: set fcontext for "mkdir -p" directories not in packages.
- fix: setfiles (aka rpmsx.c) dinna handle patterns correctly.
- establish rpm_script_t before scriptlet exec.
- python: add patch to rpm-4_3 to initialize RE contexts.
- fix: only first "mkdir -p" directory had context set.
- stable sort for policy specifications, patterns before paths.
- set "rpm_script_t" exec type for scriptlets iff /bin/sh, else default.
- force FD_CLOEXEC on 1st 100 inherited fdno's.
- serialize rpmtsRun() using fcntl on /var/lock/rpm/transaction.
- permit globs in macrofiles: directive (#117217).
- fix: segfault generating transaction serialization lock path.
- use /etc/security/selinux/file_contexts instead.
- selinux: ignore ENOTSUP return from lsetfilecon.
- add sparcv8 and enable elf32/elf64 Zon sparc64 (#117302).
- fix: --querybynumber looped.
- fix: ENOTSUP filter from lsetfilecon borkage.
- fix: increase file context regex parse buffer to BUFSIZ.
- fix: handle elf64 note sections correctly.
- fix: grrr, skip notes on non-i386 entirely.
- endian neutral rpmdb join keys (finally).
- fix: dev package build on s390x hack around.

4.2.2 -> 4.2.3:
- bump rpm and popt versions to insure "newer".
- change default behavior to resolve file conflicts as LIFO.
- add --fileconflicts to recover rpm traditional behavior.
- prefer elf64 over elf32 files, everywhere and always (#126853).
- ia64: auto-relocate entire, not partial, directory contents (#126905).
- ia64: auto-relocate glibc.ix86 interpreter path (#100563).
- shared libraries in separate rpm-libs package.
- fix: defattr for rpm-libs (#130461).
- fix: static glibc/libgcc helpers always installed (#127522).
- ia64: make sure that autorelocated file dependencies are satisfied.
- ia64: relocate all scriptlet interpreters.
- ia64: don't bother trying to preload autorelocated modules.
- fix: filesystem package needs mail/lock w/o getgrnam.
- fix: do getpwnam/getgrnam to load correct modules before chroot.

4.2.1 -> 4.2.2:
- unify signal handling in librpmio, use condvar to deliver signal.
- make peace with libtool-1.5, autoconf-2.59, automake-1.8.
- build with db-4.2.52 internal.
- refresh bsddb.
- detect (and remove) dbenv files while upgrading to db-4.2.52.
- ensure that librpmdb links against just built, not system, librpmio.
- fix: dangling pointer brain fart (#107835).
- fix: ds.Single() method needs malloc'd elements (#109919).
- convert ja and ko man pages to utf8 (#106050).
- man page corrections (#106415).
- perl.req typo (#106672).
- fix: wrong package count for trigger scriptlet 1st arg (#100509).
- fix: don't break header SHA1 if non-existent user/group (#97727).
- remove fuids/fgids from rpmfi, easier to lookup fuser/fgroup instead.
- merge sensible parts of openpkg rpm.patch.bugfix (#104780).
- mark _javadocdir as documentation (#102898).
- flush pipe before exit 1 in check-files (#103867).
- perl.req: avoid regex misfire on '^use' in "= <<" assign (#109934).
- find-debuginfo.sh: permit stripping unwritable by non-root (#112429).
- missing build dependency (#111104).
- spelling corrections (#112728).
- use -fPIC -DPIC on all platforms, not just mandatory (#112713).
- popt: pad to display length, not strlen, for i18n popt args (#106240).
- python: include Python.h before glibc features.h.
- python: return [], not None, accessing header tags (#112794).
- python: avoid invoking python to acquire ill-specified parameters.
- add ia32e arch.
- fix: sq->reaped needs sighold(SIGCHLD)/sigrelease(SIGCHLD) (#117620).

4.2 -> 4.2.1:
- fix: nested %if handling, optind initialization posix vs. glibc.
- add version check for package with provides and obsoletes.
- hack out O_DIRECT support in db4 for now.
- build with external beecrypt-3.0.0.
- x86_64 -> athlon, ppc64[ip]series -> ppc64 arch compatibility.
- treat missing epoch's exactly the same as Epoch: 0.
- pass structure pointer, not args, through headerSprintf call chain.
- add ":xml" header format modifier.
- --queryformat '[%%{*:xml}\n]' to dump header content in XML.
- add ".arch" suffix to erase colored packages with identical NEVR.
- update ja man pages (#92261).
- backport rpmsw stopwatch, insturment rpmts operations.
? toy method to enable --stats through bindings.
- fdCLose typo (#97257).
- brp-python-bytecompile to automagically bytecode compile python.
? update for fr.po (#97829).
- don't attempt to remove dbenv on --rebuilddb.
- autorelocate ix86 package file paths on ia64.
- resurrect manifests, RPMRC_NOTFOUND returned by readLead().
- python: missed tuple refcount in IDTXload/IDTXglob.
- fix: IDTXglob should return REMOVETID sorted headers (#89857).
- resolve elf32/elf64 file conflicts to prefer elf64.
- apply debugedit patch necessary to produce kernel -debuginfo files.
? ia64: autorelocate only colored, not every, file when installing.
? repair find-debuginfo.sh to avoid recursing in /usr/lib/debug.
? fix: ia64: don't attempt autorelocate on .src.rpm's.
? fix: debuginfo: -not -path /usr/lib/debug needed -prune too.
? fix: packages w/o file colors segfault.
? add amd64 as alias for x86_64 (#99553).
? fix: add -n to brp-compress to avoid needless file conflicts.
? fix: ia32 on ia64 segfaults because of automagic file relocations.
? speed up convertdb1 (#103206).
? revert i18n table change to preserve help array size.
? add config directories for ppc64pseries/ppc64iseries.
? filter GLIBC_PRIVATE dependencies.
- fix: check added provides against installed conflicts (#110317).
- changes for python 2.3
- changes for libtool-1.5
- changes for automake-1.7.8
- changes for db-4.2.42.
- splint fiddles.

4.1 -> 4.2:
- set cachesize without a dbenv, the default is far too small.
- db: don't return EACCES on db->close w/o environment.
- unify cachesize configuration, with (or without) a dbenv.
- comments regarding unsupported (yet) db-4.1.17 functionality.
- update to db-4.1.24 final.
- eliminate myftw, use Fts(3) instead.
- dump libelf, gulp elfutils, for now.
- python: permit headers to be hashed.
- use %%{_lib} for libraries.
- include file-3.39 (with homebrewed) libfmagic, for now.
- add debug sub-package patch.
- re-add elfutils/libdwarf (for dwarf.h), eliminate tools/dwarf2.h.
- resurrect genhdlist "greased lightning" pathway for now.
- elfutils: avoid gcc-3.2 ICE on x86_64 for now.
- add /usr/lib/rpm/rpmdeps.
- add /usr/lib/rpm/magic.
- fix: /dev/initctl has not MD5 segfault (#76718).
- rpm.8: gpg uses GNUPGHOME, not GPGPATH (#76691).
- add error message on glob failure (#76012).
- add _javadir/_javadocdir/_javaclasspath macros.
- fix: bash must have functional libtermcap.so.2.
- update to elfutils-0.56.
- have debug sub-subpackage use external, not internal, elfutils.
- apply patches 1-6 to db-4.1.24.
- resurrect availablePackages one more time.
- fix: option conflict error message (#77373).
- add AC_SYS_LARGFILE throughout.
- statically link rpmdeps against (internal) libfmagic.
- use rpmdeps rather than find-{requires,provides}.
- bundle libfmagic into librpmbuild for now.
- apply patches 7 and 8 to db-4.1.24.
- upgrade to elfutils-0.59.
- add -g to all platforms optflags.
- build with external elfutils (preferred), if available.
- upgrade to elfutils-0.63.
- link rpm libraries together, use shared helpers with external -lelf.
- move libfmagic to librpmio.
- use libtool-1.4.3, autoconf-2.56.
- add explicit -L/lib64 -L/usr/lib64 for libtool mode=relink on x86_64.
- use usrlib_LTLIBRARIES to install directly in /usr/lib64 instead.
- late rpmts reference causes premature free (#78862).
- internal automagic dependency generation (disabled for now).
- don't generate dependencies unless execute bit is set.
- enable internal automagic dependency generation as default.
- fix: add rpmlib(VersionedDependencies) if versioned Provides: found.
- fix: add %%ifnarch noarch to debug_package macro.
- debug_packages "works", but non-noarch w/o %setup has empty payload.
- make dependency generation "opt-in" in order to build in distro.
- fix: make sure each library has DT_NEEDED for all unresolved syms.
- generate Elf provides even if file is not executable.
- disable fcntl(2) lock on Packages until glibc+nptl is fixed.
- make cdb locks "private" for pthreads compatibility w/o NPTL.
- add --enable-posixmutexes to use NPTL.
- make dependency generation "opt-out" everywhere.
- rebuild against glibc with fcntl fixed in libpthread.
- re-enable CDB locking, removing "private" from %%__dbi_cdb macro.
- popt aliases for -U et al to achieve dynamic link with nptl.
- add --file{class,provide,require} popt aliases and header extensions.
- statically link against /usr/lib/nptl/libpthread.a, if present.
- remove popt aliases for -U et al.
- add -I/usr/include/nptl, Conflicts: kernel < 2.4.20.
- dynamically link /bin/rpm, link against good old -lpthread.
- test pthread_{mutex,cond}attr_setpshared(), add DB_ENV_PRIVATE if not.
- error on exclusive Packages fcntl lock if DB_ENV_PRIVATE is set.
- copy compressFilelist to convertdb1.c, remove internal legacy.h.
- add --enable-posixmutexes when configuring on linux.
- add rpmdb_{deadlock,dump,load,svc,stat,verify} utilities.
- include srpm pkgid in binary headers (#71460).
- add %check scriptlet to run after %install (#64137).
- simplify specfile query linkage loop.
- drill rpmts into parseSpec(), carrying Spec along.
- fix: remove rpmfi scareMem so that headers can be reloaded on ia64.
- fix: set DB_PRIVATE, not DB_ENV_PRIVATE, if unshared posix mutexes.
- remove useless kernel/glibc dependencies (#79872).
- add matching "config(N) = EVR"  dependencies iff %%config is found.
- add %%pubkey attribute to read armored pubkey files into header.
- permit both relative/absolute paths, display 'P' when verifying.
- resurrect automagic perl(foo) dependency generation.
- add BETA-GPG-KEY (but not in headers using %%pubkey yet).
- disable perl module magic rule.
- ignore ENOENT return from db->close (#80514,#79314).
- fix builddir relative inclusion, add %%pubkeys to rpm header.
- fix: package relocations were broken (#75057).
- error if querying with iterator on different sized arrays.
- add rpmfi methods to access color, class, and dependencies.
- don't segfault with packages produced by rpm-2.93 (#80618).
- python: eliminate hash.[ch] and upgrade.[ch], methods too.
- fix :armor query extension, tgpg mktmp handling (#80684).
- use rpmfiFClass() underneath --fileclass.
- use rpmfiFDepends() underneath --fileprovide and --filerequire.
- python: add fi.FColor() and fi.FClass() methods.
- calculate dependency color and refernces.
- python: add ds.Color() and ds.Refs() methods.
- fix: typo in assertion.
- add rpmts/rpmte/rpmfi/rpmds element colors.
- ignore items not in our rainbow (i.e. colors are functional).
- fix: dependency helpers now rate limited at 10ms, not 1s.
- add per-arch canonical color, only x86_64 enabled for now.
- file: avoid ogg/vorbis file classification problems.
- portabilitly: solaris fixes.
- for DSO's, provide the file basename if DT_SONAME not found.
- add perldeps.pl, start to replace perl.{prov,req}.
- file: read elf64 notes correctly.
- python: put rpmmodule.so where python expects to find.
- add brp-strip-static-archive build root policy helper.
- add -lelf to rpm LDFLAGS, not LDADD, since there is no libelf.la now.
- fix: obscure corner case(s) with rpmvercmp (#50977).
- file: *really* read elf64 notes correctly.
- python: restore thread context on errorCB (#80744).
- teach rpmquery to return "owning" package(s) in spite of alternatives.
- duplicate package checks with arch/os checks if colored.
- file conflict checks with colors.
- fix: debugedit.c problem.
- permit anaconda to choose "presentation order".
- fix: more debugedit.c problems.
- fix: clean relocation path for --prefix=/.
- python: permit stdout/stderr to be remapped to install.log.
- pay attention to package color when upgrading identical packages.
- fix: trap SIGPIPE, close database(s).
- configurable default query output format.
- popt: diddle doxygen/splint annotations, corrected doco.
- file: fix ogg/vorbis file classification problems.
- skip fingerprints in /usr/share/doc and /usr/src/debug.
- add file(1) as /usr/lib/rpm/rpmfile.
- enable transaction coloring for s390x/ppc64.
- file: check size read from elf header (#85297).
- fix: memory leak (85522).
- build with internal elfutils if not installed.

4.0.4 -> 4.1:
- loosely wire beecrypt library into rpm.
- drop rpmio/base64.[ch] in favor of beecrypt.
- drop lib/md5*.[ch] files in favor of beecrypt.
- legacy: drop brokenMD5 support (rpm-2.3.3 to rpm-2.3.8 on sparc).
- eliminate DYING code.
- bind beecrypt md5/sha1 underneath rpmio.
- create RFC-2440 OpenPGP API in rpmio.
- proof-of-concept GPG/DSA verification for legacy signatures.
- upgrade to beecrypt-2.2.0pre.
- proof-of-concept PGP/RSA verification for legacy signatures.
- ratchet up to lclint "strict" level.
- upgrade to db-4.0.7.
- use only header methods, routines are now static.
- beecrypt is at least as good as pgp/gpg on verify, pulling the plug.
- add :base64 and :armor format extensions, dump binary tags in hex.
- proof-of-concept pubkey retrieval from RPM-{PGP,GPG}-KEY.
- stupid macros to configure public key file paths.
- all symbols but hdrVec are now forward references in linkage.
- generate an rpm header on the fly for imported pubkeys.
- wire transactions through rpmcli signature modes.
- wire transactions through rpmcli query/verify modes.
- wire transactions through rpmcli install/erase modes.
- legacy signatures always checked (where possible) on package read.
- wire transactions through rpmcli build modes.
- lazy rpmdb open/close through transaction methods (mostly anyways).
- no-brainer refcounts for rpmdb object.
- check added header against transaction set, replace if newer.
- transaction sets created in cli main.
- no-brainer refcounts for ts object.
- memory indices for dependency check are typedef'd and abstract'd.
- no-brainer refcounts for fi object, debug the mess.
- dump the header early in transaction, recreate fi before installing.
- start hiding availablePackage data/methods in rpmal.c/rpmal.h.
- add some dinky availablePackage methods.
- transaction.c: cleanly uncouple availablePackage from TFI_t.
- add header refcount annotations throughout.
- depends.c: availablePackage is (almost) opaque.
- invent some toy transactionElement iterators.
- create rpmDepSet constructors/destructors.
- create toy rpmDepSet iterators.
- rpmRangesOverlap renamed to dsCompare, add dsNotify method as well.
- depends.c: rpmDepSet is (almost) opaque, move to rpmds.[ch].
- rpmds: create dsProblem(), dsiGetDNEVR() retrieved DNEVR, not N.
- depends.h: hack around teIterator() et al from include for now.
- rpmds: move trigger dependencies into a rpmDepSet as well.
- rpmal: availablePackage is totally opaque, alKey with index replaces.
- linear search on added package provides is dumb.
- discarding entire signature header when using --addsign is dumb.
- rip out rpmDependencyConflict, replace with rpmProblem instead.
- no-brainer refcounts for rpmProblemSet object.
- header tag sets are per-transactionElement, not per-availablePackage.
- no-brainer refcounts for rpmDepSet and rpmFNSet objects.
- strip header tags for erased as well as installed transactionElements.
- common structure elements for unification of TFI_t and rpmFNSet.
- factor per-transactionElement data out of TFI_t through pointer ref.
- unify rpmFNSet into TFI_t.
- eliminate header reference in rpmtransAddPackage, use TFI_t data.
- commit to using rpmDepSet and TFI_t, not header.
- lclint rpmio fiddles.
- split file info tag sets into rpmfi.c.
- create toy TFI_t iterators.
- tweak overlapped file fingerprint retrieval for speed.
- transaction.c: use wrappers/iterators to access TFI_t.
- annotations to make a transactionElement opaque.
- use array of pointers rather than contiguous array for ts->order.
- methods to complete making transactionElement opaque.
- use TR_REMOVED relations as well as TR_ADDED for ordering.
- drop requirement that removed packages immediately follow added.
- hybrid chainsaw/presentation ordering algorithm.
- convert file md5sum's to binary on the fly, reducing memory footprint.
- header handling moved to librpmdb to avoid linkage loops.
- fix a couple dinky memory leaks.
- build with an internal zlib for now.
- protect brp-compress against /bin/ls output ambiguity (#56656,#56336).
- 3 madvise calls and a 16Mb mmapped buffer == ~5% install speedup. Wow.
- use db-4.0.14 final internally.
- 1st crack at making zlib rsync friendly.
- lclint-3.0.0.19 fiddles.
- simple automake wrapper for zlib.
- splint fiddles.
- make peace with gcc-3.1, remove compiler cruft.
- make peace with automake et al in 8.0, ugh.
- add payload uncompressed size to signature to avoid rewriting header.
- drill header sha1 into signature parallel to header+payload md5.
- mandatory "most effective" signature check on query/verify/install.
- don't bother adding empty filemd's to index.
- add Pubkey index, using signer id as binary key.
- display pubkeys in hex when debugging db access.
- retrieve pubkey(s) from rpmdb, not from detached signature file.
- add header DSA signature.
- add header RSA signature (untested, disabled for now).
` - don't bother with signing check if 16 bits of hash don't match.
- only V3 signatures for now.
- wire --nodigest/--nosignature options to checksig/query/verify modes.
- splint annotations, signature cleanup.
- drill ts/fi through verify mode, add methods to keep fi abstract.
- use mmap when calculating file digests on verify, ~20% faster.
- permit --dbpath and --root with signature (i.e. --import) modes.
- beecrypt: add types.h, eliminate need for config.gnu.h.
- rescusitate --rebuild.
- use rpmdb-redhat to suggest dependency resolution(s).
- merge conflicts into problems, handle as transaction set variable.
- use build time to choose one of multiple alternative suggestions.
- add --nosuggests to disable suggested resolutions.
- attempt to make peace with automake-1.6.1, autoconf-2.53.
- rip out two layers of dbN gook, internal Berkeley db is here to stay.
- eliminate db1 support.
- enable CDB by default.
- use DBT_DB_MALLOC to eliminate re-malloc'ing header blobs.
- rework most of rpmdb.c prepatory to implementing duplicates.
- fix: 2 memory leaks in headerSprintf.
- fix: db mire's access out-of-bounds memory.
- plug install mode leaks.
- opaque (well mostly) rpmTransactionSet using methods.
- Grand Renaming of rpm data types.
- fix: synthesize unpacking progress callbacks for packages w/o files.
- python: add rpmds/rpmfi/rpmts methods.
- python: re-enable rpm-python sub-package.
- fix: resurrect "()(64bit)" markings using objdump.
- python: add rpmal/rpmte/rpmfd methods.
- perl: drop cpanflute and cpanflute2, will be in Chip's CPAN package.
- python: eliminate legacy db methods, add ts.dbMatch method.
- fix: use getgrnam, not getpwnam, to convert gid -> group.
- fix: avoid sign extension, use only 16 bits, when verifying rdev.
- python: separate {add,del}Macro methods, prepare for macro dictionary.
- i18n: copy current production PO files to top-of-stack.
- python: include rpmdb module, renamed from bsddb3.
- use /etc/rpm/platform (if it exists), rather than uname(2), for arch.
- python: portability fiddles (#54350).
- check inodes (but not blocks) on FAT file systems (#64256).
- add /usr/lib/rpm/redhat/* per-vendor configuration.
- remove build mode compatibility aliases, documented and gone.
- document digital signature verification in rpm.8.
- fix: separate existence and number checks for problems found (#66552).
- beecrypt: merge changes from beecrypt-2.3.0.
- beecrypt: merge doxygen markup with rpmapi doco.
- beecrypt: revert cpu/arch compile option mixup (#66752).
- ix86: make sure that rpm can verify prelinked shared libraries.
- don't install /usr/lib/rpm/redhat per-vendor configuration anymore.
- add translated man pages from PLD.
- resurrect libelf with Elf64, prelink verify should work everywhere.
- fix: reading macro files can corrupt memory if BUFSIZ is teensy.
- fix: assertion failure iff incomplete package install (#66837).
- python: link internal libelf (if used) directly into rpmmodule.so.
- use rpmdb-redhat for suggestions if/when configured (#67430).
- disambiguate failures to import (with error messages, duh).
- fix: multiple relocations (#67596).
- add --build/--program-prefix, delete libtoolize, from %configure.
- find-lang.sh: make sure that mo pattern matches leading '/' (#67368).
- disambiguate added/installed dependency failures (#50388).
- rescusitate remote ftp globs (#67678).
- open rpmdb early RDONLY, reopen later RDWR, avoid signed srpm noise.
- turn off annoying gpg secmem warning.
- warn only once for each NOKEY/UNTRUSTED key id.
- factor common options into table, add rpmcliInit() and rpmcliFini().
- add preliminary rpmgraph(8) and rpmcache(8) executables to rpm-devel.
- use rpmfi in showQueryPackage(), eliminating headerGetEntry().
- fix: forgot lazy open of database on --freshen path (#67907).
- proof-of-concept rpmcache functionality.
- fix: do lazy open of database in rpmtsInitDB() (#67994).
- update rpmcache.8.
- fix: permit deletions of added packages (#67108).
- placeholders for manifest constants for SuSE patch packages.
- fix: repair 2ndary match criteria with rpmdb iterators.
- update for sv.po.
- display signature details using rpm -qi.
- skip signing packages already signed with same key (#62118).
- install rpmal.h and rpmhash.h, implicit rpmps.hinclude, for now.
- revert headerFree/headerLink/headerUnlink debugging.
- popt: mingw32 portability configure check (#67911).
- teach gendiff about unreadable files (#42666).
- python: sanity check fixes on rpmts/rpmte methods.
- have rpmdb-redhat autoconfigure rpm to use %%_solve_dbpath.
- popt: parse file into string of options (#56860).
- version added to *.la dependency libraries (#69063).
- expose digests in rpmio API, but hide internal beecrypt API (#68999).
- add methods to make signature handling opaque wrto rpmts.
- verify signatures/digests retrieved through rpmdbNextIterator().
- imbue %ghost with missingok attribute with --verify (#68933).
- fix: segfault if given a text file as 2nd arg to -Uvh (#69508).
- python: add ts.hdrCheck(), ts.rebuildDB() methods.
- python: iterating on an ts object returns transaction elements now.
- add yellowdog as vendor.
- python: remove the old initdb/rebuilddb methods, use ts.fooDB().
- python: 1st crack at backport to 1.5.2.
- popt: fix --usage (#62234).
- fix: --repackage repaired (#67217).
- fix: rpm2cpio disables signature checks (i.e. same behavior).
- popt: display sub-table options only once on --usage.
- wire --nosignatures et al as common options, rework CLI options.
- python: don't segfault in ts.GetKeys() on erased packages.
- update trpm.
- factor all mode-specific options into mode-specific tables.
- treat an unspecified epoch as Epoch: 0 everywhere.
- detect athlon/duron with CMOV (PLD).
- prevent stale locks in __db files by closing databases on signals.
- make --querytags a common option, fix errant regex (#70135).
- db3: increase mpool and cachesize, compile w/o --enable-debug.
- configurable (default off) build failure if missing %%doc files (PLD).
- configurable (default off) build failure iff unpackaged files (PLD).
- change from default off to default on.
- python: methods to disable all new features for benchmarking.
- preserve rpmdb file attributes across --rebuilddb (#70367).
- fix: identify athlon with 3DNOWEXT as "athlon", not "i786" (#70539).
- fix: repair --root with --verify (#70527).
- fix: signed pubkeys were imported incorrectly (#68291).
- include tgpg script to verify signatures using only gpg.
- check header blobs on export (i.e. rpmdbAdd()).
- enable iterator header blob checks for install/erase modes.
- python: _vsflags_up2date macro to configure verify signature flags.
- resurrect --rollback.
- renumber the callback types to be an orthogonal bit mask.
- provide repackage progress callbacks, compression is slow.
- fix: don't repackage %%ghost files.
- add --predefine to define macros before reading macro configuration.
- python: bare bones rollback bindings.
- python: enable threads on callbacks and longish rpmlib calls.
- python: expose RPMTAG_SOURCEPACKAGE to identify source headers.
- python: eliminate rpm.headerFromPackage() tuple return, deprecated.
- python: add ts.hdrFromFdno(fdno) method.
- fix: check for lead magic, better error message on failure (#69751).
- python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
- python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno().
- python: permit direct ts.dbMatch() python iterations.
- python: the death of rpm.checksig(), use ts.hdrFromFdno() instead.
- add bitmask for precise control of signature/digest verification.
- python: bindings to import pubkeys and display openpgp packets.
- fix: src.rpm installs need fd pos at payload.
- python: add return codes for rollbacks and fooDB methods.
- avoid generating fingerprints for locale/zoneinfo sub-directories.
- python: add (optional) ts.check() callback.
- python: include instance in IDTXload, filename in IDTXglob, return
- python: argument to ts.addErase (if integer) deletes that instance.
- python: rpmmi methods to return this instance, and number of members.
- supply transitive closure for CLI packages from rpmdb-redhat database.
- fix: rebuilddb stat'ed target, not source, for rename sanity.
- create /var/lib/rpm if non-existent in, say, a chroot.
- erased packages are now repackaged into /var/spool/repackage.
- fix: rebuilddb stat'ed target, not source, for rename sanity, take 2.
- python: explicit method to set transFlags.
- python: stuff package name into a string for repackage callbacks.
- rollback: re-create empty transaction set for multiple rollbacks.
- fix: %%basename typo (Dmitry V. Levin<ldv@altlinux.org>).
- fix: queryformat segfaults (Dmitry V. Levin<ldv@altlinux.org>).
- add --with-efence to configure, check install/upgrade with efence.
- beecrypt: short hex string conversion overflows target buffer.
- mark "successors only" packages in transaction.
- reap scriptlets with SIGCHLD handler.
- rename PSM_t to rpmpsm, add methods and refcounts to manage.
- remove %%configure/%%makeinstall from arch-os/macros, default is OK.
- don't export MALLOC_CHECK_ to scriptlets.
- squeaky clean memory leak checking.
- always malloc rpmfi structure, refcounts are correct in rpmtsRun().
- skip redundant /sbin/ldconfig scripts on upgrade (if possible).
- python: stupid typo broke ts.check().
- fix: add epoch to "already installed" check.
- check for interrupt during iteration.
- python: add ts.setProbFilter() method, remove ts.run() argument.
- fix: region trailer offset sanity check wrong (#71996).
- fix: don't stop if db1 database is currently in /var/lib/rpm (#72224).
- add a macro to create a sub-package with debugging symbols.
- merge signature returns into rpmRC.
- python: exceptions on NOKEY/NOTTRUSTED.
- python: don't remap NOKEY/UNTRUSTED to OK.
- beecrypt: change local absolute symbols to defines for prelinking.
- update ru.po.
- fix: handle NOKEY/NOTTRUSTED returns as if OK, always return header.
- portability: carry libelf in src rpm, include signal.h.
- fix: segfault with --checksig, plug memory leak (#72455).
- rpm-4.1 release candidate.
- requirement on libelf >= 0.8.2 to work around incompatible soname (#72792).
- fix: common sanity check on headers, prevent segfault (#72590).
- limit number of NOKEY/UNTRUSTED keys that will be warned once.
- libadd -lelf to rpmdb (#73024).
- portability: non-linux is easier, more to do (#72893).
- fix: SIGCHLD reaper race (#73134).
- fix: don't exit with open cursor, there be a stale lock.
- fix: check for signal induced exit more often (#73193).
- reinterpret the _unsafe_rollbacks macro as earliest rollback.
- fix: always do rpmalMakeIndex.
- fix: resurrect --triggers (#73330).
- python: typo in NOKEY exception string.
- fix: parse pgp packets more carefully.
- fix: parse header data more carefully.
- fix: register SIGCHLD handler before forking (#73134).
- better diagnostics on failed header parsing.
- lclint clean.
- rpm-4.1 release.
- fix: make sure that psm->child pid is set before SIGCHLD is handled.
- fix: use size_t consistently, avoid segfault on ia64.
- use %%{_lib} for libraries.
- fix: permit build with --disable-nls (#76258).

4.0.3 -> 4.0.4:
- solaris: translate i86pc to i386 (#57182).
- fix: %GNUconfigure breaks with single quotes (#57264).
- fix: typo in find-requires.
- tru64 compiler message cleanup.
- add buildarch lines for hppa (#57728).
- sparc: make dbenv per-rpmdb, not per-dbi.
- handle lazy db open's in chroot with absolute path, not prefix strip.
- Depends should use CDB if configured.
- autodetect python 1.5/2.2.
- make rpm-perl package self-hosting (#57748).
- permit gpg/pgp/pgp5 execs to be reconfigured.
- fix: signing multiple times dinna work, discard immutable region.
- remove poptmodule.so for separate packaging.
- permit subset installs for %lang colored hardlink file sets.
- missing key(s) on keyring when verifying a signature is now an error.
- remove dependency whiteout.
- calculate rpm-4.1 ordering/orientation metrics in rpmdepOrder().
- sync popt and rpmio with rpm-4.1, rpmio has OpenPGP API.
- sync rpmdb and build with rpm-4.1, lots of splint annotations.
- add :armor and :base64 query format qualifiers for binary signatures.
- fix: query format qualifiers needed header.c merge.
- fix: query format qualifiers needed header.c merge.
- ppc64 arch added (#58634,#58636).
- turn on auto-generated perl requirements (#58519, #58536, #58537).
- fix: %exclude functional (again).
- trap SIGILL for ppc64 inline asm voodoo fix from cross-dressed ppc32.
- fix: fancy hash fiddles if not a tty.
- fix: handle /.../ correctly in rpmCleanPath().
- transaction rollback code in rpmRollback().
- Red Hat 6.2 portability cruft.
- legacy: configurable whiteout for known Red Hat dependency loops.
- perl.req: don't mis-generate dependencies like perl(::path/to/foo.pl).
- permit args to be hidden within %__find_{requires,provides}.
- a couple more perl.{prov,req} fiddles.
- macro for %files, always include %defattr(), redhat config only.
- fix: drop header region when writing repackaged legacy header.
- bail on %files macro.
- transaction rollbacks are functional.
- generate index for pkgid (aka Sigmd5) tag, query/verify by pkgid.
- generate index for hdrid (aka Sha1header) tag, query/verify by hdrid.
- generate index for fileid (aka Filemd5s) tag, query/verify by fileid.
- query/verify by install transaction id.
- rpm-4.0.4 release candidate.
- add cpanflute2, another perl.req fiddle.
- reapply Berkeley DB patch #4491.
- make --addsign and --resign behave exactly the same.
- *really* dump signature header immutable region.
- speedup large queries by ~50%.
- revert to presentation ordering Yet Again (#62158).
- non-glibc: on upgrade, mergesort is much faster than quicksort.
- fix: queries that evaluated to "" incorrectly returned NULL.
- fix: packages produced by rpm-4.0 dinna merge signature tags.
- fix: rpmdb iterator memory leak in python bindings.
- fix: include <sys/time.h> for 6.2 python modules.
- remove vestiges of mipseb arch (#62408).

4.0.2 -> 4.0.3:
- update per-interpreter dependency scripts, add sql/tcl (#20295).
- fix: rpmvercmp("1.a", "1.") returned -1, not +1 (#21392).
- add cpuid asm voodoo to detect athlon processors.
- add %exclude support (i.e. "everything but") to %files.
  (Michael (Micksa) Slade" <micksa@knobbits.org>)
- add --with/--without popt glue for conditional builds(Tomasz Kloczko).
- python: strip header regions during unload.
- add -g to optflags in per-platform config.
- permit confgure/compile with db3-3.2.9.
- permit manifest files as args to query/verify/install modes.
- fix: parameterized macro segfault (Jakub Bogusz <qboosh@pld-linux.org>)
- fix: i18n tags in rpm-2.5.x had wrong offset/length (#33478).
- fix: AIX has sizeof(uint_16) != sizeof(mode_t) verify cast needed.
- fix: zero length hard links unpacked incorrectly (#34211).
- fix: --relocate missing trailing slash (#28874,#25876).
- fix: --excludedoc shouldn't create empty doc dir (#14531).
- fix: %_netsharedpath needs to look at basenames (#26561).
- fix: --excludepath was broken (#24434).
- fix: s390 (and ppc?) could return CPIOERR_BAD_HEADER (#28645).
- fix: Fwrite's are optimized out by aggressive compiler(irix) (#34711).
- portability: vsnprintf/snprintf wrappers for those without (#34657).
- more info provided by rpmdepOrder() debugging messages.
- merge (compatible) changes from top-of-stack into rpmlib.h.
- cpio mappings carry dirname/basename, not absolute path.
- fix: check waitpid return code.
- remove support for v1 src rpm's.
- re-position callbacks with ts/fi in cpio payload layer.
- state machines for packages (psm.c) and payloads (fsm.c)
- add --repackage option to put erased bits back into a package.
- fix: (ppc) copy va_list in loop (#36845).
- cpanflute perl dependency needs explicit epoch (#37034).
- regenerate rpm.8 man page from docbook glop (in max-rpm).
- lib/depends.c: diddle debugging messages.
- fix: readlink return value clobbered by header write.
- fix: ineeded count wrong for overlapped, created files.
- globalize _free(3) wrapper in rpmlib.h, consistent usage throughout.
- internalize locale insensitive ctype(3) in rpmio.h.
- boring lclint annotations and fiddles.
- transaction iterator(s) need to run in reverse order on pure erasures.
- erasures not yet strict, warn & chug on unlink(2)/rmdir(2) failure.
- more boring lclint annotations and fiddles.
- yet more boring lclint annotations and fiddles.
- still more boring lclint annotations and fiddles.
- enough lclint annotations and fiddles already.
- fix: specfile queries with BuildArch: (#27589).
- fix: debugging message displays header keys (#38454).
- use internal db-3.2.9 sources to build by default.
- don't build db1 support by default.
- create rpmdb.la so that linkage against rpm's db-3.2.9 is possible.
- rpm database has rpm.rpm g+w permissions to share db3 mutexes.
- expose more db3 macro configuration tokens.
- move fprint.[ch] and hash.[ch] to rpmdb directory.
- detect and fiddle incompatible mixtures of db3 env/open flags.
- add DBI_WRITECURSOR to map to db3 flags with CDB database model.
- add rpmdbSetIteratorRewrite to warn of pending lazy (re-)writes.
- harden rpmdb iterators from damaged header instance segfaults.
- add cron/logrotate scripts to save installed package filenames.
- upgrade to db-3.3.4.
- fix: filter duplicate package removals (#35828).
- add armv3l arch.
- fix: i18n strings need 1 on sucess return code (#41313).
- fix: skip %ghost files when building packages (#38218).
- headerFree() returns NULL, _free is C++ safe.
- remove all header region assertion failures, return NULL instead.
- perform db->verify when closing db files.
- eliminate db-1.85 and db-2.x configuration.
- fix: popt arg sanity checks broken, optarg != optArg.
- fix: popt range checks on floats/doubles broken.
- popt: return POPT_ERROR_ERRNO on config open/read/close failure.
- fix: popt exec doesn't add '--', --target et al no longer need '='.
- fix: popt consume-next-arg "!#:+" w/o side effect (#41956).
- fix: for busted db1, attempt chain reconnection to following record.
- return multiple suggested packages
  (Pawel Kolodziej <pawelk@pld.org.pl>).
- fix: return suggested packages when using Depends cache.
- merge sparc64/ia64 fiddles back into linux.{req,prov}.
- automagically generate perl module dependencies always.
- fix: lclint fiddles broke uCache initialization (#43139).
- always use db cursors.
- permit duplicates for btree indices.
- document build modes in rpmbuild.8, rpmbuild is born.
- default to dbenv with mpool, --rebuilddb with nofsync is much faster.
- fix: QUERY_FOR_LIST file count clobbered.
- create top level rpmcli API, factor top level modes into popt tables.
- popt: add POPT_BIT_SET/POPT_BIT_CLR to API.
- autogen.sh checks for latest libtool-1.4 and automake-1.4-p2.
- rpm --verify reports failure(s) if corresponding tag is not in header.
- rpm --verify honors %config(missingok), add -v for legacy behavior.
- remove dead code frpm popt table reorg.
- more CLI typedefs/prototypes moved from rpmlib.h to rpmcli.h.
- rpm --verify skips files in non-installed states.
- rpm --verify skips content checks for %ghost files.
- rpm --verify displays config/doc/gnost/license/readme atrrs for files.
- rpm --verify checks immutable header region digest if available.
- rpmbuild adds header region digest (SHA1 as string).
- use rpmTag* typedefs in new hge/hae/hme/hre header vectors.
- remove rpmrc Provides: Yet Again, use virtual packages.
- dump cursor debugging wrappers.
- rpm --verify can disable rpmFileAttr checks.
- add rpmdbSetIteratorRE() for regex matching in database iterators.
- permit rpm -qa to take RE args applied to name tag.
- permit dbiFindMatches() to use version/release patterns.
- eliminate all uses of rpmdbSetIterator{Version,Release}.
- fix: db1 end-of-file not detected in legacy compatible way.
- fix: remove (harmless) chown error message from %post.
- add --target/--host to %configure, add example cross-build/config.site
  scripts to /usr/lib/rpm <arjanv@redhat.com> (#44581).
- rpmdb iterator selectors permit default/strcmp/regex/glob matching.
- rpmdb iterator selectors permit negative matches.
- alpha: don't add "()(64bit)" dependency markers.
- ia64/sparc: <arch>.{req,prov} identical to linux.{req,prov}.
- add "rpmlib(ScriptletInterpreterArgs)" to track
    %post -p "/sbin/ldconfig -n /usr/lib"
  incompatibilities.
- popt: add POPT_ARGFLAG_SHOW_DEFAULT to display initial values(#32558).
- popt: add POPT_CONTEXT_ARG_OPTS for all opts to return 1 (#30912).
- fix: fsm reads/writes now return error on partial I/O.
- fix: Ferror returned spurious error for gzdio/bzdio.
- check for API/ABI creep, diddle up some compatibility.
- preliminary abstraction to support per-header methods.
- finalize per-header methods, accessing headerFoo through vector.
- make package ordering loop messages debug, not warning.
- remove {ia64,sparc}-linux.{prov,req}, changes merged into linux.*.
- fix: partial sets of hardlinked files permitted in payload.
- fix: mark rpmdb files with %config to prevent erasure on downgrade.
- work around a (possible) compiler problem on ia64.
- fix: rpm -qlv link count for directories dinna include '..'.
- fix: rpm -qlv size for directories should be zero.
- add --noghost to filter non-payload files from rpm -qlv output.
- add %{_gnu} macro to append "-gnu" to %{_target_platform} to
  support --target/--host flavored %configure. Legacy behavior
  available by undefining %{_gnu}.
- propagate %{_gnu} to per-platform configuration.
- fix: parameterized macros with massive mumber of options need
  "optind = 1" "Dmitry V. Levin" <ldv@alt-linux.org>.
- add athlon per-platform configuration.
- remove executable bit to disable autogenerated perl requires until
  perl provides can be vetted.
- disable per-platform %%configure use of %%_gnu until libtool package
  stabilizes.
- fix: permit partially enumerated hardlink file sets during build.
- fix: resurrect rpm signature modes.
- fix: sanity checks on #tags (<65K) and offset (<16Mb) in header.
- fix: add -r to useradd to prevent /etc/skel glop (#46215).
- fix: disambiguate typedef and struct name(s) for kpackage.
- update intl dirs to gettext-0.10.38.
- fix: sanity check for header size added in headerCopyLoad() (#46469).
- fix: redundant entries in file manifests handled correctly (#46914).
- map uid/gid from metadata into payload headers.
- add removetid to header during --repackage.
- expose rpmShowProgress() and rpmVerifyDigest() in rpmcli.h.
- portability: avoid st_mtime, gendiff uses basename, etc (#47497).
- glibc-2.0.x has not __va_copy().
- popthelp.c: don't use stpcpy to avoid portability grief (#47500).
- permit alias/exec description/arg text to be set from popt config.
- python: rhnLoad/rhnUnload to check header digest.
- package version now configureable, default v3.
- rename rpm libraries to have version with libtool -release.
- fix: -i CLI context broken Yet Again.
- unlink all __db.nnn files before 1st db open.
- python bindings should not segfault when fed bad data.
- fix: adjust arg count for --POPTdesc/--POPTargs deletion.
- add linux per-platform macro %_smp_mflags <sopwith@redhat.com>.
- document more popt aliases for --help usage.
- remove --tarbuild from man page(s), use -t[abpcils] instead (#48666).
- fix: scope multi-mode options like --nodeps correctly (#48825).
- isolate cdb access configuration (experimental, use at your own risk).
- fix: hard fail on locked dbopen if CDB locking not in use.
- fix: dbconfig with mp_mmapsize=16Mb/mp_size=1Mb for
  "everything ENOSPC" failure check.
- fix: don't total hard linked file size multiple times (#46286).
- add %dev(type,major,minor) directive to permit non-root dev build.
- fix: _smp_flags macro broken.
- python: bind rhnUnload differently.
- fix: rescusitate --querytags.
- fix: short aliases broken (#49213).
- python: "seal" immutable region for legacy headers in rhnUnload() .
- python: add poptmodule.so bindings.
- fix: %dev(...) needs to map rdev and mtime from metadata.
- resurrect --specedit for i18n.
- fix: 4 memory leaks eliminated.
- fix: yet another segfault from bad metadata prevented.
- add sha1 test vectors, verify on ix86/alpha/sparc.
- add (but disable for now) rpm-perl subpackage from Perl-RPM.
- python: parameterize with PYVER to handle 1.5 and/or 2.1 builds.
- add build dependency on zlib-devel (#49575).
- enable rpm-perl subpackage.
- add pmac/ppciseries/ppcpseries varieties to ppc arch family.
- include tdigest.c tkey.c and trpmio.c to "make dist".
- re-enable dependency resolution source from package NVR.
- rename pmac to ppcmac.
- ia64: revert -O0 compilation.
- upgrade to db-3.3.11 final.
- fix: don't segfault when presented with rpm-2.4.10 packaging (#49688).
- fix: --noscripts is another multimode option.
- add tmpdir to configure db3 tmpdir into chroot tree.
- permit lazy db opens within chroot.
- fix: diddle dbenv path to accomodate backing store reopen in chroot.
- add support for mips (#49283).
- add __as, _build_arch, and __cxx macros (#36662, #36663, #49280).
- detailed build package error messages.
- fix: i18n tags not terminated correctly with NUL (#50304).
- add explicit casts to work around a s390 compiler problem.
- fix: autoconf glob tests (#50845).
- portability: some compilers squawk at return ((void) foo()) (#50419).
- remove fdFileno() from librpmio, use inline version instead (#50420).
- fix: linux find-requires needs quotes around [:blank:].
- remove /var/lib/rpm/__db* cache files if %__dbi_cdb is not configured.
- python: add hiesenbug patch.
- add legacy (compile only) wrappers for fdFileno et al.
- add -D_REENTRANT (note rpmlib is still not thread safe).
- fix: segfault on headerFree given malicious data.
- fix: don't verify hash page nelem.
- better error messages for verification failures.
- include directory /usr/lib/rpm in rpm package.
- always use dl size in regionSwab() return.
- ppc: revert ppcmac to ppc.
- ppc: autoconf test for va_copy.
- python: add exception to detect bad data in hdrUnload.
- change dir creation message from warning to debug for now.
- verify perms (but not mode) on %ghost files.
- headers without RPMTAG_NAME are skipped when retrieved.
- within a region, entries sort by address; added drips sort by tag.
- fix: error message on failed package installs resurrected.
- python: memory leaks in headerLoad/headerunload bindings.
- python: retrofit sha1 digest using RPMTAG_SHA1RHN.
- python: change rhnUnload bindings.
- python: teach rhnLoad about RPMTAG_SHA1RHN as well.
- fix: Provides: /path did not work with added packages (#52183).
- fix: progress bar scaling did not include source rpm count.
- fix: hash page nelem failure to verify.
- fix: initialize "verify" transaction stepName with -vv (#53582).
- fix: ftp remote globs broken (#46892).
- popt: clarify X consortium license in popt.3 man page.
- close/discard Depends index after rpmdepCheck() use.
- lclint-3.0.0.15 fiddles.
- fix: harmless typo in db3 chroot hack.
- fix: big-endian's with sizeof(time_t) != sizeof(int_32) mtime broken.
- fix: add Korean message catalogs (#54473).
- add RPHNPLATFORM and PLATFORM tags.

4.0 -> 4.0.[12]
- fix: avoid calling getpass twice as side effect of xstrdup macro
  (katzj@linuxpower.org) (#17672).
- order packages using tsort, clipping Requires:'s in dependency loops.
- handle possible db3 dependency on -lpthread more gracefully.
- bump popt version to 1.6.1.
- fix: more (possible) xstrdup side effects.
- fix: rpm2cpio error check wrong on non-libio platforms.
- fix: runTriggers was not adding countCorrection.
- add rpmGetRpmlibProvides() to retrieve rpmlib(...) provides
  "Pawel A. Gajda" <mis@k2.net.pl>.
- syntax to specify source of Requires: (PreReq: now legacy).
- rip out rpm{get,put}text, use getpo.sh and specspo instead.
- fine-grained Requires, remove install PreReq's from Requires db.
- fix: duplicate headerFree() on instalBinaryPackage() error return.
- fix: work around for (mis-compilation?!) segfaults on signature paths.
- fix: segfault on exit of "rpm -qp --qf '%{#fsnames}' pkg" (#20595).
- hpux w/o -D_OPEN_SOURCE has not h_errno.
- verify MD5 sums of payload files when unpacking archive.
- hide libio lossage in prototype, not API.
- add support for SHA1 as well as MD5 message digests.
- don't verify src rpm MD5 sums (yet).
- md5 sums are little endian (no swap) so big endian needs the swap.
- add doxygen and lclint annotations most everywhere.
- consistent return for all signature verification.
- use enums for almost all rpmlib #define's.
- API: change rpmProblem typedef to pass by reference, not value.
- unify rpmError and rpmMessge interfaces through rpmlog.
- collect and display rpm build error messages at end of build.
- don't trim leading ./ in rpmCleanPath() (#14961).
- detect (still need to test) rdonly linux file systems.
- check available inodes as well as blocks on mounted file systems.
- pass rpmTransactionSet, not elements, to installBinaryPackage et al.
- add cscope/ctags (Rodrigo Barbosa<rodrigob@conectiva.com.br>).
- remove getMacroBody() from rpmio API.
- add support for unzip <rodrigob@conectiva.com.br>
- add brp-strip-shared script <rodrigob@conectiva.com.br>.
- better item/task progress bars <rodrigob@conectiva.com.br>.
- load headers as single contiguous region.
- add region marker as RPM_BIN_TYPE in packages and database.
- fix: don't headerCopy() relocatable packages if not relocating.
- merge signatures into header after reading from package.
- RPM_BIN_TYPE malloc'ed when retrieved through headerGetEntry().
- add headerFreeData() to free any data malloc'ed during retrieval.
- preserve exact image of original header when installing/upgrading.
- add missing headerFree for legacy signature header.
- fix: removed packages leaked DIRINDEXES tag data.
- reload tags added during install when loading header from rpmdb.
- avoid brp-compress hang with both compressed/uncompressed man pages.
- improved find-{requires,provides} for aix4/hpux/irix6/osf.
  Tim Mooney<mooney@dogbert.cc.ndsu.NoDak.edu>
- portability: remove use of GNU make subst in lib/Makefile (Joe Orton).
- python: bind package removal (#21274).
- autoconfigure building python bindings.
- autoconfigure generating rpm API doco.
- fix: don't fdFree in rpmVerifyScript, rpmtransFree does already.
- use package version 3 if --nodirtokens is specified.
- add package names to problem sets early, don't save removed header.
- make sure that replaced tags in region are counted in headerSizeof().
- support for dmalloc debugging.
- filter region tags in headerNextIterator, exit throut headerReload.
- add rpmtransGetKeys() to retrieve transaction keys in tsort'ed order.
- python bindings for rpmtransGetKeys().
- fix: include alignment in count when swabbing header region.
- handle added dirtoken tags (mostly) correctly with header regions.
- add FHS doc/man/info dirs, diddle autoconf goo.
- fix: headerUnload handles headers w/o regions correctly on rebuilddb.
- resurrect rpmrc Provides: as well as implicit dependency on packge
  info.
- change dependency loop message to RPMMESS_WARNING to use stderr, not
  stdout.
- fix: (transaction.c) assume file state normal if tag is missing.
- fix: failed signature read headerFree segfault.
- fix: revert ALPHA_LOSSAGE, breaks 6.2/i386.
- fix: synthesized callbacks for removed packages have not a pkgkey.
- identify install scriptlet failures with the name of the scriptlet.
- handle install chroot's identically throughout the install process.
- add rpmlib(HeaderLoadSortsTags) for tracking header regions
  "just in case".
- create _tmppath on the fly if not present.
- remove /etc/rpm/macros.db1 configuration file if db3 rebuilt.
- remove overly verbose dbiOpen() error messages, no longer needed.
- whiteout mozilla loop for 7.1.
- immutable headers, once installed by rpm3, need to lose immutablity.
- fix: removed headers from db need a headerCopy().
- send query/verify output through rpmlog().
- resurrect rpmErrorSetCallback() and rpmErrorString().
- use malloc'ed buffer for large queries.
- fix: avoid FAT and other brain-dead file systems that have not inodes.
- fix: hack around alpha mis-compilation signature problems.
- rpmmodule.c(handleDbResult): return empty list when nothing matches.
- (non-linux): move stubs.c to rpmio (#21132).
- (python): bind initdb (#20988).
- (popt): fix float/double handling (#19701).
- (popt): non-linux needs <float.h> (#22732).
- (popt): add POPT_ARGFLAG_OPTIONAL for long options with optional arg.
- (popt): diddle auto-help to include type of arg expected.
- use popt autohelp for rpm helper binaries.
- fix: avoid locale issues with strcasecmp/strncasecmp (#23199).
- remove almost all explicit uses of stderr in rpmlib using rpmError().
- fix: pass scriptlet args, as in %post -p "/sbin/ldconfig -n /lib".
  (Rodrigo Barbosa).
- fix: 3 packages from Red Hat 5.2 had bogus %verifyscript tag.
- tsorted packages processed in successor count order.
- fix: resurrect --excludepath (#19666).
- fix: digests on input FD_t dinna work.
- fix: remove rebuilddb debugging leakage.
- successors from tsort are processed in presentation order.
- fix: find-requires.perl needed update (#23450).
- fix: don't hang on build error.
- fix: remove "error: " prefix from signature verification message.
- hack: permit installer to determine package ordering using 1000003 tag.
- fix: extra newline in many error messages (#23947).
- fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
- add install/remove transaction id tags.
- tsort prefers presentation order.
- 1st crack at Mandrake specific per-platform macros.
- fix: insure that %lang scopes over hard links correctly.
- fix: rpmCleanPath was nibbling at .. in macrofiles incorrectly.
- fix: check waitpid return code.
- fix: make a copy of retrieved header before loading.
- fix: diddle exit code for attempted installs of non-packages (#26850).
- python binding diddles to reduce installer memory footprint by
  delayed loading of file info.
- fix: remove fixed size buffer on output path (#26987,#26332).
- resurrect rpmErrorCode in the API for Perl-RPM.
- fix: permit packages to differ by 0 or 32 bytes (#26373).
- fix: permit HEADER_IMMUTABLE tag queries.
- split db configuration into separate file.
- portability changes from Joe Orton <jorton@redhat.com> et al.
- (alpha): rip out ALPHA_LOSSAGE now that gcc-2.96-76 has fix (#28509).
- (popt): use sprintf rather than snprintf for portability.
- (sparc) disable MD5 sum checks during install.
- (db1) plug largish memory leak in simulated interface for falloc.c.
- remove mozilla dependency white out, no longer needed.
- fix: adjust for libio breakage in Red Hat 5.x with glibc-2.0.7-29.4.
- map i686-like (i.e. w/o CMOV) platforms to better alternatives.

3.0.6 -> 4.0
- use DIRNAMES/BASENAMES/DIRINDICES not FILENAMES in packages and db.
- API: change dbi to pass by reference, not value.
- cram all of db1, db_185, and db2 interfaces into rpmlib.
- convert db1 -> db2 on-disk format using --rebuilddb.
- add db3 to the pile, isolate all with incremental link and vectors.
- prefer db3 as default.
- permit db3 configuration using macros.
- create dbi from template rather than passed args.
- use hashed access for package headers.
- db3: save join keys in endian neutral binary format.
- treat legacy falloc.c as "special" db[01] index for package headers.
- API: pass *SearchIndex() length of key (0 will use strlen(key)).
- API: remove rpmdb{First,Next}RecNum routines.
- add explcit "Provides: name = [epoch:]version-release" to headers.
- fix: cpio.c: pre-, not post-, decrement the link count.
  (from Fabrice Bellet <Fabrice.Bellet@creatis.insa-lyon.fr>)
- make db indices as lightweight as possible, with per-dbi config.
- db1.c will never be needed, eliminate.
- API: merge rebuilddb.c into rpmdb.c.
- API: replace rpmdbUpdateRecord with rpmdbSetIteratorModified.
- API: replace rpmdbFindByLabel with RPMDBI_LABEL iteration.
- API: replace rpmdbGetRecord with iterators.
- API: replace findMatches with iterators.
- Filter DB_INCOMPLETE on db->sync, it's usually harmless.
- Add per-transaction cache of resolved dependencies (aka Depends).
- Do lazy dbi{Open,Close} throughout.
- Attempt fine grained dbi cursors throughout.
- fix: free iterator *after* loop, not during.
- fix: Depends needed keylen in dbiPut, rpmdbFreeIterator after use.
- Rename db0.c to db1.c, resurrect db2.c (from db3.c).
- simplify --last popt alias, date like -qi (bjerrick@easystreet.com).
- fix: alloca'd memory used outside of scope (alpha segfault).
- fix: define/eval options assumed sizeof(int) == sizeof(void *).
- fix: sparc64 per-platform directory shouldn't be sparc64linux.
- fix: (segfault) verify needs rpmdb while query does not.
- add calculated nlink field to -qlv output (like ls -al).
- detects and builds properly against the new fopencookie API in
  glibc 2.2.
- change popt exec alias in oreder to exec rpm children.
- split rpm into 5 pieces along major mode fault lines with popt glue.
- turn on new, more complete version of %%configure.
- add %%makeinstall analogue of new %%configure for autoconf packages.
- mark packaging with version 4 to reflect filename/provide changes.
- change next version from 3.1 to 4.0 to reflect package format change.
- change %configure, add %makeinstall macros to handle FHS changes.
- add optflags for i486 and i586.
- fix: segfault with legacy packages missing RPMTAG_FILEINODES.
- require db3 in default configuration.
- create rpmio directory for librpmio.
- make librpmio standalone.
- fix: avoid clobbering db cursor in removeBinaryPackage.
- expose cursors in dbi interfaces, remove internal cursors.
- remove incremental link.
- portability: sparc-sun-solaris2.5.1.
- fix: don't count removed files if removed packages is empty set.
- fix: permit '\0' as special case key (e.g. "/" in Basenames).
- require --rebuilddb to convert db1 -> db3, better messages.
- fix: open all db indices before performing chroot.
- fix: typo in brp-compress caused i18n man pages not to compress.
- API: uncouple fadio from rest of rpmio.
- API: externalize legacy fdOpen interface for rpmfind et al.
- put version on rpmpopt filename to avoid legacy filename collision.
- change optflags for i386.
- multilib patch, take 1.
- add pre-transaction syscall's to handle /etc/init.d change.
- don't bother saving '/' as fingerprint subdir.
- prefix payload paths with "./", otherwise "/" can't be represented.
- fix: compressFilelist broke when fed '/'.
- fix: typo in --last popt alias (#12690).
- fix: clean file paths before performing -qf (#12493).
- remove build mode help from rpm.c, use rpmb instead.
- fix: set multilibno on sparc per-platform config.
- fix: legacy requires './' payload prefix to be omitted for rpm itself.
- fix: remove verbose database +++/--- messages to conform to doco.
- add S_ISLNK pre-transaction syscall test.
- fix: initialize pretransaction argv (segfault).
- fix: check rpmlib features w/o database (and check earlier as well).
- rip out pre-transaction syscalls, more design is needed.
- remove (dead) dependency checks on implicitly provided package names.
- remove (dead) rpmdb API code in python bindings.
- fix: make set of replaced file headers unique.
- fix: don't attempt dbiOpen with anything but requested dbN.
- create rpmbuild/rpmquery/rpmverify/rpmsign symlinks.
- fix: look for any/all dbapi when rebuilding.
- link rpm2cpio dynamically since cpio is linked dynamically.
- fix: uniqify dependency problems when printing (#14034).
- fix: segfault on erase if filestates is missing in header (#14679).
- fix: popt POST callbacks typo.
- fix: -Va broken, make db cursors per-iterator, not per-dbi.
- fix: segfault when globbing on "" (#15593).
- fix: rebuild db1 -> db3 ate 1st header (#16263).
- translate rpm.8 man page (Peter Ivanyi <ivanyi@internet.sk>).

3.0.6 -> 3.0.7

3.0.5 -> 3.0.6
- python bindings to query and verify signatures.
- add callbacks on package erasure.
- fix: preserve cpio errno when using Fclose with libio.
- fix: initialize sigs everywhere in python header object.
- popt: support for float/double args.
- fix: honor --test when doing --freshen.
- add alpha* architectures.

3.0.4 -> 3.0.5
- configure.in fiddles for BSD systems (Patrick Schoo).
- solaris2.6: avoid bsearch with empty dir list (Ric Klaren - klaren@cs.utwente.nl)
- include RPM-GPG-KEY in file manifest.
- Add ia64 and sparc64 changes.
- rpm.spec: add per-platform sub-directories.
- FreeBSD fixes (bero@redhat.com).
- handle version 4 packaging as input.
- builds against bzip2 1.0
- fix: resurrect symlink unique'ifying property of finger prints.
- fix: broken glob test with empty build directory (Geoff Keating).
- fix: create per-platform directories correctly.
- update brp-* scripts from rpm-4.0, enable in per-platform config.
- alpha: add -mieee to default optflags.
- add RPMTAG_OPTFLAGS, configured optflags when package was built.
- add RPMTAG_DISTURL for rpmfind-like tools (content unknown yet).
- teach brp-compress about /usr/info and /usr/share/info as well.
- update macros.in from rpm-4.0 (w/o dbi configuration).
- fix: don't expand macros in false branch of %if (kasal@suse.cz).
- fix: macro expansion problem and clean up (#11484) (kasal@suse.cz).
- uname on i370 has s390 as arch (#11456).
- python: initdb binding (Dan Burcaw <dburcaw@terraplex.com>).
- internalize --freshen (Gordon Messmer <yinyang@eburg.com>).
- support for separate source/binary compression policy.
- support for bzip payloads.
- fix: payload compression tag not nul terminated.
- identify package when install scriptlet fails (#12448).
- remove (unused) RPMTAG_CAPABILITY.
- remove (legacy) use of RPMTAG_{OBSOLETES,PROVIDES} internally.
- remove (legacy) support for version 1 packaging.
- remove (legacy) support for converting gdbm databases.
- eliminate unused headerGz{Read,Write}.
- support for rpmlib(...) internal feature dependencies.
- display rpmlib provides when invoked with --showrc.
- fix: compare versions if doing --freshen.
- disable rpmlib(VersionedDependencies) by defining _noVersionedDependencies.

3.0.3 -> 3.0.4
- use compressed filenames on install side.
- start unifying FD types, CFD_t now gone.
- check for memory leaks (almost all leaks are plugged).
- fix: resurrect multiple target platform builds.
- freshen.sh: detect when all packages are up to date (Ian Macdonald).
- fix: typo in error message (#6858).
- add/update dependency scripts (Ken Estes).
- use directory tokens internally to reduce memory usage.
- permit --whatprovides to lookup file dependencies.
- fail to package if absolute symlink points within build root.
- initial version of check-prereqs.
- expose enough of legacy fdio interface to compile rpmfind/rpm2html.
- fix: Fopen should use 0666 as default (umask will be applied later).
- fix: default for rd_timeoutsecs is 1 sec (avoid ufdio assertion).
- fix: new FILENAMES tags require package index, not pointer in lookups.
- rename new FILENAMES tags to BASENAMES/DIRNAMES/DIRINDEXES.
- fix: don't look at password when searching urlCache.
- add contentLength sanity check on rpmdb headerWrite.
- fix: fprint abort on stat("/", ...) in empty chroots.
- perform glob on remote ftp query args.
- fix: ftpAbort must close the data channel to read abort status.
- perform glob on remote ftp install args.
- fix: reload macros from cmd line when re-reading config files.
- fix: compressFileList was over-generating dirNames.
- fix: alAddPackage sorted dirNames too soon, destroying dirMapping.
- expose enough of legacy fdio interface to compile gnorpm.
- fix: missing strdup when overriding buildroot from command line
  argument (#1026,#5006).
- diddle some names to keep my C++ brethern happy (i.e. kpackage port).
- fix: add ufdSeek.
- build popt (with libpopt.so*) as a sub-package of rpm.
- split python bindings into a separate sub-package of rpm.
- add ja translation and man pages (Kanda Mitsuru kanda@nn.iij4u.or.jp).
- fix: fp.subDir was incorrectly set to NULL in sparse chroot's.
- fix: manageFile needs to and with O_WRONLY(=1), not O_RDONLY(=0).
- fix: resurrect failed glob error message during build.
- add several BuildRoot FTW policies.
- add manpage for gendiff (pbrown@redhat.com).
- updated sv.po (goeran@uddeborg.pp.se) (#8349).
- configurable PATH for install %pre/%post et al scriptlets.
- use only %_install_langs, not LINGUAS/LANG when deciding to install.
- configurable compression type/level for package payloads.
- default value for %_install_langs is all.
- fix: resurrect relative path's in fprint lookup queries.
- extract spec files from bzip'ped tarballs too on tar builds.
- add %_rebuilddbpath macro to permit rebuilding db in new location.
- updated perl scripts (Ken Estes).
- fix: on --rebuilddb, make sure new/old paths are not the same (#8752).
- fix: on --erase, segfault caused by "" prefix.
- explicitly expand file lists in writeRPM for rpmputtext.
- {Free,Open}BSD find-{provides,requires} (suzukis@file.phys.tohoku.ac.jp).
- new rpm-build package to isolate rpm dependencies on perl/bash2.
- always remove duplicate identical package entries on --rebuilddb.
- add scripts for autogenerating CPAN dependencies.
- add sl.po from Primoz Peterlin <peterlin@biofiz.mf.uni-lj.si>.
- updated sv.po from <goeran@uddeborg.pp.se>.
- macro expansion (and absolute path) in %files -f arg (#9508,#9091).
- permit cli setting of build root policies.
- fix: filter excluded paths before adding install prefixes (#8709).
- add i18n lookaside to PO catalogue(s) for i18n strings.
- try for /etc/rpm/macros.specspo so that specspo autoconfigures rpm.
- per-platform configuration factored into /usr/lib/rpm subdir.
- sparc-sun-solaris2.6 portability check.
- simpler hpux.prov script (Tim Mooney).
- portability: skip bzip2 if not available.
- portability: skip gzseek if not available (zlib-1.0.4).
- portability: skip personality if not available (linux).
- portability: always include arpa/inet.h (HP-UX).
- portability: don't use id -u (Brandon Allbery).
- portability: don't chown/chgrp -h w/o lchown.
- portability: splats in rpm.spec to find /usr/{share,lib}/locale/* .
- fix: better filter in linux.req to avoid ARM specific objdump output.
- fix: use glibc 2.1 glob/fnmatch everywhere.
- fix: noLibio = 0 on Red Hat 4.x and 5.x.
- fix: typo in autodeps/linux.req.
- configure noarch compatibility in rpmrc for ia64.

3.0.2 -> 3.0.3
- add --eval to find result of macro expansion.
- add configure scaffolding to support rpm-4.0 packages.
- include shared libs in rpm-devel (no versioning yet).
- add epoch (as [0-9]*:version-release) to install dependency parse.
- move install/erase major modes into rpmlib.
- move checksig/resign major modes into rpmlib.
- add python bindings to rpm-devel (linux only).
- make query (rpm -qvl) behave like (POSIX?) ls for older files (#4050).
- fix: %if parsing skipped 3 chars too many.
- permit multiline macro expansions with comments and %if.
- add pl translation and man pages (PLD team - from Tomasz Kloczko).
- fix: incomplete cleanup if --rebuilddb fails (#4115).
- add versions to provides.
- fix: sanity test on specfile fails when encountering i18n chars.
- print all dependencies for each package at end of build.
- the death of RPMSENSE_SERIAL, use [epoch:]version[-release] instead.
- add _mandir/_infodir macro expansions to docdirs (Tomasz Kloczko).
- add post install configurable dependency checking.
- fix: segfault on --rebuild (#4185).
- macro fixes (Benedict Lofstedt, #4220):
   expand %# just like %{#} (and with same value as shell analogues).
   macro defaults for *, 0, and # if no args specified.
   getopt on non-linux requires optind to be saved/restored.
- fix: don't remove file until last occurence in transaction (#4291).
- resuscitate net shared paths (#4330).
- fix: macro table cannot contain NULL pointers (#4263).
- fix: last char in rpmrc w/o terminating newline lost (#4361).
- prepare for handling \r in macro exapnsions.
- fix: n>1 occurrences of %config(noreplace) should not FA_CREATE (#4355).
- fix: use pgp5 rather than pgp-2.6.3 if both are in %_pgpbin (#4564).
- match "de" when locale is specified as "de_DE.ISO-8859-1@Munich".
- add versions to obsoletes.
- add %_install_langs to configure languages to be installed.
- add LC_ALL/LC_MESSAGES to query locale search.
- fix: segfault with "--sign" w/o supplying files (#4651).
- add headerWrite return code and check for errors.
- update python bindings from anaconda.
- add versions to prereq.
- add syntax sensitive implict prereq on rpm-3.0.3.
- fix: don't successfully match with strncasecmp("sparc", "sparc64", 5)
- add sparcv9 architecture.
- add --freshen to usage message (#4823).
- suggested changes to docs from Ken Estes (#4451).
- link libbz2.a statically to avoid rpm->bzip2 dependence for now.
- Tru64: avoid find-requires variable size limit (Tim Mooney).
- Solaris: use getpassphrase rather than getpass if available.
- pgp and pgp5 have compatible RSA signature (#4780).
- fix: avoid db problems with self-obsoleting packages on install.
- glibc2: always enable dynamic mtrace if available.
- fix: versioned provides devolved to existence test with conflicts.
- fix: with unspecified epochs, skip dependency epoch compare.
- python: shared module linked correctly.
- do versioned provides/conflicts resolution correctly.
- rpmpopt: display versioned provides/obsoletes.
- revert to shared libbz2.so now that bzip2 is in base install.
- fix: command line install had header memory leak.
- check for NULL on all memory allocations.
- free rpmrc mallocs on exit.
- glibc2: permit run time leak detection.
- fix: removed files fingerprint memory leak.
- fix: resurrect allfiles flag from rpm-2.5.x.
- fix: version compares compatible with epoch-less requires/conflicts.
- fix: rpm-2.5.1 had file list w/o leading / fix.
- portatbility fiddles (solaris).
- create binary rpm directory (e.g. .../%{_target_cpu}) on the fly.
- updated pl/rpm.8 (PLD team).
- new find req/prov scripts for non-linux platforms (Tim Mooney).
- fix: non-GNU globs burp on repeated '/' in patterns.
- dumb cpp's want white space around lclint annotations (Tim Mooney).
- aix: aix.req broken by cut-and-paste (Tim Mooney).

3.0.1 -> 3.0.2
- eliminate armv4 entries from rpmrc (Andrew E. Mileski).
- permit multiple "Provides: " lines in rpmrc (#2999).
- add BuildConflicts: and BuildRequires: in spec file and src rpm.
- fix: bigendian's with longlong file sizes (e.g. IRIX) dinna work.
- move printDep* routines into rpmlib for gnorpm et al.
- updated ru translation (Sergey Kubushin).
- add vpkg-provides.sh (Tim Mooney).
- don't clobber LDFLAGS in top-level Makefile (Tim Mooney).
- fix: build root from cmd line did not set macro %buildroot (#1026).
- fix: resurrect "rpm -Va --nofiles" (verify dependencies only) (#3111).
- rpm-devel should require popt (#3125).
- don't spin while waiting for delayed requires/provides input (#3289).
- common parse for all dependency token syntax.
- eliminate find-requirements on libNoVersion (Red Hat linux only).
- add new-fangled requires on "libc.so.6(GLIBC_2.1)" (sparc-linux only).
- MiNT port (Guido Flohr <gufl0000@stud.uni-sb.de>).
- fix: --rebuilddb with --root dinna remove directory (Michael Andres).
- fix: false fingerprint stat cache hit -- "the tetex problem" (#2727).
- fix: bsearch needs macro table sorted after undefine. (#3713).
- fix: --checksig segfault with odd pgp output (e.g. w/o ~/.pgp) (#3720)
- avoid numeric overflow in version comparison (Thayne Harbaugh<tharbaug@liberate.com>).
- move url.c and ftp.c to rpmlib right next to query.
- 12 more dead strtoks.
- changelog stamp broken w/ big endian 64 bit time_t (Stephane Erania).
- tru64: use /bin/sh not /usr/bin/ksh in find-requires.
- 32Mb (~16x largest known) sanity check on header size.

3.0 -> 3.0.1
- fix: %verifyscript resurrected (Shing-Gene Yung).
- fix: % before non-alphabetic non-macro special now passed unscathed.
- fix: noarch header gets initialized differently.
- fix: $2 to triggerpostun scripts was wrong
- fix: --querybypkg in man page should be --filesbypkg
- fix: optflags not implicitly set to canonical arch value.
- fix: prefer pgp2.6.3 over pgp5 if both are installed.
- make sure that rpm-the-package auto-requires glibc.
- add rpmputtext/rpmgettext to rpm package.
- fix: non-apache servers need "GET ... HTTP/1.0" by the book.
- fix: %doc wrongly inherits lang from last entry in %files.
- resurrect toplevel tar target.
- spec file removal separate from source removal (Shing-Gene Yung).
- add rpm prefix to MD5 routines to avoid name conflict on solaris.
- fix: resurrect -Vp, -Vf and -Vg functionality.
- colesce query and verify modes.
- better cpio error message if package contains missing hard links.
- fix: shared file not skipped when removed.
- fix: conversion script left off leading underscores.
- another strtok bites the dust.
- fix: prevent return code wrap during packagage checking/resigning.
- permit multiple %lang(xx) markers on elements in %files.
- permit %lang(xx,yy,zz) constructs --  2 more dead strtoks.
- fix: --prefix should work properly during package installs.
- add librpmbuild.a to the file list.

2.94 -> 2.95
- fix: last update transaction set segfault bug in installer.
- improved checks for statfs (Tim Mooney).
- remove inconsistent use of __P((...)) throughout.
- non-static inline functions caused IRIX cc pain.
- CPIOERR_CHECK_ERRNO masking caused AIX cc warnings.
- solaris 2.6+ needs statvfs.
- check build prerequisites before building from specfile.
- convert per-system configuration in /etc/rpmrc to macros.

2.93 -> 2.94
- fix: segfault while parsing target string.
- fix: os was not initialized with "--target i586".
- fix: --prefix resurrected.
- non-linux, non-gcc portability fixes (Tim Mooney).
- default to static libs only (remove implied support for shared libs).

2.92 -> 2.93
- eliminate old rpmrc configuration syntax.
- pgp5 support (Carlo Wood <carlo@runaway.xs4all.nl>)
- fix: segfault from double close on ftpGetFileDesc->ftpAbort path.
- fix: don't add header if signature generation failed (Carlo Wood).
- more DU 4.0D fiddles (Shing-Gene Yung).
- fix: segfault from unknown uid/gid -- use builder's uid/gid instead.
- autoReq/autoProv now per-package.
- fix: avoid segfault using --prefix until ewt fixes.
- add --define "%foo %bar" option.
- dump macros to same fd as --showrc uses.
- add %GNUconfigure for full-blown package regeneration.
- fix: RPM_ARCH/RPM_OS had wrong values.
- fix: create ppc directories correctly.
- (re-)enable fixowner/fixgroup macros.
- fix: specfile BuildRoot was masking rpmrc macro.
- expand twiddles in macrofiles list.
- add explicit macrofiles path to rpmrc.
- add per-target macrofiles to search path.
- take globalMacroContext out of macro api.
- fix: flush all macros between builds.
- add name/version/release macros during src.rpm install.
- attempt mkdir sourcedir/specdir during src.rpm install.

2.91 -> 2.92
- update with libtool-2.4f.
- DU 4.0D fiddles (Shing-Gene Yung<shing@cz3.nus.edu.sg>)
- change support@redhat.com to rpm-list@redhat.com.
- fix: with --target=i686, pass macro %_arch=i386.
- fix: rpm --target=arch ... resurrected.
- fix: rpm -q --specfile --specedit now works even with BuildArch:.
- fix: nested strtok's is a no-no.
- added disk space checking

2.90 -> 2.91
- fix: memory leaks in rpmRunTransactions plugged.
- fix: build of packages w/o BuildRoot segfault.
- permit substitution of I18N strings from PO meta-catalogues.
- add callbacks for installer updates while doing URL xfers.
- resurrect http queries/verifies.
- create rpmbzio.c to avoid implicit dependence on libbz2 for installer.
- spec files can provide /filename now
- added rpmdbOpenForTraversal()
- proxy http (Alex deVries).
- add BuildPrereq: in spec file and src rpm.
- added rpmtransSetScriptFd()
- fixed config file problems during chroot upgrades
- fixed %attr brokenness for directories
- augment linux provides/requires for glibc 2.1 backward compatibility.
- fixed --noscript, --notriggers, --excludedocs, and a bunch
  of other install/remove flags
- fixed noreplace handling
- complain about old packages being installed

2.5.x -> 2.90
- added --excludepath
- identify missing keys by type (Toshio Kuratomi).
- package install/removal much smarter about symlinks
- redid install/remove API to allow transaction semantics
- support for GPG (Toshio Kuratomi <badger@prtr-13.ucsc.edu>)
- file lookup finally sane wrt symbolic links :-)
- fileindex format changed -- rebuilddb is necessary for rpm 2.90!!
- --rebuilddb doesn't open old index files
- permit http:// and file:// url's as well as ftp://.
- change --rcfile to permit colon separated file list.
- compile in defaults from rpmrc/macros.
- finish hiding rpmdb index record data ("matches").
- implement abstract fd type almost everywhere.
- update and rename Czech (Pavel Makovec <pavelm@terminal.cz>)
- augment --showrc with -v, only display set variables without -v.
- add macrofiles variable, permit second entry to initMacros().
- add config.h defines for paths to find-requires et. al.
- add readRPM to libbuild, headerGetLangs to librpm.
- permit rpm to be built in a sub-directory (--srcdir=DIR).
- configure using automake.
- arch/os (and platform) should be case insensitive everywhere forever.
- attempt to deal rationally with os as "Linux" or "linux".
- add generalized expression handler (Tom Dyas<tdyas@remus.rutgers.edu>)
- use /usr/lib/rpm/mkinstalldirs if mkdir -p fails.
- more portable dirent handling (Hermann Lauer).
- add Slovak translation (Stanislav Meduna <stano@trillian.eunet.sk>)
- gettextify rpmMessage/rpmError/fprintf messages.
- update po files; add cz to catalogs.
- cpio_gzip: dup the fd before doing gzdopen (Thanks Erik!)
- add --noLang to skip non-default languages.
- writeRPM can now copy cpio archive from fd.
- preliminary macro environment as side effect of rpmrc parse.
- macro handling in rpmlib -- rework include: tag with macro expansion.
- first attempt at librpmbuild API.
- fixed lib/rpmrc.c to accept include: tags (AdV)
- fixed the CHANGES file to reflect that this is 2.9, not 3.0 (AdV)
- aggregate system includes into system.h.
- rearrange functions to minimize exported routines in librpmbuild API.
- generalize cpio I/O to eliminate pipe to exec'd gzip on install.
- add {init,add,expand}Macro args everywhere (new macro.c compatibility)
- add new fully recursive macro.c
- there must be a { between two % in a query format (unless %% is used)

2.5.6 -> 2.5.7:
- permit 0x1b in specfile sanity check.
- increase timeout in tread from 5 to 30 secs for slow links.
- rename file before unlinking to avoid EBUSY failures.
- headerGetEntry now returns count=0 if tag not found (Chris Blizzard).
- resurrect osf1 as canonical os name (Time Mooney).
- sub-packages should inheirit Prefixes tag (Ian Mortimer).
- make '-' character illegal (again) in version/release.
- use portable #!/bin/sh (Tim Mooney).
- don't erase failing build script (Tim Mooney).
- use portable mkinstalldirs (Tim Mooney).
- irix6 autodeps were dup'd (Shing-Gene Yung <shing@cz3.nus.edu.sg>).
- getservbyname needed ntohs().
- propagate "const char *" into rpmlib prototypes.
- use "original db-1.85" if available (Raw Hide glibc 2.1).
- make sure files to sign exist before asking for the pass phrase

2.5.5 -> 2.5.6:
- ultrapenguin 1.1.9 sparc64 changes.
- attempt ftp ABOR on query/verify url's.
- cache open ftp control descriptor with password.
- verify needed same realpath semantics as query.
- plug fd leak in urlGetFile().
- translate cpio errors using cpioStrerror.
- display "..?....." rather than "..5....." for unreadable files.
- run time (rather than compile time) host endian check.
- caldera patches (ray@Caldera.DE)
- added ARM patches.
- fix incorrect directory permissions using %attr/%defattr.
- permit "rpm -q --specfile ... file.spec" queries.
- strncasecmp on spec file separators (KDE has %Description).
- remove redundant md5 computation on uninstall.
- permit --rmsource --force even if sources/patches are missing.
- don't compute md5sum on non-file %config objects. (from Jos Vos)
- check arch only on RPMBUILD_{PREP,BUILD,INSTALL,PACKAGEBINARY}.
- configure.in: set default value for RPM. (Tim Mooney)
- add new Epoch: keyword just like Serial:.
- update Russian translation w man pages.
- solaris: don't attempt static link. (Tim Mooney)
- fix: timeCheck in rpm.c should be unsigned long. (Tim Mooney)
- osf: prov searches only shared libraries. (Tim Mooney)
- solaris: set PATH in prov/req scripts. (Tim Mooney)
- fix: ignore modes on symlinks. (Tim Mooney)
- sub-packages inherit RPMTAG_EPOCH (just like RPMTAG_VERSION/RELEASE).
- fix off-by-1 alloca that prevented relocating /.
- there must be a { between two % in a query format (unless %% is
  used).

2.5.4 -> 2.5.5:
- permit rpm to be built in a sub-directory (--srcdir=DIR).
- return CPIO_BAD_HEADER instead of exiting. (Scott M. Stone)
- untranslate "(none)" for auto relocating script wrappers.
- non-linux arch/os identification (Eugene Kanter).
- portable mode_t/pid_t typedefs.
- fix check for trailing / in Prefix:
- remove 2 character language name assumption.
- add /usr/lib/rpm/find-lang.sh (W. L. Estes <wlestes@uncg.edu>)
- miscellaneous portability cruft (Eugene Kanter).
- Makefile: don't use ln -sf.
- getOutputFrom(): fix race between last read on pipe and child death
  (exacerbated in 2.5.4).
- rpm.spec: create /usr/src/redhat/* in %install.

2.5.3 -> 2.5.4:
- expand args using popt on pre-rpmReadConfigFiles arg pass.
- skip arch checks if only packaging source rpm.
- add license field to rpmpopt -qi alias.
- provides/obsoletes requires tokens that begin with alnum or _.
- non-zero exit status for verify failures.
- hpux does setreuid differently (Hermann Lauer).
- check for setreuid portably (Eugene Kanter).
- add Serbian translation (Zoltan Csala <zcsala@iname.com>).
- arch/os tables were not being initialized  for noarch builds.
- quote users/groups/filenames in --setugids.
- add Russian translation w man pages (Serguei Koubouchine <ksi@gu.net>)
- fix virtual file attribute bug that skipped all files in binary rpm.
- eliminate infinite loop with missing tmpdir (Trent Jarvi).
- os_canon for CYGWIN32_NT/95.
- rationalize autoconf detection of gzip/bzip2.
- restore backward compatible rpmrc/rpmpopt symlinks.
- update pt_BR translations (Arnaldo Carvalho de Melo).
- permit --{buildroot,timecheck,test,sign} with -tX (Toshio Kuratomi).
- fix database rebuilds with triggers (Steve Sanberg).
- diagnostic message if unreadable/short source or patch file.
- eliminate redundant close in provide/require processing.
- solaris portability patch resurrection (Steve Sanberg).
- permit autogen.sh to work on non "prefix=/usr" hosts.
- add %license/%readme virtual file attributes.
- align "Build Host:" with other fields.

2.5.2 -> 2.5.3:
- copy changelog tags to sub-packages just before packaging.
- added EPOCH handling to supplement serial numbers
- add RPMTAG_EPOCH and RPMTAG_CAPABILITY init to 0.
- fix infinite recursion on non-ERANGE return from getcwd() during
  install (Matt Wilson).
- rm .depend for multiple builds in same tree (Will Partain)
- addFile: fix special case of "/" in %files.
- better query semantics with symlinks (Tim Mooney)
- build.c: fix incorrect check for successful open
- allow %define with leading whitespace
- use /usr/lib/rpm for rpmpopt, rpmrc, find-requires, find-provides
- added popt 'exec' functionality
- made --rebuilddb a bit more robust by checking data types
- added --freshen via popt exec stuff
- fixed spelling of expected
- updated de.po (Karl Eichwalder)
- do a better job of checking for a spec file in tarballs
  (Pavel Roskin)
- fixed --triggers alias (Michael Andres)
- added :hex query format
- fixed --querytags to display virtual tags
????? - added --triggers and --triggered by to man page, help, and usage
????? - added support for epochs

2.5.1 -> 2.5.2:
- added -bs to build just a source package
- included irix.req and irix.prov (Tim Mooney)
- copy CHANGELOG* and URL tags to all subpackages
- follow symlinks when packaging sources
- handle %files -f with no %setup (no build directory)
- fixed ugly i18n header bug
- deal with lang paths sanely when entries are missing languages
- fix bug packing /usr/doc when last file was %dir
- added --last alias
- fix :depflags query format
- Group: i18n (like Summary:)
- make --justdb install files in normal state
- %{fssizes} segv'd for packages with empty file lists
- updated HP-UX, OSF1, Irix 6.x dependency scripts (Tim Mooney)
- added arm and MachTen arch/os info
- added --filesbypkg query format
- updated README to have proper URLs
- updated rpm.spec for proper paths and cleanliness
- dependency resolution could hang when Provides: line is used in
  rpmrc (Tim Mooney)
- updated mips rpmrc entries (Alex deVries)
- version/release conditional triggers weren't ignoring the trigger
  package name at the front of the TRIGGERVERSION
- added --notriggers for -i and -e
- made --triggers a synonym for --triggerscripts
- ftp installs were trying to use /var/tmp/tmp
- allow whitespace in source/patch lines

2.5 -> 2.5.1:
- fail if sources are not regular files
- wasn't catching readLine() errors
- fixed (hopefully) temp file creation problems
- make %doc obey --test
- unlink before writing .rpms
- librpm.c: added headerGzRead()/headerGzWrite()
- set bzip2path via lib-rpmrc/configure (Toshio Kuratomi)
- added finish translation (Raimo Koski)
- prefer db_185.h to db.h (Christopher Seawood)
- included updated hpux.req (Ralph Goers)
- added aix.req (Ralph Goers)
- updated hpux.prov, osf.req, osf.prov (Tim Mooney)
- set file states for --justdb packages to "not installed"
- handle missing file states properly in -e code
- install time wasn missing for --justdb packages
- missing parameter in an rpmError() caused segfault

2.4.109 -> 2.5:
- fixed return code bug in build code
- do macro expansion before %if processing
- dep ordering returns w/ an error as soon as a prereq loop is found
- autoreqprov flag was being ignored during builds
- add autoreq: and autoprov:
- missed a few unlink() when scripts failed
- freePrefixes wasn't initialized in runScript()
- fix typo in %triggerpostun generation
- include icons in source packages
- headerGetEntry() should return count of 1 when returning
  strings plucked from i18n strings
- do not remove comments in scripts
- save/restore existing arch when done with buildarch
- copy the I18N table to the source header so i18n stuff works
- fixed multiple memory leaks in install code
- fixed bug in part recognition
- shared files weren't being handled properly in net shared paths

2.4.108 -> 2.4.109:
- remove icons with --rmsource
- do dependecy generation on -bl
- check files on all packages on -bl
- integrate Jeff Johnson's memleak patches
- added OSF1 autodep scripts

2.4.107 -> 2.4.108:
- make --clean work with no %setup
- fixed FSSIZES problem introduced in 2.4.107
- fixed search for find-requires.sh
- improved solaris autodeps scripts
- automated (somewhat) the -static flag

2.4.106 -> 2.4.107:
- --nomd5 wasn't handled properly
- updated configure.in find-req and find-prov checks (Tim Mooney)
- make --rmsource actually work
- run postun triggers

2.4.105 -> 2.4.106:
- build: only check for non-printables in first 128 chars
- added %triggerpostun
- linux.req generates deps for shared libs
- added a CC=@CC@ to popt/Makefile.in
- handle signed return types from poptGetNextOpt() properly

2.4.104 -> 2.4.105:
- added langpatt: to rpmrc, and mark files with matches
- added some C++ cruft to rpmlib.h
- added find-requires and find-provides for hpux (Tim Mooney)
- respect LINGUAS when install package files
- added trigger support to build code
- got rid of annoying mwftw() type warning
- fixed many command line options which got broke by changes
  for non-gcc compilers
- added trigger support in install code
- added doc/triggers
- strntoul() in lib/cpio.c was returning a pointer to freed
  memory
- headerAppend() was doing a bad memcpy()

2.4.103 -> 2.4.104:
- fixed popt/Makefile.in to use CPP from configure
- use tmppath from rpmrc to for ftp'd files (rather then /var/tmp)
- autoconf files and .depend files weren't created properly during
  make archive

2.4.102 -> 2.4.103:
- need to create popt/configure during make archive
- added comments about modifictation to base popt and rpmrc files
- allow spaces in group names
- fix bug in memory allocation of special doc stuff
- Jeff Johnson's mode/dev fixes
- clean up buildroot
- be more paranoid about making temp files
- added patches from Tim Mooney which let RPM build with non-gcc
  compilers and non-GNU versions of make

2.4.101 -> 2.4.102:
- fixed spelling of "instchangelog" in lib-rpmrc.in
- fixed memory leak in headerSprintf() extension cache
- fixed memory allocation for header formatting extension cache
- added support for INSTPREFIX virtual tag for backwards compatibility
- cpio error codes were poorly defined, causing bad error messages
- generates INSTPREFIXES tag properly, and sets RPM_INSTALL_PREFIX
  and RPM_INSTALL_PREFIXn environment variables
- fixed memory leak in install code which occured when net shared paths
  were used
- don't pass net shared path to rpmInstallPackage() -- it looks
  directly in the rpmrc entries
- don't remove files in netsharedpath, even for files whose states
  are not net shared
- changed --setugids to use separate chown and chgrp programs, for
  better portability
- popt moved to autoconf
- Makefiles changed to allow building in a different directory then
  the source code resides in
- finally fixed the Build Host spacing in rpmpopt

2.4.100 -> 2.4.101:
- handle files with spaces (put double quotes around them)
- new rpmrc setting, buildshell, can be used to set shell
  used for build scripts (default is /bin/sh)
- fix bug where macros were being improperly set for
  Patch: and Source: lines
- may use "instchangelog" in rpmrc to limit the maxmium number of
  changelog entries that are stored in the database for each package
  (-1 means store all of them)
- default instchangelog is set to 5
- headerRemoveEntry() didn't free the item's data -- this led to
  a slight memory leak when installing packages
- implemented generic file relocations at install time
  (use --relocate <oldpath>=<newpath>, i.e. --relocate /usr=/foo)
- added --badreloc flag to force RPM to relocate files which packages
  haven't advertised as relocatable
- fix return code on failed uncompresses in %prep
- preliminary handling of bzip2 compressed files
- differentiates between big and little endian mips
- added support for "prefixes:" tag

2.4.99 -> 2.4.100:
- fixed handling of --rebuild and --recompile
- fixed rpmlibbuild.a typo in Makefile
- fixed handling of '\' in spec files (a specific case of a more
  general bug)
- change use of "export" to work with non-bash shells
- compress the archives.  oops.
- fixed bug when there is no %setup
- added -L$(topdir)/popt to Makefile.inc

2.4.12 -> 2.4.99:
- added many more i18n strings
- merged in large rewrite of build code, which includes the following
  changes:
    - new option --rmsource
    - all scripts can now take -p <prog>
    - more strict about %package placement and use of main package
      preamble
    - %attr(mode, user, group [, dirmode])
    - %defattr()
    - %defverify()
    - Root: is depricated.  Use BuildRoot: instead
    - "nosrc" sources arn't deleted when sources are removed
    - New tag DocDir: <dir> to set alternate doc dir (default is
      /usr/doc)
    - %doc should work as expected with buildroot, prefix, DocDir:
    - all file processing is done before any packaging
    - should work with modern patch programs (later than 2.1)
    - %patch -z <arg> same as %patch -b <arg>
    - %define only defines a macro if it starts a line
    - script prog entries are now arrays (ie with arguments)
    - standard macros: tag names, buildarch, buildos, buildarch_lc,
      buildos_lc, PATCHn, SOURCEn, PATCHURLn, SOURCEURLn, sourcedir,
      builddir, optflags
    - deprecate require_distribution, require_icon, require_vendor
    - add RPMTAG_FILEDEVICES and RPMTAG_FILEINODES to header
    - export variables in scripts
    - fixed tag:field bug
    - %lang() in %files
    - %description -l <lang>
    - Summary(<lang>):
    - fixed read_line() termination usage
- Makefile changes to shorten compiler lines

2.4.11 -> 2.4.12:
- intialize reserved portion of lead when writing packages
- fixed error messages displayed when opening the database
  fails during package installation and removal
- query format of the form '[A%{}]' would drop the static string
- fixed fix in 2.4.9 for empty packages which broke -qip on ftp URL's
- fixed arch/os numbers in lead
- added Turkish message catalog
- -e was running scripts even w/ --test was specified

2.4.10 -> 2.4.11:
- HAVE_SYS_SOCKET_H was mistakingly MACHINE_SYS_SOCKET_H in
  config.h.in
- \%description was trying to do %d expansion in query formats
- made %% work in query formats
- fixed bug in handling characters before array
- let mips build noarch packages
- --setperms would set wrong permissions in some cases (it was
  following symlinks)

2.4.9 -> 2.4.10:
- obsolete entries could cause segv's during upgrades
- sources now installed with uid/gid of process rather then
  the ids used when the src rpm was created
- don't give an error if missingok files don't exist during remove
- touched ftp code to make it coexist w/ Red Hat install better
- use rand/srand rather then random/srandom
- don't build misc directory unless it's necessary
- empty package files should be treated the same as files
  with bad magic, not as read errors
- fix bug where Prefix directory is included in file list
- sinix readdir() work-around

2.4.8 -> 2.4.9:
- fix for verification on systems where a single group id
  maps to mulitiple group names (Benedict Lofstedt)
- added 'make tar' rule for building a distribution tarball
  (Horacio Rodriguez Montero)
- fixed serial number handling in dependencies and install
  code
- make mips compatible with noarch
- fixed bug w/ printing string arrays in conditionals
- handle modern patch programs (> 2.1)
- handle packages w/ duplicate dependency names
- --noscripts didn't get handled properly for removed packages
- fixed handling of packages where %prereq creates users/groups

2.4.7 -> 2.4.8:
- added noarch build compatibilities for ppc, m68k
- fixed some minor typos (Florian La Roche)
- added Obsoletes: tag, an upgrade removes packages which
  have been obsoleted
- updated rpmdepUpgradePackage() to deal with obsoletes tag
- convertdb needed to read rpmrc
- fixed ugly bug in package ordering
- archivesize tag was incorrect for packages with hard links
- moved popt into a separate library
- directory created with %doc is now name-version (dropped
  the release)
- added buildarch/buildos macros
- added %ghost file option
- updated linux.req to only find requirements for exectuable files

2.4.6 -> 2.4.7:
- had some wrong month lengths in changelog date parsing
- updated fine-requires (Linux version) to add lines for shell
  scripts (Donnie Barnes)
- didn't package / properly
- pre/post script processing had some erroneous free() calls
- fixed typos for HP archs in lib/rpmrc.c
- uname() results should go through *_canon tables before anything
  else happens
- set -x in debug shells, not -xs

2.4.5 -> 2.4.6:
- added os_canon entries for BSD/OS and NextStep
- replaced include of <malloc.h> with includes of <stdlib.h>
- fixed md5sum of source packages w/ a buildroot is used
- fixed bugs installing version 1 packages
- remove hyphens from uname() result (specifically for HP-UX)
- hacks to recognize architecture under parisc
- RPM_INSTALL_PREFIX wasn't being set properly (this should be
  fixed now)
- replaced temporary file creation to be race-condition safe
- prerequisites may not specify versions

2.4.4 -> 2.4.5:
- call getpwnam()/endpwent() once before a chroot(), forcing name
  service shared libs to be loaded from outside of the root path
- added vesrion stamp to lib/misc.o (and librpm.a by extension)
- fixed config.sub, config.guess to recognize i686
- ARCHIVESIZE tag didn't get filled in properly, breaking progress
  meters

2.4.3 -> 2.4.4:
- restore working directory after installing a package w/ a chroot
- dump the package stack when a dependency loop is encountered
- when a user/group lookup fails, end*ent() and retry
- fixed broken --scripts argument (it was --s2)
- only display the packager and url in -qi output if they have defined
  values
- print "(not installed)" as the install time for -p queries rather
  then "not a number"
- almost completely rewrote rcfile parsing; I'm sure this will
  break things eventually but it's much more flexible now
- added buildarch/buildos compatibility tables, listed values
  in --showrc
- added cpio archive building code; GNU cpio is no longer used!
  packages created w/ rpm 2.4.4 and later cannot be installed with
  rpm 2.4 - rpm 2.4.3 however (version of RPM before 2.4 will
  work fine, however). An "error -2 reading header" happens when
  this is attempted
- removed cpiobin from rpmrc
- added rpmrc "provides" tag to allow easy fulfillment of
  automatically generated dependencies
- look for random() in libm if it can't be found be default
- fixed problems in Solaris's autodeps stuff (Eric Mumpower)
- --setperms should work properly on directories now
- --justdb on install, upgrade, and erasure causes a database
  update w/o the filesystem being touched
- fixed version comparison of a package w/ a serial tag against
  a package w/o one
- added BuildArchitectures: tag to spec file to enable builds
  for alternate/multiple architectures
- look for random() in -lucb
- changed the licensing terms for librpm to allow redistribution
  under the LGPL
- applied man page changes from Alex deVries
- configure.in builds up LIBS by appending (Benedict Lofstedt)
- rpm2cpio reported wrong zlib error string
- removed \n from (none) generated by query format code
- queries of fssizes w/o fsnames didn't work (Till Bubeck)
- added --noorder option to skip package reordering (Elliot Lee)

2.4.2 -> 2.4.3:
- implemented install time prerequisites
- repaired %{#TAG} query format
- implemented ternary operator as query expression
- fixed --scripts to only print information on scripts which
  are present
- check symlink() return for < 0, not != 0 (Bob Tanner)
- uses chroot() for installs --root option
- archive expansion doesn't create new devices or symlinks when
  the proper files already exist
- added -p to %post (etc) to specify the program which a script
  is run through
- if -p is used w/ an empty script, the specified program is
  executed directly
- the -p argument (or /bin/sh) is automaticall added as a prereq

2.4.1 -> 2.4.2:
- completely rewrote queryformat code
- added fsnames, fssizes virtual query tags
- added rpmdbFindByHeader() and rpmdbFindByTag() public functions
- added rpmfilename tag to rpmrc to define the filename format to
  use for binary packages (note the rpmdir is prepended to it)
- used pclose() instead of fclose() in -t code
- updated man pages
- changed "struct rpmdb" to "struct rpmdb_s" for C++
- netsharedpath entries shouldn't match partial directory names
  anymore (a nersharedpath of /usr/lib shouldn't affect /usr/libexec)
- don't backup config files on netsharedpaths (take 2)
- added "day" query format which is like date, but doesn't print
  any time
- added --changelog alias to query a packages changelog entry
- added mntctl() support for AIX (I think, I can't test this)
- fflags query type displays 's' for specfiles, 'm' for missingok
  files, and 'n' for noreplace files
- implemented %config(missingok) flag in install
- added --allfiles flag for -i and -U, which forces all files (even
  missingok files) to be installed
- implemented %config(noreplace) for the install, but it hasn't
  been tested in any way
- added i18n support to headers
- added ppc/rs6000 differntiation for AIX
- all IP* from uname() is changed to just IP
- IP is considered the same as mips (not sgi)
- added IRIX64 OS, it's compatible w/ IRIX

2.4 -> 2.4.1:
- take advantage of lchown() if it's available
- fixed configure script to assume chown() doesn't follow symlinks
  if lchown() isn't available and configure is not being run as root
- more header file changes for AIX
- added :shescape query format type for strings, which prints strings
  which will survive a single level of shell expansion
- fixed --setperms and --setugids to handle empty packages and
  packages with odd filenames
- include <sys/time.h> before <sys/resource.h>
- include "miscfn.h" first in every file which needs it
- created noarch architecture which everything is compatible with
- fixed group verification (Benedict Lofstedt)
- don't backup config files on netsharedpaths
- added info on --build{arch|os} to --help and usage messages

2.3.11 -> 2.4:
- changed RPMNLSDIR directories to and @datadir@ to better
  conform with autoconf
- set RPM_INSTALL_PREFIX environment variable when running
  verify scripts
- beginnings of SCO support (though I suspect it will take one
  or two more iterations to get it right)
- switched to CVS and updated some Makefile rules
- look for gethostbyname() instead of gethostname() in -nsl
  (this could break some things)
- added check for strcasecmp() in -lucb on systems which don't
  have strcasecmp() in libc
- don't build -static on hpux10
- don't try and NLS empty strings
- changed index() call to strchr() in macro code
- include <time.h> in build/spec.c for various platforms
- added update-po rule to po/Makefile.in
- updated de.po (thanks to Karl Eichwalder)
- rpmFindByFile() removes trailing and duplicate /'s
- made many string in rpm program (though not yet in the various
  libraries) translatable
- eight character user names could break -qlv
- requirements which begin with a leading / require files (in
  the database!) instead of packages
- clean up conflictsindex during --rebuilddb
- get path to gzip from /usr/lib/rpmrc rather then just hoping it's
  in the path
- use dbpath for error messages with include database path in
  their text
- don't set owner/group if binaries installed by "make install"
- include <strings.h> on SCO
- don't use cpio when installing packages <gulp>
- fixed bug which affected dependencies on the Alpha
- made '=' work for long arguments (the switch to popt broke this)
- handle solaris systems better
- complain if critical rpmrc variables (cpiobin, gzipbin, etc) aren't
  set anywhere
- allow --dbpath for --rebuilddb
- added check for systems whose chown() follows symlinks. If configure
  is run as root, this should get it right, otherwise it assumes
  chown() does not follow symlinks. You can use --enable-broken-chown
  to force configure to think chown does indeed follow symlinks.
- if chown() follows symlinks, we don't chown() symlinks during cpio
  unpacking and we don't verify the owner or group of symlinks
- added packager and url to default -qi output
- look for <sys/select.h> and use it if it's there (for AIX)

2.3.10 -> 2.3.11:
- fixed newlines in --scripts output
- fix handling of source files with bad owners/groups

2.3.9 -> 2.3.10:
- --allmatches handling in -e broke some cases
- new predefined macros: %SOURCEn %PATCHn %SOURCEURLn %PATCHURLn
- fix anomoly with %files -f <file> and %doc
- ignore config bit when it's set on directories (which allows
  users to replace directories with symlinks)
- don't set config bit on directories
- strip trailing slashes from files (during build)
- %tags are now case sensitive (macros too)

2.3.8 -> 2.3.9:
- reworked %setup to allow multiple -a and -b options, which
  should noticeably ease the task of unapcking multiple tar files
- md5 sum's were calculated incorrectly on big endian machines
  from 2.3.2 through 2.3.8 -- this was fixed and some hacks were
  done to keep verification working
- updated README
- added --allmatches to allow erasing multiple versions/releases
  of a package
- changed ftp URL's to use \r\n, not just \n (this should let RPM
  work w/ some picky (but rfc compliant) ftp servers
- fix problem where parts at end of spec file were dropped
- added %config(noreplace missingok) (build-side)
- simple spec file macros
- should now process entire file list before failing

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 relocatable
  packages but they seem okay
- fixed a bug which could cause relocatable 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 unrelocatable 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