From Fedora Project Wiki
No edit summary
Line 2: Line 2:
<!-- 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 -->


= python3.10 won't pull in setuptools by default in rpmbuild =
= python3-devel won't pull in setuptools by default in rpmbuild =
<!-- The name of your change proposal -->
<!-- The name of your change proposal -->


== Summary ==
== Summary ==
python3.10 currently requires python-setuptools if rpmbuild is used. Due to a change in RPM generators, this is not needed anymore hence we are removing it.  
python3-devel currently requires python-setuptools if rpmbuild is used. Due to a change in RPM generators, this is not needed anymore hence we are removing it.  
<!-- 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?". -->
<!-- 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?". -->


Line 46: Line 46:
== Detailed Description ==
== Detailed Description ==
<!-- 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. -->
python3.10 currently requires python-setuptools if rpmbuild is used. This was needed for RPM generators but since it adapted pyparsing, this is not needed anymore hence we are removing it. We tested this change in [https://copr.fedorainfracloud.org/coprs/g/python/python3.10/packages/ python3.10] COPR and it showed us 140 packages affected by this change. To avoid any breakages we plan to do a mass spec update to explicitly BuildRequire python-setuptools.
python3-devel currently requires python-setuptools if rpmbuild is used. This was needed for RPM generators but since it adapted pyparsing, this is not needed anymore hence we are removing it. We tested this change in [https://copr.fedorainfracloud.org/coprs/g/python/python3.10/packages/ python3.10] COPR and it showed us 140 packages affected by this change. To avoid any breakages we plan to do a mass spec update to explicitly BuildRequire python-setuptools.


== Feedback ==
== Feedback ==

Revision as of 12:15, 11 March 2021


python3-devel won't pull in setuptools by default in rpmbuild

Summary

python3-devel currently requires python-setuptools if rpmbuild is used. Due to a change in RPM generators, this is not needed anymore hence we are removing it.

Owner

Current status

  • Targeted release: Fedora Linux 35
  • Last updated: 2021-03-11
  • 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

python3-devel currently requires python-setuptools if rpmbuild is used. This was needed for RPM generators but since it adapted pyparsing, this is not needed anymore hence we are removing it. We tested this change in python3.10 COPR and it showed us 140 packages affected by this change. To avoid any breakages we plan to do a mass spec update to explicitly BuildRequire python-setuptools.

Feedback

Benefit to Fedora

From Fedora Packaging Guidelines: It is important that your package list all necessary build dependencies using the BuildRequires: tag. As our testing showed, this is not true for many packages. Some of them can successfully build either with or without setuptools (they use try-except import and fallback to distutils from the standard library). Such packages are especially dangerous when not BuildRequiring setuptools -- they can produce different results depending on the presence of setuptools: either an .egg-info metadata directory (w/setuptools) or .egg-info text file (w/distutils). RPM has troubles when upgrading directories to files.

Scope

We will coordinate the work in a side tag and merge when ready.

  • Proposal owners:
    1. Test affected packages in Copr.
    2. Do the mass spec update to introduce missing BuildRequire to them.
  • Other developers: There should be no additional work for other developers. BuildRequiring setuptools might not be enough for all packages, but we will take care of them manually if it happens.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: N/A

Upgrade/compatibility impact

All affected packages needs rebuild after the mass spec update.

How To Test

Interested testers can push explicit BuildRequire on setuptools to the distgit and see in our Python 3.10 COPR whether the package starts to build again. Webhook should trigger rebuild automatically on new commit in rawhide branch.

User Experience

Regular distro users shouldn't notice any change in system behaviour.

Dependencies

140 packages will need to BuildRequire setuptools explicitly. This will be done by the mass spec update.

Contingency Plan

  • Contingency mechanism: Commit removing Requires on python-setuptools will be reverted.
  • Contingency deadline: mass rebuild
  • Blocks release? No

Documentation

N/A (not a System Wide Change)

Release Notes