Setuptools 82+
Summary
Update to a new upstream release of python-setuptools that is not completely compatible with previous releases. Most notably, pkg_resources module was removed. This is a breaking change and Fedora packages that use pkg_resources should use the importlib.resources and importlib.metadata projects for common use cases. There might be other breaking changes. We estimate about ~130 Fedora Rawhide packages to fail to build due to this upgrade (as of March 2026), more packages might be affected if they use pkg_resources on runtime. A deprecated compatibility package python-setuptools80 will be provided for packages that cannot migrate away from pkg_resources yet.
Owner
- Name: Tomáš Hrnčiar
- Email: thrnciar@redhat.com
Current status
- Targeted release: Fedora Linux 45
- Last updated: 2026-05-12
- Announced
- Discussion thread
- FESCo issue: #3590
- Tracker bug: #2461178
- Release notes tracker: #397
Detailed Description
Setuptools is a package development process library designed to facilitate packaging Python projects by enhancing the former Python standard library distutils (distribution utilities). It changes fast and it often introduces breaking changes such as the removal of pkg_resources in version 82.x.x which was deprecated since April 2021.
There is no straightforward migration guide, the codebase needs to be adapted to modern standards. As a temporary workaround, we plan to package setuptools compat package, which will provide pkg_resources for packages that haven't updated their codebase yet. Alternatively, there is an ongoing upstream discussion about releasing pkg_resources as a standalone package. If it ever happens, we might consider packaging it into Fedora.
With the compat package in place, maintainers can add BuildRequires: python3-pkg_resources to use the pkg_resources module on build time or Requires: python3-pkg_resources for runtime. Alternatively, if the comapt package is needed for other reasons than pkg_resources, packages can (Build)Require python3-setuptools < 82, python3dist(setuptools) < 82~~ or similar. We strongly recommend working with the upstream and migrating projects to more modern tools.
List of packages that failed in our testing copr but did not fail in a control copr as of 2026-02-17:
See more up-to-date results at https://copr.fedorainfracloud.org/coprs/thrnciar/python-setuptools/packages/
Maintainers by package:
TurboGears2 cverna ondrejj arandr mrc0mmand beaker martstyk buildstream atim jjardon chatty lihis mcrha torbuntu compose-utils carlwgeorge lsedlar emacs-jedi melmorabity gns3-net-converter kwizart home-assistant-cli thebeanogamer input-remapper alexpl nodejs20 aradchen jstanek tjuhasz oci-cli mhayden neil paperwork qulogic protobuf adrian jonathanspw mizdebsk orion salimma pygame jskarvad limb pyp2rpm gordonmessmer python-TestSlide dcavalca salimma python-XStatic nikromen rdopiera python-XStatic-Angular-UUID rdopiera python-XStatic-Angular-Vis rdopiera python-XStatic-Bootstrap-SCSS nikromen rdopiera python-XStatic-DataTables dmsimard python-XStatic-FileSaver rdopiera python-XStatic-JS-Yaml rdopiera python-XStatic-Json2yaml rdopiera python-XStatic-Patternfly dmsimard python-XStatic-Patternfly-Bootstrap-Treeview dmsimard python-accelerate xanderlent python-astroid bcl limb mrunge orion python-astroquery sergiopr python-avocado cleber python-binary-manager dcavalca python-catkin_tools ankursinha cottsay python-click-plugins qulogic python-cyclopts r0x0d python-datasets xanderlent python-decopatch zbyszek python-deprecated mfocko ttomecek python-dijitso limb python-dropbox limb python-eccodes jdekloe python-envisage orion python-fastmcp r0x0d python-fastprogress sergiopr python-flufl-bounce abompard python-gearbox kevin ondrejj python-genshi fschwarz python-geotiler iztokf python-giacpy sagitter python-google-cloud-core fkolwa jonathanspw python-google-cloud-dns jorti python-iniparse aekoroglu python-jenkins-job-builder ignatenkobrain ktdreyer sicherha python-jupyter-server lbalhar python-lazr-config abompard python-lazr-delegates abompard python-lesscpy abbra python-linuxdoc ankursinha python-lion-pytorch trix python-makefun orion zbyszek python-mathics-scanner dcavalca python-migen somlo python-moddb bunnyapocalypse farchord python-mwclient adamwill python-nagiosplugin aekoroglu slaanesh python-opcodes trix python-opfunu iztokf python-paste abompard ondrejj python-peachpy trix python-phply sshil python-plaster-pastedeploy abompard python-pluginlib aviso python-prettyprinter carlwgeorge python-pybtex-docutils jjames python-pymediainfo vascom python-pyramid kevin python-pyramid-mako kevin python-pyramid-tm kevin python-pysb zbyszek python-pyspike ankursinha python-pytest-cases zbyszek python-pytest-harvest zbyszek python-pytest-tornado qulogic python-qudida thunderbirdtr python-repoze-sphinx-autointerface jjames lbalhar python-repoze-who cverna ondrejj python-requirements-parser gotmax23 python-scales lbalhar lkundrak python-sentry-sdk orange-kao pwouters rominf rommell python-sphinx-kr-theme dcavalca salimma python-sphinxcontrib-autoprogram maha python-sphinxcontrib-chapeldomain fed500 python-sport-activities-features gui1ty python-ssdeep suve python-stone limb python-subliminal jorti python-tgext-tw2 ondrejj python-tilestache cottsay python-tldextract fschwarz nb turboben python-torchaudio trix python-torchdata trix python-torchdiffeq trix python-torchsde trix python-torchtext trix python-torchvision trix python-traitsui ignatenkobrain orion python-tw2-core ondrejj python-tw2-forms ondrejj python-ufo2ft fed500 music python-vcstool cottsay python-vsts jcline python-webrtcvad matiwari python-wheel0.37 churchyard python-wxpython4 swt2c python-xlib orion rcallicotte python-zope-event abompard orion python3-mallard-ducktype amigadave roca-detect sdgathman supervisor aekoroglu thefuck principis tito frostyx maxamillion vdirsyncer astra mathstuf salimma whipper mavit
Packages by maintainer:
abbra python-lesscpy abompard python-flufl-bounce python-lazr-config python-lazr-delegates python-paste python-plaster-pastedeploy python-zope-event adamwill python-mwclient adrian protobuf aekoroglu python-iniparse python-nagiosplugin supervisor alexpl input-remapper amigadave python3-mallard-ducktype ankursinha python-catkin_tools python-linuxdoc python-pyspike aradchen nodejs20 astra vdirsyncer atim buildstream aviso python-pluginlib bcl python-astroid bunnyapocalypse python-moddb carlwgeorge compose-utils python-prettyprinter churchyard python-wheel0.37 cleber python-avocado cottsay python-catkin_tools python-tilestache python-vcstool cverna TurboGears2 python-repoze-who dcavalca python-TestSlide python-binary-manager python-mathics-scanner python-sphinx-kr-theme dmsimard python-XStatic-DataTables python-XStatic-Patternfly python-XStatic-Patternfly-Bootstrap-Treeview farchord python-moddb fed500 python-sphinxcontrib-chapeldomain python-ufo2ft fkolwa python-google-cloud-core frostyx tito fschwarz python-genshi python-tldextract gordonmessmer pyp2rpm gotmax23 python-requirements-parser gui1ty python-sport-activities-features ignatenkobrain python-jenkins-job-builder python-traitsui iztokf python-geotiler python-opfunu jcline python-vsts jdekloe python-eccodes jjames python-pybtex-docutils python-repoze-sphinx-autointerface jjardon buildstream jonathanspw protobuf python-google-cloud-core jorti python-google-cloud-dns python-subliminal jskarvad pygame jstanek nodejs20 kevin python-gearbox python-pyramid python-pyramid-mako python-pyramid-tm ktdreyer python-jenkins-job-builder kwizart gns3-net-converter lbalhar python-jupyter-server python-repoze-sphinx-autointerface python-scales lihis chatty limb pygame python-astroid python-dijitso python-dropbox python-stone lkundrak python-scales lsedlar compose-utils maha python-sphinxcontrib-autoprogram martstyk beaker mathstuf vdirsyncer matiwari python-webrtcvad mavit whipper maxamillion tito mcrha chatty melmorabity emacs-jedi mfocko python-deprecated mhayden oci-cli mizdebsk protobuf mrc0mmand arandr mrunge python-astroid music python-ufo2ft nb python-tldextract neil oci-cli nikromen python-XStatic python-XStatic-Bootstrap-SCSS ondrejj TurboGears2 python-gearbox python-paste python-repoze-who python-tgext-tw2 python-tw2-core python-tw2-forms orange-kao python-sentry-sdk orion protobuf python-astroid python-envisage python-makefun python-traitsui python-xlib python-zope-event principis thefuck pwouters python-sentry-sdk qulogic paperwork python-click-plugins python-pytest-tornado r0x0d python-cyclopts python-fastmcp rcallicotte python-xlib rdopiera python-XStatic python-XStatic-Angular-UUID python-XStatic-Angular-Vis python-XStatic-Bootstrap-SCSS python-XStatic-FileSaver python-XStatic-JS-Yaml python-XStatic-Json2yaml rominf python-sentry-sdk rommell python-sentry-sdk sagitter python-giacpy salimma protobuf python-TestSlide python-sphinx-kr-theme vdirsyncer sdgathman roca-detect sergiopr python-astroquery python-fastprogress sicherha python-jenkins-job-builder slaanesh python-nagiosplugin somlo python-migen sshil python-phply suve python-ssdeep swt2c python-wxpython4 thebeanogamer home-assistant-cli thunderbirdtr python-qudida tjuhasz nodejs20 torbuntu chatty trix python-lion-pytorch python-opcodes python-peachpy python-torchaudio python-torchdata python-torchdiffeq python-torchsde python-torchtext python-torchvision ttomecek python-deprecated turboben python-tldextract vascom python-pymediainfo xanderlent python-accelerate python-datasets zbyszek python-decopatch python-makefun python-pysb python-pytest-cases python-pytest-harvest
We will be slowly crushing the failures and opening PRs when we actually update setuptools.
https://src.fedoraproject.org/rpms/ansible-bender/pull-request/5 https://src.fedoraproject.org/rpms/atomic-reactor/pull-request/13 https://src.fedoraproject.org/rpms/beaker/pull-request/3 https://src.fedoraproject.org/rpms/buildstream/pull-request/10 https://src.fedoraproject.org/rpms/chatty/pull-request/2 https://src.fedoraproject.org/rpms/compose-utils/pull-request/4 https://src.fedoraproject.org/rpms/deluge/pull-request/7 https://src.fedoraproject.org/rpms/emacs-jedi/pull-request/1 https://src.fedoraproject.org/rpms/git-fame/pull-request/1 https://src.fedoraproject.org/rpms/git-review/pull-request/8 https://src.fedoraproject.org/rpms/gns3-net-converter/pull-request/2 https://src.fedoraproject.org/rpms/grpc/pull-request/41 https://src.fedoraproject.org/rpms/input-remapper/pull-request/3 https://src.fedoraproject.org/rpms/oci-cli/pull-request/76 https://src.fedoraproject.org/rpms/osbs-client/pull-request/13 https://src.fedoraproject.org/rpms/paperwork/pull-request/2 https://src.fedoraproject.org/rpms/pew/pull-request/2 https://src.fedoraproject.org/rpms/protobuf/pull-request/36 https://src.fedoraproject.org/rpms/pygame/pull-request/7 https://src.fedoraproject.org/rpms/pyp2rpm/pull-request/5 https://src.fedoraproject.org/rpms/python-XStatic-Angular-UUID/pull-request/1 https://src.fedoraproject.org/rpms/python-XStatic-Angular-Vis/pull-request/1 https://src.fedoraproject.org/rpms/python-XStatic-Bootstrap-SCSS/pull-request/1 https://src.fedoraproject.org/rpms/python-XStatic-DataTables/pull-request/2 https://src.fedoraproject.org/rpms/python-XStatic-FileSaver/pull-request/1 https://src.fedoraproject.org/rpms/python-XStatic-JS-Yaml/pull-request/2 https://src.fedoraproject.org/rpms/python-XStatic-Json2yaml/pull-request/1 https://src.fedoraproject.org/rpms/python-XStatic-Patternfly-Bootstrap-Treeview/pull-request/2 https://src.fedoraproject.org/rpms/python-XStatic-Patternfly/pull-request/2 https://src.fedoraproject.org/rpms/python-XStatic/pull-request/4 https://src.fedoraproject.org/rpms/python-astroid/pull-request/12 https://src.fedoraproject.org/rpms/python-astroquery/pull-request/2 https://src.fedoraproject.org/rpms/python-avocado/pull-request/54 https://src.fedoraproject.org/rpms/python-binary-manager/pull-request/1 https://src.fedoraproject.org/rpms/python-bucky/pull-request/4 https://src.fedoraproject.org/rpms/python-catkin_tools/pull-request/3 https://src.fedoraproject.org/rpms/python-cerberus/pull-request/5 https://src.fedoraproject.org/rpms/python-click-man/pull-request/15 https://src.fedoraproject.org/rpms/python-click-plugins/pull-request/2 https://src.fedoraproject.org/rpms/python-decopatch/pull-request/2 https://src.fedoraproject.org/rpms/python-deprecated/pull-request/39 https://src.fedoraproject.org/rpms/python-dijitso/pull-request/1 https://src.fedoraproject.org/rpms/python-dropbox/pull-request/3 https://src.fedoraproject.org/rpms/python-eccodes/pull-request/2 https://src.fedoraproject.org/rpms/python-envisage/pull-request/4 https://src.fedoraproject.org/rpms/python-fastprogress/pull-request/1 https://src.fedoraproject.org/rpms/python-flufl-bounce/pull-request/2 https://src.fedoraproject.org/rpms/python-formencode/pull-request/1 https://src.fedoraproject.org/rpms/python-fs/pull-request/9 https://src.fedoraproject.org/rpms/python-gearbox/pull-request/3 https://src.fedoraproject.org/rpms/python-genshi/pull-request/4 https://src.fedoraproject.org/rpms/python-geotiler/pull-request/5 https://src.fedoraproject.org/rpms/python-google-cloud-core/pull-request/3 https://src.fedoraproject.org/rpms/python-google-cloud-dns/pull-request/1 https://src.fedoraproject.org/rpms/python-impacket/pull-request/7 https://src.fedoraproject.org/rpms/python-incremental/pull-request/3 https://src.fedoraproject.org/rpms/python-jenkins-job-builder/pull-request/2 https://src.fedoraproject.org/rpms/python-lazr-config/pull-request/1 https://src.fedoraproject.org/rpms/python-lazr-delegates/pull-request/5 https://src.fedoraproject.org/rpms/python-lazr-restfulclient/pull-request/6 https://src.fedoraproject.org/rpms/python-lesscpy/pull-request/11 https://src.fedoraproject.org/rpms/python-linuxdoc/pull-request/5 https://src.fedoraproject.org/rpms/python-makefun/pull-request/2 https://src.fedoraproject.org/rpms/python-mathics-scanner/pull-request/1 https://src.fedoraproject.org/rpms/python-migen/pull-request/1 https://src.fedoraproject.org/rpms/python-moddb/pull-request/1 https://src.fedoraproject.org/rpms/python-mwclient/pull-request/2 https://src.fedoraproject.org/rpms/python-nagiosplugin/pull-request/1 https://src.fedoraproject.org/rpms/python-onionbalance/pull-request/3 https://src.fedoraproject.org/rpms/python-opcodes/pull-request/1 https://src.fedoraproject.org/rpms/python-opfunu/pull-request/2 https://src.fedoraproject.org/rpms/python-paste-script/pull-request/2 https://src.fedoraproject.org/rpms/python-paste/pull-request/10 https://src.fedoraproject.org/rpms/python-phply/pull-request/3 https://src.fedoraproject.org/rpms/python-plaster-pastedeploy/pull-request/2 https://src.fedoraproject.org/rpms/python-pluginlib/pull-request/1 https://src.fedoraproject.org/rpms/python-py/pull-request/7 https://src.fedoraproject.org/rpms/python-pybtex-docutils/pull-request/2 https://src.fedoraproject.org/rpms/python-pyramid-tm/pull-request/4 https://src.fedoraproject.org/rpms/python-pyramid/pull-request/8 https://src.fedoraproject.org/rpms/python-pysb/pull-request/4 https://src.fedoraproject.org/rpms/python-pyspike/pull-request/6 https://src.fedoraproject.org/rpms/python-pytest-cases/pull-request/3 https://src.fedoraproject.org/rpms/python-pytest-harvest/pull-request/2 https://src.fedoraproject.org/rpms/python-pytest-tornado/pull-request/1 https://src.fedoraproject.org/rpms/python-qudida/pull-request/1 https://src.fedoraproject.org/rpms/python-repoze-who/pull-request/2 https://src.fedoraproject.org/rpms/python-requirements-parser/pull-request/1 https://src.fedoraproject.org/rpms/python-scales/pull-request/5 https://src.fedoraproject.org/rpms/python-sentry-sdk/pull-request/31 https://src.fedoraproject.org/rpms/python-sphinx-kr-theme/pull-request/1 https://src.fedoraproject.org/rpms/python-sphinxcontrib-autoprogram/pull-request/4 https://src.fedoraproject.org/rpms/python-sphinxcontrib-chapeldomain/pull-request/1 https://src.fedoraproject.org/rpms/python-spyking-circus/pull-request/1 https://src.fedoraproject.org/rpms/python-ssdeep/pull-request/2 https://src.fedoraproject.org/rpms/python-stone/pull-request/3 https://src.fedoraproject.org/rpms/python-subliminal/pull-request/1 https://src.fedoraproject.org/rpms/python-tilestache/pull-request/3 https://src.fedoraproject.org/rpms/python-traitsui/pull-request/3 https://src.fedoraproject.org/rpms/python-tw2-core/pull-request/4 https://src.fedoraproject.org/rpms/python-tw2-forms/pull-request/2 https://src.fedoraproject.org/rpms/python-vcstool/pull-request/2 https://src.fedoraproject.org/rpms/python-vsts/pull-request/2 https://src.fedoraproject.org/rpms/python-webrtcvad/pull-request/1 https://src.fedoraproject.org/rpms/python-wheel0.37/pull-request/9 https://src.fedoraproject.org/rpms/python-wxpython4/pull-request/6 https://src.fedoraproject.org/rpms/python-xlib/pull-request/6 https://src.fedoraproject.org/rpms/python-zope-event/pull-request/11 https://src.fedoraproject.org/rpms/python3-mallard-ducktype/pull-request/2 https://src.fedoraproject.org/rpms/roca-detect/pull-request/2 https://src.fedoraproject.org/rpms/supervisor/pull-request/5 https://src.fedoraproject.org/rpms/thefuck/pull-request/4 https://src.fedoraproject.org/rpms/thonny/pull-request/29 https://src.fedoraproject.org/rpms/tito/pull-request/5 https://src.fedoraproject.org/rpms/trac/pull-request/3 https://src.fedoraproject.org/rpms/unicorn/pull-request/3 https://src.fedoraproject.org/rpms/vdirsyncer/pull-request/2 https://src.fedoraproject.org/rpms/whipper/pull-request/2
Feedback
Benefit to Fedora
Fedora offers cutting-edge technologies for Python and setuptools is one of the most important Python packages. By doing this update we bring users the latest features that setuptools offers and also we enable Fedora + to receive future updates as well.
Scope
- Proposal owners: update python-setuptools to 82.x.x or newer, package python-setuptools80, open bugzillas, provide help
- Other developers: report problems to the upstream and backport patches to the affected packages. The impact can be tested using copr repository where setuptools 82+ has been built.
- Release engineering: #
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy:
Upgrade/compatibility impact
There is a clean upgrade path from current version to python-setuptools 82+. Fedora users using RPM-packaged setuptools will use setuptools 82+ by default.
Early Testing (Optional)
Do you require 'QA Blueprint' support? N
How To Test
- Find the package you want to update in the copr repository and check the build logs to determine the fail cause.
- Work with the upstream to resolve the issue or drop the usage of pkg_resources module.
- When updating the package, you can test it using the same copr repository where the latest version of setuptools has been built.
- Let us know if something doesn't work as it should.
User Experience
Regular distro users shouldn't notice any change in setuptools behavior, except for upstream-intended changes.
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) Provide a compat package with setuptools 80.10.2
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change)
Documentation
This page is the documentation.
