From Fedora Project Wiki

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

Current status

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

Setuptools changelog

This page is the documentation.

Release Notes