Changes for version 0.40 - 2002-05-10

-alpha thirteen

RPM 3.0 line is no longer going to be supported. It's been long enough since the 4.0 line came out, I feel. All #ifdef'd code relating to 3.0 (and 4.0 line before about 4.0.2) has been removed. The code once again will compile standing on its own within the rpm CVS repository.

Applied a patch to RPM/Database.xs from Gerald Teschl <gt@esi.ac.at> so that when a header for a package that exists multiple times in the db (such as kernel) is requested, the newest of the lot is returned.

In a related area, the list of potential control-case packages in t/02_headers.t started with kernel, but if there were two such packages installed when the tests ran, several of them would fail. Now, rpm is the first choice.

Applied a modified version of a patch from Anton Berezin <tobez@FreeBSD.org> to RPM/Header.xs that catches cases where at the start of key-iteration, the first run of headerNextIterator() might yield a null (unknown) header key (in rpmhdr_FIRSTKEY).

Applied a patch to RPM/Database.pm to allow options to be passed to the new() method. Also added documentation for the new() method (!). Patch was from viktor@vs.nexus.hu.

Applied a patch from Radu Greab <radu@netsoft.ro> that eliminated a couple of compiler warnings and freed a pointer at destructor-time that was previously overlooked (RPM/Header.xs and RPM/Error.xs).

Removed all the calls to safemalloc and safefree, replaced them with the API-correct New (or Newz) and Safefree.