- fix: IDTXglob should return REMOVETID sorted headers (#89857).
[tools/librpm-tizen.git] / CHANGES
1 4.2 -> 4.3:
2         - upgrade to zlib-1.2.beta7.
3         - pass structure pointer, not args, through headerSprintf call chain.
4         - add ":xml" header format modifier.
5         - --queryformat '[%%{*:xml}\n]' to dump header content in XML.
6         - fix: short option help missing string terminator.
7         - unify signal handling in librpmio, use condvar to deliver signal.
8         - resurrect manifests, RPMRC_NOTFOUND returned by readLead().
9         - permit secondary tag match patterns with RPMQV_ALL.
10         - python: missed tuple refcount in IDTXload/IDTXglob.
11         - fix: IDTXglob should return REMOVETID sorted headers (#89857).
12
13 4.1 -> 4.2:
14         - set cachesize without a dbenv, the default is far too small.
15         - db: don't return EACCES on db->close w/o environment.
16         - unify cachesize configuration, with (or without) a dbenv.
17         - comments regarding unsupported (yet) db-4.1.17 functionality.
18         - update to db-4.1.24 final.
19         - eliminate myftw, use Fts(3) instead.
20         - dump libelf, gulp elfutils, for now.
21         - python: permit headers to be hashed.
22         - use %%{_lib} for libraries.
23         - include file-3.39 (with homebrewed) libfmagic, for now.
24         - add debug sub-package patch.
25         - re-add elfutils/libdwarf (for dwarf.h), eliminate tools/dwarf2.h.
26         - resurrect genhdlist "greased lightning" pathway for now.
27         - elfutils: avoid gcc-3.2 ICE on x86_64 for now.
28         - add /usr/lib/rpm/rpmdeps.
29         - add /usr/lib/rpm/magic.
30         - fix: /dev/initctl has not MD5 segfault (#76718).
31         - rpm.8: gpg uses GNUPGHOME, not GPGPATH (#76691).
32         - add error message on glob failure (#76012).
33         - add _javadir/_javadocdir/_javaclasspath macros.
34         - fix: bash must have functional libtermcap.so.2.
35         - update to elfutils-0.56.
36         - have debug sub-subpackage use external, not internal, elfutils.
37         - apply patches 1-6 to db-4.1.24.
38         - resurrect availablePackages one more time.
39         - fix: option conflict error message (#77373).
40         - add AC_SYS_LARGFILE throughout.
41         - statically link rpmdeps against (internal) libfmagic.
42         - use rpmdeps rather than find-{requires,provides}.
43         - bundle libfmagic into librpmbuild for now.
44         - apply patches 7 and 8 to db-4.1.24.
45         - upgrade to elfutils-0.59.
46         - add -g to all platforms optflags.
47         - build with external elfutils (preferred), if available.
48         - upgrade to elfutils-0.63.
49         - link rpm libraries together, use shared helpers with external -lelf.
50         - move libfmagic to librpmio.
51         - use libtool-1.4.3, autoconf-2.56.
52         - add explicit -L/lib64 -L/usr/lib64 for libtool mode=relink on x86_64.
53         - use usrlib_LTLIBRARIES to install directly in /usr/lib64 instead.
54         - late rpmts reference causes premature free (#78862).
55         - internal automagic dependency generation (disabled for now).
56         - don't generate dependencies unless execute bit is set.
57         - enable internal automagic dependency generation as default.
58         - fix: add rpmlib(VersionedDependencies) if versioned Provides: found.
59         - fix: add %%ifnarch noarch to debug_package macro.
60         - debug_packages "works", but non-noarch w/o %setup has empty payload.
61         - make dependency generation "opt-in" in order to build in distro.
62         - fix: make sure each library has DT_NEEDED for all unresolved syms.
63         - generate Elf provides even if file is not executable.
64         - disable fcntl(2) lock on Packages until glibc+nptl is fixed.
65         - make cdb locks "private" for pthreads compatibility w/o NPTL.
66         - add --enable-posixmutexes to use NPTL.
67         - make dependency generation "opt-out" everywhere.
68         - rebuild against glibc with fcntl fixed in libpthread.
69         - re-enable CDB locking, removing "private" from %%__dbi_cdb macro.
70         - popt aliases for -U et al to achieve dynamic link with nptl.
71         - add --file{class,provide,require} popt aliases and header extensions.
72         - statically link against /usr/lib/nptl/libpthread.a, if present.
73         - remove popt aliases for -U et al.
74         - add -I/usr/include/nptl, Conflicts: kernel < 2.4.20.
75         - dynamically link /bin/rpm, link against good old -lpthread.
76         - test pthread_{mutex,cond}attr_setpshared(), add DB_ENV_PRIVATE if not.
77         - error on exclusive Packages fcntl lock if DB_ENV_PRIVATE is set.
78         - copy compressFilelist to convertdb1.c, remove internal legacy.h.
79         - add --enable-posixmutexes when configuring on linux.
80         - add rpmdb_{deadlock,dump,load,svc,stat,verify} utilities.
81         - include srpm pkgid in binary headers (#71460).
82         - add %check scriptlet to run after %install (#64137).
83         - simplify specfile query linkage loop.
84         - drill rpmts into parseSpec(), carrying Spec along.
85         - fix: remove rpmfi scareMem so that headers can be reloaded on ia64.
86         - fix: set DB_PRIVATE, not DB_ENV_PRIVATE, if unshared posix mutexes.
87         - remove useless kernel/glibc dependencies (#79872).
88         - add matching "config(N) = EVR"  dependencies iff %%config is found.
89         - add %%pubkey attribute to read armored pubkey files into header.
90         - permit both relative/absolute paths, display 'P' when verifying.
91         - resurrect automagic perl(foo) dependency generation.
92         - add BETA-GPG-KEY (but not in headers using %%pubkey yet).
93         - disable perl module magic rule.
94         - ignore ENOENT return from db->close (#80514,#79314).
95         - fix builddir relative inclusion, add %%pubkeys to rpm header.
96         - fix: package relocations were broken (#75057).
97         - error if querying with iterator on different sized arrays.
98         - add rpmfi methods to access color, class, and dependencies.
99         - don't segfault with packages produced by rpm-2.93 (#80618).
100         - python: eliminate hash.[ch] and upgrade.[ch], methods too.
101         - fix :armor query extension, tgpg mktmp handling (#80684).
102         - use rpmfiFClass() underneath --fileclass.
103         - use rpmfiFDepends() underneath --fileprovide and --filerequire.
104         - python: add fi.FColor() and fi.FClass() methods.
105         - calculate dependency color and refernces.
106         - python: add ds.Color() and ds.Refs() methods.
107         - fix: typo in assertion.
108         - add rpmts/rpmte/rpmfi/rpmds element colors.
109         - ignore items not in our rainbow (i.e. colors are functional).
110         - fix: dependency helpers now rate limited at 10ms, not 1s.
111         - add per-arch canonical color, only x86_64 enabled for now.
112         - file: avoid ogg/vorbis file classification problems.
113         - portabilitly: solaris fixes.
114         - for DSO's, provide the file basename if DT_SONAME not found.
115         - add perldeps.pl, start to replace perl.{prov,req}.
116         - file: read elf64 notes correctly.
117         - python: put rpmmodule.so where python expects to find.
118         - add brp-strip-static-archive build root policy helper.
119         - add -lelf to rpm LDFLAGS, not LDADD, since there is no libelf.la now.
120         - fix: obscure corner case(s) with rpmvercmp (#50977).
121         - file: *really* read elf64 notes correctly.
122         - python: restore thread context on errorCB (#80744).
123         - teach rpmquery to return "owning" package(s) in spite of alternatives.
124         - duplicate package checks with arch/os checks if colored.
125         - file conflict checks with colors.
126         - fix: debugedit.c problem.
127         - permit anaconda to choose "presentation order".
128         - fix: more debugedit.c problems.
129         - fix: clean relocation path for --prefix=/.
130         - python: permit stdout/stderr to be remapped to install.log.
131         - pay attention to package color when upgrading identical packages.
132         - fix: trap SIGPIPE, close database(s).
133         - configurable default query output format.
134         - popt: diddle doxygen/splint annotations, corrected doco.
135         - file: fix ogg/vorbis file classification problems.
136         - skip fingerprints in /usr/share/doc and /usr/src/debug.
137         - add file(1) as /usr/lib/rpm/rpmfile.
138         - enable transaction coloring for s390x/ppc64.
139         - file: check size read from elf header (#85297).
140         - fix: memory leak (85522).
141         - build with internal elfutils if not installed.
142
143 4.0.4 -> 4.1:
144         - loosely wire beecrypt library into rpm.
145         - drop rpmio/base64.[ch] in favor of beecrypt.
146         - drop lib/md5*.[ch] files in favor of beecrypt.
147         - legacy: drop brokenMD5 support (rpm-2.3.3 to rpm-2.3.8 on sparc).
148         - eliminate DYING code.
149         - bind beecrypt md5/sha1 underneath rpmio.
150         - create RFC-2440 OpenPGP API in rpmio.
151         - proof-of-concept GPG/DSA verification for legacy signatures.
152         - upgrade to beecrypt-2.2.0pre.
153         - proof-of-concept PGP/RSA verification for legacy signatures.
154         - ratchet up to lclint "strict" level.
155         - upgrade to db-4.0.7.
156         - use only header methods, routines are now static.
157         - beecrypt is at least as good as pgp/gpg on verify, pulling the plug.
158         - add :base64 and :armor format extensions, dump binary tags in hex.
159         - proof-of-concept pubkey retrieval from RPM-{PGP,GPG}-KEY.
160         - stupid macros to configure public key file paths.
161         - all symbols but hdrVec are now forward references in linkage.
162         - generate an rpm header on the fly for imported pubkeys.
163         - wire transactions through rpmcli signature modes.
164         - wire transactions through rpmcli query/verify modes.
165         - wire transactions through rpmcli install/erase modes.
166         - legacy signatures always checked (where possible) on package read.
167         - wire transactions through rpmcli build modes.
168         - lazy rpmdb open/close through transaction methods (mostly anyways).
169         - no-brainer refcounts for rpmdb object.
170         - check added header against transaction set, replace if newer.
171         - transaction sets created in cli main.
172         - no-brainer refcounts for ts object.
173         - memory indices for dependency check are typedef'd and abstract'd.
174         - no-brainer refcounts for fi object, debug the mess.
175         - dump the header early in transaction, recreate fi before installing.
176         - start hiding availablePackage data/methods in rpmal.c/rpmal.h.
177         - add some dinky availablePackage methods.
178         - transaction.c: cleanly uncouple availablePackage from TFI_t.
179         - add header refcount annotations throughout.
180         - depends.c: availablePackage is (almost) opaque.
181         - invent some toy transactionElement iterators.
182         - create rpmDepSet constructors/destructors.
183         - create toy rpmDepSet iterators.
184         - rpmRangesOverlap renamed to dsCompare, add dsNotify method as well.
185         - depends.c: rpmDepSet is (almost) opaque, move to rpmds.[ch].
186         - rpmds: create dsProblem(), dsiGetDNEVR() retrieved DNEVR, not N.
187         - depends.h: hack around teIterator() et al from include for now.
188         - rpmds: move trigger dependencies into a rpmDepSet as well.
189         - rpmal: availablePackage is totally opaque, alKey with index replaces.
190         - linear search on added package provides is dumb.
191         - discarding entire signature header when using --addsign is dumb.
192         - rip out rpmDependencyConflict, replace with rpmProblem instead.
193         - no-brainer refcounts for rpmProblemSet object.
194         - header tag sets are per-transactionElement, not per-availablePackage.
195         - no-brainer refcounts for rpmDepSet and rpmFNSet objects.
196         - strip header tags for erased as well as installed transactionElements.
197         - common structure elements for unification of TFI_t and rpmFNSet.
198         - factor per-transactionElement data out of TFI_t through pointer ref.
199         - unify rpmFNSet into TFI_t.
200         - eliminate header reference in rpmtransAddPackage, use TFI_t data.
201         - commit to using rpmDepSet and TFI_t, not header.
202         - lclint rpmio fiddles.
203         - split file info tag sets into rpmfi.c.
204         - create toy TFI_t iterators.
205         - tweak overlapped file fingerprint retrieval for speed.
206         - transaction.c: use wrappers/iterators to access TFI_t.
207         - annotations to make a transactionElement opaque.
208         - use array of pointers rather than contiguous array for ts->order.
209         - methods to complete making transactionElement opaque.
210         - use TR_REMOVED relations as well as TR_ADDED for ordering.
211         - drop requirement that removed packages immediately follow added.
212         - hybrid chainsaw/presentation ordering algorithm.
213         - convert file md5sum's to binary on the fly, reducing memory footprint.
214         - header handling moved to librpmdb to avoid linkage loops.
215         - fix a couple dinky memory leaks.
216         - build with an internal zlib for now.
217         - protect brp-compress against /bin/ls output ambiguity (#56656,#56336).
218         - 3 madvise calls and a 16Mb mmapped buffer == ~5% install speedup. Wow.
219         - use db-4.0.14 final internally.
220         - 1st crack at making zlib rsync friendly.
221         - lclint-3.0.0.19 fiddles.
222         - simple automake wrapper for zlib.
223         - splint fiddles.
224         - make peace with gcc-3.1, remove compiler cruft.
225         - make peace with automake et al in 8.0, ugh.
226         - add payload uncompressed size to signature to avoid rewriting header.
227         - drill header sha1 into signature parallel to header+payload md5.
228         - mandatory "most effective" signature check on query/verify/install.
229         - don't bother adding empty filemd's to index.
230         - add Pubkey index, using signer id as binary key.
231         - display pubkeys in hex when debugging db access.
232         - retrieve pubkey(s) from rpmdb, not from detached signature file.
233         - add header DSA signature.
234         - add header RSA signature (untested, disabled for now).
235 `       - don't bother with signing check if 16 bits of hash don't match.
236         - only V3 signatures for now.
237         - wire --nodigest/--nosignature options to checksig/query/verify modes.
238         - splint annotations, signature cleanup.
239         - drill ts/fi through verify mode, add methods to keep fi abstract.
240         - use mmap when calculating file digests on verify, ~20% faster.
241         - permit --dbpath and --root with signature (i.e. --import) modes.
242         - beecrypt: add types.h, eliminate need for config.gnu.h.
243         - rescusitate --rebuild.
244         - use rpmdb-redhat to suggest dependency resolution(s).
245         - merge conflicts into problems, handle as transaction set variable.
246         - use build time to choose one of multiple alternative suggestions.
247         - add --nosuggests to disable suggested resolutions.
248         - attempt to make peace with automake-1.6.1, autoconf-2.53.
249         - rip out two layers of dbN gook, internal Berkeley db is here to stay.
250         - eliminate db1 support.
251         - enable CDB by default.
252         - use DBT_DB_MALLOC to eliminate re-malloc'ing header blobs.
253         - rework most of rpmdb.c prepatory to implementing duplicates.
254         - fix: 2 memory leaks in headerSprintf.
255         - fix: db mire's access out-of-bounds memory.
256         - plug install mode leaks.
257         - opaque (well mostly) rpmTransactionSet using methods.
258         - Grand Renaming of rpm data types.
259         - fix: synthesize unpacking progress callbacks for packages w/o files.
260         - python: add rpmds/rpmfi/rpmts methods.
261         - python: re-enable rpm-python sub-package.
262         - fix: resurrect "()(64bit)" markings using objdump.
263         - python: add rpmal/rpmte/rpmfd methods.
264         - perl: drop cpanflute and cpanflute2, will be in Chip's CPAN package.
265         - python: eliminate legacy db methods, add ts.dbMatch method.
266         - fix: use getgrnam, not getpwnam, to convert gid -> group.
267         - fix: avoid sign extension, use only 16 bits, when verifying rdev.
268         - python: separate {add,del}Macro methods, prepare for macro dictionary.
269         - i18n: copy current production PO files to top-of-stack.
270         - python: include rpmdb module, renamed from bsddb3.
271         - use /etc/rpm/platform (if it exists), rather than uname(2), for arch.
272         - python: portability fiddles (#54350).
273         - check inodes (but not blocks) on FAT file systems (#64256).
274         - add /usr/lib/rpm/redhat/* per-vendor configuration.
275         - remove build mode compatibility aliases, documented and gone.
276         - document digital signature verification in rpm.8.
277         - fix: separate existence and number checks for problems found (#66552).
278         - beecrypt: merge changes from beecrypt-2.3.0.
279         - beecrypt: merge doxygen markup with rpmapi doco.
280         - beecrypt: revert cpu/arch compile option mixup (#66752).
281         - ix86: make sure that rpm can verify prelinked shared libraries.
282         - don't install /usr/lib/rpm/redhat per-vendor configuration anymore.
283         - add translated man pages from PLD.
284         - resurrect libelf with Elf64, prelink verify should work everywhere.
285         - fix: reading macro files can corrupt memory if BUFSIZ is teensy.
286         - fix: assertion failure iff incomplete package install (#66837).
287         - python: link internal libelf (if used) directly into rpmmodule.so.
288         - use rpmdb-redhat for suggestions if/when configured (#67430).
289         - disambiguate failures to import (with error messages, duh).
290         - fix: multiple relocations (#67596).
291         - add --build/--program-prefix, delete libtoolize, from %configure.
292         - find-lang.sh: make sure that mo pattern matches leading '/' (#67368).
293         - disambiguate added/installed dependency failures (#50388).
294         - rescusitate remote ftp globs (#67678).
295         - open rpmdb early RDONLY, reopen later RDWR, avoid signed srpm noise.
296         - turn off annoying gpg secmem warning.
297         - warn only once for each NOKEY/UNTRUSTED key id.
298         - factor common options into table, add rpmcliInit() and rpmcliFini().
299         - add preliminary rpmgraph(8) and rpmcache(8) executables to rpm-devel.
300         - use rpmfi in showQueryPackage(), eliminating headerGetEntry().
301         - fix: forgot lazy open of database on --freshen path (#67907).
302         - proof-of-concept rpmcache functionality.
303         - fix: do lazy open of database in rpmtsInitDB() (#67994).
304         - update rpmcache.8.
305         - fix: permit deletions of added packages (#67108).
306         - placeholders for manifest constants for SuSE patch packages.
307         - fix: repair 2ndary match criteria with rpmdb iterators.
308         - update for sv.po.
309         - display signature details using rpm -qi.
310         - skip signing packages already signed with same key (#62118).
311         - install rpmal.h and rpmhash.h, implicit rpmps.hinclude, for now.
312         - revert headerFree/headerLink/headerUnlink debugging.
313         - popt: mingw32 portability configure check (#67911).
314         - teach gendiff about unreadable files (#42666).
315         - python: sanity check fixes on rpmts/rpmte methods.
316         - have rpmdb-redhat autoconfigure rpm to use %%_solve_dbpath.
317         - popt: parse file into string of options (#56860).
318         - version added to *.la dependency libraries (#69063).
319         - expose digests in rpmio API, but hide internal beecrypt API (#68999).
320         - add methods to make signature handling opaque wrto rpmts.
321         - verify signatures/digests retrieved through rpmdbNextIterator().
322         - imbue %ghost with missingok attribute with --verify (#68933).
323         - fix: segfault if given a text file as 2nd arg to -Uvh (#69508).
324         - python: add ts.hdrCheck(), ts.rebuildDB() methods.
325         - python: iterating on an ts object returns transaction elements now.
326         - add yellowdog as vendor.
327         - python: remove the old initdb/rebuilddb methods, use ts.fooDB().
328         - python: 1st crack at backport to 1.5.2.
329         - popt: fix --usage (#62234).
330         - fix: --repackage repaired (#67217).
331         - fix: rpm2cpio disables signature checks (i.e. same behavior).
332         - popt: display sub-table options only once on --usage.
333         - wire --nosignatures et al as common options, rework CLI options.
334         - python: don't segfault in ts.GetKeys() on erased packages.
335         - update trpm.
336         - factor all mode-specific options into mode-specific tables.
337         - treat an unspecified epoch as Epoch: 0 everywhere.
338         - detect athlon/duron with CMOV (PLD).
339         - prevent stale locks in __db files by closing databases on signals.
340         - make --querytags a common option, fix errant regex (#70135).
341         - db3: increase mpool and cachesize, compile w/o --enable-debug.
342         - configurable (default off) build failure if missing %%doc files (PLD).
343         - configurable (default off) build failure iff unpackaged files (PLD).
344         - change from default off to default on.
345         - python: methods to disable all new features for benchmarking.
346         - preserve rpmdb file attributes across --rebuilddb (#70367).
347         - fix: identify athlon with 3DNOWEXT as "athlon", not "i786" (#70539).
348         - fix: repair --root with --verify (#70527).
349         - fix: signed pubkeys were imported incorrectly (#68291).
350         - include tgpg script to verify signatures using only gpg.
351         - check header blobs on export (i.e. rpmdbAdd()).
352         - enable iterator header blob checks for install/erase modes.
353         - python: _vsflags_up2date macro to configure verify signature flags.
354         - resurrect --rollback.
355         - renumber the callback types to be an orthogonal bit mask.
356         - provide repackage progress callbacks, compression is slow.
357         - fix: don't repackage %%ghost files.
358         - add --predefine to define macros before reading macro configuration.
359         - python: bare bones rollback bindings.
360         - python: enable threads on callbacks and longish rpmlib calls.
361         - python: expose RPMTAG_SOURCEPACKAGE to identify source headers.
362         - python: eliminate rpm.headerFromPackage() tuple return, deprecated.
363         - python: add ts.hdrFromFdno(fdno) method.
364         - fix: check for lead magic, better error message on failure (#69751).
365         - python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
366         - python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno().
367         - python: permit direct ts.dbMatch() python iterations.
368         - python: the death of rpm.checksig(), use ts.hdrFromFdno() instead.
369         - add bitmask for precise control of signature/digest verification.
370         - python: bindings to import pubkeys and display openpgp packets.
371         - fix: src.rpm installs need fd pos at payload.
372         - python: add return codes for rollbacks and fooDB methods.
373         - avoid generating fingerprints for locale/zoneinfo sub-directories.
374         - python: add (optional) ts.check() callback.
375         - python: include instance in IDTXload, filename in IDTXglob, return
376         - python: argument to ts.addErase (if integer) deletes that instance.
377         - python: rpmmi methods to return this instance, and number of members.
378         - supply transitive closure for CLI packages from rpmdb-redhat database.
379         - fix: rebuilddb stat'ed target, not source, for rename sanity.
380         - create /var/lib/rpm if non-existent in, say, a chroot.
381         - erased packages are now repackaged into /var/spool/repackage.
382         - fix: rebuilddb stat'ed target, not source, for rename sanity, take 2.
383         - python: explicit method to set transFlags.
384         - python: stuff package name into a string for repackage callbacks.
385         - rollback: re-create empty transaction set for multiple rollbacks.
386         - fix: %%basename typo (Dmitry V. Levin<ldv@altlinux.org>).
387         - fix: queryformat segfaults (Dmitry V. Levin<ldv@altlinux.org>).
388         - add --with-efence to configure, check install/upgrade with efence.
389         - beecrypt: short hex string conversion overflows target buffer.
390         - mark "successors only" packages in transaction.
391         - reap scriptlets with SIGCHLD handler.
392         - rename PSM_t to rpmpsm, add methods and refcounts to manage.
393         - remove %%configure/%%makeinstall from arch-os/macros, default is OK.
394         - don't export MALLOC_CHECK_ to scriptlets.
395         - squeaky clean memory leak checking.
396         - always malloc rpmfi structure, refcounts are correct in rpmtsRun().
397         - skip redundant /sbin/ldconfig scripts on upgrade (if possible).
398         - python: stupid typo broke ts.check().
399         - fix: add epoch to "already installed" check.
400         - check for interrupt during iteration.
401         - python: add ts.setProbFilter() method, remove ts.run() argument.
402         - fix: region trailer offset sanity check wrong (#71996).
403         - fix: don't stop if db1 database is currently in /var/lib/rpm (#72224).
404         - add a macro to create a sub-package with debugging symbols.
405         - merge signature returns into rpmRC.
406         - python: exceptions on NOKEY/NOTTRUSTED.
407         - python: don't remap NOKEY/UNTRUSTED to OK.
408         - beecrypt: change local absolute symbols to defines for prelinking.
409         - update ru.po.
410         - fix: handle NOKEY/NOTTRUSTED returns as if OK, always return header.
411         - portability: carry libelf in src rpm, include signal.h.
412         - fix: segfault with --checksig, plug memory leak (#72455).
413         - rpm-4.1 release candidate.
414         - requirement on libelf >= 0.8.2 to work around incompatible soname (#72792).
415         - fix: common sanity check on headers, prevent segfault (#72590).
416         - limit number of NOKEY/UNTRUSTED keys that will be warned once.
417         - libadd -lelf to rpmdb (#73024).
418         - portability: non-linux is easier, more to do (#72893).
419         - fix: SIGCHLD reaper race (#73134).
420         - fix: don't exit with open cursor, there be a stale lock.
421         - fix: check for signal induced exit more often (#73193).
422         - reinterpret the _unsafe_rollbacks macro as earliest rollback.
423         - fix: always do rpmalMakeIndex.
424         - fix: resurrect --triggers (#73330).
425         - python: typo in NOKEY exception string.
426         - fix: parse pgp packets more carefully.
427         - fix: parse header data more carefully.
428         - fix: register SIGCHLD handler before forking (#73134).
429         - better diagnostics on failed header parsing.
430         - lclint clean.
431         - rpm-4.1 release.
432         - fix: make sure that psm->child pid is set before SIGCHLD is handled.
433         - fix: use size_t consistently, avoid segfault on ia64.
434         - use %%{_lib} for libraries.
435         - fix: permit build with --disable-nls (#76258).
436
437 4.0.3 -> 4.0.4:
438         - solaris: translate i86pc to i386 (#57182).
439         - fix: %GNUconfigure breaks with single quotes (#57264).
440         - fix: typo in find-requires.
441         - tru64 compiler message cleanup.
442         - add buildarch lines for hppa (#57728).
443         - sparc: make dbenv per-rpmdb, not per-dbi.
444         - handle lazy db open's in chroot with absolute path, not prefix strip.
445         - Depends should use CDB if configured.
446         - autodetect python 1.5/2.2.
447         - make rpm-perl package self-hosting (#57748).
448         - permit gpg/pgp/pgp5 execs to be reconfigured.
449         - fix: signing multiple times dinna work, discard immutable region.
450         - remove poptmodule.so for separate packaging.
451         - permit subset installs for %lang colored hardlink file sets.
452         - missing key(s) on keyring when verifying a signature is now an error.
453         - remove dependency whiteout.
454         - calculate rpm-4.1 ordering/orientation metrics in rpmdepOrder().
455         - sync popt and rpmio with rpm-4.1, rpmio has OpenPGP API.
456         - sync rpmdb and build with rpm-4.1, lots of splint annotations.
457         - add :armor and :base64 query format qualifiers for binary signatures.
458         - fix: query format qualifiers needed header.c merge.
459         - fix: query format qualifiers needed header.c merge.
460         - ppc64 arch added (#58634,#58636).
461         - turn on auto-generated perl requirements (#58519, #58536, #58537).
462         - fix: %exclude functional (again).
463         - trap SIGILL for ppc64 inline asm voodoo fix from cross-dressed ppc32.
464         - fix: fancy hash fiddles if not a tty.
465         - fix: handle /.../ correctly in rpmCleanPath().
466         - transaction rollback code in rpmRollback().
467         - Red Hat 6.2 portability cruft.
468         - legacy: configurable whiteout for known Red Hat dependency loops.
469         - perl.req: don't mis-generate dependencies like perl(::path/to/foo.pl).
470         - permit args to be hidden within %__find_{requires,provides}.
471         - a couple more perl.{prov,req} fiddles.
472         - macro for %files, always include %defattr(), redhat config only.
473         - fix: drop header region when writing repackaged legacy header.
474         - bail on %files macro.
475         - transaction rollbacks are functional.
476         - generate index for pkgid (aka Sigmd5) tag, query/verify by pkgid.
477         - generate index for hdrid (aka Sha1header) tag, query/verify by hdrid.
478         - generate index for fileid (aka Filemd5s) tag, query/verify by fileid.
479         - query/verify by install transaction id.
480         - rpm-4.0.4 release candidate.
481         - add cpanflute2, another perl.req fiddle.
482         - reapply Berkeley DB patch #4491.
483         - make --addsign and --resign behave exactly the same.
484         - *really* dump signature header immutable region.
485         - speedup large queries by ~50%.
486         - revert to presentation ordering Yet Again (#62158).
487         - non-glibc: on upgrade, mergesort is much faster than quicksort.
488         - fix: queries that evaluated to "" incorrectly returned NULL.
489         - fix: packages produced by rpm-4.0 dinna merge signature tags.
490         - fix: rpmdb iterator memory leak in python bindings.
491         - fix: include <sys/time.h> for 6.2 python modules.
492         - remove vestiges of mipseb arch (#62408).
493
494 4.0.2 -> 4.0.3:
495         - update per-interpreter dependency scripts, add sql/tcl (#20295).
496         - fix: rpmvercmp("1.a", "1.") returned -1, not +1 (#21392).
497         - add cpuid asm voodoo to detect athlon processors.
498         - add %exclude support (i.e. "everything but") to %files.
499           (Michael (Micksa) Slade" <micksa@knobbits.org>)
500         - add --with/--without popt glue for conditional builds(Tomasz Kloczko).
501         - python: strip header regions during unload.
502         - add -g to optflags in per-platform config.
503         - permit confgure/compile with db3-3.2.9.
504         - permit manifest files as args to query/verify/install modes.
505         - fix: parameterized macro segfault (Jakub Bogusz <qboosh@pld.org.pl>)
506         - fix: i18n tags in rpm-2.5.x had wrong offset/length (#33478).
507         - fix: AIX has sizeof(uint_16) != sizeof(mode_t) verify cast needed.
508         - fix: zero length hard links unpacked incorrectly (#34211).
509         - fix: --relocate missing trailing slash (#28874,#25876).
510         - fix: --excludedoc shouldn't create empty doc dir (#14531).
511         - fix: %_netsharedpath needs to look at basenames (#26561).
512         - fix: --excludepath was broken (#24434).
513         - fix: s390 (and ppc?) could return CPIOERR_BAD_HEADER (#28645).
514         - fix: Fwrite's are optimized out by aggressive compiler(irix) (#34711).
515         - portability: vsnprintf/snprintf wrappers for those without (#34657).
516         - more info provided by rpmdepOrder() debugging messages.
517         - merge (compatible) changes from top-of-stack into rpmlib.h.
518         - cpio mappings carry dirname/basename, not absolute path.
519         - fix: check waitpid return code.
520         - remove support for v1 src rpm's.
521         - re-position callbacks with ts/fi in cpio payload layer.
522         - state machines for packages (psm.c) and payloads (fsm.c)
523         - add --repackage option to put erased bits back into a package.
524         - fix: (ppc) copy va_list in loop (#36845).
525         - cpanflute perl dependency needs explicit epoch (#37034).
526         - regenerate rpm.8 man page from docbook glop (in max-rpm).
527         - lib/depends.c: diddle debugging messages.
528         - fix: readlink return value clobbered by header write.
529         - fix: ineeded count wrong for overlapped, created files.
530         - globalize _free(3) wrapper in rpmlib.h, consistent usage throughout.
531         - internalize locale insensitive ctype(3) in rpmio.h.
532         - boring lclint annotations and fiddles.
533         - transaction iterator(s) need to run in reverse order on pure erasures.
534         - erasures not yet strict, warn & chug on unlink(2)/rmdir(2) failure.
535         - more boring lclint annotations and fiddles.
536         - yet more boring lclint annotations and fiddles.
537         - still more boring lclint annotations and fiddles.
538         - enough lclint annotations and fiddles already.
539         - fix: specfile queries with BuildArch: (#27589).
540         - fix: debugging message displays header keys (#38454).
541         - use internal db-3.2.9 sources to build by default.
542         - don't build db1 support by default.
543         - create rpmdb.la so that linkage against rpm's db-3.2.9 is possible.
544         - rpm database has rpm.rpm g+w permissions to share db3 mutexes.
545         - expose more db3 macro configuration tokens.
546         - move fprint.[ch] and hash.[ch] to rpmdb directory.
547         - detect and fiddle incompatible mixtures of db3 env/open flags.
548         - add DBI_WRITECURSOR to map to db3 flags with CDB database model.
549         - add rpmdbSetIteratorRewrite to warn of pending lazy (re-)writes.
550         - harden rpmdb iterators from damaged header instance segfaults.
551         - add cron/logrotate scripts to save installed package filenames.
552         - upgrade to db-3.3.4.
553         - fix: filter duplicate package removals (#35828).
554         - add armv3l arch.
555         - fix: i18n strings need 1 on sucess return code (#41313).
556         - fix: skip %ghost files when building packages (#38218).
557         - headerFree() returns NULL, _free is C++ safe.
558         - remove all header region assertion failures, return NULL instead.
559         - perform db->verify when closing db files.
560         - eliminate db-1.85 and db-2.x configuration.
561         - fix: popt arg sanity checks broken, optarg != optArg.
562         - fix: popt range checks on floats/doubles broken.
563         - popt: return POPT_ERROR_ERRNO on config open/read/close failure.
564         - fix: popt exec doesn't add '--', --target et al no longer need '='.
565         - fix: popt consume-next-arg "!#:+" w/o side effect (#41956).
566         - fix: for busted db1, attempt chain reconnection to following record.
567         - return multiple suggested packages
568           (Pawel Kolodziej <pawelk@pld.org.pl>).
569         - fix: return suggested packages when using Depends cache.
570         - merge sparc64/ia64 fiddles back into linux.{req,prov}.
571         - automagically generate perl module dependencies always.
572         - fix: lclint fiddles broke uCache initialization (#43139).
573         - always use db cursors.
574         - permit duplicates for btree indices.
575         - document build modes in rpmbuild.8, rpmbuild is born.
576         - default to dbenv with mpool, --rebuilddb with nofsync is much faster.
577         - fix: QUERY_FOR_LIST file count clobbered.
578         - create top level rpmcli API, factor top level modes into popt tables.
579         - popt: add POPT_BIT_SET/POPT_BIT_CLR to API.
580         - autogen.sh checks for latest libtool-1.4 and automake-1.4-p2.
581         - rpm --verify reports failure(s) if corresponding tag is not in header.
582         - rpm --verify honors %config(missingok), add -v for legacy behavior.
583         - remove dead code frpm popt table reorg.
584         - more CLI typedefs/prototypes moved from rpmlib.h to rpmcli.h.
585         - rpm --verify skips files in non-installed states.
586         - rpm --verify skips content checks for %ghost files.
587         - rpm --verify displays config/doc/gnost/license/readme atrrs for files.
588         - rpm --verify checks immutable header region digest if available.
589         - rpmbuild adds header region digest (SHA1 as string).
590         - use rpmTag* typedefs in new hge/hae/hme/hre header vectors.
591         - remove rpmrc Provides: Yet Again, use virtual packages.
592         - dump cursor debugging wrappers.
593         - rpm --verify can disable rpmFileAttr checks.
594         - add rpmdbSetIteratorRE() for regex matching in database iterators.
595         - permit rpm -qa to take RE args applied to name tag.
596         - permit dbiFindMatches() to use version/release patterns.
597         - eliminate all uses of rpmdbSetIterator{Version,Release}.
598         - fix: db1 end-of-file not detected in legacy compatible way.
599         - fix: remove (harmless) chown error message from %post.
600         - add --target/--host to %configure, add example cross-build/config.site
601           scripts to /usr/lib/rpm <arjanv@redhat.com> (#44581).
602         - rpmdb iterator selectors permit default/strcmp/regex/glob matching.
603         - rpmdb iterator selectors permit negative matches.
604         - alpha: don't add "()(64bit)" dependency markers.
605         - ia64/sparc: <arch>.{req,prov} identical to linux.{req,prov}.
606         - add "rpmlib(ScriptletInterpreterArgs)" to track
607             %post -p "/sbin/ldconfig -n /usr/lib"
608           incompatibilities.
609         - popt: add POPT_ARGFLAG_SHOW_DEFAULT to display initial values(#32558).
610         - popt: add POPT_CONTEXT_ARG_OPTS for all opts to return 1 (#30912).
611         - fix: fsm reads/writes now return error on partial I/O.
612         - fix: Ferror returned spurious error for gzdio/bzdio.
613         - check for API/ABI creep, diddle up some compatibility.
614         - preliminary abstraction to support per-header methods.
615         - finalize per-header methods, accessing headerFoo through vector.
616         - make package ordering loop messages debug, not warning.
617         - remove {ia64,sparc}-linux.{prov,req}, changes merged into linux.*.
618         - fix: partial sets of hardlinked files permitted in payload.
619         - fix: mark rpmdb files with %config to prevent erasure on downgrade.
620         - work around a (possible) compiler problem on ia64.
621         - fix: rpm -qlv link count for directories dinna include '..'.
622         - fix: rpm -qlv size for directories should be zero.
623         - add --noghost to filter non-payload files from rpm -qlv output.
624         - add %{_gnu} macro to append "-gnu" to %{_target_platform} to
625           support --target/--host flavored %configure. Legacy behavior
626           available by undefining %{_gnu}.
627         - propagate %{_gnu} to per-platform configuration.
628         - fix: parameterized macros with massive mumber of options need
629           "optind = 1" "Dmitry V. Levin" <ldv@alt-linux.org>.
630         - add athlon per-platform configuration.
631         - remove executable bit to disable autogenerated perl requires until
632           perl provides can be vetted.
633         - disable per-platform %%configure use of %%_gnu until libtool package
634           stabilizes.
635         - fix: permit partially enumerated hardlink file sets during build.
636         - fix: resurrect rpm signature modes.
637         - fix: sanity checks on #tags (<65K) and offset (<16Mb) in header.
638         - fix: add -r to useradd to prevent /etc/skel glop (#46215).
639         - fix: disambiguate typedef and struct name(s) for kpackage.
640         - update intl dirs to gettext-0.10.38.
641         - fix: sanity check for header size added in headerCopyLoad() (#46469).
642         - fix: redundant entries in file manifests handled correctly (#46914).
643         - map uid/gid from metadata into payload headers.
644         - add removetid to header during --repackage.
645         - expose rpmShowProgress() and rpmVerifyDigest() in rpmcli.h.
646         - portability: avoid st_mtime, gendiff uses basename, etc (#47497).
647         - glibc-2.0.x has not __va_copy().
648         - popthelp.c: don't use stpcpy to avoid portability grief (#47500).
649         - permit alias/exec description/arg text to be set from popt config.
650         - python: rhnLoad/rhnUnload to check header digest.
651         - package version now configureable, default v3.
652         - rename rpm libraries to have version with libtool -release.
653         - fix: -i CLI context broken Yet Again.
654         - unlink all __db.nnn files before 1st db open.
655         - python bindings should not segfault when fed bad data.
656         - fix: adjust arg count for --POPTdesc/--POPTargs deletion.
657         - add linux per-platform macro %_smp_mflags <sopwith@redhat.com>.
658         - document more popt aliases for --help usage.
659         - remove --tarbuild from man page(s), use -t[abpcils] instead (#48666).
660         - fix: scope multi-mode options like --nodeps correctly (#48825).
661         - isolate cdb access configuration (experimental, use at your own risk).
662         - fix: hard fail on locked dbopen if CDB locking not in use.
663         - fix: dbconfig with mp_mmapsize=16Mb/mp_size=1Mb for
664           "everything ENOSPC" failure check.
665         - fix: don't total hard linked file size multiple times (#46286).
666         - add %dev(type,major,minor) directive to permit non-root dev build.
667         - fix: _smp_flags macro broken.
668         - python: bind rhnUnload differently.
669         - fix: rescusitate --querytags.
670         - fix: short aliases broken (#49213).
671         - python: "seal" immutable region for legacy headers in rhnUnload() .
672         - python: add poptmodule.so bindings.
673         - fix: %dev(...) needs to map rdev and mtime from metadata.
674         - resurrect --specedit for i18n.
675         - fix: 4 memory leaks eliminated.
676         - fix: yet another segfault from bad metadata prevented.
677         - add sha1 test vectors, verify on ix86/alpha/sparc.
678         - add (but disable for now) rpm-perl subpackage from Perl-RPM.
679         - python: parameterize with PYVER to handle 1.5 and/or 2.1 builds.
680         - add build dependency on zlib-devel (#49575).
681         - enable rpm-perl subpackage.
682         - add pmac/ppciseries/ppcpseries varieties to ppc arch family.
683         - include tdigest.c tkey.c and trpmio.c to "make dist".
684         - re-enable dependency resolution source from package NVR.
685         - rename pmac to ppcmac.
686         - ia64: revert -O0 compilation.
687         - upgrade to db-3.3.11 final.
688         - fix: don't segfault when presented with rpm-2.4.10 packaging (#49688).
689         - fix: --noscripts is another multimode option.
690         - add tmpdir to configure db3 tmpdir into chroot tree.
691         - permit lazy db opens within chroot.
692         - fix: diddle dbenv path to accomodate backing store reopen in chroot.
693         - add support for mips (#49283).
694         - add __as, _build_arch, and __cxx macros (#36662, #36663, #49280).
695         - detailed build package error messages.
696         - fix: i18n tags not terminated correctly with NUL (#50304).
697         - add explicit casts to work around a s390 compiler problem.
698         - fix: autoconf glob tests (#50845).
699         - portability: some compilers squawk at return ((void) foo()) (#50419).
700         - remove fdFileno() from librpmio, use inline version instead (#50420).
701         - fix: linux find-requires needs quotes around [:blank:].
702         - remove /var/lib/rpm/__db* cache files if %__dbi_cdb is not configured.
703         - python: add hiesenbug patch.
704         - add legacy (compile only) wrappers for fdFileno et al.
705         - add -D_REENTRANT (note rpmlib is still not thread safe).
706         - fix: segfault on headerFree given malicious data.
707         - fix: don't verify hash page nelem.
708         - better error messages for verification failures.
709         - include directory /usr/lib/rpm in rpm package.
710         - always use dl size in regionSwab() return.
711         - ppc: revert ppcmac to ppc.
712         - ppc: autoconf test for va_copy.
713         - python: add exception to detect bad data in hdrUnload.
714         - change dir creation message from warning to debug for now.
715         - verify perms (but not mode) on %ghost files.
716         - headers without RPMTAG_NAME are skipped when retrieved.
717         - within a region, entries sort by address; added drips sort by tag.
718         - fix: error message on failed package installs resurrected.
719         - python: memory leaks in headerLoad/headerunload bindings.
720         - python: retrofit sha1 digest using RPMTAG_SHA1RHN.
721         - python: change rhnUnload bindings.
722         - python: teach rhnLoad about RPMTAG_SHA1RHN as well.
723         - fix: Provides: /path did not work with added packages (#52183).
724         - fix: progress bar scaling did not include source rpm count.
725         - fix: hash page nelem failure to verify.
726         - fix: initialize "verify" transaction stepName with -vv (#53582).
727         - fix: ftp remote globs broken (#46892).
728         - popt: clarify X consortium license in popt.3 man page.
729         - close/discard Depends index after rpmdepCheck() use.
730         - lclint-3.0.0.15 fiddles.
731         - fix: harmless typo in db3 chroot hack.
732         - fix: big-endian's with sizeof(time_t) != sizeof(int_32) mtime broken.
733         - fix: add Korean message catalogs (#54473).
734         - add RPHNPLATFORM and PLATFORM tags.
735
736 4.0 -> 4.0.[12]
737         - fix: avoid calling getpass twice as side effect of xstrdup macro
738           (katzj@linuxpower.org) (#17672).
739         - order packages using tsort, clipping Requires:'s in dependency loops.
740         - handle possible db3 dependency on -lpthread more gracefully.
741         - bump popt version to 1.6.1.
742         - fix: more (possible) xstrdup side effects.
743         - fix: rpm2cpio error check wrong on non-libio platforms.
744         - fix: runTriggers was not adding countCorrection.
745         - add rpmGetRpmlibProvides() to retrieve rpmlib(...) provides
746           "Pawel A. Gajda" <mis@k2.net.pl>.
747         - syntax to specify source of Requires: (PreReq: now legacy).
748         - rip out rpm{get,put}text, use getpo.sh and specspo instead.
749         - fine-grained Requires, remove install PreReq's from Requires db.
750         - fix: duplicate headerFree() on instalBinaryPackage() error return.
751         - fix: work around for (mis-compilation?!) segfaults on signature paths.
752         - fix: segfault on exit of "rpm -qp --qf '%{#fsnames}' pkg" (#20595).
753         - hpux w/o -D_OPEN_SOURCE has not h_errno.
754         - verify MD5 sums of payload files when unpacking archive.
755         - hide libio lossage in prototype, not API.
756         - add support for SHA1 as well as MD5 message digests.
757         - don't verify src rpm MD5 sums (yet).
758         - md5 sums are little endian (no swap) so big endian needs the swap.
759         - add doxygen and lclint annotations most everywhere.
760         - consistent return for all signature verification.
761         - use enums for almost all rpmlib #define's.
762         - API: change rpmProblem typedef to pass by reference, not value.
763         - unify rpmError and rpmMessge interfaces through rpmlog.
764         - collect and display rpm build error messages at end of build.
765         - don't trim leading ./ in rpmCleanPath() (#14961).
766         - detect (still need to test) rdonly linux file systems.
767         - check available inodes as well as blocks on mounted file systems.
768         - pass rpmTransactionSet, not elements, to installBinaryPackage et al.
769         - add cscope/ctags (Rodrigo Barbosa<rodrigob@conectiva.com.br>).
770         - remove getMacroBody() from rpmio API.
771         - add support for unzip <rodrigob@conectiva.com.br>
772         - add brp-strip-shared script <rodrigob@conectiva.com.br>.
773         - better item/task progress bars <rodrigob@conectiva.com.br>.
774         - load headers as single contiguous region.
775         - add region marker as RPM_BIN_TYPE in packages and database.
776         - fix: don't headerCopy() relocateable packages if not relocating.
777         - merge signatures into header after reading from package.
778         - RPM_BIN_TYPE malloc'ed when retrieved through headerGetEntry().
779         - add headerFreeData() to free any data malloc'ed during retrieval.
780         - preserve exact image of original header when installing/upgrading.
781         - add missing headerFree for legacy signature header.
782         - fix: removed packages leaked DIRINDEXES tag data.
783         - reload tags added during install when loading header from rpmdb.
784         - avoid brp-compress hang with both compressed/uncompressed man pages.
785         - improved find-{requires,provides} for aix4/hpux/irix6/osf.
786           Tim Mooney<mooney@dogbert.cc.ndsu.NoDak.edu>
787         - portability: remove use of GNU make subst in lib/Makefile (Joe Orton).
788         - python: bind package removal (#21274).
789         - autoconfigure building python bindings.
790         - autoconfigure generating rpm API doco.
791         - fix: don't fdFree in rpmVerifyScript, rpmtransFree does already.
792         - use package version 3 if --nodirtokens is specified.
793         - add package names to problem sets early, don't save removed header.
794         - make sure that replaced tags in region are counted in headerSizeof().
795         - support for dmalloc debugging.
796         - filter region tags in headerNextIterator, exit throut headerReload.
797         - add rpmtransGetKeys() to retrieve transaction keys in tsort'ed order.
798         - python bindings for rpmtransGetKeys().
799         - fix: include alignment in count when swabbing header region.
800         - handle added dirtoken tags (mostly) correctly with header regions.
801         - add FHS doc/man/info dirs, diddle autoconf goo.
802         - fix: headerUnload handles headers w/o regions correctly on rebuilddb.
803         - resurrect rpmrc Provides: as well as implicit dependency on packge
804           info.
805         - change dependency loop message to RPMMESS_WARNING to use stderr, not
806           stdout.
807         - fix: (transaction.c) assume file state normal if tag is missing.
808         - fix: failed signature read headerFree segfault.
809         - fix: revert ALPHA_LOSSAGE, breaks 6.2/i386.
810         - fix: synthesized callbacks for removed packages have not a pkgkey.
811         - identify install scriptlet failures with the name of the scriptlet.
812         - handle install chroot's identically throughout the install process.
813         - add rpmlib(HeaderLoadSortsTags) for tracking header regions
814           "just in case".
815         - create _tmppath on the fly if not present.
816         - remove /etc/rpm/macros.db1 configuration file if db3 rebuilt.
817         - remove overly verbose dbiOpen() error messages, no longer needed.
818         - whiteout mozilla loop for 7.1.
819         - immutable headers, once installed by rpm3, need to lose immutablity.
820         - fix: removed headers from db need a headerCopy().
821         - send query/verify output through rpmlog().
822         - resurrect rpmErrorSetCallback() and rpmErrorString().
823         - use malloc'ed buffer for large queries.
824         - fix: avoid FAT and other brain-dead file systems that have not inodes.
825         - fix: hack around alpha mis-compilation signature problems.
826         - rpmmodule.c(handleDbResult): return empty list when nothing matches.
827         - (non-linux): move stubs.c to rpmio (#21132).
828         - (python): bind initdb (#20988).
829         - (popt): fix float/double handling (#19701).
830         - (popt): non-linux needs <float.h> (#22732).
831         - (popt): add POPT_ARGFLAG_OPTIONAL for long options with optional arg.
832         - (popt): diddle auto-help to include type of arg expected.
833         - use popt autohelp for rpm helper binaries.
834         - fix: avoid locale issues with strcasecmp/strncasecmp (#23199).
835         - remove almost all explicit uses of stderr in rpmlib using rpmError().
836         - fix: pass scriptlet args, as in %post -p "/sbin/ldconfig -n /lib".
837           (Rodrigo Barbosa).
838         - fix: 3 packages from Red Hat 5.2 had bogus %verifyscript tag.
839         - tsorted packages processed in successor count order.
840         - fix: resurrect --excludepath (#19666).
841         - fix: digests on input FD_t dinna work.
842         - fix: remove rebuilddb debugging leakage.
843         - successors from tsort are processed in presentation order.
844         - fix: find-requires.perl needed update (#23450).
845         - fix: don't hang on build error.
846         - fix: remove "error: " prefix from signature verification message.
847         - hack: permit installer to determine package ordering using 1000003 tag.
848         - fix: extra newline in many error messages (#23947).
849         - fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
850         - add install/remove transaction id tags.
851         - tsort prefers presentation order.
852         - 1st crack at Mandrake specific per-platform macros.
853         - fix: insure that %lang scopes over hard links correctly.
854         - fix: rpmCleanPath was nibbling at .. in macrofiles incorrectly.
855         - fix: check waitpid return code.
856         - fix: make a copy of retrieved header before loading.
857         - fix: diddle exit code for attempted installs of non-packages (#26850).
858         - python binding diddles to reduce installer memory footprint by
859           delayed loading of file info.
860         - fix: remove fixed size buffer on output path (#26987,#26332).
861         - resurrect rpmErrorCode in the API for Perl-RPM.
862         - fix: permit packages to differ by 0 or 32 bytes (#26373).
863         - fix: permit HEADER_IMMUTABLE tag queries.
864         - split db configuration into separate file.
865         - portability changes from Joe Orton <jorton@redhat.com> et al.
866         - (alpha): rip out ALPHA_LOSSAGE now that gcc-2.96-76 has fix (#28509).
867         - (popt): use sprintf rather than snprintf for portability.
868         - (sparc) disable MD5 sum checks during install.
869         - (db1) plug largish memory leak in simulated interface for falloc.c.
870         - remove mozilla dependency white out, no longer needed.
871         - fix: adjust for libio breakage in Red Hat 5.x with glibc-2.0.7-29.4.
872         - map i686-like (i.e. w/o CMOV) platforms to better alternatives.
873
874 3.0.6 -> 4.0
875         - use DIRNAMES/BASENAMES/DIRINDICES not FILENAMES in packages and db.
876         - API: change dbi to pass by reference, not value.
877         - cram all of db1, db_185, and db2 interfaces into rpmlib.
878         - convert db1 -> db2 on-disk format using --rebuilddb.
879         - add db3 to the pile, isolate all with incremental link and vectors.
880         - prefer db3 as default.
881         - permit db3 configuration using macros.
882         - create dbi from template rather than passed args.
883         - use hashed access for package headers.
884         - db3: save join keys in endian neutral binary format.
885         - treat legacy falloc.c as "special" db[01] index for package headers.
886         - API: pass *SearchIndex() length of key (0 will use strlen(key)).
887         - API: remove rpmdb{First,Next}RecNum routines.
888         - add explcit "Provides: name = [epoch:]version-release" to headers.
889         - fix: cpio.c: pre-, not post-, decrement the link count.
890           (from Fabrice Bellet <Fabrice.Bellet@creatis.insa-lyon.fr>)
891         - make db indices as lightweight as possible, with per-dbi config.
892         - db1.c will never be needed, eliminate.
893         - API: merge rebuilddb.c into rpmdb.c.
894         - API: replace rpmdbUpdateRecord with rpmdbSetIteratorModified.
895         - API: replace rpmdbFindByLabel with RPMDBI_LABEL iteration.
896         - API: replace rpmdbGetRecord with iterators.
897         - API: replace findMatches with iterators.
898         - Filter DB_INCOMPLETE on db->sync, it's usually harmless.
899         - Add per-transaction cache of resolved dependencies (aka Depends).
900         - Do lazy dbi{Open,Close} throughout.
901         - Attempt fine grained dbi cursors throughout.
902         - fix: free iterator *after* loop, not during.
903         - fix: Depends needed keylen in dbiPut, rpmdbFreeIterator after use.
904         - Rename db0.c to db1.c, resurrect db2.c (from db3.c).
905         - simplify --last popt alias, date like -qi (bjerrick@easystreet.com).
906         - fix: alloca'd memory used outside of scope (alpha segfault).
907         - fix: define/eval options assumed sizeof(int) == sizeof(void *).
908         - fix: sparc64 per-platform directory shouldn't be sparc64linux.
909         - fix: (segfault) verify needs rpmdb while query does not.
910         - add calculated nlink field to -qlv output (like ls -al).
911         - detects and builds properly against the new fopencookie API in
912           glibc 2.2.
913         - change popt exec alias in oreder to exec rpm children.
914         - split rpm into 5 pieces along major mode fault lines with popt glue.
915         - turn on new, more complete version of %%configure.
916         - add %%makeinstall analogue of new %%configure for autoconf packages.
917         - mark packaging with version 4 to reflect filename/provide changes.
918         - change next version from 3.1 to 4.0 to reflect package format change.
919         - change %configure, add %makeinstall macros to handle FHS changes.
920         - add optflags for i486 and i586.
921         - fix: segfault with legacy packages missing RPMTAG_FILEINODES.
922         - require db3 in default configuration.
923         - create rpmio directory for librpmio.
924         - make librpmio standalone.
925         - fix: avoid clobbering db cursor in removeBinaryPackage.
926         - expose cursors in dbi interfaces, remove internal cursors.
927         - remove incremental link.
928         - portability: sparc-sun-solaris2.5.1.
929         - fix: don't count removed files if removed packages is empty set.
930         - fix: permit '\0' as special case key (e.g. "/" in Basenames).
931         - require --rebuilddb to convert db1 -> db3, better messages.
932         - fix: open all db indices before performing chroot.
933         - fix: typo in brp-compress caused i18n man pages not to compress.
934         - API: uncouple fadio from rest of rpmio.
935         - API: externalize legacy fdOpen interface for rpmfind et al.
936         - put version on rpmpopt filename to avoid legacy filename collision.
937         - change optflags for i386.
938         - multilib patch, take 1.
939         - add pre-transaction syscall's to handle /etc/init.d change.
940         - don't bother saving '/' as fingerprint subdir.
941         - prefix payload paths with "./", otherwise "/" can't be represented.
942         - fix: compressFilelist broke when fed '/'.
943         - fix: typo in --last popt alias (#12690).
944         - fix: clean file paths before performing -qf (#12493).
945         - remove build mode help from rpm.c, use rpmb instead.
946         - fix: set multilibno on sparc per-platform config.
947         - fix: legacy requires './' payload prefix to be omitted for rpm itself.
948         - fix: remove verbose database +++/--- messages to conform to doco.
949         - add S_ISLNK pre-transaction syscall test.
950         - fix: initialize pretransaction argv (segfault).
951         - fix: check rpmlib features w/o database (and check earlier as well).
952         - rip out pre-transaction syscalls, more design is needed.
953         - remove (dead) dependency checks on implicitly provided package names.
954         - remove (dead) rpmdb API code in python bindings.
955         - fix: make set of replaced file headers unique.
956         - fix: don't attempt dbiOpen with anything but requested dbN.
957         - create rpmbuild/rpmquery/rpmverify/rpmsign symlinks.
958         - fix: look for any/all dbapi when rebuilding.
959         - link rpm2cpio dynamically since cpio is linked dynamically.
960         - fix: uniqify dependency problems when printing (#14034).
961         - fix: segfault on erase if filestates is missing in header (#14679).
962         - fix: popt POST callbacks typo.
963         - fix: -Va broken, make db cursors per-iterator, not per-dbi.
964         - fix: segfault when globbing on "" (#15593).
965         - fix: rebuild db1 -> db3 ate 1st header (#16263).
966         - translate rpm.8 man page (Peter Ivanyi <ivanyi@internet.sk>).
967
968 3.0.6 -> 3.0.7
969
970 3.0.5 -> 3.0.6
971         - python bindings to query and verify signatures.
972         - add callbacks on package erasure.
973         - fix: preserve cpio errno when using Fclose with libio.
974         - fix: initialize sigs everywhere in python header object.
975         - popt: support for float/double args.
976         - fix: honor --test when doing --freshen.
977         - add alpha* architectures.
978
979 3.0.4 -> 3.0.5
980         - configure.in fiddles for BSD systems (Patrick Schoo).
981         - solaris2.6: avoid bsearch with empty dir list (Ric Klaren - klaren@cs.utwente.nl)
982         - include RPM-GPG-KEY in file manifest.
983         - Add ia64 and sparc64 changes.
984         - rpm.spec: add per-platform sub-directories.
985         - FreeBSD fixes (bero@redhat.com).
986         - handle version 4 packaging as input.
987         - builds against bzip2 1.0
988         - fix: resurrect symlink unique'ifying property of finger prints.
989         - fix: broken glob test with empty build directory (Geoff Keating).
990         - fix: create per-platform directories correctly.
991         - update brp-* scripts from rpm-4.0, enable in per-platform config.
992         - alpha: add -mieee to default optflags.
993         - add RPMTAG_OPTFLAGS, configured optflags when package was built.
994         - add RPMTAG_DISTURL for rpmfind-like tools (content unknown yet).
995         - teach brp-compress about /usr/info and /usr/share/info as well.
996         - update macros.in from rpm-4.0 (w/o dbi configuration).
997         - fix: don't expand macros in false branch of %if (kasal@suse.cz).
998         - fix: macro expansion problem and clean up (#11484) (kasal@suse.cz).
999         - uname on i370 has s390 as arch (#11456).
1000         - python: initdb binding (Dan Burcaw <dburcaw@terraplex.com>).
1001         - internalize --freshen (Gordon Messmer <yinyang@eburg.com>).
1002         - support for separate source/binary compression policy.
1003         - support for bzip payloads.
1004         - fix: payload compression tag not nul terminated.
1005         - identify package when install scriptlet fails (#12448).
1006         - remove (unused) RPMTAG_CAPABILITY.
1007         - remove (legacy) use of RPMTAG_{OBSOLETES,PROVIDES} internally.
1008         - remove (legacy) support for version 1 packaging.
1009         - remove (legacy) support for converting gdbm databases.
1010         - eliminate unused headerGz{Read,Write}.
1011         - support for rpmlib(...) internal feature dependencies.
1012         - display rpmlib provides when invoked with --showrc.
1013         - fix: compare versions if doing --freshen.
1014         - disable rpmlib(VersionedDependencies) by defining _noVersionedDependencies.
1015
1016 3.0.3 -> 3.0.4
1017         - use compressed filenames on install side.
1018         - start unifying FD types, CFD_t now gone.
1019         - check for memory leaks (almost all leaks are plugged).
1020         - fix: resurrect multiple target platform builds.
1021         - freshen.sh: detect when all packages are up to date (Ian Macdonald).
1022         - fix: typo in error message (#6858).
1023         - add/update dependency scripts (Ken Estes).
1024         - use directory tokens internally to reduce memory usage.
1025         - permit --whatprovides to lookup file dependencies.
1026         - fail to package if absolute symlink points within build root.
1027         - initial version of check-prereqs.
1028         - expose enough of legacy fdio interface to compile rpmfind/rpm2html.
1029         - fix: Fopen should use 0666 as default (umask will be applied later).
1030         - fix: default for rd_timeoutsecs is 1 sec (avoid ufdio assertion).
1031         - fix: new FILENAMES tags require package index, not pointer in lookups.
1032         - rename new FILENAMES tags to BASENAMES/DIRNAMES/DIRINDEXES.
1033         - fix: don't look at password when searching urlCache.
1034         - add contentLength sanity check on rpmdb headerWrite.
1035         - fix: fprint abort on stat("/", ...) in empty chroots.
1036         - perform glob on remote ftp query args.
1037         - fix: ftpAbort must close the data channel to read abort status.
1038         - perform glob on remote ftp install args.
1039         - fix: reload macros from cmd line when re-reading config files.
1040         - fix: compressFileList was over-generating dirNames.
1041         - fix: alAddPackage sorted dirNames too soon, destroying dirMapping.
1042         - expose enough of legacy fdio interface to compile gnorpm.
1043         - fix: missing strdup when overriding buildroot from command line
1044           argument (#1026,#5006).
1045         - diddle some names to keep my C++ brethern happy (i.e. kpackage port).
1046         - fix: add ufdSeek.
1047         - build popt (with libpopt.so*) as a sub-package of rpm.
1048         - split python bindings into a separate sub-package of rpm.
1049         - add ja translation and man pages (Kanda Mitsuru kanda@nn.iij4u.or.jp).
1050         - fix: fp.subDir was incorrectly set to NULL in sparse chroot's.
1051         - fix: manageFile needs to and with O_WRONLY(=1), not O_RDONLY(=0).
1052         - fix: resurrect failed glob error message during build.
1053         - add several BuildRoot FTW policies.
1054         - add manpage for gendiff (pbrown@redhat.com).
1055         - updated sv.po (goeran@uddeborg.pp.se) (#8349).
1056         - configurable PATH for install %pre/%post et al scriptlets.
1057         - use only %_install_langs, not LINGUAS/LANG when deciding to install.
1058         - configurable compression type/level for package payloads.
1059         - default value for %_install_langs is all.
1060         - fix: resurrect relative path's in fprint lookup queries.
1061         - extract spec files from bzip'ped tarballs too on tar builds.
1062         - add %_rebuilddbpath macro to permit rebuilding db in new location.
1063         - updated perl scripts (Ken Estes).
1064         - fix: on --rebuilddb, make sure new/old paths are not the same (#8752).
1065         - fix: on --erase, segfault caused by "" prefix.
1066         - explicitly expand file lists in writeRPM for rpmputtext.
1067         - {Free,Open}BSD find-{provides,requires} (suzukis@file.phys.tohoku.ac.jp).
1068         - new rpm-build package to isolate rpm dependencies on perl/bash2.
1069         - always remove duplicate identical package entries on --rebuilddb.
1070         - add scripts for autogenerating CPAN dependencies.
1071         - add sl.po from Primoz Peterlin <peterlin@biofiz.mf.uni-lj.si>.
1072         - updated sv.po from <goeran@uddeborg.pp.se>.
1073         - macro expansion (and absolute path) in %files -f arg (#9508,#9091).
1074         - permit cli setting of build root policies.
1075         - fix: filter excluded paths before adding install prefixes (#8709).
1076         - add i18n lookaside to PO catalogue(s) for i18n strings.
1077         - try for /etc/rpm/macros.specspo so that specspo autoconfigures rpm.
1078         - per-platform configuration factored into /usr/lib/rpm subdir.
1079         - sparc-sun-solaris2.6 portability check.
1080         - simpler hpux.prov script (Tim Mooney).
1081         - portability: skip bzip2 if not available.
1082         - portability: skip gzseek if not available (zlib-1.0.4).
1083         - portability: skip personality if not available (linux).
1084         - portability: always include arpa/inet.h (HP-UX).
1085         - portability: don't use id -u (Brandon Allbery).
1086         - portability: don't chown/chgrp -h w/o lchown.
1087         - portability: splats in rpm.spec to find /usr/{share,lib}/locale/* .
1088         - fix: better filter in linux.req to avoid ARM specific objdump output.
1089         - fix: use glibc 2.1 glob/fnmatch everywhere.
1090         - fix: noLibio = 0 on Red Hat 4.x and 5.x.
1091         - fix: typo in autodeps/linux.req.
1092         - configure noarch compatibility in rpmrc for ia64.
1093
1094 3.0.2 -> 3.0.3
1095         - add --eval to find result of macro expansion.
1096         - add configure scaffolding to support rpm-4.0 packages.
1097         - include shared libs in rpm-devel (no versioning yet).
1098         - add epoch (as [0-9]*:version-release) to install dependency parse.
1099         - move install/erase major modes into rpmlib.
1100         - move checksig/resign major modes into rpmlib.
1101         - add python bindings to rpm-devel (linux only).
1102         - make query (rpm -qvl) behave like (POSIX?) ls for older files (#4050).
1103         - fix: %if parsing skipped 3 chars too many.
1104         - permit multiline macro expansions with comments and %if.
1105         - add pl translation and man pages (PLD team - from Tomasz Kloczko).
1106         - fix: incomplete cleanup if --rebuilddb fails (#4115).
1107         - add versions to provides.
1108         - fix: sanity test on specfile fails when encountering i18n chars.
1109         - print all dependencies for each package at end of build.
1110         - the death of RPMSENSE_SERIAL, use [epoch:]version[-release] instead.
1111         - add _mandir/_infodir macro expansions to docdirs (Tomasz Kloczko).
1112         - add post install configurable dependency checking.
1113         - fix: segfault on --rebuild (#4185).
1114         - macro fixes (Benedict Lofstedt, #4220):
1115            expand %# just like %{#} (and with same value as shell analogues).
1116            macro defaults for *, 0, and # if no args specified.
1117            getopt on non-linux requires optind to be saved/restored.
1118         - fix: don't remove file until last occurence in transaction (#4291).
1119         - resuscitate net shared paths (#4330).
1120         - fix: macro table cannot contain NULL pointers (#4263).
1121         - fix: last char in rpmrc w/o terminating newline lost (#4361).
1122         - prepare for handling \r in macro exapnsions.
1123         - fix: n>1 occurrences of %config(noreplace) should not FA_CREATE (#4355).
1124         - fix: use pgp5 rather than pgp-2.6.3 if both are in %_pgpbin (#4564).
1125         - match "de" when locale is specified as "de_DE.ISO-8859-1@Munich".
1126         - add versions to obsoletes.
1127         - add %_install_langs to configure languages to be installed.
1128         - add LC_ALL/LC_MESSAGES to query locale search.
1129         - fix: segfault with "--sign" w/o supplying files (#4651).
1130         - add headerWrite return code and check for errors.
1131         - update python bindings from anaconda.
1132         - add versions to prereq.
1133         - add syntax sensitive implict prereq on rpm-3.0.3.
1134         - fix: don't successfully match with strncasecmp("sparc", "sparc64", 5)
1135         - add sparcv9 architecture.
1136         - add --freshen to usage message (#4823).
1137         - suggested changes to docs from Ken Estes (#4451).
1138         - link libbz2.a statically to avoid rpm->bzip2 dependence for now.
1139         - Tru64: avoid find-requires variable size limit (Tim Mooney).
1140         - Solaris: use getpassphrase rather than getpass if available.
1141         - pgp and pgp5 have compatible RSA signature (#4780).
1142         - fix: avoid db problems with self-obsoleting packages on install.
1143         - glibc2: always enable dynamic mtrace if available.
1144         - fix: versioned provides devolved to existence test with conflicts.
1145         - fix: with unspecified epochs, skip dependency epoch compare.
1146         - python: shared module linked correctly.
1147         - do versioned provides/conflicts resolution correctly.
1148         - rpmpopt: display versioned provides/obsoletes.
1149         - revert to shared libbz2.so now that bzip2 is in base install.
1150         - fix: command line install had header memory leak.
1151         - check for NULL on all memory allocations.
1152         - free rpmrc mallocs on exit.
1153         - glibc2: permit run time leak detection.
1154         - fix: removed files fingerprint memory leak.
1155         - fix: resurrect allfiles flag from rpm-2.5.x.
1156         - fix: version compares compatible with epoch-less requires/conflicts.
1157         - fix: rpm-2.5.1 had file list w/o leading / fix.
1158         - portatbility fiddles (solaris).
1159         - create binary rpm directory (e.g. .../%{_target_cpu}) on the fly.
1160         - updated pl/rpm.8 (PLD team).
1161         - new find req/prov scripts for non-linux platforms (Tim Mooney).
1162         - fix: non-GNU globs burp on repeated '/' in patterns.
1163         - dumb cpp's want white space around lclint annotations (Tim Mooney).
1164         - aix: aix.req broken by cut-and-paste (Tim Mooney).
1165
1166 3.0.1 -> 3.0.2
1167         - eliminate armv4 entries from rpmrc (Andrew E. Mileski).
1168         - permit multiple "Provides: " lines in rpmrc (#2999).
1169         - add BuildConflicts: and BuildRequires: in spec file and src rpm.
1170         - fix: bigendian's with longlong file sizes (e.g. IRIX) dinna work.
1171         - move printDep* routines into rpmlib for gnorpm et al.
1172         - updated ru translation (Sergey Kubushin).
1173         - add vpkg-provides.sh (Tim Mooney).
1174         - don't clobber LDFLAGS in top-level Makefile (Tim Mooney).
1175         - fix: build root from cmd line did not set macro %buildroot (#1026).
1176         - fix: resurrect "rpm -Va --nofiles" (verify dependencies only) (#3111).
1177         - rpm-devel should require popt (#3125).
1178         - don't spin while waiting for delayed requires/provides input (#3289).
1179         - common parse for all dependency token syntax.
1180         - eliminate find-requirements on libNoVersion (Red Hat linux only).
1181         - add new-fangled requires on "libc.so.6(GLIBC_2.1)" (sparc-linux only).
1182         - MiNT port (Guido Flohr <gufl0000@stud.uni-sb.de>).
1183         - fix: --rebuilddb with --root dinna remove directory (Michael Andres).
1184         - fix: false fingerprint stat cache hit -- "the tetex problem" (#2727).
1185         - fix: bsearch needs macro table sorted after undefine. (#3713).
1186         - fix: --checksig segfault with odd pgp output (e.g. w/o ~/.pgp) (#3720)
1187         - avoid numeric overflow in version comparison (Thayne Harbaugh<tharbaug@liberate.com>).
1188         - move url.c and ftp.c to rpmlib right next to query.
1189         - 12 more dead strtoks.
1190         - changelog stamp broken w/ big endian 64 bit time_t (Stephane Erania).
1191         - tru64: use /bin/sh not /usr/bin/ksh in find-requires.
1192         - 32Mb (~16x largest known) sanity check on header size.
1193
1194 3.0 -> 3.0.1
1195         - fix: %verifyscript resurrected (Shing-Gene Yung).
1196         - fix: % before non-alphabetic non-macro special now passed unscathed.
1197         - fix: noarch header gets initialized differently.
1198         - fix: $2 to triggerpostun scripts was wrong
1199         - fix: --querybypkg in man page should be --filesbypkg
1200         - fix: optflags not implicitly set to canonical arch value.
1201         - fix: prefer pgp2.6.3 over pgp5 if both are installed.
1202         - make sure that rpm-the-package auto-requires glibc.
1203         - add rpmputtext/rpmgettext to rpm package.
1204         - fix: non-apache servers need "GET ... HTTP/1.0" by the book.
1205         - fix: %doc wrongly inherits lang from last entry in %files.
1206         - resurrect toplevel tar target.
1207         - spec file removal separate from source removal (Shing-Gene Yung).
1208         - add rpm prefix to MD5 routines to avoid name conflict on solaris.
1209         - fix: resurrect -Vp, -Vf and -Vg functionality.
1210         - colesce query and verify modes.
1211         - better cpio error message if package contains missing hard links.
1212         - fix: shared file not skipped when removed.
1213         - fix: conversion script left off leading underscores.
1214         - another strtok bites the dust.
1215         - fix: prevent return code wrap during packagage checking/resigning.
1216         - permit multiple %lang(xx) markers on elements in %files.
1217         - permit %lang(xx,yy,zz) constructs --  2 more dead strtoks.
1218         - fix: --prefix should work properly during package installs.
1219         - add librpmbuild.a to the file list.
1220
1221 2.94 -> 2.95
1222         - fix: last update transaction set segfault bug in installer.
1223         - improved checks for statfs (Tim Mooney).
1224         - remove inconsistent use of __P((...)) throughout.
1225         - non-static inline functions caused IRIX cc pain.
1226         - CPIOERR_CHECK_ERRNO masking caused AIX cc warnings.
1227         - solaris 2.6+ needs statvfs.
1228         - check build prerequisites before building from specfile.
1229         - convert per-system configuration in /etc/rpmrc to macros.
1230
1231 2.93 -> 2.94
1232         - fix: segfault while parsing target string.
1233         - fix: os was not initialized with "--target i586".
1234         - fix: --prefix resurrected.
1235         - non-linux, non-gcc portability fixes (Tim Mooney).
1236         - default to static libs only (remove implied support for shared libs).
1237
1238 2.92 -> 2.93
1239         - eliminate old rpmrc configuration syntax.
1240         - pgp5 support (Carlo Wood <carlo@runaway.xs4all.nl>)
1241         - fix: segfault from double close on ftpGetFileDesc->ftpAbort path.
1242         - fix: don't add header if signature generation failed (Carlo Wood).
1243         - more DU 4.0D fiddles (Shing-Gene Yung).
1244         - fix: segfault from unknown uid/gid -- use builder's uid/gid instead.
1245         - autoReq/autoProv now per-package.
1246         - fix: avoid segfault using --prefix until ewt fixes.
1247         - add --define "%foo %bar" option.
1248         - dump macros to same fd as --showrc uses.
1249         - add %GNUconfigure for full-blown package regeneration.
1250         - fix: RPM_ARCH/RPM_OS had wrong values.
1251         - fix: create ppc directories correctly.
1252         - (re-)enable fixowner/fixgroup macros.
1253         - fix: specfile BuildRoot was masking rpmrc macro.
1254         - expand twiddles in macrofiles list.
1255         - add explicit macrofiles path to rpmrc.
1256         - add per-target macrofiles to search path.
1257         - take globalMacroContext out of macro api.
1258         - fix: flush all macros between builds.
1259         - add name/version/release macros during src.rpm install.
1260         - attempt mkdir sourcedir/specdir during src.rpm install.
1261
1262 2.91 -> 2.92
1263         - update with libtool-2.4f.
1264         - DU 4.0D fiddles (Shing-Gene Yung<shing@cz3.nus.edu.sg>)
1265         - change support@redhat.com to rpm-list@redhat.com.
1266         - fix: with --target=i686, pass macro %_arch=i386.
1267         - fix: rpm --target=arch ... resurrected.
1268         - fix: rpm -q --specfile --specedit now works even with BuildArch:.
1269         - fix: nested strtok's is a no-no.
1270         - added disk space checking
1271
1272 2.90 -> 2.91
1273         - fix: memory leaks in rpmRunTransactions plugged.
1274         - fix: build of packages w/o BuildRoot segfault.
1275         - permit substitution of I18N strings from PO meta-catalogues.
1276         - add callbacks for installer updates while doing URL xfers.
1277         - resurrect http queries/verifies.
1278         - create rpmbzio.c to avoid implicit dependence on libbz2 for installer.
1279         - spec files can provide /filename now
1280         - added rpmdbOpenForTraversal()
1281         - proxy http (Alex deVries).
1282         - add BuildPrereq: in spec file and src rpm.
1283         - added rpmtransSetScriptFd()
1284         - fixed config file problems during chroot upgrades
1285         - fixed %attr brokenness for directories
1286         - augment linux provides/requires for glibc 2.1 backward compatibility.
1287         - fixed --noscript, --notriggers, --excludedocs, and a bunch
1288           of other install/remove flags
1289         - fixed noreplace handling
1290         - complain about old packages being installed
1291
1292 2.5.x -> 2.90
1293         - added --excludepath
1294         - identify missing keys by type (Toshio Kuratomi).
1295         - package install/removal much smarter about symlinks
1296         - redid install/remove API to allow transaction semantics
1297         - support for GPG (Toshio Kuratomi <badger@prtr-13.ucsc.edu>)
1298         - file lookup finally sane wrt symbolic links :-)
1299         - fileindex format changed -- rebuilddb is necessary for rpm 2.90!!
1300         - --rebuilddb doesn't open old index files
1301         - permit http:// and file:// url's as well as ftp://.
1302         - change --rcfile to permit colon separated file list.
1303         - compile in defaults from rpmrc/macros.
1304         - finish hiding rpmdb index record data ("matches").
1305         - implement abstract fd type almost everywhere.
1306         - update and rename Czech (Pavel Makovec <pavelm@terminal.cz>)
1307         - augment --showrc with -v, only display set variables without -v.
1308         - add macrofiles variable, permit second entry to initMacros().
1309         - add config.h defines for paths to find-requires et. al.
1310         - add readRPM to libbuild, headerGetLangs to librpm.
1311         - permit rpm to be built in a sub-directory (--srcdir=DIR).
1312         - configure using automake.
1313         - arch/os (and platform) should be case insensitive everywhere forever.
1314         - attempt to deal rationally with os as "Linux" or "linux".
1315         - add generalized expression handler (Tom Dyas<tdyas@remus.rutgers.edu>)
1316         - use /usr/lib/rpm/mkinstalldirs if mkdir -p fails.
1317         - more portable dirent handling (Hermann Lauer).
1318         - add Slovak translation (Stanislav Meduna <stano@trillian.eunet.sk>)
1319         - gettextify rpmMessage/rpmError/fprintf messages.
1320         - update po files; add cz to catalogs.
1321         - cpio_gzip: dup the fd before doing gzdopen (Thanks Erik!)
1322         - add --noLang to skip non-default languages.
1323         - writeRPM can now copy cpio archive from fd.
1324         - preliminary macro environment as side effect of rpmrc parse.
1325         - macro handling in rpmlib -- rework include: tag with macro expansion.
1326         - first attempt at librpmbuild API.
1327         - fixed lib/rpmrc.c to accept include: tags (AdV)
1328         - fixed the CHANGES file to reflect that this is 2.9, not 3.0 (AdV)
1329         - aggregate system includes into system.h.
1330         - rearrange functions to minimize exported routines in librpmbuild API.
1331         - generalize cpio I/O to eliminate pipe to exec'd gzip on install.
1332         - add {init,add,expand}Macro args everywhere (new macro.c compatibility)
1333         - add new fully recursive macro.c
1334         - there must be a { between two % in a query format (unless %% is used)
1335
1336 2.5.6 -> 2.5.7:
1337         - permit 0x1b in specfile sanity check.
1338         - increase timeout in tread from 5 to 30 secs for slow links.
1339         - rename file before unlinking to avoid EBUSY failures.
1340         - headerGetEntry now returns count=0 if tag not found (Chris Blizzard).
1341         - resurrect osf1 as canonical os name (Time Mooney).
1342         - sub-packages should inheirit Prefixes tag (Ian Mortimer).
1343         - make '-' character illegal (again) in version/release.
1344         - use portable #!/bin/sh (Tim Mooney).
1345         - don't erase failing build script (Tim Mooney).
1346         - use portable mkinstalldirs (Tim Mooney).
1347         - irix6 autodeps were dup'd (Shing-Gene Yung <shing@cz3.nus.edu.sg>).
1348         - getservbyname needed ntohs().
1349         - propagate "const char *" into rpmlib prototypes.
1350         - use "original db-1.85" if available (Raw Hide glibc 2.1).
1351         - make sure files to sign exist before asking for the pass phrase
1352
1353 2.5.5 -> 2.5.6:
1354         - ultrapenguin 1.1.9 sparc64 changes.
1355         - attempt ftp ABOR on query/verify url's.
1356         - cache open ftp control descriptor with password.
1357         - verify needed same realpath semantics as query.
1358         - plug fd leak in urlGetFile().
1359         - translate cpio errors using cpioStrerror.
1360         - display "..?....." rather than "..5....." for unreadable files.
1361         - run time (rather than compile time) host endian check.
1362         - caldera patches (ray@Caldera.DE)
1363         - added ARM patches.
1364         - fix incorrect directory permissions using %attr/%defattr.
1365         - permit "rpm -q --specfile ... file.spec" queries.
1366         - strncasecmp on spec file separators (KDE has %Description).
1367         - remove redundant md5 computation on uninstall.
1368         - permit --rmsource --force even if sources/patches are missing.
1369         - don't compute md5sum on non-file %config objects. (from Jos Vos)
1370         - check arch only on RPMBUILD_{PREP,BUILD,INSTALL,PACKAGEBINARY}.
1371         - configure.in: set default value for RPM. (Tim Mooney)
1372         - add new Epoch: keyword just like Serial:.
1373         - update Russian translation w man pages.
1374         - solaris: don't attempt static link. (Tim Mooney)
1375         - fix: timeCheck in rpm.c should be unsigned long. (Tim Mooney)
1376         - osf: prov searches only shared libraries. (Tim Mooney)
1377         - solaris: set PATH in prov/req scripts. (Tim Mooney)
1378         - fix: ignore modes on symlinks. (Tim Mooney)
1379         - sub-packages inherit RPMTAG_EPOCH (just like RPMTAG_VERSION/RELEASE).
1380         - fix off-by-1 alloca that prevented relocating /.
1381         - there must be a { between two % in a query format (unless %% is
1382           used).
1383
1384 2.5.4 -> 2.5.5:
1385         - permit rpm to be built in a sub-directory (--srcdir=DIR).
1386         - return CPIO_BAD_HEADER instead of exiting. (Scott M. Stone)
1387         - untranslate "(none)" for auto relocating script wrappers.
1388         - non-linux arch/os identification (Eugene Kanter).
1389         - portable mode_t/pid_t typedefs.
1390         - fix check for trailing / in Prefix:
1391         - remove 2 character language name assumption.
1392         - add /usr/lib/rpm/find-lang.sh (W. L. Estes <wlestes@uncg.edu>)
1393         - miscellaneous portability cruft (Eugene Kanter).
1394         - Makefile: don't use ln -sf.
1395         - getOutputFrom(): fix race between last read on pipe and child death
1396           (exacerbated in 2.5.4).
1397         - rpm.spec: create /usr/src/redhat/* in %install.
1398
1399 2.5.3 -> 2.5.4:
1400         - expand args using popt on pre-rpmReadConfigFiles arg pass.
1401         - skip arch checks if only packaging source rpm.
1402         - add license field to rpmpopt -qi alias.
1403         - provides/obsoletes requires tokens that begin with alnum or _.
1404         - non-zero exit status for verify failures.
1405         - hpux does setreuid differently (Hermann Lauer).
1406         - check for setreuid portably (Eugene Kanter).
1407         - add Serbian translation (Zoltan Csala <zcsala@iname.com>).
1408         - arch/os tables were not being initialized  for noarch builds.
1409         - quote users/groups/filenames in --setugids.
1410         - add Russian translation w man pages (Serguei Koubouchine <ksi@gu.net>)
1411         - fix virtual file attribute bug that skipped all files in binary rpm.
1412         - eliminate infinite loop with missing tmpdir (Trent Jarvi).
1413         - os_canon for CYGWIN32_NT/95.
1414         - rationalize autoconf detection of gzip/bzip2.
1415         - restore backward compatible rpmrc/rpmpopt symlinks.
1416         - update pt_BR translations (Arnaldo Carvalho de Melo).
1417         - permit --{buildroot,timecheck,test,sign} with -tX (Toshio Kuratomi).
1418         - fix database rebuilds with triggers (Steve Sanberg).
1419         - diagnostic message if unreadable/short source or patch file.
1420         - eliminate redundant close in provide/require processing.
1421         - solaris portability patch resurrection (Steve Sanberg).
1422         - permit autogen.sh to work on non "prefix=/usr" hosts.
1423         - add %license/%readme virtual file attributes.
1424         - align "Build Host:" with other fields.
1425
1426 2.5.2 -> 2.5.3:
1427         - copy changelog tags to sub-packages just before packaging.
1428         - added EPOCH handling to supplement serial numbers
1429         - add RPMTAG_EPOCH and RPMTAG_CAPABILITY init to 0.
1430         - fix infinite recursion on non-ERANGE return from getcwd() during
1431           install (Matt Wilson).
1432         - rm .depend for multiple builds in same tree (Will Partain)
1433         - addFile: fix special case of "/" in %files.
1434         - better query semantics with symlinks (Tim Mooney)
1435         - build.c: fix incorrect check for successful open
1436         - allow %define with leading whitespace
1437         - use /usr/lib/rpm for rpmpopt, rpmrc, find-requires, find-provides
1438         - added popt 'exec' functionality
1439         - made --rebuilddb a bit more robust by checking data types
1440         - added --freshen via popt exec stuff
1441         - fixed spelling of expected
1442         - updated de.po (Karl Eichwalder)
1443         - do a better job of checking for a spec file in tarballs
1444           (Pavel Roskin)
1445         - fixed --triggers alias (Michael Andres)
1446         - added :hex query format
1447         - fixed --querytags to display virtual tags
1448 ?????   - added --triggers and --triggered by to man page, help, and usage
1449 ?????   - added support for epochs
1450
1451 2.5.1 -> 2.5.2:
1452         - added -bs to build just a source package
1453         - included irix.req and irix.prov (Tim Mooney)
1454         - copy CHANGELOG* and URL tags to all subpackages
1455         - follow symlinks when packaging sources
1456         - handle %files -f with no %setup (no build directory)
1457         - fixed ugly i18n header bug
1458         - deal with lang paths sanely when entries are missing languages
1459         - fix bug packing /usr/doc when last file was %dir
1460         - added --last alias
1461         - fix :depflags query format
1462         - Group: i18n (like Summary:)
1463         - make --justdb install files in normal state
1464         - %{fssizes} segv'd for packages with empty file lists
1465         - updated HP-UX, OSF1, Irix 6.x dependency scripts (Tim Mooney)
1466         - added arm and MachTen arch/os info
1467         - added --filesbypkg query format
1468         - updated README to have proper URLs
1469         - updated rpm.spec for proper paths and cleanliness
1470         - dependency resolution could hang when Provides: line is used in
1471           rpmrc (Tim Mooney)
1472         - updated mips rpmrc entries (Alex deVries)
1473         - version/release conditional triggers weren't ignoring the trigger     
1474           package name at the front of the TRIGGERVERSION
1475         - added --notriggers for -i and -e
1476         - made --triggers a synonym for --triggerscripts
1477         - ftp installs were trying to use /var/tmp/tmp
1478         - allow whitespace in source/patch lines
1479         
1480 2.5 -> 2.5.1:
1481         - fail if sources are not regular files
1482         - wasn't catching readLine() errors
1483         - fixed (hopefully) temp file creation problems
1484         - make %doc obey --test
1485         - unlink before writing .rpms
1486         - librpm.c: added headerGzRead()/headerGzWrite()
1487         - set bzip2path via lib-rpmrc/configure (Toshio Kuratomi)
1488         - added finish translation (Raimo Koski)
1489         - prefer db_185.h to db.h (Christopher Seawood)
1490         - included updated hpux.req (Ralph Goers)
1491         - added aix.req (Ralph Goers)
1492         - updated hpux.prov, osf.req, osf.prov (Tim Mooney)
1493         - set file states for --justdb packages to "not installed"
1494         - handle missing file states properly in -e code
1495         - install time wasn missing for --justdb packages
1496         - missing parameter in an rpmError() caused segfault
1497
1498 2.4.109 -> 2.5:
1499         - fixed return code bug in build code
1500         - do macro expansion before %if processing
1501         - dep ordering returns w/ an error as soon as a prereq loop is found
1502         - autoreqprov flag was being ignored during builds
1503         - add autoreq: and autoprov:
1504         - missed a few unlink() when scripts failed
1505         - freePrefixes wasn't initialized in runScript()
1506         - fix typo in %triggerpostun generation
1507         - include icons in source packages
1508         - headerGetEntry() should return count of 1 when returning
1509           strings plucked from i18n strings
1510         - do not remove comments in scripts
1511         - save/restore existing arch when done with buildarch
1512         - copy the I18N table to the source header so i18n stuff works
1513         - fixed multiple memory leaks in install code
1514         - fixed bug in part recognition
1515         - shared files weren't being handled properly in net shared paths
1516
1517 2.4.108 -> 2.4.109:
1518         - remove icons with --rmsource
1519         - do dependecy generation on -bl
1520         - check files on all packages on -bl
1521         - integrate Jeff Johnson's memleak patches
1522         - added OSF1 autodep scripts
1523
1524 2.4.107 -> 2.4.108:
1525         - make --clean work with no %setup
1526         - fixed FSSIZES problem introduced in 2.4.107
1527         - fixed search for find-requires.sh
1528         - improved solaris autodeps scripts
1529         - automated (somewhat) the -static flag
1530
1531 2.4.106 -> 2.4.107:
1532         - --nomd5 wasn't handled properly
1533         - updated configure.in find-req and find-prov checks (Tim Mooney)
1534         - make --rmsource actually work
1535         - run postun triggers
1536
1537 2.4.105 -> 2.4.106:
1538         - build: only check for non-printables in first 128 chars
1539         - added %triggerpostun
1540         - linux.req generates deps for shared libs
1541         - added a CC=@CC@ to popt/Makefile.in
1542         - handle signed return types from poptGetNextOpt() properly
1543
1544 2.4.104 -> 2.4.105:
1545         - added langpatt: to rpmrc, and mark files with matches
1546         - added some C++ cruft to rpmlib.h
1547         - added find-requires and find-provides for hpux (Tim Mooney)
1548         - respect LINGUAS when install package files
1549         - added trigger support to build code
1550         - got rid of annoying mwftw() type warning
1551         - fixed many command line options which got broke by changes
1552           for non-gcc compilers
1553         - added trigger support in install code
1554         - added doc/triggers
1555         - strntoul() in lib/cpio.c was returning a pointer to freed
1556           memory
1557         - headerAppend() was doing a bad memcpy()
1558
1559 2.4.103 -> 2.4.104:
1560         - fixed popt/Makefile.in to use CPP from configure
1561         - use tmppath from rpmrc to for ftp'd files (rather then /var/tmp)
1562         - autoconf files and .depend files weren't created properly during
1563           make archive
1564
1565 2.4.102 -> 2.4.103:
1566         - need to create popt/configure during make archive
1567         - added comments about modifictation to base popt and rpmrc files
1568         - allow spaces in group names
1569         - fix bug in memory allocation of special doc stuff
1570         - Jeff Johnson's mode/dev fixes
1571         - clean up buildroot
1572         - be more paranoid about making temp files
1573         - added patches from Tim Mooney which let RPM build with non-gcc
1574           compilers and non-GNU versions of make
1575
1576 2.4.101 -> 2.4.102:
1577         - fixed spelling of "instchangelog" in lib-rpmrc.in
1578         - fixed memory leak in headerSprintf() extension cache
1579         - fixed memory allocation for header formatting extension cache
1580         - added support for INSTPREFIX virtual tag for backwards compatibility
1581         - cpio error codes were poorly defined, causing bad error messages
1582         - generates INSTPREFIXES tag properly, and sets RPM_INSTALL_PREFIX
1583           and RPM_INSTALL_PREFIXn environment variables
1584         - fixed memory leak in install code which occured when net shared paths
1585           were used
1586         - don't pass net shared path to rpmInstallPackage() -- it looks 
1587           directly in the rpmrc entries
1588         - don't remove files in netsharedpath, even for files whose states
1589           are not net shared
1590         - changed --setugids to use separate chown and chgrp programs, for
1591           better portability
1592         - popt moved to autoconf
1593         - Makefiles changed to allow building in a different directory then
1594           the source code resides in
1595         - finally fixed the Build Host spacing in rpmpopt
1596
1597 2.4.100 -> 2.4.101:
1598         - handle files with spaces (put double quotes around them)
1599         - new rpmrc setting, buildshell, can be used to set shell
1600           used for build scripts (default is /bin/sh)
1601         - fix bug where macros were being improperly set for
1602           Patch: and Source: lines
1603         - may use "instchangelog" in rpmrc to limit the maxmium number of 
1604           changelog entries that are stored in the database for each package
1605           (-1 means store all of them)
1606         - default instchangelog is set to 5
1607         - headerRemoveEntry() didn't free the item's data -- this led to
1608           a slight memory leak when installing packages
1609         - implemented generic file relocations at install time
1610           (use --relocate <oldpath>=<newpath>, i.e. --relocate /usr=/foo)
1611         - added --badreloc flag to force RPM to relocate files which packages
1612           haven't advertised as relocateable
1613         - fix return code on failed uncompresses in %prep
1614         - preliminary handling of bzip2 compressed files
1615         - differentiates between big and little endian mips
1616         - added support for "prefixes:" tag
1617
1618 2.4.99 -> 2.4.100:
1619         - fixed handling of --rebuild and --recompile
1620         - fixed rpmlibbuild.a typo in Makefile
1621         - fixed handling of '\' in spec files (a specific case of a more
1622           general bug)
1623         - change use of "export" to work with non-bash shells
1624         - compress the archives.  oops.
1625         - fixed bug when there is no %setup
1626         - added -L$(topdir)/popt to Makefile.inc
1627
1628 2.4.12 -> 2.4.99:
1629         - added many more i18n strings
1630         - merged in large rewrite of build code, which includes the following
1631           changes:
1632             - new option --rmsource
1633             - all scripts can now take -p <prog>
1634             - more strict about %package placement and use of main package 
1635               preamble
1636             - %attr(mode, user, group [, dirmode])
1637             - %defattr()
1638             - %defverify()
1639             - Root: is depricated.  Use BuildRoot: instead
1640             - "nosrc" sources arn't deleted when sources are removed
1641             - New tag DocDir: <dir> to set alternate doc dir (default is 
1642               /usr/doc)
1643             - %doc should work as expected with buildroot, prefix, DocDir:
1644             - all file processing is done before any packaging
1645             - should work with modern patch programs (later than 2.1)
1646             - %patch -z <arg> same as %patch -b <arg>
1647             - %define only defines a macro if it starts a line
1648             - script prog entries are now arrays (ie with arguments)
1649             - standard macros: tag names, buildarch, buildos, buildarch_lc, 
1650               buildos_lc, PATCHn, SOURCEn, PATCHURLn, SOURCEURLn, sourcedir, 
1651               builddir, optflags
1652             - deprecate require_distribution, require_icon, require_vendor
1653             - add RPMTAG_FILEDEVICES and RPMTAG_FILEINODES to header
1654             - export variables in scripts
1655             - fixed tag:field bug
1656             - %lang() in %files
1657             - %description -l <lang>
1658             - Summary(<lang>):
1659             - fixed read_line() termination usage
1660         - Makefile changes to shorten compiler lines
1661
1662 2.4.11 -> 2.4.12:
1663         - intialize reserved portion of lead when writing packages
1664         - fixed error messages displayed when opening the database
1665           fails during package installation and removal
1666         - query format of the form '[A%{}]' would drop the static string
1667         - fixed fix in 2.4.9 for empty packages which broke -qip on ftp URL's
1668         - fixed arch/os numbers in lead
1669         - added Turkish message catalog
1670         - -e was running scripts even w/ --test was specified
1671
1672 2.4.10 -> 2.4.11:
1673         - HAVE_SYS_SOCKET_H was mistakingly MACHINE_SYS_SOCKET_H in
1674           config.h.in
1675         - \%description was trying to do %d expansion in query formats
1676         - made %% work in query formats
1677         - fixed bug in handling characters before array
1678         - let mips build noarch packages
1679         - --setperms would set wrong permissions in some cases (it was
1680           following symlinks)
1681
1682 2.4.9 -> 2.4.10:
1683         - obsolete entries could cause segv's during upgrades
1684         - sources now installed with uid/gid of process rather then
1685           the ids used when the src rpm was created
1686         - don't give an error if missingok files don't exist during remove
1687         - touched ftp code to make it coexist w/ Red Hat install better
1688         - use rand/srand rather then random/srandom
1689         - don't build misc directory unless it's necessary
1690         - empty package files should be treated the same as files
1691           with bad magic, not as read errors
1692         - fix bug where Prefix directory is included in file list
1693         - sinix readdir() work-around
1694
1695 2.4.8 -> 2.4.9:
1696         - fix for verification on systems where a single group id
1697           maps to mulitiple group names (Benedict Lofstedt)
1698         - added 'make tar' rule for building a distribution tarball
1699           (Horacio Rodriguez Montero)
1700         - fixed serial number handling in dependencies and install
1701           code
1702         - make mips compatible with noarch
1703         - fixed bug w/ printing string arrays in conditionals
1704         - handle modern patch programs (> 2.1)
1705         - handle packages w/ duplicate dependency names
1706         - --noscripts didn't get handled properly for removed packages
1707         - fixed handling of packages where %prereq creates users/groups
1708
1709 2.4.7 -> 2.4.8:
1710         - added noarch build compatibilities for ppc, m68k
1711         - fixed some minor typos (Florian La Roche)
1712         - added Obsoletes: tag, an upgrade removes packages which
1713           have been obsoleted
1714         - updated rpmdepUpgradePackage() to deal with obsoletes tag
1715         - convertdb needed to read rpmrc
1716         - fixed ugly bug in package ordering
1717         - archivesize tag was incorrect for packages with hard links
1718         - moved popt into a separate library
1719         - directory created with %doc is now name-version (dropped
1720           the release)
1721         - added buildarch/buildos macros
1722         - added %ghost file option
1723         - updated linux.req to only find requirements for exectuable files
1724
1725 2.4.6 -> 2.4.7:
1726         - had some wrong month lengths in changelog date parsing
1727         - updated fine-requires (Linux version) to add lines for shell
1728           scripts (Donnie Barnes)
1729         - didn't package / properly
1730         - pre/post script processing had some erroneous free() calls
1731         - fixed typos for HP archs in lib/rpmrc.c
1732         - uname() results should go through *_canon tables before anything
1733           else happens
1734         - set -x in debug shells, not -xs
1735
1736 2.4.5 -> 2.4.6:
1737         - added os_canon entries for BSD/OS and NextStep
1738         - replaced include of <malloc.h> with includes of <stdlib.h>
1739         - fixed md5sum of source packages w/ a buildroot is used
1740         - fixed bugs installing version 1 packages
1741         - remove hyphens from uname() result (specifically for HP-UX)
1742         - hacks to recognize architecture under parisc
1743         - RPM_INSTALL_PREFIX wasn't being set properly (this should be
1744           fixed now)
1745         - replaced temporary file creation to be race-condition safe
1746         - prerequisites may not specify versions
1747
1748 2.4.4 -> 2.4.5:
1749         - call getpwnam()/endpwent() once before a chroot(), forcing name 
1750           service shared libs to be loaded from outside of the root path
1751         - added vesrion stamp to lib/misc.o (and librpm.a by extension)
1752         - fixed config.sub, config.guess to recognize i686
1753         - ARCHIVESIZE tag didn't get filled in properly, breaking progress
1754           meters
1755
1756 2.4.3 -> 2.4.4:
1757         - restore working directory after installing a package w/ a chroot
1758         - dump the package stack when a dependency loop is encountered
1759         - when a user/group lookup fails, end*ent() and retry 
1760         - fixed broken --scripts argument (it was --s2)
1761         - only display the packager and url in -qi output if they have defined
1762           values
1763         - print "(not installed)" as the install time for -p queries rather
1764           then "not a number"
1765         - almost completely rewrote rcfile parsing; I'm sure this will
1766           break things eventually but it's much more flexible now
1767         - added buildarch/buildos compatibility tables, listed values
1768           in --showrc
1769         - added cpio archive building code; GNU cpio is no longer used!
1770           packages created w/ rpm 2.4.4 and later cannot be installed with
1771           rpm 2.4 - rpm 2.4.3 however (version of RPM before 2.4 will 
1772           work fine, however). An "error -2 reading header" happens when
1773           this is attempted
1774         - removed cpiobin from rpmrc
1775         - added rpmrc "provides" tag to allow easy fulfillment of 
1776           automatically generated dependencies
1777         - look for random() in libm if it can't be found be default
1778         - fixed problems in Solaris's autodeps stuff (Eric Mumpower)
1779         - --setperms should work properly on directories now
1780         - --justdb on install, upgrade, and erasure causes a database
1781           update w/o the filesystem being touched
1782         - fixed version comparison of a package w/ a serial tag against
1783           a package w/o one
1784         - added BuildArchitectures: tag to spec file to enable builds
1785           for alternate/multiple architectures
1786         - look for random() in -lucb
1787         - changed the licensing terms for librpm to allow redistribution
1788           under the LGPL
1789         - applied man page changes from Alex deVries
1790         - configure.in builds up LIBS by appending (Benedict Lofstedt)
1791         - rpm2cpio reported wrong zlib error string
1792         - removed \n from (none) generated by query format code
1793         - queries of fssizes w/o fsnames didn't work (Till Bubeck)
1794         - added --noorder option to skip package reordering (Elliot Lee)
1795
1796 2.4.2 -> 2.4.3:
1797         - implemented install time prerequisites
1798         - repaired %{#TAG} query format
1799         - implemented ternary operator as query expression
1800         - fixed --scripts to only print information on scripts which
1801           are present
1802         - check symlink() return for < 0, not != 0 (Bob Tanner)
1803         - uses chroot() for installs --root option
1804         - archive expansion doesn't create new devices or symlinks when
1805           the proper files already exist
1806         - added -p to %post (etc) to specify the program which a script
1807           is run through
1808         - if -p is used w/ an empty script, the specified program is
1809           executed directly 
1810         - the -p argument (or /bin/sh) is automaticall added as a prereq
1811
1812 2.4.1 -> 2.4.2:
1813         - completely rewrote queryformat code
1814         - added fsnames, fssizes virtual query tags
1815         - added rpmdbFindByHeader() and rpmdbFindByTag() public functions
1816         - added rpmfilename tag to rpmrc to define the filename format to
1817           use for binary packages (note the rpmdir is prepended to it)
1818         - used pclose() instead of fclose() in -t code
1819         - updated man pages
1820         - changed "struct rpmdb" to "struct rpmdb_s" for C++
1821         - netsharedpath entries shouldn't match partial directory names
1822           anymore (a nersharedpath of /usr/lib shouldn't affect /usr/libexec)
1823         - don't backup config files on netsharedpaths (take 2)
1824         - added "day" query format which is like date, but doesn't print
1825           any time
1826         - added --changelog alias to query a packages changelog entry
1827         - added mntctl() support for AIX (I think, I can't test this)
1828         - fflags query type displays 's' for specfiles, 'm' for missingok
1829           files, and 'n' for noreplace files
1830         - implemented %config(missingok) flag in install
1831         - added --allfiles flag for -i and -U, which forces all files (even
1832           missingok files) to be installed
1833         - implemented %config(noreplace) for the install, but it hasn't
1834           been tested in any way
1835         - added i18n support to headers
1836         - added ppc/rs6000 differntiation for AIX
1837         - all IP* from uname() is changed to just IP
1838         - IP is considered the same as mips (not sgi)
1839         - added IRIX64 OS, it's compatible w/ IRIX
1840
1841 2.4 -> 2.4.1:
1842         - take advantage of lchown() if it's available
1843         - fixed configure script to assume chown() doesn't follow symlinks
1844           if lchown() isn't available and configure is not being run as root
1845         - more header file changes for AIX
1846         - added :shescape query format type for strings, which prints strings
1847           which will survive a single level of shell expansion
1848         - fixed --setperms and --setugids to handle empty packages and 
1849           packages with odd filenames
1850         - include <sys/time.h> before <sys/resource.h>
1851         - include "miscfn.h" first in every file which needs it
1852         - created noarch architecture which everything is compatible with
1853         - fixed group verification (Benedict Lofstedt)
1854         - don't backup config files on netsharedpaths
1855         - added info on --build{arch|os} to --help and usage messages
1856
1857 2.3.11 -> 2.4:
1858         - changed RPMNLSDIR directories to and @datadir@ to better
1859           conform with autoconf
1860         - set RPM_INSTALL_PREFIX environment variable when running 
1861           verify scripts
1862         - beginnings of SCO support (though I suspect it will take one
1863           or two more iterations to get it right)
1864         - switched to CVS and updated some Makefile rules
1865         - look for gethostbyname() instead of gethostname() in -nsl
1866           (this could break some things)
1867         - added check for strcasecmp() in -lucb on systems which don't
1868           have strcasecmp() in libc
1869         - don't build -static on hpux10
1870         - don't try and NLS empty strings
1871         - changed index() call to strchr() in macro code
1872         - include <time.h> in build/spec.c for various platforms
1873         - added update-po rule to po/Makefile.in
1874         - updated de.po (thanks to Karl Eichwalder)
1875         - rpmFindByFile() removes trailing and duplicate /'s
1876         - made many string in rpm program (though not yet in the various
1877           libraries) translatable
1878         - eight character user names could break -qlv
1879         - requirements which begin with a leading / require files (in
1880           the database!) instead of packages
1881         - clean up conflictsindex during --rebuilddb
1882         - get path to gzip from /usr/lib/rpmrc rather then just hoping it's 
1883           in the path
1884         - use dbpath for error messages with include database path in 
1885           their text
1886         - don't set owner/group if binaries installed by "make install"
1887         - include <strings.h> on SCO
1888         - don't use cpio when installing packages <gulp>
1889         - fixed bug which affected dependencies on the Alpha
1890         - made '=' work for long arguments (the switch to popt broke this)
1891         - handle solaris systems better
1892         - complain if critical rpmrc variables (cpiobin, gzipbin, etc) aren't
1893           set anywhere
1894         - allow --dbpath for --rebuilddb
1895         - added check for systems whose chown() follows symlinks. If configure
1896           is run as root, this should get it right, otherwise it assumes
1897           chown() does not follow symlinks. You can use --enable-broken-chown
1898           to force configure to think chown does indeed follow symlinks.
1899         - if chown() follows symlinks, we don't chown() symlinks during cpio
1900           unpacking and we don't verify the owner or group of symlinks
1901         - added packager and url to default -qi output
1902         - look for <sys/select.h> and use it if it's there (for AIX)
1903
1904 2.3.10 -> 2.3.11:
1905         - fixed newlines in --scripts output
1906         - fix handling of source files with bad owners/groups
1907
1908 2.3.9 -> 2.3.10:
1909         - --allmatches handling in -e broke some cases
1910         - new predefined macros: %SOURCEn %PATCHn %SOURCEURLn %PATCHURLn
1911         - fix anomoly with %files -f <file> and %doc
1912         - ignore config bit when it's set on directories (which allows
1913           users to replace directories with symlinks)
1914         - don't set config bit on directories
1915         - strip trailing slashes from files (during build)
1916         - %tags are now case sensitive (macros too)
1917
1918 2.3.8 -> 2.3.9:
1919         - reworked %setup to allow multiple -a and -b options, which
1920           should noticeably ease the task of unapcking multiple tar files
1921         - md5 sum's were calculated incorrectly on big endian machines
1922           from 2.3.2 through 2.3.8 -- this was fixed and some hacks were
1923           done to keep verification working
1924         - updated README
1925         - added --allmatches to allow erasing multiple versions/releases
1926           of a package
1927         - changed ftp URL's to use \r\n, not just \n (this should let RPM
1928           work w/ some picky (but rfc compliant) ftp servers
1929         - fix problem where parts at end of spec file were dropped
1930         - added %config(noreplace missingok) (build-side)
1931         - simple spec file macros
1932         - should now process entire file list before failing
1933         
1934 2.3.7 -> 2.3.8:
1935         - added -t? options to build packages from tarballs which contain
1936           .spec files instead of from the .spec files directly
1937         - fixed error in man page where ftp URLs are discussed
1938         - don't strlen(NULL) in headerAddEntry()
1939         - minor portability changes
1940         - stopped building oldrpmdb.c as part of rpmlib
1941         - added Makefile rule for building rpmconvert (which is almost
1942           never needed) -- this isolated gdbm dependence to this target
1943         - fixed checking of popt stack overflow
1944         - --requires shouldn't imply -q
1945         - fixed error message issued when a groupname does not exist
1946         - fixed but in changelog processing which made it hang on '*' in a
1947           changelog entry
1948         - generate S_ISSOCK and S_ISLNK macros on systems w/o them
1949         - "rpm --erase" wasn't returning proper error codes w/ package
1950           removal failed
1951
1952 2.3.6 -> 2.3.7:
1953         - fixed nasty memory link in -Va
1954         - configure checks for -lnsl explicitly rather then linking it
1955           to -lsocket (for NCR SysVR4)
1956         - configure checks for dirent.h
1957         - modified glob.c to include config.h and use HAVE_DIRENT_H
1958         - cleanup of LIBS/LIBPATH mess a bit more
1959
1960 2.3.5 -> 2.3.6:
1961         - -Vf uses realpath() now
1962         - -Vp lets you use --ftpproxy, --ftpport
1963         - changed popt format, breaking all popt alises :-(
1964         - added ability to alias character arguments to popt 
1965         - moved --requires, --info to /usr/lib/rpmpopt
1966         - RPM is more forgiving of blank user names (dumb)
1967         - popt searches for aliases in the correct order now
1968         - cleanup query code to handle missing uid lists better
1969         - cleanup up configure.in a tad
1970
1971 2.3.4 -> 2.3.5:
1972         - %{#TAG} in query format prints the array length
1973         - cleanup up protoypes in rpmlib.h
1974         - let -Vp work on URLs
1975         - don't set umask(0) anymore -- that confused programs which
1976           link against rpmlib quite badly
1977         - moved print out in "rpm -v -i" to occur after any warnings
1978           to pretty up the output a bit
1979         - added default optflags for powerpc
1980         - run shell for post/pre scripts in debug mode with -sx for
1981           some silly shells
1982         - installing source packages with --root checked for the 
1983           sources/specs directory to exist outside of the root -- fixed
1984         - modified toplevel Makefile to run dependency generation only
1985           against referenced sources
1986         - array size mismatches in --qf should send error to stderr
1987         - tried to make the locale stuff a bit more portable (again)
1988         - reworked the owner/group setting on installs to be more generic
1989           (in preperation for getting rid of cpio)
1990         - made verify verify owner and groups by name rather then by id -- if
1991           the symbolic names aren't available use the uids
1992         - cleaned up relocateFilelist() and related code thanks to
1993           new header introduced in 2.3.3 -- this could break relocateable
1994           packages but they seem okay
1995         - fixed a bug which could cause relocateable packages to not get
1996           relocated -- I think this bit some people during hard drive
1997           installs of all things (Jason Salopek pestered me consistently
1998           enough to keep this on the front burner for me)
1999         - removed FILEUIDS and FILEGIDS from the header in the database --
2000           we never used it and it jsut wasted room
2001         - convert uid/gid lists in v1 headers to symbolic names 
2002
2003 2.3.3 -> 2.3.4:
2004         - %changelog processing
2005         - fixed broken requires/conflicts parsing for spec file
2006         - vastly improved --rebuilddb's robustness
2007         - fixed misplaced free() (only affected inconsistent databases)
2008         - added conflicts documentation to docs/dependencies
2009         - using multiple query formats has them all concatenated
2010         - removed stdin based query and verify selectors
2011         - installs rpmpopt in libdir
2012         - moved --provides and --scripts to rpmpopt
2013         - added --setperms, --setugids
2014         - incorporated newer de.po from Karsten Weiss
2015         - --resign/--addsign was broken in 2.3.3 from popt conversion
2016
2017 2.3.2 -> 2.3.3:
2018         - Ripped out header internals and redid them. Any compatibility 
2019           problems this causes are *bugs* as it should be completley 
2020           transparent. If this works the devil better buy some Prestone (TM).
2021         - Use "cp -pr" instead of "cp -ar" for %doc expansion
2022         - use <string.h> instead of (non standard) <strings.h> in some places
2023         - look for non-POSIX (broken) chmod
2024         - include local copies of glob/fnmatch
2025         - removed getopt() check from configure.in
2026         - fixed bug in ftp code which prevented proper logins to some sites
2027         - switched to popt from getopt, which allows command line aliasing
2028         - read initial aliases from /usr/lib/rpmpopt then /etc/popt and
2029           $HOME/.popt
2030         - cleanup up rdev verification (only verifies device files, checks
2031           device related mode bits as well)
2032         - fixed allocation of temporary paths (Eugene Kanter noticed this)
2033         - made tools/dumpdb read the rpmrc so it can find the database
2034         - added --nomd5 for -V and -K
2035         - don't assume mkdir -p will succeed if the dir exists
2036         - use RPMNLS* defines to avoid header file conflicts
2037         - bunch of minor cleanups to avoid warnings on other OS's
2038
2039 2.3.1 -> 2.3.2:
2040         - fixed bug in new rpmVersionCompare() which made it worse then
2041           useless (thanks to Norbert Kiesel)
2042         - fixed silly message
2043
2044 2.3 -> 2.3.1:
2045         - changed --help routing to have intelligent line wrapping
2046           to make i18n efforts easier
2047         - NLSDIR should be used for nls catalogs, not a hardcoded path
2048         - NLSDIR should be in share, not lib
2049         - renamed sweedish catalog from se to sv
2050         - added german catalog
2051         - treat RPM_CHAR_TYPE as RPM_INT8_TYPE for queries
2052         - made rpmEnsureOlder() internal to lib/install.c
2053         - added rpmVersionCompare() to compare version/release/serial numbers
2054           for packages -- returns like strcmp()
2055         - stdout/stderr were getting closed after running a verify script
2056         - relocting packages didn't work w/ the packages contained the
2057           directory which was it's prefix
2058
2059 2.2.11 -> 2.3:
2060         - replaced putenv/setenv which calls which malloc() buffer -- these
2061           are memory leaks, but the functions are only used between a fork()
2062           and exec() so it doesn't matter
2063         - created directroies are stamped with mtime from the file list
2064
2065 2.2.10 -> 2.2.11:
2066         - fixed some include file problems for FreeBSD
2067         - fixed find-provides script for Linux (silly typo)
2068         - -qvl didn't print out sticky bit
2069         - linux.prov won't print provides info for symlinks which point
2070           to libraries w/ proper sonames
2071
2072 2.2.9 -> 2.2.10:
2073         - changed how installArchive() handles running out of gzread()
2074           bytes while the child is still alive
2075         - changed tag for Alpha's to "alpha" from "axp" <gulp>
2076         - made ./configure look for --quiet support in cpio
2077         - netsharedPath's were having mkdir()'s done on them and had
2078           bad interactions with rooted directories
2079         - made -qp accept '-' to query the package on stdin
2080         - dependency checking was broken when no database was being used
2081         - don't *ever* let cpio make directories -- we do a better job
2082           (esp because we don't kill symlinks!)
2083         - plugged memory leaks in upgrade (again thanks to mpr) -- install,
2084           erase, upgrade, query, and verify all seem to be leakproof
2085         - use select() rather than busy waiting in cpio_gzip()
2086         - use half as much temp space during package assembly
2087         - fail if spec file check fails
2088         - changed canonical name for 68k to m68k (sorry)
2089         - integrated FreeBSD changes from Jared Mauch
2090         - integrated Irix changes from Hermann Lauer
2091         - i18n support can be disabled w/ configure by --disable-nls
2092           (thanks to Remy Card)
2093         - integrated more AmigaOS patches, played with configure some
2094           more to allow cross compiling (Kristof Depraetere)
2095         - cleanups to rpm2cpio (closing the gz stream) (Elliot Lee)
2096         - made find-provides return filename for libs w/ no soname
2097
2098 2.2.8 -> 2.2.9:
2099         - fixed typo in default rpmrc
2100         - made getBooleanVar() a bit better
2101         - added triggers to package builds
2102         - tagged spec file in source package file list
2103         - added %verifyscript (controlled by --noscript, -v flags)
2104         - changed pkgReadHeader() mechanism to be more generic
2105         - added find-provides for Solaris, made find-provides setup
2106           more generic (w/ configure.in picking the right one)
2107         - fix -Q
2108         - The Great Renaming
2109         - use external OS specific script to generate requires lines
2110           (should work with ld.so 1.8.x) (find-requries)
2111
2112 2.2.7 -> 2.2.8:
2113         - added --ftpproxy, --ftpport (and wrote about them in rpm.8)
2114         - added --nodeps to man page
2115         - added --showrc to man page
2116         - added conflict checking (use conflicts tag, which looks
2117           just like the requires tag)
2118         - fixed RPM's return code when package removal fails
2119         - cleaned up lib/install.c a bit for readability
2120         - plugged a bunch of memory leaks thanks to mpr -- install,
2121           uninstall, verify, and query all seem clean now
2122         - added support for trees shared over a network via netsharedpath
2123           in rpmrc
2124         - don't exit when there is an unknown option in an rpmrc, just
2125           give an error and continue
2126         - tried once again to get things working properly with 2.1's
2127           write behavior
2128         - added -E option for %patch
2129         - added UltraSPARC support to lib-rpmrc
2130         - moved default topdir and optflags settings to lib-rpmrc from 
2131           /etc/rpmrc
2132         - removed /etc/rpmrc from standard distribution
2133         - use separate chgrp/chown commands in %setup macro
2134         - kill(2) arguments were backwards in lib/install.c
2135         - fileFile logging needed stdio to handle NULL args to %s
2136         - default docdir (for %doc macro) set in lib-rpmrc rather then
2137           hardcoded
2138         - removed some of the \n from args to error() [though many are
2139           still left]
2140         - uninstall should fail if the preuninstall script fails
2141         - --root works with --initdb now
2142
2143 2.2.6 -> 2.2.7:
2144         - applied lots of portability patches
2145         - builds on Solaris machines now!
2146         - will build w/o i18n support if GNU gettext isn't installed
2147         - added inet_aton, setenv functions for libmisc
2148         - added Sun4c, Sun4m architectures
2149         - use vfork() if fork() doesn't exist (for AmigaOS)
2150         - look for GNU cpio, complain if it doesn't exist at build time
2151         - put path for GNU cpio in /usr/lib/librpmrc
2152         - install rpm.shared if rpm wasn't built (for Solaris)
2153         - readHeader() in librpm.a should work on sockets (which may
2154           return partial reads)
2155         - package file query (-q -p) accepts ftp:// style URL's
2156         - if gzread returns 0 bytes (at EOF), don't call write w/ 0 byte
2157           argument as it's behviour isn't portable
2158         - fixed -Vp behavior (doesn't seg fault w/ packages have dependencies)
2159
2160 2.2.5 -> 2.2.6:
2161         - added --rebuilddb to rebuild database, updated man page
2162         - fix fd leak in md5sum
2163         - fixed group cache bug
2164
2165 2.2.4 -> 2.2.5:
2166         - if rename() for moving .spec file from SOURCES to SPECS fails,
2167           try copying it instead
2168         - -h and -v work for source package >= V2
2169         - -h output is much smoother now
2170         - new AutoReqProv: tag in spec file can disable automatic
2171           require/provide generation
2172         - fixed md5sum problem on big endian machines in a way that's
2173           mostly backwards compatible; this hack will be removed someday
2174         - added :fflags tag
2175         - fixed a couple of minor memory leaks in lib/install.c
2176         - --test for building
2177
2178 2.2.3 -> 2.2.4:
2179         - only remove docdir if %doc occurs
2180         - allow -R to %patch
2181         - moved to use GNU autoconf, though it probably isn't perfect yet
2182           (thanks Kristof Depraetere)
2183         - spec file sanity: no - chars in version or release,
2184           must be a regular file :-)
2185         - version specifications for requirements can use "-<release number>"
2186         - default lib path, tmp path, topdir, and /usr/lib/rpmrc get set
2187           by configure script relative to --prefix
2188
2189 2.2.2 -> 2.2.3:
2190         - fixed script file md5 checking when files are in a root
2191         - implemented proper strdup/free logic for dependency conflict
2192           lists
2193         - strip leading directories from ldd output
2194         - fix non-null-terminated readlink() result
2195         - fixed sscanf() in ftp code to use proper types
2196
2197 2.2.1 -> 2.2.2:
2198         - added functionality to rpmlib to suggest resolutions for
2199           dependency problems
2200         - fix stupid allocation problem in exclude/exclusive stuff
2201         - fix nasty bug where pointers in to the header were getting
2202           stale after some realloc()s in addEntry()
2203         - ignore OS tag for v2 packages -- it was wrong anyway
2204         - match shared libs on ".so" rather than ".so."
2205         - skip blanks from objdump for auto-provide
2206         - if objdump gets us _end, provide the file name
2207         - do not ldd non-regular files
2208         - do not pass leading "/" to ldd
2209         - fix ExcludeOs: and ExclusiveOs:
2210         - -V verifies dependencies, can be controlled with --nodeps
2211           and --nofiles
2212         - added information on --nodeps to usage messages
2213         - implement --timecheck and rpmrc timecheck:
2214         - implement -bl
2215         - catch duplicate files in file lists
2216         - some random sanity checking on the file list
2217
2218 2.2 -> 2.2.1:
2219         - made rpmRemovePackage() print message in verbose mode
2220         - added support for ftp://user:pass@machine.org/ URL's
2221           during installation - the password will be prompted for
2222           if only the user is given, and anonymous ftp will be used
2223           it both user and password are omitted (as before)
2224         - Remove Exclusive: Exclude:
2225           Replace with: ExclusiveArch: ExclusiveOs:
2226                         ExcludeArch: ExcludeOs:
2227         - fixed dependency cheking for packages that are installed
2228           at the same time
2229         - fixed version number dependency checking
2230         - fixed problem installing v1 source packages (thanks to
2231           Nikita Borisov)
2232         - fixed minor spelling/spacing problems (Nikita Borisov)
2233         - assume all v1 packages were made for Linux so OS check works
2234         - began to implement proxyftp, though it doesn't work yet
2235         - fixed spacing when reporting dependency conflicts
2236         - fixed bug where a long name (uname()) was mapping to itself
2237
2238 2.1.2 -> 2.2:
2239         - don't fail, and do report, if -K can't find a PGP key
2240         - handle file names with quotes and spaces when passed to ldd
2241           (still can't have spaces in %files)
2242         - do not allow Buildprefix: in sub packages
2243         - removed require_group from rpmrc -- groups are always required
2244         - removed arch_sensitive from rpmrc -- always on
2245         - removed docdir from rpmrc -- always /usr/doc
2246         - fixed nasty bug in installing packages with large filelists
2247         - made -R work
2248         - --provides and --requries don't print anything if no information
2249           is present (rather then (none) )
2250         - -qi prints Summary now
2251         - changed Buildprefix: -> Buildroot: (spec file, rpmrc)
2252                   --buildprefix -> --buildroot (command line)
2253                   RPM_BUILD_PREFIX -> RPM_BUILD_ROOT
2254                                         (%prep, %build, %install, %clean)
2255           sorry :-)
2256         - allow Prefix: for sub-packages
2257         - allow packager: in rpmrc
2258         - --arch and --os are now --buildarch and --buildos
2259         - magic arch/os handling through arch_canon and os_canon
2260           see /usr/lib/rpmrc (in short: uname short_name num)
2261         - removed build_arch: from rpmrc
2262           Replacing it is buildarchtranslate: and buildostranslate:
2263           to allow building with arch/os other than what uname() returns.
2264           Can still be overriden with --buildarch and --buildos
2265         - rpmrc keywords are now case-insensitive
2266         - check os at install time
2267         - check return code from gzread() during installs
2268         - implemented os_compat
2269         - added arch_compat and os_compat information to --showrc (the
2270           changes needed to do this removed any lingering questions about
2271           the efficiency of the compat lookups for large tables or tables
2272           with loops -- it should all work fine)
2273         - made -u (--uninstall) exit with an error and not do anything
2274         - added --ignoreos
2275         - fixed error message given when a file is missing
2276         - fixed hashing when multiple packages are being modified
2277         - changed man page for readability (thanks to Joseph L. Hartmann, Jr)
2278
2279 2.1.1 -> 2.1.2:
2280         - fixed error message for unrelocateable packages
2281         - automatic shared lib provides now work with buildprefix
2282         - fixed dependency checking during upgrades to work if the
2283           package wasn't previously installed
2284         - clean up temp file after signature check
2285         - dependencies weren't looking through packages that were
2286           being installed at the same time quite right
2287
2288 2.1 -> 2.1.1:
2289         - fixed -qi query format 
2290
2291 2.0.11 -> 2.1:
2292         - added --requires, --whatrequires, --provides and 
2293           --whatprovides queries
2294         - using a string array tag in a queryformat results in every
2295           item in the string being printed out with spaces in between
2296           (though this behaviour will probably go away shortly)
2297         - all packages are ftp'd before any are installed (required to
2298           do proper dependency checking)
2299         - if only source packages are being installed, the database is
2300           never opened
2301         - automatic shared library require/provides tags generated
2302         - added --nodeps flag for install and uninstall
2303         - added dependency checking for installs and uninstalls
2304         - misc fixes to compile with glibc
2305         - use PGPPATH if set (and no pgp_path: in rpmrc)
2306         - remove pgp_pubring, pgp_secring stuff
2307         - new extensible signature
2308         - signature section supports multiple signatures
2309         - --addsign to add a signature to a package
2310         - PGP key no longer limited to 1024 bits
2311         - always do at least an MD5 "signature"
2312           as a result, -K will always tell you something
2313         - signatures now include a simple "header+archive size" check
2314           just calling readSignature() checks this
2315         - --nopgp (with -K) to skip PGP check, just do MD5
2316         - allow '#' comments in preamble and %files section
2317         - fixed -qsv to print both the states and the file information  
2318         - added --dump option to query to print all file attributes
2319         - installs with --root use the /etc/passwd and /etc/group from
2320           the target directory
2321         - added --initdb to aid in database initialization
2322         - --queryformat can print items of type INT8
2323         - "sourceless" packages with nosource: and nopatch:
2324         - [] now allows interation through query formats
2325         - '-' flag for query tags removed
2326         - :date and :perms supported as query format specifiers
2327         - new rpmrc entries "arch" and "os" to override
2328         - --arch and --os on the command line to override
2329         - arch and os are now strings in the package header
2330         - added arch_compat handling in /etc/rpmrc
2331         - added build_arch to /etc/rpmrc
2332         - support arch as string
2333         - added --ignorearch option
2334         - Prefix: in spec file to specify default installation prefix
2335         - rpmrc and command line may be used to override the path
2336           used for the rpm database
2337         - relocatable packages get installed properly
2338         - added support for --prefix and RPM_INSTALL_PREFIX environemtn
2339           variable
2340         - added dependency checking for version numbers
2341         - added correct dependency checking for upgrades
2342         - added :depflags query format flag
2343         - changes --provides, --requires, and --scripts queries to use
2344           queryFormats
2345
2346 2.0.10 -> 2.0.11:
2347         - fixed chmod(symlink) bug (since 2.0.9)
2348
2349 2.0.9 -> 2.0.10:
2350         - fixed the fix to rpm -q <num> bug
2351           to query by number you now need --querybynumber
2352         - made arch_sensitive on by default
2353         - handle # comments in preamble
2354         - don't barf if we can't canonicalize the hostname during builds
2355         - fixed --verify with --root
2356
2357 2.0.8 -> 2.0.9:
2358         - %files -f <file>
2359         - prelim Require/Provide handling
2360         - prelim strict checking of spec file
2361         - removed some bash-isms
2362         - fixed globbing/root bug
2363         - fixed rpm -q <num> bug
2364         - fixed ftw() related bug where symlinks were being
2365           followed in %files rather than just being noted!!
2366         - pass "upgrade" arg to pre/post scripts when upgrading
2367         - use PATH to find cpio when installing
2368         - fixed rpm.magic, added sun4, mips, 68k, sgi, sunos, solaris
2369         - added %attr(mode owner group) feature to file list
2370         - fixed dumb %verify() parse bug
2371
2372 2.0.7 -> 2.0.8:
2373         - explicitly turn off ASCII armor when running PGP
2374         - fixed --noscripts logic, which was on by default and 
2375           off if you specified it!
2376         - uses a temp file to pass filenames to cpio in case when 
2377           their are more then 500 filenames in a package
2378         - added --rcfile
2379         - fixed problem with $HOME/.rcfile not being read
2380         - undocumented --search, --where, --keep-temps which
2381           will probably won't be implemented in RPM 2.x anyway
2382
2383 2.0.6 -> 2.0.7:
2384         - builds now set umask 022 for all scripts
2385         - queries relative paths correctly (thanks to Johnie Stafford)
2386         - fixed error codes for failed installs
2387         - don't add NULL entry to group index for packages that don't
2388           have group information, add it to the "Unknown" group instead
2389         - added --scripts query option
2390         - added --noscripts for installing and uninstall without using 
2391           the pre/post scripts
2392         - "rpm -qd" and "rpm -qc" work properly now (they didn't imply
2393            -l before)
2394
2395 2.0.5 -> 2.0.6:
2396         - internal changes to error messages
2397
2398 2.0.4 -> 2.0.5:
2399         - added support for generic querying
2400         - added --querytags option
2401         - updated man page for above two
2402         - short-circuit got added before 2.0.5, but I don't know when
2403         - query and installs should now return 0 on success and nonzero
2404           otherwise (rpm -i should return the number of packages that
2405           failed actually)
2406         - made rpm -qa fail if extra arguments are passed to it
2407
2408 2.0.3 -> 2.0.4:
2409         - added support for PowerPC, and OSF mklinux ports
2410         - added --resign
2411         - added --recompile
2412         - added verbose error messages from Tyson Sawyer
2413         - rpmconvert won't overwrite an existing database
2414         - won't core dump querying old format source packages
2415         - freed minor memory leak
2416         - more descriptive error messages during build
2417         - added support for not installing documentation
2418
2419 2.0.2 -> 2.0.3:
2420         - added support for 686, 786, 886, 986
2421
2422 2.0.1 -> 2.0.2:
2423         - fixed ftp.c to return an error code when select timeouts
2424         - added basic NLS support, along with a Sweedish message catalog
2425           (thanks to Michael Nyquist)
2426
2427 2.0 -> 2.0.1:
2428         - hashing and percentages no longer SIGFPE on 0 byte packages
2429         - when an ftp fails, install.c no longer tries to install the package
2430         - uses /var/tmp rather then /usr/tmp during for ftp space
2431         - added debugging messages to ftp.c
2432         - fixed some mistakes in the PGP section of the man page
2433         - added mdfile prototype to rpmlib.h - the Python module wants this
2434         - fixed struct oldrpmlead to align properly on the alpha
2435
2436 2.0     - everything done :-)
2437
2438 2.0b -> 2.0c:
2439         - an incredible number of changes - I won't bother trying to 
2440           list them
2441
2442 2.0a -> 2.0b:
2443         - moved build stuff to main rpm command, though --rebuild is still
2444           not supported
2445         - install should work, although replaced files are not marked as
2446           replaced
2447         - %doc macro fixed
2448         - --percent, --hash work for installs
2449         - converted databases and packages get the file list in the correct
2450           order now
2451         - none of this is well tested
2452         - rpms are output to proper dirs (which are always arch sensitive)
2453         - basic rpmrc functions are implemented, full parsing is present
2454         - changed error messages for missing files to include full path
2455         - fixed detection of Alpha's
2456
2457 1.4.6 -> 2.0a:
2458         - completely rewritten in C
2459         - verification missing
2460         - build functionality not in main rpm, in rpmbuild instead
2461           (this will be corrected)
2462         - an awful lot is still missing - this is an ALPHA release
2463
2464 1.4.5 -> 1.4.6:
2465         - fixed rpmq problem with packages w/o groups (old RPM's would do this)
2466         - fixed uninstalling with --root 
2467
2468 1.4.4 -> 1.4.5:
2469         - added support for mips processors
2470         - added support for osf1 and irix os's
2471
2472 1.4.3 -> 1.4.4:
2473         - fixed bug in arch detection code which caused i386 failure
2474
2475 1.4.2 -> 1.4.3:
2476         - added tokens for SPARC, MIPS, PowerPC, and 680x0 architectures
2477         - fixed sparc arch, added arch sanity check
2478
2479 1.4.1 -> 1.4.2:
2480         - added --root to man page, usage, and help messages
2481         - added a " " to the "Creating directory" debug message in install.pl
2482         - make --rebuild fail on binary packages
2483         - don't output prep/build/install sections if there aren't any
2484
2485 1.4 -> 1.4.1:
2486         - fixed man page
2487         - updated corruption messages to not mention --rebuild
2488         - added RPM_PACKAGE_VERSION and RPM_PACKAGE_RELEASE variables
2489           at build time
2490         - no longer allows installing binary packages across architectures
2491         - fixed handling of symlinks marked as config files
2492
2493 1.3.2 -> 1.4:
2494         - make -v the default when using -b and --rebuild
2495         - added %postbuild as an alias for %clean
2496         - added gendiff
2497         - added groups file installed in /usr/lib/rhs/rpm
2498         - made usage message different and more concise then the --help message
2499         - added --version option
2500         - updated man page
2501         - changed C build tree for concurrent building on multiple architectures
2502
2503 1.3.1 -> 1.3.2:
2504         - add -b option to %patch
2505         - fixed install/chroot temp file deleting
2506
2507 1.3 -> 1.3.1:
2508         - fixed bug when doing md5 of erased config file during rpm -u
2509         - fixed spec file searching
2510
2511 1.2 -> 1.3:
2512         - added --search and --where options
2513         - multiarchitecture support
2514         - added --rebuild option
2515         - started C rewrite - rpmq (query options only)
2516
2517 1.1 -> 1.2:
2518         - preuninstalls weren't getting handled properly
2519         - Alpha architecture is now recognized and builds are allowed
2520         - the database open is checked for success before continuing
2521         - rpm -b? checks the SPEC files for package names given as args