From Fedora Project Wiki
mNo edit summary
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->


= Remove Python2 RPM Macros <!-- The name of your change proposal --> =
= Disable Python 2 Dist RPM Generators and Freeze Python 2 Macros <!-- The name of your change proposal --> =


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release.  
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release.  
Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
The {{package|python2-rpm-macros}} package (containing `/usr/lib/rpm/macros.d/macros.python2`) will be removed from Fedora 34 and newer. The python2 RPM macros will ceases to exist. Python 2 packages are already not allowed. Around a dozen of packages use the macros in Fedora and will need to be adjusted either by expanding them or by no longer using Python 2. The `python2.7dist()` and `python2dist()` automatic provides/requires will no longer be automatically generated.
The `python2.7dist()` and `python2dist()` automatic provides/requires from {{package|python-rpm-generators}} will no longer be automatically generated, no functional packages in Fedora use them. The `python(abi) = 2.7` automatic provides/requires will be kept.
 
The {{package|python2-rpm-macros}} package will be removed from Fedora 34 and newer. The python2 RPM macros (`/usr/lib/rpm/macros.d/macros.python2`) will be moved to {{package|python2.7}} and frozen (no new development, except critical bugfixes that affect packages outside the remaining Python 2 ecosystem).
 
Note that Python 2 packages are already not allowed in Fedora, except explicitly granted exceptions.


== Owner ==
== Owner ==
Line 25: Line 29:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF34]]
<!-- 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 44: Line 48:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2567 #2567]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1924801 #1924801]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/656 #656]


== Detailed Description ==
== Detailed Description ==
Line 52: Line 56:
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


Python 2 is upstream dead, usage in Fedora packages is forbidden, except for several package with an explicit FESCo approved exception. The Python Maintenance team no longer wishes to support the pythn2 RPM macros from {{package|python2-rpm-macros}}/`/usr/lib/rpm/macros.d/macros.python2` and hence decided to remove the package. The following macros will be undefined:
Python 2 is upstream dead, usage in Fedora packages is forbidden, except for several package with an explicit FESCo approved exception. The Python Maintenance team no longer wishes to support the python2 dist RPM generators from the {{package|python-rpm-generators}} package nor the python2 RPM macros from the {{package|python2-rpm-macros}} package (located at `/usr/lib/rpm/macros.d/macros.python2`) and hence decided to disable the generators for Python 2 and freeze the macros.
 
Provides/requires like this will no longer be automatically generated in Fedora:
 
python2dist(...)
python2.7dist(...)
 
Currently, no functional Fedora 34 packages need such provides. The `python(abi) = 2.7` automatic provides/requires will be kept.
 
The following macro definitions will be moved from {{package|python2-rpm-macros}} to {{package|python2.7}}:


  %{python2_sitelib}
  %{python2_sitelib}
Line 70: Line 83:
  %py2_install_wheel
  %py2_install_wheel


The following macros will remain defined for the time being to not break packages that are using Python 2 as build-time only dependency (which is also not allowed, but happens more often):
And their definition will remain frozen unless a bug is found that affects Fedora packages outside the remaining Python 2 ecosystem. Packagers of Python 2 packages affected by bugs in the macros are encouraged to apply workarounds and/or submit fixes themselves.
 
%{__python2}
%{python2}
 
The [https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_python_2_packages Python 2 section of Python packaging guidelines] will be removed.
 
{{package|python2.7}} will no longer require {{package|python2-rpm-macros}} and {{package|python3-rpm-generators}}.
 
Provides/requires like this will no longer be automatically generated:
 
python2dist(...)
python2.7dist(...)


The changes will happen after the Fedora 34 mass rebuild and before branching.
Only the following packages use some of the macros:
 
Packages that used to use those macros in Fedora will need to be adapted to expand the macros or switch to Python 3. In January 2021, we have:


* several Python 2 trac plugins, but {{package|trac}} uses Python 3 now
* several Python 2 trac plugins, but {{package|trac}} uses Python 3 now
** only those require `python2dist(...)`
** only those require `python2dist(...)` / `python2.7dist(...)`
* several Python 2 sugar packages, but they already don't build or install as {{package|sugar}} uses Python 3 now
* several Python 2 sugar packages, but they already don't build and/or install as {{package|sugar}} uses Python 3 now
* 14 other affected packages in Fedora (some of them co-owned by Python Maint):
* 13 other affected packages in Fedora (some of them co-owned by Python Maint):
** avahi
** avahi
** gimp-layer-via-copy-cut
** gimp-layer-via-copy-cut
Line 104: Line 103:
** python2-cairo
** python2-cairo
** python2-dns
** python2-dns
** python2-numpy (requires `python2.7dist(setuptools)`)
** python2-setuptools
** python2-setuptools


Note: Many other packages use the macros in a disabled `%if` section. Some of the listed ones might as well (and hence are not really impacted), the list is an intersection of packages that (Build)Require Python 2 and are greppable for the macros.
Note: Many other packages use the macros in a disabled `%if` section.
Some of the listed ones might as well (and hence are not really
impacted), the list is an intersection of packages that (Build)Require
Python 2 and are greppable for the macros.


The removed macros and migration plan:
{{package|python2.7}} will provide and obsolete {{package|python2-rpm-macros}} at least for 2 more releases (or until it is removed entirely from Fedora).


=== %{python2_sitelib} ===
The following macros will remain defined in {{package|python-srpm-macros}} for the time being to not break packages that are using Python 2 as build-time only dependency (which is also not allowed, but happens more often):


Affected Fedora packages:
%{__python2}
%{python2}


* avahi
The [https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_python_2_packages Python 2 section of Python packaging guidelines] will be amended to say that the Python 2 macros may not completely mirror the Python 3 macros.
* NFStest
* offlineimap
* python2-dns
* python2-setuptools
* python-six


Migration plan if not possible to switch to Python 3 / retire: Use `%{_prefix}/lib/python2.7/site-packages`.
The changes will happen after the Fedora 34 mass rebuild and before branching.
 
=== %{python2_sitearch} ===
 
Affected Fedora packages:
 
* chromium
* offlineimap
* pygobject2
* pygtk2
* python2-cairo
* python2-numpy
* python-psutil
 
Migration plan if not possible to switch to Python 3 / retire: Use `%{_libdir}/python2.7/site-packages`.
 
=== %{python2_version} ===
 
Affected Fedora packages:
 
* offlineimap
* pygtk2
* python2-numpy
* python2-setuptools
 
Migration plan if not possible to switch to Python 3 / retire: Use `2.7`.
 
=== %{python2_version_nodots} ===
 
No affected Fedora packages.
 
Migration plan: Use `27`.
 
=== %{python2_platform} ===
 
No affected Fedora packages.
 
Migration plan: Use a glob like `linux-*`.
 
=== %{py2_shbang_opts}, %{py2_shbang_opts_nodash}, %{py2_shebang_flags}, %py2_shebang_fix ===
 
Affected Fedora packages:
 
* gimp-layer-via-copy-cut
* gimp-resynthesizer
* offlineimap
 
All use `pathfix.py -pni "%{__python2} %{py2_shbang_opts}" ...`
 
Migration plan: `pathfix.py -pni "%{_bindir}/python2" -kas ...`
 
=== %py2_build, %py2_install ===
 
Affected Fedora packages:
 
* NFStest
* offlineimap
* python2-cairo
* python2-dns
* python2-setuptools
* python-psutil
* python-six
 
Migration plan:
 
%build
%set_build_flags
python2 setup.py build
%install
python2 setup.py install --skip-build --root %{buildroot}
 
Note: Add additional `sleep 1` after/before the build if you also build for Python 3.
 
=== %py2_build_egg, %py2_build_wheel, %py2_install_egg, %py2_install_wheel ===
 
No affected Fedora packages. There are no build dependencies in Fedora to build a wheel or install it.
 
Migration plan for egg: Please don't use this!
 
%build
%set_build_flags
python2 setup.py bdist_egg
 
%install
python2 -m easy_install -m --prefix %{buildroot}%{_prefix} -Z <path_to_egg>


== Feedback ==
== Feedback ==


<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. -->
<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. -->
At first, we have [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/MGY7FJTUH5NC6EHTBIEU4TKSEKREBXTH/ proposed to remove the macros entirely]. That proposal has received negative feedback and we have reworked it to only freeze the macros and disable the dist generators.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 239: Line 153:
     https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo (low-level, but visible to advanced users)
     https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo (low-level, but visible to advanced users)
     https://fedoraproject.org/wiki/Changes/VirtualBox_Guest_Integration (primarily a UX change)
     https://fedoraproject.org/wiki/Changes/VirtualBox_Guest_Integration (primarily a UX change)
     https://fedoraproject.org/wiki/Changes/NoMoreAlpha (an improvement to distro processes)
     https://fedoraproject.org/wiki/Changes/ObserveNoMoreAlpha (an improvement to distro processes)
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
-->
-->


We tried to keep the macros as similar to their Python 3 counterparts as possible, but we have decided that it is not worth it for 14 packages. We want to discourage building Python 2 packages. We want to remove the package from RHEL 9 as well.
With each change of the RPM Python dist generators we had to create artificial packages to test the impact on Python 2, because the real set of Python 2 package in Fedora is basically non-existent. By disabling them, we no longer have to worry about breaking things for our downstreams or projects building atop Fedora.
 
In the past, we tried to keep the macros as similar to their Python 3 counterparts as possible, but we have decided that it is not worth it for 13 packages. This way, historical packages can still be built atop Fedora with the macros, but we don't need to worry about keeping them up-to-date. Once {{package|python2.7}} is retired, the macros will go away as well. This is also true for RHEL 9.


== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
** Drop the macros. Disable the `python2dist()`/`python2.7dist()` dependency generators.
** Disable the `python2dist()`/`python2.7dist()` dependency generators: https://src.fedoraproject.org/rpms/python-rpm-generators/pull-request/28
** No longer require {{package|python2-rpm-macros}} and {{package|python3-rpm-generators}} from {{package|python2.7}}.
** Move the python2 macros from {{package|python2-rpm-macros}} to {{package|python2.7}}: https://src.fedoraproject.org/rpms/python-rpm-macros/pull-request/85
** Fix packages with FESCo exceptions (except already broken trac plugins), let the other affected packages burn.
** Remove {{package|python2-rpm-macros}} and obsolete/provide it from {{package|python2.7}}: https://pagure.io/pagure/issue/5106
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers:<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: No action required.<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
** Fix their packages by migrating to Python 3 or expanding the macros.
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 260: Line 175:
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 -->
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: the Python 2 guidelines will be obliviated<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Policies and guidelines: a note will be added to the Python 2 guidelines<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- 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. -->
<!-- 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. -->


* Trademark approval: (optional) Fedora Council to apply for a trademark for ''Die, Python 2, Die!''
* Trademark approval: Not necessary.
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://pagure.io/Fedora-Council/tickets/issues ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://pagure.io/Fedora-Council/tickets/issues ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->


Line 273: Line 188:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
None.
The {{package|python2-rpm-macros}} package will be obsoleted by {{package|python2.7}}. Users that happened to have the macros installed but not the interpreter will suddenly pull the interpreter on upgrades, but we think that's a reasonable compromise.


== How To Test ==
== How To Test ==
Line 291: Line 206:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Check the macros are not defined.
Build a Python 2 package that used to provide and/or require `python2.7dist()` or `python2dist()` automatically. Verify it does not do that. Verify it still requires `python(abi) = 2.7`. Verify the macros are still defined. Verify {{package|python2-rpm-macros}} is no more. Verify {{package|python2.7}} does not depend on RPM.


== Packager Experience ==
== Packager Experience ==
Line 304: Line 219:
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
-->
-->
Intentionally horrible.
Mildly worse for packagers building Python 2 RPMs atop Fedora. If such packagers need the dist generators to do so, they are encouraged to build their own version. Feel free to talk to the change owner about how to do that.
 
Fedora packages are not affected.


== Dependencies ==
== Dependencies ==
Line 315: Line 232:


<!-- 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: If this fails, we'll introduce the macros as a separate component and orphan it. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: Revert the changes. <!-- 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: Beta freeze.  <!-- 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? Yes, let's not release a new Fedora version unless this is accepted. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks product? All of them. <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
* Blocks product? No. <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
Line 326: Line 243:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
This page is the documentation for the affected packagers.
This page is the documentation for the affected 3rd party packagers.


== Release Notes ==
== Release Notes ==

Latest revision as of 22:16, 3 February 2021


Disable Python 2 Dist RPM Generators and Freeze Python 2 Macros

Summary

The python2.7dist() and python2dist() automatic provides/requires from Package-x-generic-16.pngpython-rpm-generators will no longer be automatically generated, no functional packages in Fedora use them. The python(abi) = 2.7 automatic provides/requires will be kept.

The Package-x-generic-16.pngpython2-rpm-macros package will be removed from Fedora 34 and newer. The python2 RPM macros (/usr/lib/rpm/macros.d/macros.python2) will be moved to Package-x-generic-16.pngpython2.7 and frozen (no new development, except critical bugfixes that affect packages outside the remaining Python 2 ecosystem).

Note that Python 2 packages are already not allowed in Fedora, except explicitly granted exceptions.

Owner

Current status

Detailed Description

Python 2 is upstream dead, usage in Fedora packages is forbidden, except for several package with an explicit FESCo approved exception. The Python Maintenance team no longer wishes to support the python2 dist RPM generators from the Package-x-generic-16.pngpython-rpm-generators package nor the python2 RPM macros from the Package-x-generic-16.pngpython2-rpm-macros package (located at /usr/lib/rpm/macros.d/macros.python2) and hence decided to disable the generators for Python 2 and freeze the macros.

Provides/requires like this will no longer be automatically generated in Fedora:

python2dist(...)
python2.7dist(...)

Currently, no functional Fedora 34 packages need such provides. The python(abi) = 2.7 automatic provides/requires will be kept.

The following macro definitions will be moved from Package-x-generic-16.pngpython2-rpm-macros to Package-x-generic-16.pngpython2.7:

%{python2_sitelib}
%{python2_sitearch}
%{python2_version}
%{python2_version_nodots}
%{python2_platform}
%{py2_shbang_opts}
%{py2_shbang_opts_nodash}
%{py2_shebang_flags}
%py2_shebang_fix
%py2_build
%py2_build_egg
%py2_build_wheel
%py2_install
%py2_install_egg
%py2_install_wheel

And their definition will remain frozen unless a bug is found that affects Fedora packages outside the remaining Python 2 ecosystem. Packagers of Python 2 packages affected by bugs in the macros are encouraged to apply workarounds and/or submit fixes themselves.

Only the following packages use some of the macros:

  • several Python 2 trac plugins, but Package-x-generic-16.pngtrac uses Python 3 now
    • only those require python2dist(...) / python2.7dist(...)
  • several Python 2 sugar packages, but they already don't build and/or install as Package-x-generic-16.pngsugar uses Python 3 now
  • 13 other affected packages in Fedora (some of them co-owned by Python Maint):
    • avahi
    • gimp-layer-via-copy-cut
    • gimp-resynthesizer
    • chromium
    • NFStest
    • offlineimap
    • pygobject2
    • pygtk2
    • python-psutil
    • python-six
    • python2-cairo
    • python2-dns
    • python2-setuptools

Note: Many other packages use the macros in a disabled %if section. Some of the listed ones might as well (and hence are not really impacted), the list is an intersection of packages that (Build)Require Python 2 and are greppable for the macros.

Package-x-generic-16.pngpython2.7 will provide and obsolete Package-x-generic-16.pngpython2-rpm-macros at least for 2 more releases (or until it is removed entirely from Fedora).

The following macros will remain defined in Package-x-generic-16.pngpython-srpm-macros for the time being to not break packages that are using Python 2 as build-time only dependency (which is also not allowed, but happens more often):

%{__python2}
%{python2}

The Python 2 section of Python packaging guidelines will be amended to say that the Python 2 macros may not completely mirror the Python 3 macros.

The changes will happen after the Fedora 34 mass rebuild and before branching.

Feedback

At first, we have proposed to remove the macros entirely. That proposal has received negative feedback and we have reworked it to only freeze the macros and disable the dist generators.

Benefit to Fedora

With each change of the RPM Python dist generators we had to create artificial packages to test the impact on Python 2, because the real set of Python 2 package in Fedora is basically non-existent. By disabling them, we no longer have to worry about breaking things for our downstreams or projects building atop Fedora.

In the past, we tried to keep the macros as similar to their Python 3 counterparts as possible, but we have decided that it is not worth it for 13 packages. This way, historical packages can still be built atop Fedora with the macros, but we don't need to worry about keeping them up-to-date. Once Package-x-generic-16.pngpython2.7 is retired, the macros will go away as well. This is also true for RHEL 9.

Scope

  • Other developers: No action required.
  • Release engineering: no impact on Release Engineering is anticipated
  • Policies and guidelines: a note will be added to the Python 2 guidelines
  • Trademark approval: Not necessary.
  • Alignment with Objectives: Not really.

Upgrade/compatibility impact

The Package-x-generic-16.pngpython2-rpm-macros package will be obsoleted by Package-x-generic-16.pngpython2.7. Users that happened to have the macros installed but not the interpreter will suddenly pull the interpreter on upgrades, but we think that's a reasonable compromise.

How To Test

Build a Python 2 package that used to provide and/or require python2.7dist() or python2dist() automatically. Verify it does not do that. Verify it still requires python(abi) = 2.7. Verify the macros are still defined. Verify Package-x-generic-16.pngpython2-rpm-macros is no more. Verify Package-x-generic-16.pngpython2.7 does not depend on RPM.

Packager Experience

Mildly worse for packagers building Python 2 RPMs atop Fedora. If such packagers need the dist generators to do so, they are encouraged to build their own version. Feel free to talk to the change owner about how to do that.

Fedora packages are not affected.

Dependencies

None.

Contingency Plan

  • Contingency mechanism: Revert the changes.
  • Contingency deadline: Beta freeze.
  • Blocks release? No.
  • Blocks product? No.

Documentation

This page is the documentation for the affected 3rd party packagers.

Release Notes