From Fedora Project Wiki
(initial version)
 
m (Correct the category)
 
(6 intermediate revisions by 2 users not shown)
Line 24: Line 24:


All retired packages are obsoleted by `fedora-retired-packages`.
All retired packages are obsoleted by `fedora-retired-packages`.
UPDATE: I am taking back this proposal. I will propose new one, based on the gathered feedback.


== Owner ==
== Owner ==
Line 38: Line 40:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:SystemWideChange]]
<!-- 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 45: Line 47:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SystemWideChange]]
[[Category:ChangePageIncomplete]]


* Targeted release: [[Releases/33 | Fedora 33 ]]  
* Targeted release: [[Releases/33 | Fedora 33 ]]  
Line 62: Line 64:
== Detailed Description ==
== Detailed Description ==


Right now `fedora-obsoletes-package` retired packages which cause an issue during an upgrade. We do nothing about all other retired packages. Now imagine the following story (it already happened many times):
Right now `fedora-obsoletes-package` retires packages which cause an issue during an upgrade. We do nothing about all other retired packages. Now imagine the following story (it already happened many times):


We have package "foo". It is a leaf package. No one requires it. It uses just basic libraries.
We have package "foo". It is a leaf package. No one requires it. It uses just basic libraries.
Line 88: Line 90:


See relevant [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/UTHLSBCLDTFOVEDVQR4XOMNKBJXSHOTF/#Z5D77LVDWWTO7HSP43MYQ7F5MKL6D6TK thread on devel mailing list].
See relevant [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/UTHLSBCLDTFOVEDVQR4XOMNKBJXSHOTF/#Z5D77LVDWWTO7HSP43MYQ7F5MKL6D6TK thread on devel mailing list].
User's feedback on [https://www.phoronix.com/forums/forum/software/distributions/1186707-fedora-developers-are-looking-at-better-managing-retired-packages Phoronix]
Feedback on [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/PMPPOFCULEKIEJW3FJRGZPJ5TNELPZ3P/ fedora-devel mailing list].


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 125: Line 131:
* Proposal owners:
* Proposal owners:


Create package `fedora-retired-packages` as sub-package of `fedora-obsolete-packages`
Create package `fedora-retired-packages` as sub-package of `fedora-obsolete-packages` [https://bugzilla.redhat.com/show_bug.cgi?id=1816532 BZ#1816532]
Edit https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life#Obsoleting_Packages guidelines with:
Edit https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life#Obsoleting_Packages guidelines with:


Line 155: Line 161:
== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
During an upgrade, all retired packages will be automatically removed.
User may opt-out by:
<pre>
$ cat /etc/dnf/dnf.conf
[main]
...
exclude=fedora-retired-packages
</pre>


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
 


== How To Test ==
== How To Test ==
Line 175: Line 191:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
1. Upgrade to next version of Fedora.
2. Check all retired packages are removed.


== User Experience ==
== User Experience ==
- Packages that are no longer maintained are removed during a distribution upgrade.
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?


Line 193: Line 213:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
This update has no dependencies on any other package.


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


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: Drop `fedora-retired-package`. Or remove `Obsoletes` from this sub-package. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: Beta freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
* Blocks product? None <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
Line 209: Line 229:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
TBD


== Release Notes ==
== Release Notes ==
Line 217: Line 237:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
TBD

Latest revision as of 18:28, 23 June 2020


Fedora-Retired-Packages

Summary

All retired packages are obsoleted by fedora-retired-packages.

UPDATE: I am taking back this proposal. I will propose new one, based on the gathered feedback.

Owner

Current status

  • Targeted release: Fedora 33
  • Last updated: 2020-06-23
  • 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

Right now fedora-obsoletes-package retires packages which cause an issue during an upgrade. We do nothing about all other retired packages. Now imagine the following story (it already happened many times):

We have package "foo". It is a leaf package. No one requires it. It uses just basic libraries. A user installs it during F32 lifetime.

Around F35 the upstream dies. Around F37 Fedora maintainer retires the package (or orphan and it later become retired).

Because the package is a leaf package, it causes no pain during upgrade F37->F38. Not even during upgrade to F39, F40, F41, F42. And then during upgrade to F43 it suddenly causes a problem. But because it is .fc37 everyone will hesitate to add it fedora-obsolete-packages.fc43.

Additionally, during F38-F43, users may expect that their system is fully updated and they have no security issues. But it is not true about package "foo", which no one maintains. And users are not aware of that because he does not follow fedora-devel mailing list. Obviously.

What I propose is: As part of the retirement process we add the to fedora-retired-packages:

 Obsoletes: foo < %{latestversion+1}

And during upgrade from F37->F38 the package will be removed.

If the user wants to preserve the package (e.g., because it moved to Copr), he simply uninstalls and protects the installation of fedora-retired-packages. But that will be an informed decision.

The benefits are:

* we do not leave unmaintained packages on a user's machine.
* We make sure that archaic packages do not break upgrade between two versions of Fedora.

Feedback

After discussion with fedora-obsolete-package maintainer I filed this Change proposal to include a wider audience.

See relevant thread on devel mailing list.

User's feedback on Phoronix

Feedback on fedora-devel mailing list.

Benefit to Fedora

* We do not leave unmaintained packages on a user's machine.
* We make sure that archaic packages do not break upgrade between two versions of Fedora.


Scope

  • Proposal owners:

Create package fedora-retired-packages as sub-package of fedora-obsolete-packages BZ#1816532 Edit https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life#Obsoleting_Packages guidelines with:

The retired package should be obsoleted by one of:

* fedora-obsoleted-packages - if the package can cause problem during upgrade to next version of Fedora
* fedora-retired-packages - in all other cases

It is enough to open an issue on https://src.fedoraproject.org/rpms/fedora-obsolete-packages


  • Other developers: N/A (not a System Wide Change)

No other work should be necessary.

This is optional. I may work with rel-eng to change https://pagure.io/releng/blob/master/f/docs/source/sop_retire_orphaned_packages.rst to automatically create PR for fedora-obsolete-packages

  • Policies and guidelines: N/A (not a System Wide Change)

As stated above https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life#Obsoleting_Packages will need an update.

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

Upgrade/compatibility impact

During an upgrade, all retired packages will be automatically removed.

User may opt-out by:

$ cat /etc/dnf/dnf.conf
[main]
...
exclude=fedora-retired-packages


How To Test

1. Upgrade to next version of Fedora. 2. Check all retired packages are removed.

User Experience

- Packages that are no longer maintained are removed during a distribution upgrade.


Dependencies

This update has no dependencies on any other package.

Contingency Plan

  • Contingency mechanism: Drop fedora-retired-package. Or remove Obsoletes from this sub-package.
  • Contingency deadline: Beta freeze
  • Blocks release? No
  • Blocks product? None

Documentation

TBD

Release Notes

TBD