From Fedora Project Wiki
No edit summary
Line 43: Line 43:
* Support for macro-only dependency generators (very fast as fork+exec is entirely avoided)
* Support for macro-only dependency generators (very fast as fork+exec is entirely avoided)
* Support for meta dependencies (which do not affect ordering)
* Support for meta dependencies (which do not affect ordering)
* Support for transparent alternative (ie uncompressed) payload verification
* Transparent verification support for alternative (ie uncompressed) payload digest (so deltarpm doesn't need to recompress)
* Automatic SSD detection and optimization
* Automatic SSD detection and optimization


Line 63: Line 63:
** Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular)
** Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular)


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Release engineering: [https://pagure.io/releng/issues/9286]
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
 
* Policies and guidelines:  
* Policies and guidelines:  
As always, utilizing new rpm features is subject to packaging guidelines, but the time for this is after the new version has properly landed.
  As always, utilizing new rpm features is subject to packaging guidelines, but the time for this is after the new version has properly landed. Guideline updates should not be necessary.
Guideline updates should not be necessary.


* Trademark approval: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
Line 81: Line 77:
specifically as per their documentation.
specifically as per their documentation.


XXX TODO: add instructions for database testing!
Details on database testing to be added later.


== User Experience ==
== User Experience ==
Line 87: Line 83:


== Dependencies ==
== Dependencies ==
* There are no
* Rpm will grow an additional dependency on sqlite
*


== Contingency Plan ==
== Contingency Plan ==

Revision as of 13:38, 28 February 2020

RPM 4.16

Summary

Update RPM to the 4.16.0 release.

Owner

  • Name: User:pmatilai, User:ffesti
  • Email: pmatilai@redhat.com,ffesti@redhat.com
  • Release notes owner:

Current status

  • Targeted release: Fedora 33
  • Last updated: 2020-02-28
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

RPM 4.16 contains numerous improvements over previous versions

  • New database backends and related developments to enable moving away from Berkeley DB
    • experimental sqlite backend (the planned default from F34 onwards)
    • experimental readonly-bdb backend to support conversion from BDB without the library
    • ndb backend promoted out of experimental
  • Much improved expression parser (specs and macros)
  • Powerful new macro features (expressions, ternary operator, literal macros, access to macro body, eliminate unexpected double-expansion etc)
  • Support for macro-only dependency generators (very fast as fork+exec is entirely avoided)
  • Support for meta dependencies (which do not affect ordering)
  • Transparent verification support for alternative (ie uncompressed) payload digest (so deltarpm doesn't need to recompress)
  • Automatic SSD detection and optimization

Rawhide rpm will be updated to 4.16 alpha once feature is approved and updated through beta and rc cycles, 4.16.0 final release is expected before to F33 beta freeze.

Benefit to Fedora

See above for overall benefits, but most importantly this is the first major step towards moving away from Berkeley DB based rpmdb. The database format will not change in this release, but this release enables wider testing of the new backend(s) and related features such as switching from one backend to another. In particular it enables testing of *other software* for compatibility and interoperability with non-BDB databases.

Database format change is planned for Fedora 34.

Scope

  • Proposal owners:
    • Rebase RPM
  • Other developers:
    • Test new release, report issues and bugs
    • Test compatibility of other software with different rpmdb format (containers, build-systems and such in particular)
  • Release engineering: [1]
  • Policies and guidelines:
 As always, utilizing new rpm features is subject to packaging guidelines, but the time for this is after the new version has properly landed. Guideline updates should not be necessary.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

  • Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like. In particular, barewords (ie non-quoted strings) in expressions are no longer supported.

How To Test

Rpm receives a thorough and constant testing via every single package build, system installs and updates. New features can be tested specifically as per their documentation.

Details on database testing to be added later.

User Experience

There are no significant user experience changes by default, but a significant increase in overall robustness is expected with non-BDB databases.

Dependencies

  • Rpm will grow an additional dependency on sqlite

Contingency Plan

  • Contingency mechanism: Roll back to rpm 4.15, but the chance of having to do should be negligible
  • Contingency deadline: Beta freeze.
  • Blocks release? No


Documentation

Draft release notes are available at https://rpm.org/wiki/Releases/4.16.0

Release Notes