Update RPM to the 4.15.0 release.
- Name: User:pmatilai, User:ffesti, User:ignatenkobrain
- Email: email@example.com,firstname.lastname@example.org, email@example.com
- Release notes owner:
- Targeted release: Fedora 31
- Last updated: 2019-06-10
- Tracker bug: #1718430
- Release notes tracker: #348
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
- 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: https://rpm.org/wiki/Releases/4.15.0
- 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
- Proposal owners:
- Rebase RPM
- help Python binding users adjust to the string change
- help coordinate for macro + helper script removals
- Other developers:
- Test new release, report issues and bugs.
- Fix Python 3 string/bytes usages in API users (https://bugzilla.redhat.com/show_bug.cgi?id=1693751 already in progress in rawhide)
- Release engineering: #8380
- List of deliverables: Change affects whole distribution rather than deliverables
- 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)
- 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: https://bugzilla.redhat.com/show_bug.cgi?id=1693751
- 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.
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 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 https://rpm.org/wiki/Releases/4.15.0