From Fedora Project Wiki
(Initial rpm 4.17 change draft)
 
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Change Proposal Name =
= RPM 4.17 =
RPM 4.17


== Summary ==
== Summary ==
Update RPM to the 4.17 release.  
Update RPM to the [https://rpm.org/wiki/Releases/4.17.0 4.17] release.  


== Owner ==
== Owner ==
* Name: [[User:pmatilai|Panu Matilainen]]
* Name: [[User:pmatilai|Panu Matilainen]]
* Email pmatilai@redhat.com
* Email: [pmatilai@redhat.com]


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF35]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 26: Line 25:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2593 #2593]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1951105 #1951105]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/684 #684]


== Detailed Description ==
== Detailed Description ==
RPM 4.17 contains numerous improvements over previous versions  
RPM 4.17 contains numerous improvements over previous versions  
* Much more robust install failure handling
* More robust install failure handling
* Many macro improvements, in particular much improved Lua integration
* Many macro improvements, in particular much improved Lua integration
* Strict checking for unpackaged content in builds
* Libraries no longer need executable permission for dependency generation and is automatically removed for non-executable libraries
* Automatic removal of .la files from buildroot
* Long needed transaction APIs enhancements
* Long needed transaction APIs enhancements
* Improved documentation
* Improved documentation
* Split debugedit to its own project and package (Review bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1953633 #1953633])
* Split Python-specific packaging aids to its own project and package


* Tentative (planned but not committed as of this writing)
The plan is to get 4.17-alpha into rawhide as early as possible (during April) to sort out any initial rough edges long before the general feature deadline rush. Final version is expected to be released well in time before F35 beta.
** Split debugedit to its own project and package
** Split language-specific packaging aids to separate projects (Python, Perl, Ocaml...)
** Dynamic spec generation


== Feedback ==
== Feedback ==
Line 49: Line 48:
See description for overall benefits, but in particular:
See description for overall benefits, but in particular:
* All users benefit from the more robust installation
* All users benefit from the more robust installation
* Packaging sanity wrt libraries
* Macro authors will have a much saner experience creating complex macros in Lua
* Macro authors will have a much saner experience creating complex macros in Lua
* DNF for the enhanced transaction APIs
* DNF for the enhanced transaction APIs
Line 59: Line 59:
* Other developers:
* Other developers:
** Test new release, report issues and bugs
** Test new release, report issues and bugs
** Adjust packaging to adhere to the strict buildroot content checking


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/10072 #10072]
<!-- 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: TODO: review the need to update guidelines wrt %exclude!
 
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. Please submit a pull request with the proposed changes before submitting your Change proposal. -->


* Policies and guidelines:
** Libraries no longer need to be executable for dependency generation, and executable bit will in fact be removed if invalidly set on a library. Guidelines only have a vague "executable if appropriate" mention so it does not *need* changing but could now be clarified/tightened if desired.
* Trademark approval: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: no relation to current objectives
* Alignment with Objectives: no relation to current objectives


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
* Many existing packages will fail to build due to the strict buildroot content checking
* Rpm no longer implicitly creates databases on read-only access, this may require changes to existing scripts/tooling. Ensuring mock/dnf works is a pre-requisite to landing this change into rawhide, and will be handled, one way or the other, by the rpm maintainers.
* Rpm no longer implicitly creates databases on read-only access, this may require changes to existing scripts/tooling


== How To Test ==
== How To Test ==
Line 84: Line 77:


== Dependencies ==
== Dependencies ==
* dnf and/or mock will likely need some adjusting for the lack of implicit database creation
* soname bump is not expected so rebuilds should not be required


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

Latest revision as of 07:21, 23 June 2021

RPM 4.17

Summary

Update RPM to the 4.17 release.

Owner

Current status

Detailed Description

RPM 4.17 contains numerous improvements over previous versions

  • More robust install failure handling
  • Many macro improvements, in particular much improved Lua integration
  • Libraries no longer need executable permission for dependency generation and is automatically removed for non-executable libraries
  • Automatic removal of .la files from buildroot
  • Long needed transaction APIs enhancements
  • Improved documentation
  • Split debugedit to its own project and package (Review bug: #1953633)
  • Split Python-specific packaging aids to its own project and package

The plan is to get 4.17-alpha into rawhide as early as possible (during April) to sort out any initial rough edges long before the general feature deadline rush. Final version is expected to be released well in time before F35 beta.

Feedback

Benefit to Fedora

See description for overall benefits, but in particular:

  • All users benefit from the more robust installation
  • Packaging sanity wrt libraries
  • Macro authors will have a much saner experience creating complex macros in Lua
  • DNF for the enhanced transaction APIs

Scope

  • Proposal owners:
    • Rebase RPM
    • Assist with dealing with incompatibilities
  • Other developers:
    • Test new release, report issues and bugs
  • Policies and guidelines:
    • Libraries no longer need to be executable for dependency generation, and executable bit will in fact be removed if invalidly set on a library. Guidelines only have a vague "executable if appropriate" mention so it does not *need* changing but could now be clarified/tightened if desired.
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: no relation to current objectives

Upgrade/compatibility impact

  • Rpm no longer implicitly creates databases on read-only access, this may require changes to existing scripts/tooling. Ensuring mock/dnf works is a pre-requisite to landing this change into rawhide, and will be handled, one way or the other, by the rpm maintainers.

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

The user-experience remains largely as-is, but install failures are handled more gracefully.

Dependencies

  • soname bump is not expected so rebuilds should not be required

Contingency Plan

  • Contingency mechanism: Revert back to RPM 4.16, but the risk of having to do should be negligible
  • Contingency deadline: Beta freeze
  • Blocks release? No

Documentation

Work-in-progress release notes at https://rpm.org/wiki/Releases/4.17.0 and reference manual at https://github.com/rpm-software-management/rpm/blob/master/doc/manual/index.md


Release Notes