From Fedora Project Wiki
Line 51: Line 51:


'''Packages to be updated:'''
'''Packages to be updated:'''
GeographicLib        rmattes smani  
* GeographicLib        rmattes smani  
R2spec              pingou  
* R2spec              pingou  
barman              slaanesh tsao  
* barman              slaanesh tsao  
btrfs-progs          ignatenkobrain josef ngompa sandeen  
* btrfs-progs          ignatenkobrain josef ngompa sandeen  
bumpversion          duriantang jdornak  
* bumpversion          duriantang jdornak  
cranc                lenkaseg  
* cranc                lenkaseg  
electrum            tredaell  
* electrum            tredaell  
gajim                michich  
* gajim                michich  
gns3-gui            kwizart  
* gns3-gui            kwizart  
gns3-net-converter  kwizart  
* gns3-net-converter  kwizart  
kismon              fab  
* kismon              fab  
langtable            mfabian  
* langtable            mfabian  
lecm                spredzy  
* lecm                spredzy  
legofy              lkf williamjmorenor  
* legofy              lkf williamjmorenor  
mapserver            devrim jujens oliver pali smani  
* mapserver            devrim jujens oliver pali smani  
mysql-connector-python hhorak hubbitus hvad mschorm  
* mysql-connector-python hhorak hubbitus hvad mschorm  
percol              hubbitus  
* percol              hubbitus  
porcupine            kushal  
* porcupine            kushal  
protonvpn-cli        calexandru2018 jflory7  
* protonvpn-cli        calexandru2018 jflory7  
pyhunspell          mfabian  
* pyhunspell          mfabian  
pyjokes              pbrobinson pwhalen  
* pyjokes              pbrobinson pwhalen  
pyscard              orion sjenning  
* pyscard              orion sjenning  
python-Pyped        uggla  
* python-Pyped        uggla  
python-ROPGadget    mikep  
* python-ROPGadget    mikep  
python-acoustid      terjeros  
* python-acoustid      terjeros  
python-aiodns        fantom  
* python-aiodns        fantom  
python-arviz        sergiopr  
* python-arviz        sergiopr  
python-b2sdk        jonny  
* python-b2sdk        jonny  
python-btchip        jonny xenithorb  
* python-btchip        jonny xenithorb  
python-cerealizer    spot  
* python-cerealizer    spot  
python-cmigemo      hubbitus  
* python-cmigemo      hubbitus  
python-construct    moezroy terjeros  
* python-construct    moezroy terjeros  
python-css-parser    zbyszek  
* python-css-parser    zbyszek  
python-debrepo      ktdreyer  
* python-debrepo      ktdreyer  
python-dialog        mjakubicek noodles raphgro sundaram zbyszek  
* python-dialog        mjakubicek noodles raphgro sundaram zbyszek  
python-django-contact-form mrunge  
* python-django-contact-form mrunge  
python-django-registration orphan  
* python-django-registration orphan  
python-django-reversion mrunge  
* python-django-reversion mrunge  
python-django-tagging jdornak mrunge piotrp  
* python-django-tagging jdornak mrunge piotrp  
python-dtfabric      fab  
* python-dtfabric      fab  
python-flake8-docstrings cottsay  
* python-flake8-docstrings cottsay  
python-flask-sphinx-themes devrim orphan  
* python-flask-sphinx-themes devrim orphan  
python-formats      uggla  
* python-formats      uggla  
python-fypp          rathann  
* python-fypp          rathann  
python-google-i18n-address pwouters  
* python-google-i18n-address pwouters  
python-googletrans  lyessaadi  
* python-googletrans  lyessaadi  
python-heapdict      qulogic  
* python-heapdict      qulogic  
python-hgdistver    fab  
* python-hgdistver    fab  
python-html5-parser  kevin  
* python-html5-parser  kevin  
python-humblewx      rickardlindberg  
* python-humblewx      rickardlindberg  
python-i3ipc        msimacek  
* python-i3ipc        msimacek  
python-kerberos      rcritten simo  
* python-kerberos      rcritten simo  
python-lark-parser  totol  
* python-lark-parser  totol  
python-logfury      jonny  
* python-logfury      jonny  
python-mailmerge    bex  
* python-mailmerge    bex  
python-meld3        kevin stevetraylen tsao  
* python-meld3        kevin stevetraylen tsao  
python-mnemonic      jonny  
* python-mnemonic      jonny  
python-nbxmpp        michich  
* python-nbxmpp        michich  
python-oauth2        ignatenkobrain pjp spot sundaram  
* python-oauth2        ignatenkobrain pjp spot sundaram  
python-poyo          chedi wakko666  
* python-poyo          chedi wakko666  
python-precis_i18n  michich  
* python-precis_i18n  michich  
python-proteus      sharkcz  
* python-proteus      sharkcz  
python-publicsuffix2 rathann  
* python-publicsuffix2 rathann  
python-pulsectl      pfrields  
* python-pulsectl      pfrields  
python-pycha        potty sharkcz  
* python-pycha        potty sharkcz  
python-pylons-sphinx-themes abompard  
* python-pylons-sphinx-themes abompard  
python-pymc3        sergiopr  
* python-pymc3        sergiopr  
python-pyotp        icon  
* python-pyotp        icon  
python-pyroute2      jirka pavlix psavelye  
* python-pyroute2      jirka pavlix psavelye  
python-pytest-astropy-header sergiopr  
* python-pytest-astropy-header sergiopr  
python-pytest-watch  jujens  
* python-pytest-watch  jujens  
python-relatorio    sharkcz  
* python-relatorio    sharkcz  
python-rmtest        lberk mgoodwin nathans  
* python-rmtest        lberk mgoodwin nathans  
python-shamir-mnemonic jonny  
* python-shamir-mnemonic jonny  
python-smbc          twaugh zdohnal  
* python-smbc          twaugh zdohnal  
python-spdx          jbertozzi  
* python-spdx          jbertozzi  
python-spdx-lookup  jbertozzi  
* python-spdx-lookup  jbertozzi  
python-tempdir      rathann  
* python-tempdir      rathann  
python-tortilla      uggla  
* python-tortilla      uggla  
python-trezor        jonny  
* python-trezor        jonny  
python-unidecode    pjp sundaram  
* python-unidecode    pjp sundaram  
python-unidiff      dcallagh  
* python-unidiff      dcallagh  
python-upt-cpan      jbertozzi  
* python-upt-cpan      jbertozzi  
python-upt-fedora    jbertozzi  
python-upt-fedora    jbertozzi  
python-upt-pypi      jbertozzi  
python-upt-pypi      jbertozzi  

Revision as of 07:31, 15 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-15
  • 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 python3-setuptools if rpmbuild is used. This was needed for RPM generators but since it adapted packaging, this is not needed anymore hence we are removing it. We tested this change in the past when we asked other maintainers to explicitly BuildRequire python-3setuptools. Some of them responded, some not. Our analysis was based on greping sources for any mention of setuptools, such as import setuptools or from setuptools import. Nowadays, the same grep based query showed us roughly the same number (about 335 + 72 that failed to be analysed) of packages relying on python3-setuptools. To see direct impact we removed this Require from python-devel package used in testing python3.10 COPR. It showed us 140 packages affected by this change. Even though it is fewer than expected 300+ packages, to avoid any breakages we plan to do a mass spec update on all of them to explicitly BuildRequire python3-setuptools. Some of them might build because they fallback to distutils if dependency on python3-setuptools is not satisfied.

Below is the list of packages we plan to update with mass spec rebuild. If you wish to opt out of this update, please edit this page and move your package to the list of packages to be ignored.

Packages to be updated:

  • GeographicLib rmattes smani
  • R2spec pingou
  • barman slaanesh tsao
  • btrfs-progs ignatenkobrain josef ngompa sandeen
  • bumpversion duriantang jdornak
  • cranc lenkaseg
  • electrum tredaell
  • gajim michich
  • gns3-gui kwizart
  • gns3-net-converter kwizart
  • kismon fab
  • langtable mfabian
  • lecm spredzy
  • legofy lkf williamjmorenor
  • mapserver devrim jujens oliver pali smani
  • mysql-connector-python hhorak hubbitus hvad mschorm
  • percol hubbitus
  • porcupine kushal
  • protonvpn-cli calexandru2018 jflory7
  • pyhunspell mfabian
  • pyjokes pbrobinson pwhalen
  • pyscard orion sjenning
  • python-Pyped uggla
  • python-ROPGadget mikep
  • python-acoustid terjeros
  • python-aiodns fantom
  • python-arviz sergiopr
  • python-b2sdk jonny
  • python-btchip jonny xenithorb
  • python-cerealizer spot
  • python-cmigemo hubbitus
  • python-construct moezroy terjeros
  • python-css-parser zbyszek
  • python-debrepo ktdreyer
  • python-dialog mjakubicek noodles raphgro sundaram zbyszek
  • python-django-contact-form mrunge
  • python-django-registration orphan
  • python-django-reversion mrunge
  • python-django-tagging jdornak mrunge piotrp
  • python-dtfabric fab
  • python-flake8-docstrings cottsay
  • python-flask-sphinx-themes devrim orphan
  • python-formats uggla
  • python-fypp rathann
  • python-google-i18n-address pwouters
  • python-googletrans lyessaadi
  • python-heapdict qulogic
  • python-hgdistver fab
  • python-html5-parser kevin
  • python-humblewx rickardlindberg
  • python-i3ipc msimacek
  • python-kerberos rcritten simo
  • python-lark-parser totol
  • python-logfury jonny
  • python-mailmerge bex
  • python-meld3 kevin stevetraylen tsao
  • python-mnemonic jonny
  • python-nbxmpp michich
  • python-oauth2 ignatenkobrain pjp spot sundaram
  • python-poyo chedi wakko666
  • python-precis_i18n michich
  • python-proteus sharkcz
  • python-publicsuffix2 rathann
  • python-pulsectl pfrields
  • python-pycha potty sharkcz
  • python-pylons-sphinx-themes abompard
  • python-pymc3 sergiopr
  • python-pyotp icon
  • python-pyroute2 jirka pavlix psavelye
  • python-pytest-astropy-header sergiopr
  • python-pytest-watch jujens
  • python-relatorio sharkcz
  • python-rmtest lberk mgoodwin nathans
  • python-shamir-mnemonic jonny
  • python-smbc twaugh zdohnal
  • python-spdx jbertozzi
  • python-spdx-lookup jbertozzi
  • python-tempdir rathann
  • python-tortilla uggla
  • python-trezor jonny
  • python-unidecode pjp sundaram
  • python-unidiff dcallagh
  • python-upt-cpan jbertozzi

python-upt-fedora jbertozzi python-upt-pypi jbertozzi python-upt-rubygems jbertozzi python-xlwt leamas moezroy rathann qr-code-generator xvitaly rpmspectool nphilipp sepolicy_analysis vmojzis stomppy stevetraylen trytond-account sharkcz trytond-account-be sharkcz trytond-account-de-skr03 sharkcz trytond-account-invoice sharkcz trytond-account-invoice-history sharkcz trytond-account-invoice-line-standalone sharkcz trytond-account-product sharkcz trytond-account-statement sharkcz trytond-account-stock-anglo-saxon sharkcz trytond-account-stock-continental sharkcz trytond-analytic-account sharkcz trytond-analytic-invoice sharkcz trytond-analytic-purchase sharkcz trytond-analytic-sale sharkcz trytond-company sharkcz trytond-company-work-time sharkcz trytond-country sharkcz trytond-currency sharkcz trytond-dashboard sharkcz trytond-google-maps sharkcz trytond-ldap-authentication sharkcz trytond-party sharkcz trytond-party-siret sharkcz trytond-product sharkcz trytond-product-cost-fifo sharkcz trytond-product-cost-history sharkcz trytond-product-price-list sharkcz trytond-project sharkcz trytond-project-plan sharkcz trytond-project-revenue sharkcz trytond-purchase sharkcz trytond-purchase-invoice-line-standalone sharkcz trytond-sale sharkcz trytond-sale-opportunity sharkcz trytond-sale-price-list sharkcz trytond-stock sharkcz trytond-stock-forecast sharkcz trytond-stock-inventory-location sharkcz trytond-stock-location-sequence sharkcz trytond-stock-product-location sharkcz trytond-stock-supply sharkcz trytond-stock-supply-day sharkcz trytond-timesheet sharkcz txt2tags junghans ubertooth avsej unicorn fab mikep upt jbertozzi winpdb spot yawn jsafrane miminar vcrhonek

Packages to be ignored: fontforge - false positive xrootd - false positive

Packages that failed to be analysed: 0ad ignatenkobrain pcpa pwalter GConf2 alexl buc caillon caolanm mbarnes rhughes ssp walters TeXmacs jnovy orion anaconda anaconda-maint jkonecny m4rtink rvykydal sbueno vpodzime vponcova astrometry lupinix bamf jspaleta salimma boost denisarnaud jwakely trodgers colobot suve cozy suve cppcheck c72578 jussilehtola sgrubb criu adrian avagin cxxtest mgieseki dnf dmach jmracek jrohel mblaha pkratoch eclipse-pydev jjohnstn orphan edk2 bonzini crobinso kraxel etcd cypret eparis gscrivano jchaloup lsm5 strigazi walters fonts-tweak-tool jamesni tagoh gdl orion gimp-resynthesizer luya global cheeselee landgraf google-noto-emoji-fonts mfabian pwu gst-devtools limb guitarix bsjones tartina verdurin hfg-gmuend-openmoji-fonts mavit kernel acaringi airlied ajax bskeggs eparis glisse jcline jforbes jwboyer jwilson jwrdegoede kernel-maint lgoncalv linville myoung nhorman patrickt quintela sandeen steved kernel-tools acaringi jcline jforbes jwboyer lgoncalv patrickt pbrobinson kicad avigne coremodule lkundrak stevenfalco tnorth lammps ellio167 junghans libabigail dodji sinnykumari libguestfs mdbooth rjones libiptcdata dcm hobbes1069 jchaloup libkkc ueno libproxy amigadave cicku danw npmccallum libreoffice caolanm dtardon erack sbergmann libsvm besser82 jjames link-grammar devos fabiand limb nest ankursinha nispor cathay4t ffmancera opal-prd hegdevasant openbabel alexpl jussilehtola rathann openexr hobbes1069 proxyfuzz psklenar python-OBD rathann python-caja monnerat raveit65 python-flask-rstpages rmarko python-graph-tool ankursinha python-matrix-nio ankursinha python-pivy hobbes1069 zultron python-pycha potty sharkcz python-pyqtgraph swt2c python-pytest-spec fab python-requests-cache codeblock hobbes1069 python-uranium-lulzbot orphan python-webpy mrunge python-wsaccel jujens qemu berrange bonzini crobinso dwmw2 ehabkost jforbes lkundrak quintela rjones root ellert rust-pyo3 decathorpe rust-python3-sys decathorpe seqan2 sagitter sugar-browse aperezbios callkalpa chimosky manuq pbrobinson sugar-calculator callkalpa chimosky pbrobinson tuxbrewr suricata jtaylor sgrubb texlive jnovy spot than tiled ablu suve tsung cicku tartare unity-gtk-module besser82 vdrift limb rmattes voikko-fi vpv weechat asrob gchamoul hguemar niveusluna salimma stingray xemacs-packages-extra jjames stevetraylen zinnia liangsuilong pwu

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

This page is a documentation, this is not a user facing change.

Release Notes