From Fedora Project Wiki

RPM 4.15


Update RPM to the 4.15.0 release.


  • Name: User:pmatilai, User:ffesti, User:ignatenkobrain
  • Email:,,
  • Release notes owner:

Current status

Detailed Description

RPM 4.15 contains numerous improvements over previous versions

  • Faster builds due to increased parallelism
  • Dynamic build dependency generator
  • Support for %elif, %elifos and %elifarch statements in spec
  • New %dnl macro for commenting
  • Caret version operator (the opposite of tilde)
  • String data is returned as surrogate-escaped utf-8 in Python 3 bindings
  • %patchlist and %sourcelist spec sections for minimal boilerplate patch and source declarations
  • Experimental chroot operations for non-root users
  • Many error and warning report improvements
  • A new plugin for issuing audit log events on package install/update/erase
  • Native support for Lua 5.2-5.3 without compat defines in Lua
  • Numerous other improvements and bugfixes:
  • Enforcing utf-8 validation of header data at build-time

Rawhide rpm will be updated to 4.15 alpha once feature is approved and updated through beta and rc cycles, 4.15.0 final release is expected prior to F31 final freeze.

Benefit to Fedora

See above.


  • Proposal owners:
    • Rebase RPM
    • help Python binding users adjust to the string change
    • help coordinate for macro + helper script removals
  • 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. There is no need to change guidelines, any new features are optional.

  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

  • Python 3 bindings see a dramatic change as all string data is now returned as utf-8 encoded string instead of bytes, but this is already being test-driven in rawhide and at least anaconda, dnf and mock are already compatible:
  • Similar to compiler updates, some previously working specs might fail to build due to stricter error checking and the like.
  • Some long-standing perl and python macros and helpers have been removed from rpm and might need either changes to packages or redhat-rpm-config

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.

User Experience

There are no significant user experience changes, but some more minor ones include:

  • faster package builds on SMP systems
  • improved diagnostics from macro errors/warnings and spec constrcuts


  • There is a soname bump involved so all API-dependent packages will need a rebuild.
  • The Python 3 string change has impact on several packages but this is already in process

Contingency Plan

  • Contingency mechanism: Roll back to rpm 4.14, but under no circumstances should such a thing be necessary.
  • Contingency deadline: Beta freeze.
  • Blocks release? No


Draft release notes available at

Release Notes