Changes for version 1.50

  • This is an official release to make the work done by Alexey Tourbin (<at@altlinux.org>) available in the main branch. All of his changes are merged into the main repository. Without his work, the project would still be languishing. Beside fixing countless bugs, he got me back to actively looking at the code.
  • Added LICENSE paramter in Makefile.PL to re-license the package under the same terms as Perl itself (dual Artistic/GPL).
  • RPM.pm version bumped up to 1.50 for release tracking.
  • Test suites added to t/ for POD correctness and POD coverage.
  • Several new additions to POD as deficiencies found by the POD coverage testing.

Changes for version 1.49_01

  • This release has been tested on ALT Linux Sisyphus (rpm-4.0.4) and Fedora Core 6 (rpm-4.4.2).
  • The version has been bumped up to 1.49_01 to match RPM.pm $VERSION.
  • This release includes about 100 changes from the previous version 0.40, which was released almost 5 years ago. All known bugs and memory leaks has been fixed; the code has been updated for recent rpm-4.4 versions [rt.cpan.org #3930, #8710], as well as cleaned up and simplified.
  • Detailed list of changes since version 0.40 is available at http://git.altlinux.org/people/at/packages/?p=perl-RPM.git;a=summary
  • The most important changes are as follows.
  • Many memory leaks have been fixed, including lack of headerFree() in rpmdb_FETCH(). New file t/09_leaks.t implements tests for memory leaks (requires Devel::Leak module). [rt.cpan.org #12120]
  • RPM::Database caching layer was dropped, because of unacceptable memory usage for database traversal. However, due to Berkeley DB caching facilities, which is used by RPM, the overall performance seems much smoother.
  • RPM::Header caching layer was also dropped, due to many inconsistencies which arise from the "cache by tag name" approach. (For example, it was possible to assign different values for EPOCH and SERIAL rpm header tags, which actually alias each other.) However, ad-hoc cache for NAME, VERSION, and RELEASE tags has been kept, along with SEGV bugfix. [rt.cpan.org #14489]
  • XS code has been simplified by implementing RPM::Header and RPM::Database object boxing (and unboxing) completely with typemap.
  • Conversion between RPM tag names to their numeric values is now also handled with typemap.
  • Fixed wrong rpmError() usage, which expects printf-like format string and arguments, not just plain string.
  • Implemented RPM::evrcmp(a,b) to compare [Epoch:]Version[-Release] specification strings, possibly against RPM::Header objects.
  • Fixed wrong RPM_INT*_TYPE conversion in rpmhdr_STORE(), which made RPM::evrcmp() implementation possible.
  • Update RPM::Constants for new rpm, based on perl-RPM-43.patch from PLD Linux Distribution.

Documentation

Remove unneeded files from a list of RPM package files

Modules

RPM
Perl interface to the API for the RPM Package Manager
Groups of RPM-defined symbols
Access to the RPM database of installed packages
Functions to supplement the internal error management of RPM
Access to RPM package headers