Features/RPM4.9

= Update RPM to 4.9 =

Summary
Update RPM to 4.9 in Fedora 15.

Owner

 * Name: PanuMatilainen

Current status

 * Targeted release:  Fedora 15
 * Last updated: 2011-15-03
 * Percentage of completion: 100%

Final 4.9.0 release is in F15 updates-stable. Distro-integration is complete within scope except for ovaldi (API changes, needs rebuild) and gstreamer (for new dependency extractor, bug #685080) which are pending action to submitted patches from their respective maintainers.

Detailed Description
The RPM development team would like to update Fedora RPM to a pre-release version of 4.9 as early as possible to leverage the wider testing that Fedora rawhide gets. A stable upstream version of the new RPM is expected be released well in time for Fedora 15 alpha.

Benefit to Fedora
The full change summary (draft) can be found at http://rpm.org/wiki/Releases/4.9.0, but some of the immediate benefits to Fedora are
 * Pluggable dependency generator, built-in filtering of generated dependencies
 * Additional package ordering hinting mechanism
 * Performance improvements
 * Many bugfixes all over the place

Scope
Packages directly linking to librpm need to be rebuilt due to soname change, but no other rebuilds are necessary. As long as new rpmlib dependency-tracked features are not used, produced packages are fully compatible with existing rpm versions.

How To Test
Rpm has it's own test-suite which gets executed during the package build. Package building gets rather exhaustively tested by day-to-day rawhide development, but initially extra attention should be paid to automatically generated dependencies due to the large changes in that area. Initial system installation, package and distribution upgrades and other similar "normal activity" with the new should provide sufficient testing.

User Experience

 * The new RPM changes fairly little in the average "user experience":
 * Faster installs/upgrades
 * Some annoying bugs have been fixed
 * Some practically unused, obscure command line switches have been removed

Dependencies

 * If the new SELinux policy plugin is enabled, this adds a dependency on libsemanage, but no new packages need to be introduced.
 * Some of the dependency generation hacks currently bundled in rpm itself should be moved to relevant application-domain specific packages now that it is possible (at least gstreamer and printer driver provides)

Contingency Plan

 * Revert to 4.8. The packaging changes somewhat with 4.9, complicating downgrades. Also a manual 'rpm --rebuilddb' would be required after downgrades so this is a very last-resort option (although it would only affect rawhide users).
 * Avoid depending on new 4.9 features until final acceptance is gained.

Documentation
Release note draft document can be found in http://rpm.org/wiki/Releases/4.9.0

Release Notes
No need for release notes entry.

Comments and Discussion

 * See Talk:Features/RPM4.9