Hey Pythonistas.
The Python standard library distutils module will be removed from Python 3.12+
https://peps.python.org/pep-0632/
As preparatory work, we build all python packages in a Copr repository with Python 3.11 sans distutils:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/
I've rebuilt all the failed builds again and also in a control-group copr:
https://copr.fedorainfracloud.org/coprs/g/python/python-with-distutils/
250 packages that failed to build without distuils but succeeded with distutils need to be examined and categorized into various different groups:
- package uses distutils only if sys.version_info < (3, 12) -- this is OK but still fails here - package uses distutils unconditionally and the package needs to be fixed - package uses another package that uses distutils unconditionally and the dependency needs to be fixed
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
However, upstream involvement is recommended.
A few bugzillas were opened wrt this and I plan to open more:
https://bugzilla.redhat.com/showdependencytree.cgi?id=PYTHON3.12&hide_re...
I've also oepned some upstream Pull Requests: https://github.com/pypa/pip/pull/11522 https://github.com/pypa/setuptools/pull/3636 https://pagure.io/fedora-gather-easyfix/pull-request/10 https://github.com/filbranden/dnf-plugins-perfmetrics/pull/1 https://github.com/rpm-software-management/deltarpm/pull/17
Could you please help me by looking at your failed packages and talking to your upstreams? Feel free to reply with links, questions, bugzillas...
To test this locally, you can do something like:
1. fedpkg clone $PKG && cd $PKG 2. mock -r fedora-rawhide-x86_64 init 3. mock -r fedora-rawhide-x86_64 install python3-devel 4. sudo rm -rf /var/lib/mock/fedora-rawhide-x86_64/root/usr/lib64/python3.11/distutils/ 4. fedpkg mockbuild -N
Thanks!
------------------------
[^1]: Unfortunately, is not 100 % compatible with the removed standard library one distutils: https://github.com/pypa/setuptools/issues/3532
------------------------
Maintainers by package: 0ad bruno kalev pcpa pwalter GConf2 alexl buc caillon caolanm mbarnes rhughes ssp walters MUSIC ankursinha PyQt4 sagitter than SoapySDR hobbes1069 mdomsch Zim cheeselee ohaessler anaconda anaconda-maint jkonecny m4rtink rvykydal sbueno vpodzime vponcova anjuta kalev limb moezroy rakesh appliance-tools ngompa astrometry lupinix audit sgrubb awake fab b43-tools pwalter babeltrace blarsen greenscientist keiths ktdreyer mjeanson suchakra babeltrace2 mjeanson bamf jspaleta salimma baresip robert brd jsbackus brial pcpa btest fab cairo-dock-plug-ins mtasaka ccsm jskarvad cdist fnux clingo thofmann cryptlib senderek cryptominisat jjames csmock kdudka svashisht csound ndim cvc4 brouhaha jjames dee jspaleta spot deltarpm defolos distcc grover limb dmlite adev andreamanzi gbitzes okeeble rocha vokac dnf-plugin-perfmetrics dcavalca dnsviz jonathanspw pemensik eric rdieter etckeeper thm fedora-gather-easyfix pingou flann rmattes fonts-tweak-tool jamesni tagoh fusion-icon jskarvad gdb ahajkova blarsen jankratochvil keiths kevinb sergiodj gfal2-python adev andreamanzi mipatras simonm gjots2 wef glusterfs kkeithle gnome-activity-journal crvi gnome-doc-utils alexl caillon caolanm limb rhughes rstrode ssp gnucash limb notting gnumeric aarem belegdol huzaifas gpgme fkluknav isimluk jkucera mrc0mmand rdieter gphotoframe mtasaka gpodder jspaleta limb vpv graphviz alexlan jskarvad grass daveisfera devrim jonathanspw neteler oliver volter gtk2 alexl caillon caolanm mbarnes mclasen mkasik rhughes rstrode ssp hivex mdbooth rjones hplip jridky tkorbar twaugh zdohnal hugin bpostle cicku denisarnaud i2c-tools aegorenk ajax jcapik jorton jzerdik miminar olysonek ibus fujiwara phuang ibus-anthy fujiwara phuang insight lkundrak monnerat iotop drago01 mhlavink keycloak-httpd-client-install jhrozek thalman kicad avigne lkundrak stevenfalco tnorth kig jreznik kkofler rdieter kobo dmach rohanpm lasso jhrozek rcritten simo ldns pemensik pwouters rlescak thozza lensfun germano grahamwhiteuk nphilipp ohaessler rdieter trix lhapdf ellert libarcus churchyard gferon libblockdev sbueno tbzatek vpodzime vtrefny libcap-ng sgrubb libcint jussilehtola libdnet rjones robert libfreenect jkastner kathenas kwizart rmattes libftdi hobbes1069 robert sharkcz libkdumpfile dcavalca salimma libkkc petersen libldb abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libnbd rjones libneurosim ankursinha libnl3 dcbw jirka tgraf thaller libprelude fab limb totol libpreludedb totol libproxy amigadave cicku danw npmccallum libpst mcrha libpwquality pwouters tmraz libreswan pwouters saprasad libsavitar churchyard gferon libselinux dwalsh pcmoore plautrba vmojzis libsemanage dwalsh mgrepl pcmoore plautrba vmojzis libsolv dmach ignatenkobrain jmracek jrohel ngompa pkratoch libssh2-python clalance libtalloc abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libtdb abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libtevent abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libxml2 amigadave veillard link-grammar devos limb livecd-tools astokes bcl bruno huff katzj ngompa lnst jtluka olichtne rpazdera lttng-ust dmarlin greenscientist ktdreyer mjeanson suchakra maildirproc cwickert mailnag thl manafirewall ngompa thunderbirdtr marisa ueno mathgl deji krege mycae mirage mtasaka mozjs102 frantisekz mozjs78 frantisekz kalev mozjs91 frantisekz mpv carlwgeorge ngompa xvitaly netgen-mesher hobbes1069 smani nfs-ganesha kkeithle nftables kevin psutter nispor cathay4t ffmancera nmstate cathay4t ffmancera liangwen12year till ntpsec ignatenkobrain mlichvar numpy cstratak jspaleta limb orion rdieter tomspur ttomecek ocaml-pyml jjames oct2spec orion omniORB hguemar smani omniORBpy smani onboard yanqiyu openscap evgenyz isimluk jcerny matyc mmarhefk pvrabec vpolasek wsato openscap-daemon isimluk jcerny matyc wsato pam_wrapper asn jhrozek photocollage adrienverge pipenv churchyard ksurma torsava pipx music pluma raveit65 robert policycoreutils dwalsh lvrabec mgrepl pcmoore plautrba vmojzis pyflowtools stingray pyke spot pylint bcl limb lupinix mrunge orion pyppd twaugh pystatgrab fab heliocastro potty slankes ttorling pysvn barryascott ravenoak sgallagh python-IPy kevin python-PyPDF2 aarem python-aiozeroconf fab python-ansi sdyroff python-auth-credential lcons python-bintrees rkuska python-cmdln averi python-cpio jamatos kevin mbacovsk python-cram ktdreyer python-cups twaugh zdohnal python-cypy ankursinha python-dbf jujens python-dirq lcons python-dmidecode dsommers sagitter python-empy filiperosset python-firehose athoscr dmalcolm python-fontconfig melmorabity python-gccinvocation dmalcolm python-gzipstream msuchy python-iowait aekoroglu python-ipgetter fab python-junitxml limb python-jupyter-polymake jjames python-kmod grover mlombard python-logging-tree fab ralph python-logutils jcaratzas kevin ralph python-m2r nforro python-messaging lcons python-mne ankursinha ignatenkobrain python-modestmaps cottsay python-mplcursors qulogic python-multi_key_dict cottsay python-nibabel ankursinha ignatenkobrain python-nmap fab python-optcomplete chedi python-pendulum fab python-pikepdf qulogic zdohnal python-py9p psavelye python-pyaes peter python-pycxx barryascott hobbes1069 mrunge zultron python-pyfim ankursinha python-pylibravatar kevin ralph python-pynest2d churchyard python-pyoptical ankursinha ignatenkobrain python-pyzolib cottsay python-rpdb bowlofeggs jcline python-rpmfluff dshea ignatenkobrain jhutar jlaska python-schedutils jkastner python-simplevisor lcons python-slip nphilipp python-smbpasswd rebus s4504kr python-sphinxcontrib-openapi fbo zuul python-sysv_ipc amoralej python-termcolor mikelo2 mrunge python-uinput bytehackr python-usort dcavalca python-visionegg-quest ankursinha ignatenkobrain python-whois suve python-yamlordereddictloader greghellings python3-cangjie bochecha python3-script jorti python3-simpletal thm pythran churchyard qpid-dispatch irina kpvdr mcressman tross quodlibet hannes rabbitvcs cicku limb nushio pwalter realtime-tests jkacur rebase-helper nforro phracek recode opohorel orion ppisar rednotebook fab kathenas mikedep333 rpm ffesti ignatenkobrain mdomonko mjw packaging-team pmatilai pmoravco vmukhame rteval jkacur rubber sergiopr sanlock cfeist fsimonce nsoffer teigland setroubleshoot dwalsh mgrepl pcmoore plautrba vmojzis simple-ccsm jskarvad sip rdieter than sos bmr sbonazzo soundconverter hobbes1069 pranvk sssd abbra asn atikhonov jhrozek mzidek pbrezina sbose simo stp amdunn jjames strongswan dcavalca mzabaluev pavlix pemensik pwouters salimma subversion jorton rlescak suricata jtaylor sgrubb sword cicku deji greghellings jkastner syslog-ng czanik jpo mrunge system-config-printer jpopelka twaugh zdohnal systemd-coredump-python stevetraylen zbyszek targetd grover tasleson tbb jjames jkastner jwakely trodgers tcl-snack spot telepathy-logger rdieter rishi tlsh zbyszek torbrowser-launcher limb pjp trace-cmd ersin jmarchan jstanley zsun tuna jkacur jkastner tuned jskarvad jzerdik olysonek pknirsch ufw kkofler robert urjtag jkastner scottt uwsgi ertzing vips agoode volume_key huzaifas jkucera mitr wiki2beamer sdyroff wordxtr pnemade workrave nonamedotc yselkowitz xen jforbes myoung xpra jgu sagitter sergiomb ydiff netvor yokadi fab zbar firemanxbr limb mchehab slaanesh zinnia liangsuilong pwu
Packages by maintainer: aarem gnumeric python-PyPDF2 abbra libldb libtalloc libtdb libtevent sssd adev dmlite gfal2-python adrienverge photocollage aegorenk i2c-tools aekoroglu python-iowait agoode vips ahajkova gdb ajax i2c-tools alexl GConf2 gnome-doc-utils gtk2 alexlan graphviz amdunn stp amigadave libproxy libxml2 amoralej python-sysv_ipc anaconda-maint anaconda andreamanzi dmlite gfal2-python ankursinha MUSIC libneurosim python-cypy python-mne python-nibabel python-pyfim python-pyoptical python-visionegg-quest asn libldb libtalloc libtdb libtevent pam_wrapper sssd astokes livecd-tools athoscr python-firehose atikhonov sssd averi python-cmdln avigne kicad barryascott pysvn python-pycxx bcl livecd-tools pylint belegdol gnumeric blarsen babeltrace gdb bmr sos bochecha python3-cangjie bowlofeggs python-rpdb bpostle hugin brouhaha cvc4 bruno 0ad livecd-tools buc GConf2 bytehackr python-uinput caillon GConf2 gnome-doc-utils gtk2 caolanm GConf2 gnome-doc-utils gtk2 carlwgeorge mpv cathay4t nispor nmstate cfeist sanlock chedi python-optcomplete cheeselee Zim churchyard libarcus libsavitar pipenv python-pynest2d pythran cicku hugin libproxy rabbitvcs sword clalance libssh2-python cottsay python-modestmaps python-multi_key_dict python-pyzolib crvi gnome-activity-journal cstratak numpy cwickert maildirproc czanik syslog-ng danw libproxy daveisfera grass dcavalca dnf-plugin-perfmetrics libkdumpfile python-usort strongswan dcbw libnl3 defolos deltarpm deji mathgl sword denisarnaud hugin devos link-grammar devrim grass dmach kobo libsolv dmalcolm python-firehose python-gccinvocation dmarlin lttng-ust drago01 iotop dshea python-rpmfluff dsommers python-dmidecode dwalsh libselinux libsemanage policycoreutils setroubleshoot ellert lhapdf ersin trace-cmd ertzing uwsgi evgenyz openscap fab awake btest libprelude pystatgrab python-aiozeroconf python-ipgetter python-logging-tree python-nmap python-pendulum rednotebook yokadi fbo python-sphinxcontrib-openapi ffesti rpm ffmancera nispor nmstate filiperosset python-empy firemanxbr zbar fkluknav gpgme fnux cdist frantisekz mozjs102 mozjs78 mozjs91 fsimonce sanlock fujiwara ibus ibus-anthy gbitzes dmlite gd libldb libtalloc libtdb libtevent germano lensfun gferon libarcus libsavitar grahamwhiteuk lensfun greenscientist babeltrace lttng-ust greghellings python-yamlordereddictloader sword grover distcc python-kmod targetd hannes quodlibet heliocastro pystatgrab hguemar omniORB hobbes1069 SoapySDR libftdi netgen-mesher python-pycxx soundconverter huff livecd-tools huzaifas gnumeric volume_key iboukris libldb libtalloc libtdb libtevent ignatenkobrain libsolv ntpsec python-mne python-nibabel python-pyoptical python-rpmfluff python-visionegg-quest rpm irina qpid-dispatch isimluk gpgme openscap openscap-daemon jamatos python-cpio jamesni fonts-tweak-tool jankratochvil gdb jcapik i2c-tools jcaratzas python-logutils jcerny openscap openscap-daemon jcline python-rpdb jforbes xen jgu xpra jhrozek keycloak-httpd-client-install lasso libldb libtalloc libtdb libtevent pam_wrapper sssd jhutar python-rpmfluff jirka libnl3 jjames cryptominisat cvc4 ocaml-pyml python-jupyter-polymake stp tbb jkacur realtime-tests rteval tuna jkastner libfreenect python-schedutils sword tbb tuna urjtag jkonecny anaconda jkucera gpgme volume_key jlaska python-rpmfluff jmarchan trace-cmd jmracek libsolv jonathanspw dnsviz grass jorti python3-script jorton i2c-tools subversion jpo syslog-ng jpopelka system-config-printer jreznik kig jridky hplip jrohel libsolv jsbackus brd jskarvad ccsm fusion-icon graphviz simple-ccsm tuned jspaleta bamf dee gpodder numpy jstanley trace-cmd jtaylor suricata jtluka lnst jujens python-dbf jussilehtola libcint jwakely tbb jzerdik i2c-tools tuned kalev 0ad anjuta mozjs78 kathenas libfreenect rednotebook katzj livecd-tools kdudka csmock keiths babeltrace gdb kevin nftables python-IPy python-cpio python-logutils python-pylibravatar kevinb gdb kkeithle glusterfs nfs-ganesha kkofler kig ufw kpvdr qpid-dispatch krege mathgl ksurma pipenv ktdreyer babeltrace lttng-ust python-cram kwizart libfreenect lcons python-auth-credential python-dirq python-messaging python-simplevisor liangsuilong zinnia liangwen12year nmstate limb anjuta distcc gnome-doc-utils gnucash gpodder libprelude link-grammar numpy pylint python-junitxml rabbitvcs torbrowser-launcher zbar lkundrak insight kicad lslebodn libldb libtalloc libtdb libtevent lupinix astrometry pylint lvrabec policycoreutils m4rtink anaconda matyc openscap openscap-daemon mbacovsk python-cpio mbarnes GConf2 gtk2 mchehab zbar mclasen gtk2 mcressman qpid-dispatch mcrha libpst mdbooth hivex mdomonko rpm mdomsch SoapySDR melmorabity python-fontconfig mgrepl libsemanage policycoreutils setroubleshoot mhlavink iotop mikedep333 rednotebook mikelo2 python-termcolor miminar i2c-tools mipatras gfal2-python mitr volume_key mjeanson babeltrace babeltrace2 lttng-ust mjw rpm mkasik gtk2 mlichvar ntpsec mlombard python-kmod mmarhefk openscap moezroy anjuta monnerat insight mrc0mmand gpgme mrunge pylint python-pycxx python-termcolor syslog-ng msuchy python-gzipstream mtasaka cairo-dock-plug-ins gphotoframe mirage music pipx mycae mathgl myoung xen mzabaluev strongswan mzidek sssd ndim csound neteler grass netvor ydiff nforro python-m2r rebase-helper ngompa appliance-tools libsolv livecd-tools manafirewall mpv nonamedotc workrave notting gnucash nphilipp lensfun python-slip npmccallum libproxy nsoffer sanlock nushio rabbitvcs ohaessler Zim lensfun okeeble dmlite olichtne lnst oliver grass olysonek i2c-tools tuned opohorel recode orion numpy oct2spec pylint recode packaging-team rpm pavlix strongswan pbrezina sssd pcmoore libselinux libsemanage policycoreutils setroubleshoot pcpa 0ad brial pemensik dnsviz ldns strongswan peter python-pyaes petersen libkkc pfilipen libldb libtalloc libtdb libtevent phracek rebase-helper phuang ibus ibus-anthy pingou fedora-gather-easyfix pjp torbrowser-launcher pknirsch tuned pkratoch libsolv plautrba libselinux libsemanage policycoreutils setroubleshoot pmatilai rpm pmoravco rpm pnemade wordxtr potty pystatgrab ppisar recode pranvk soundconverter psavelye python-py9p psutter nftables pvrabec openscap pwalter 0ad b43-tools rabbitvcs pwouters ldns libpwquality libreswan strongswan pwu zinnia qulogic python-mplcursors python-pikepdf rakesh anjuta ralph python-logging-tree python-logutils python-pylibravatar raveit65 pluma ravenoak pysvn rcritten lasso rdieter eric gpgme kig lensfun numpy sip telepathy-logger rebus python-smbpasswd rhughes GConf2 gnome-doc-utils gtk2 rishi telepathy-logger rjones hivex libdnet libnbd rkuska python-bintrees rlescak ldns subversion rmattes flann libfreenect robert baresip libdnet libftdi pluma ufw rocha dmlite rohanpm kobo rpazdera lnst rstrode gnome-doc-utils gtk2 rvykydal anaconda s4504kr python-smbpasswd sagitter PyQt4 python-dmidecode xpra salimma bamf libkdumpfile strongswan saprasad libreswan sbonazzo sos sbose sssd sbueno anaconda libblockdev scottt urjtag sdyroff python-ansi wiki2beamer senderek cryptlib sergiodj gdb sergiomb xpra sergiopr rubber sgallagh libldb libtalloc libtdb libtevent pysvn sgrubb audit libcap-ng suricata sharkcz libftdi simo lasso libldb libtalloc libtdb libtevent sssd simonm gfal2-python slaanesh zbar slankes pystatgrab smani netgen-mesher omniORB omniORBpy spot dee pyke tcl-snack ssp GConf2 gnome-doc-utils gtk2 stevenfalco kicad stevetraylen systemd-coredump-python stingray pyflowtools suchakra babeltrace lttng-ust suve python-whois svashisht csmock tagoh fonts-tweak-tool tasleson targetd tbzatek libblockdev teigland sanlock tgraf libnl3 thaller libnl3 thalman keycloak-httpd-client-install than PyQt4 sip thl mailnag thm etckeeper python3-simpletal thofmann clingo thozza ldns thunderbirdtr manafirewall till nmstate tkorbar hplip tmraz libpwquality tnorth kicad tomspur numpy torsava pipenv totol libprelude libpreludedb trix lensfun trodgers tbb tross qpid-dispatch ttomecek numpy ttorling pystatgrab twaugh hplip pyppd python-cups system-config-printer ueno marisa veillard libxml2 vmojzis libselinux libsemanage policycoreutils setroubleshoot vmukhame rpm vokac dmlite volter grass vpodzime anaconda libblockdev vpolasek openscap vponcova anaconda vpv gpodder vtrefny libblockdev walters GConf2 wef gjots2 wsato openscap openscap-daemon xvitaly mpv yanqiyu onboard yselkowitz workrave zbyszek systemd-coredump-python tlsh zdohnal hplip python-cups python-pikepdf system-config-printer zsun trace-cmd zultron python-pycxx zuul python-sphinxcontrib-openapi
On 18. 10. 22 11:27, Miro Hrončok wrote:
pipenv churchyard ksurma torsava
+ sphinx-build-3 docs html Running Sphinx v5.1.1
Configuration error: There is a programmable error in your configuration file:
Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/sphinx/config.py", line 347, in eval_config_file exec(code, namespace) ... from pipenv.vendor.requirementslib import Pipfile, Requirement File "/builddir/build/BUILD/pipenv-2022.5.2/build/lib/pipenv/vendor/requirementslib/__init__.py", line 9, in <module> from .models.lockfile import Lockfile File "/builddir/build/BUILD/pipenv-2022.5.2/build/lib/pipenv/vendor/requirementslib/models/lockfile.py", line 16, in <module> from .requirements import Requirement File "/builddir/build/BUILD/pipenv-2022.5.2/build/lib/pipenv/vendor/requirementslib/models/requirements.py", line 10, in <module> from distutils.sysconfig import get_python_lib ModuleNotFoundError: No module named 'distutils'
I've opened https://github.com/sarugaku/requirementslib/pull/348
On 18. 10. 22 11:27, Miro Hrončok wrote:
libarcus churchyard gferon
https://src.fedoraproject.org/rpms/libarcus/pull-request/22
libsavitar churchyard gferon
https://src.fedoraproject.org/rpms/libsavitar/pull-request/15
I have picked up the then orphaned csound on 2022-10-17 to fix its unrelated FTBFS issues, and the current csound-6.16.2-7 package successfully builds locally with your below build instructions which "rm -rf" distutils from the mock buildroot.
So the csound-6.16.2-7 package appears to be good to go for sans distutils builds (and BTW, csound.spec has been BuildRequiring python3-setuptools since at least 2019-08-19).
I am therefore assuming the csound package landed on this list by mistake. Possibly csound was still FTBFS when you did your sans distutils build, and then I had just fixed csound to build successfully when you ran the control-group copr builds.
-ndim
On 2022-10-18 11:27 +0200, Miro Hrončok mhroncok@redhat.com wrote:
Hey Pythonistas.
The Python standard library distutils module will be removed from Python 3.12+
https://peps.python.org/pep-0632/
As preparatory work, we build all python packages in a Copr repository with Python 3.11 sans distutils:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/
I've rebuilt all the failed builds again and also in a control-group copr:
https://copr.fedorainfracloud.org/coprs/g/python/python-with-distutils/
250 packages that failed to build without distuils but succeeded with distutils need to be examined and categorized into various different groups:
- package uses distutils only if sys.version_info < (3, 12) -- this is OK but still fails here
- package uses distutils unconditionally and the package needs to
be fixed
- package uses another package that uses distutils unconditionally and the dependency needs to be fixed
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
However, upstream involvement is recommended.
A few bugzillas were opened wrt this and I plan to open more:
https://bugzilla.redhat.com/showdependencytree.cgi?id=PYTHON3.12&hide_re...
I've also oepned some upstream Pull Requests: https://github.com/pypa/pip/pull/11522 https://github.com/pypa/setuptools/pull/3636 https://pagure.io/fedora-gather-easyfix/pull-request/10 https://github.com/filbranden/dnf-plugins-perfmetrics/pull/1 https://github.com/rpm-software-management/deltarpm/pull/17
Could you please help me by looking at your failed packages and talking to your upstreams? Feel free to reply with links, questions, bugzillas...
To test this locally, you can do something like:
- fedpkg clone $PKG && cd $PKG
- mock -r fedora-rawhide-x86_64 init
- mock -r fedora-rawhide-x86_64 install python3-devel
- sudo rm -rf
/var/lib/mock/fedora-rawhide-x86_64/root/usr/lib64/python3.11/distutils/ 4. fedpkg mockbuild -N
Thanks!
[^1]: Unfortunately, is not 100 % compatible with the removed standard library one distutils: https://github.com/pypa/setuptools/issues/3532
Maintainers by package: [...] csound ndim [...]
Packages by maintainer: [...] ndim csound [...]
On 18. 10. 22 13:58, Hans Ulrich Niedermann wrote:
I have picked up the then orphaned csound on 2022-10-17 to fix its unrelated FTBFS issues, and the current csound-6.16.2-7 package successfully builds locally with your below build instructions which "rm -rf" distutils from the mock buildroot.
So the csound-6.16.2-7 package appears to be good to go for sans distutils builds (and BTW, csound.spec has been BuildRequiring python3-setuptools since at least 2019-08-19).
I am therefore assuming the csound package landed on this list by mistake. Possibly csound was still FTBFS when you did your sans distutils build, and then I had just fixed csound to build successfully when you ran the control-group copr builds.
I've restarted the build at https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/pa... just to verify, but your assumption csounds reasonable.
On Tue, Oct 18, 2022 at 5:28 AM Miro Hrončok mhroncok@redhat.com wrote:
Hey Pythonistas.
The Python standard library distutils module will be removed from Python 3.12+
https://peps.python.org/pep-0632/
As preparatory work, we build all python packages in a Copr repository with Python 3.11 sans distutils:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/
I've rebuilt all the failed builds again and also in a control-group copr:
https://copr.fedorainfracloud.org/coprs/g/python/python-with-distutils/
250 packages that failed to build without distuils but succeeded with distutils need to be examined and categorized into various different groups:
- package uses distutils only if sys.version_info < (3, 12) -- this is OK but still fails here
- package uses distutils unconditionally and the package needs to be fixed
- package uses another package that uses distutils unconditionally and the dependency needs to be fixed
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
However, upstream involvement is recommended.
A few bugzillas were opened wrt this and I plan to open more:
https://bugzilla.redhat.com/showdependencytree.cgi?id=PYTHON3.12&hide_re...
I've also oepned some upstream Pull Requests: https://github.com/pypa/pip/pull/11522 https://github.com/pypa/setuptools/pull/3636 https://pagure.io/fedora-gather-easyfix/pull-request/10 https://github.com/filbranden/dnf-plugins-perfmetrics/pull/1 https://github.com/rpm-software-management/deltarpm/pull/17
Could you please help me by looking at your failed packages and talking to your upstreams? Feel free to reply with links, questions, bugzillas...
To test this locally, you can do something like:
- fedpkg clone $PKG && cd $PKG
- mock -r fedora-rawhide-x86_64 init
- mock -r fedora-rawhide-x86_64 install python3-devel
- sudo rm -rf
/var/lib/mock/fedora-rawhide-x86_64/root/usr/lib64/python3.11/distutils/ 4. fedpkg mockbuild -N
Thanks!
qulogic python-mplcursors python-pikepdf
For python-mplcursors, it appears to have setuptools installed anyway, but it also looks like a crash in pyproject_buildrequires.py
For python-pikepdf, it appears you built from git while it was in a sidetag and the new dependencies were unavailable for your copr. It'll probably build fine now.
On 20. 10. 22 6:42, Elliott Sales de Andrade wrote:
For python-mplcursors, it appears to have setuptools installed anyway, but it also looks like a crash in pyproject_buildrequires.py
Looks like https://github.com/anntzer/mplcursors/commit/625dc7b42ca2b0c61e85aa31a702980...
For python-pikepdf, it appears you built from git while it was in a sidetag and the new dependencies were unavailable for your copr. It'll probably build fine now.
Indeed, thanks.
The failure in pipx is because argparse-manpage[1], which is not in this list, requires distutils at runtime.
+ /usr/bin/python3 scripts/generate_man.py Traceback (most recent call last): File "/builddir/build/BUILD/pipx-1.1.0/scripts/generate_man.py", line 7, in <module> from build_manpages.manpage import Manpage # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/build_manpages/__init__.py", line 7, in <module> from .build_manpages import build_manpages, get_build_py_cmd, get_install_cmd File "/usr/lib/python3.11/site-packages/build_manpages/build_manpages.py", line 10, in <module> from distutils.core import Command ModuleNotFoundError: No module named 'distutils'
I filed an issue[2] advising argparse-manpage upstream of the situation.
[1] https://src.fedoraproject.org/rpms/argparse-manpage
[2] https://github.com/praiskup/argparse-manpage/issues/63
On 10/18/22 05:27, Miro Hrončok wrote:
Hey Pythonistas.
The Python standard library distutils module will be removed from Python 3.12+
https://peps.python.org/pep-0632/
As preparatory work, we build all python packages in a Copr repository with Python 3.11 sans distutils:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/
I've rebuilt all the failed builds again and also in a control-group copr:
https://copr.fedorainfracloud.org/coprs/g/python/python-with-distutils/
250 packages that failed to build without distuils but succeeded with distutils need to be examined and categorized into various different groups:
- package uses distutils only if sys.version_info < (3, 12) -- this is OK but still fails here - package uses distutils unconditionally and the package needs to be fixed - package uses another package that uses distutils unconditionally and the dependency needs to be fixed
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
However, upstream involvement is recommended.
A few bugzillas were opened wrt this and I plan to open more:
https://bugzilla.redhat.com/showdependencytree.cgi?id=PYTHON3.12&hide_re...
I've also oepned some upstream Pull Requests: https://github.com/pypa/pip/pull/11522 https://github.com/pypa/setuptools/pull/3636 https://pagure.io/fedora-gather-easyfix/pull-request/10 https://github.com/filbranden/dnf-plugins-perfmetrics/pull/1 https://github.com/rpm-software-management/deltarpm/pull/17
Could you please help me by looking at your failed packages and talking to your upstreams? Feel free to reply with links, questions, bugzillas...
To test this locally, you can do something like:
- fedpkg clone $PKG && cd $PKG
- mock -r fedora-rawhide-x86_64 init
- mock -r fedora-rawhide-x86_64 install python3-devel
- sudo rm -rf
/var/lib/mock/fedora-rawhide-x86_64/root/usr/lib64/python3.11/distutils/ 4. fedpkg mockbuild -N
Thanks!
[^1]: Unfortunately, is not 100 % compatible with the removed standard library one distutils: https://github.com/pypa/setuptools/issues/3532
Maintainers by package: 0ad bruno kalev pcpa pwalter GConf2 alexl buc caillon caolanm mbarnes rhughes ssp walters MUSIC ankursinha PyQt4 sagitter than SoapySDR hobbes1069 mdomsch Zim cheeselee ohaessler anaconda anaconda-maint jkonecny m4rtink rvykydal sbueno vpodzime vponcova anjuta kalev limb moezroy rakesh appliance-tools ngompa astrometry lupinix audit sgrubb awake fab b43-tools pwalter babeltrace blarsen greenscientist keiths ktdreyer mjeanson suchakra babeltrace2 mjeanson bamf jspaleta salimma baresip robert brd jsbackus brial pcpa btest fab cairo-dock-plug-ins mtasaka ccsm jskarvad cdist fnux clingo thofmann cryptlib senderek cryptominisat jjames csmock kdudka svashisht csound ndim cvc4 brouhaha jjames dee jspaleta spot deltarpm defolos distcc grover limb dmlite adev andreamanzi gbitzes okeeble rocha vokac dnf-plugin-perfmetrics dcavalca dnsviz jonathanspw pemensik eric rdieter etckeeper thm fedora-gather-easyfix pingou flann rmattes fonts-tweak-tool jamesni tagoh fusion-icon jskarvad gdb ahajkova blarsen jankratochvil keiths kevinb sergiodj gfal2-python adev andreamanzi mipatras simonm gjots2 wef glusterfs kkeithle gnome-activity-journal crvi gnome-doc-utils alexl caillon caolanm limb rhughes rstrode ssp gnucash limb notting gnumeric aarem belegdol huzaifas gpgme fkluknav isimluk jkucera mrc0mmand rdieter gphotoframe mtasaka gpodder jspaleta limb vpv graphviz alexlan jskarvad grass daveisfera devrim jonathanspw neteler oliver volter gtk2 alexl caillon caolanm mbarnes mclasen mkasik rhughes rstrode ssp hivex mdbooth rjones hplip jridky tkorbar twaugh zdohnal hugin bpostle cicku denisarnaud i2c-tools aegorenk ajax jcapik jorton jzerdik miminar olysonek ibus fujiwara phuang ibus-anthy fujiwara phuang insight lkundrak monnerat iotop drago01 mhlavink keycloak-httpd-client-install jhrozek thalman kicad avigne lkundrak stevenfalco tnorth kig jreznik kkofler rdieter kobo dmach rohanpm lasso jhrozek rcritten simo ldns pemensik pwouters rlescak thozza lensfun germano grahamwhiteuk nphilipp ohaessler rdieter trix lhapdf ellert libarcus churchyard gferon libblockdev sbueno tbzatek vpodzime vtrefny libcap-ng sgrubb libcint jussilehtola libdnet rjones robert libfreenect jkastner kathenas kwizart rmattes libftdi hobbes1069 robert sharkcz libkdumpfile dcavalca salimma libkkc petersen libldb abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libnbd rjones libneurosim ankursinha libnl3 dcbw jirka tgraf thaller libprelude fab limb totol libpreludedb totol libproxy amigadave cicku danw npmccallum libpst mcrha libpwquality pwouters tmraz libreswan pwouters saprasad libsavitar churchyard gferon libselinux dwalsh pcmoore plautrba vmojzis libsemanage dwalsh mgrepl pcmoore plautrba vmojzis libsolv dmach ignatenkobrain jmracek jrohel ngompa pkratoch libssh2-python clalance libtalloc abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libtdb abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libtevent abbra asn gd iboukris jhrozek lslebodn pfilipen sgallagh simo libxml2 amigadave veillard link-grammar devos limb livecd-tools astokes bcl bruno huff katzj ngompa lnst jtluka olichtne rpazdera lttng-ust dmarlin greenscientist ktdreyer mjeanson suchakra maildirproc cwickert mailnag thl manafirewall ngompa thunderbirdtr marisa ueno mathgl deji krege mycae mirage mtasaka mozjs102 frantisekz mozjs78 frantisekz kalev mozjs91 frantisekz mpv carlwgeorge ngompa xvitaly netgen-mesher hobbes1069 smani nfs-ganesha kkeithle nftables kevin psutter nispor cathay4t ffmancera nmstate cathay4t ffmancera liangwen12year till ntpsec ignatenkobrain mlichvar numpy cstratak jspaleta limb orion rdieter tomspur ttomecek ocaml-pyml jjames oct2spec orion omniORB hguemar smani omniORBpy smani onboard yanqiyu openscap evgenyz isimluk jcerny matyc mmarhefk pvrabec vpolasek wsato openscap-daemon isimluk jcerny matyc wsato pam_wrapper asn jhrozek photocollage adrienverge pipenv churchyard ksurma torsava pipx music pluma raveit65 robert policycoreutils dwalsh lvrabec mgrepl pcmoore plautrba vmojzis pyflowtools stingray pyke spot pylint bcl limb lupinix mrunge orion pyppd twaugh pystatgrab fab heliocastro potty slankes ttorling pysvn barryascott ravenoak sgallagh python-IPy kevin python-PyPDF2 aarem python-aiozeroconf fab python-ansi sdyroff python-auth-credential lcons python-bintrees rkuska python-cmdln averi python-cpio jamatos kevin mbacovsk python-cram ktdreyer python-cups twaugh zdohnal python-cypy ankursinha python-dbf jujens python-dirq lcons python-dmidecode dsommers sagitter python-empy filiperosset python-firehose athoscr dmalcolm python-fontconfig melmorabity python-gccinvocation dmalcolm python-gzipstream msuchy python-iowait aekoroglu python-ipgetter fab python-junitxml limb python-jupyter-polymake jjames python-kmod grover mlombard python-logging-tree fab ralph python-logutils jcaratzas kevin ralph python-m2r nforro python-messaging lcons python-mne ankursinha ignatenkobrain python-modestmaps cottsay python-mplcursors qulogic python-multi_key_dict cottsay python-nibabel ankursinha ignatenkobrain python-nmap fab python-optcomplete chedi python-pendulum fab python-pikepdf qulogic zdohnal python-py9p psavelye python-pyaes peter python-pycxx barryascott hobbes1069 mrunge zultron python-pyfim ankursinha python-pylibravatar kevin ralph python-pynest2d churchyard python-pyoptical ankursinha ignatenkobrain python-pyzolib cottsay python-rpdb bowlofeggs jcline python-rpmfluff dshea ignatenkobrain jhutar jlaska python-schedutils jkastner python-simplevisor lcons python-slip nphilipp python-smbpasswd rebus s4504kr python-sphinxcontrib-openapi fbo zuul python-sysv_ipc amoralej python-termcolor mikelo2 mrunge python-uinput bytehackr python-usort dcavalca python-visionegg-quest ankursinha ignatenkobrain python-whois suve python-yamlordereddictloader greghellings python3-cangjie bochecha python3-script jorti python3-simpletal thm pythran churchyard qpid-dispatch irina kpvdr mcressman tross quodlibet hannes rabbitvcs cicku limb nushio pwalter realtime-tests jkacur rebase-helper nforro phracek recode opohorel orion ppisar rednotebook fab kathenas mikedep333 rpm ffesti ignatenkobrain mdomonko mjw packaging-team pmatilai pmoravco vmukhame rteval jkacur rubber sergiopr sanlock cfeist fsimonce nsoffer teigland setroubleshoot dwalsh mgrepl pcmoore plautrba vmojzis simple-ccsm jskarvad sip rdieter than sos bmr sbonazzo soundconverter hobbes1069 pranvk sssd abbra asn atikhonov jhrozek mzidek pbrezina sbose simo stp amdunn jjames strongswan dcavalca mzabaluev pavlix pemensik pwouters salimma subversion jorton rlescak suricata jtaylor sgrubb sword cicku deji greghellings jkastner syslog-ng czanik jpo mrunge system-config-printer jpopelka twaugh zdohnal systemd-coredump-python stevetraylen zbyszek targetd grover tasleson tbb jjames jkastner jwakely trodgers tcl-snack spot telepathy-logger rdieter rishi tlsh zbyszek torbrowser-launcher limb pjp trace-cmd ersin jmarchan jstanley zsun tuna jkacur jkastner tuned jskarvad jzerdik olysonek pknirsch ufw kkofler robert urjtag jkastner scottt uwsgi ertzing vips agoode volume_key huzaifas jkucera mitr wiki2beamer sdyroff wordxtr pnemade workrave nonamedotc yselkowitz xen jforbes myoung xpra jgu sagitter sergiomb ydiff netvor yokadi fab zbar firemanxbr limb mchehab slaanesh zinnia liangsuilong pwu
Packages by maintainer: aarem gnumeric python-PyPDF2 abbra libldb libtalloc libtdb libtevent sssd adev dmlite gfal2-python adrienverge photocollage aegorenk i2c-tools aekoroglu python-iowait agoode vips ahajkova gdb ajax i2c-tools alexl GConf2 gnome-doc-utils gtk2 alexlan graphviz amdunn stp amigadave libproxy libxml2 amoralej python-sysv_ipc anaconda-maint anaconda andreamanzi dmlite gfal2-python ankursinha MUSIC libneurosim python-cypy python-mne python-nibabel python-pyfim python-pyoptical python-visionegg-quest asn libldb libtalloc libtdb libtevent pam_wrapper sssd astokes livecd-tools athoscr python-firehose atikhonov sssd averi python-cmdln avigne kicad barryascott pysvn python-pycxx bcl livecd-tools pylint belegdol gnumeric blarsen babeltrace gdb bmr sos bochecha python3-cangjie bowlofeggs python-rpdb bpostle hugin brouhaha cvc4 bruno 0ad livecd-tools buc GConf2 bytehackr python-uinput caillon GConf2 gnome-doc-utils gtk2 caolanm GConf2 gnome-doc-utils gtk2 carlwgeorge mpv cathay4t nispor nmstate cfeist sanlock chedi python-optcomplete cheeselee Zim churchyard libarcus libsavitar pipenv python-pynest2d pythran cicku hugin libproxy rabbitvcs sword clalance libssh2-python cottsay python-modestmaps python-multi_key_dict python-pyzolib crvi gnome-activity-journal cstratak numpy cwickert maildirproc czanik syslog-ng danw libproxy daveisfera grass dcavalca dnf-plugin-perfmetrics libkdumpfile python-usort strongswan dcbw libnl3 defolos deltarpm deji mathgl sword denisarnaud hugin devos link-grammar devrim grass dmach kobo libsolv dmalcolm python-firehose python-gccinvocation dmarlin lttng-ust drago01 iotop dshea python-rpmfluff dsommers python-dmidecode dwalsh libselinux libsemanage policycoreutils setroubleshoot ellert lhapdf ersin trace-cmd ertzing uwsgi evgenyz openscap fab awake btest libprelude pystatgrab python-aiozeroconf python-ipgetter python-logging-tree python-nmap python-pendulum rednotebook yokadi fbo python-sphinxcontrib-openapi ffesti rpm ffmancera nispor nmstate filiperosset python-empy firemanxbr zbar fkluknav gpgme fnux cdist frantisekz mozjs102 mozjs78 mozjs91 fsimonce sanlock fujiwara ibus ibus-anthy gbitzes dmlite gd libldb libtalloc libtdb libtevent germano lensfun gferon libarcus libsavitar grahamwhiteuk lensfun greenscientist babeltrace lttng-ust greghellings python-yamlordereddictloader sword grover distcc python-kmod targetd hannes quodlibet heliocastro pystatgrab hguemar omniORB hobbes1069 SoapySDR libftdi netgen-mesher python-pycxx soundconverter huff livecd-tools huzaifas gnumeric volume_key iboukris libldb libtalloc libtdb libtevent ignatenkobrain libsolv ntpsec python-mne python-nibabel python-pyoptical python-rpmfluff python-visionegg-quest rpm irina qpid-dispatch isimluk gpgme openscap openscap-daemon jamatos python-cpio jamesni fonts-tweak-tool jankratochvil gdb jcapik i2c-tools jcaratzas python-logutils jcerny openscap openscap-daemon jcline python-rpdb jforbes xen jgu xpra jhrozek keycloak-httpd-client-install lasso libldb libtalloc libtdb libtevent pam_wrapper sssd jhutar python-rpmfluff jirka libnl3 jjames cryptominisat cvc4 ocaml-pyml python-jupyter-polymake stp tbb jkacur realtime-tests rteval tuna jkastner libfreenect python-schedutils sword tbb tuna urjtag jkonecny anaconda jkucera gpgme volume_key jlaska python-rpmfluff jmarchan trace-cmd jmracek libsolv jonathanspw dnsviz grass jorti python3-script jorton i2c-tools subversion jpo syslog-ng jpopelka system-config-printer jreznik kig jridky hplip jrohel libsolv jsbackus brd jskarvad ccsm fusion-icon graphviz simple-ccsm tuned jspaleta bamf dee gpodder numpy jstanley trace-cmd jtaylor suricata jtluka lnst jujens python-dbf jussilehtola libcint jwakely tbb jzerdik i2c-tools tuned kalev 0ad anjuta mozjs78 kathenas libfreenect rednotebook katzj livecd-tools kdudka csmock keiths babeltrace gdb kevin nftables python-IPy python-cpio python-logutils python-pylibravatar kevinb gdb kkeithle glusterfs nfs-ganesha kkofler kig ufw kpvdr qpid-dispatch krege mathgl ksurma pipenv ktdreyer babeltrace lttng-ust python-cram kwizart libfreenect lcons python-auth-credential python-dirq python-messaging python-simplevisor liangsuilong zinnia liangwen12year nmstate limb anjuta distcc gnome-doc-utils gnucash gpodder libprelude link-grammar numpy pylint python-junitxml rabbitvcs torbrowser-launcher zbar lkundrak insight kicad lslebodn libldb libtalloc libtdb libtevent lupinix astrometry pylint lvrabec policycoreutils m4rtink anaconda matyc openscap openscap-daemon mbacovsk python-cpio mbarnes GConf2 gtk2 mchehab zbar mclasen gtk2 mcressman qpid-dispatch mcrha libpst mdbooth hivex mdomonko rpm mdomsch SoapySDR melmorabity python-fontconfig mgrepl libsemanage policycoreutils setroubleshoot mhlavink iotop mikedep333 rednotebook mikelo2 python-termcolor miminar i2c-tools mipatras gfal2-python mitr volume_key mjeanson babeltrace babeltrace2 lttng-ust mjw rpm mkasik gtk2 mlichvar ntpsec mlombard python-kmod mmarhefk openscap moezroy anjuta monnerat insight mrc0mmand gpgme mrunge pylint python-pycxx python-termcolor syslog-ng msuchy python-gzipstream mtasaka cairo-dock-plug-ins gphotoframe mirage music pipx mycae mathgl myoung xen mzabaluev strongswan mzidek sssd ndim csound neteler grass netvor ydiff nforro python-m2r rebase-helper ngompa appliance-tools libsolv livecd-tools manafirewall mpv nonamedotc workrave notting gnucash nphilipp lensfun python-slip npmccallum libproxy nsoffer sanlock nushio rabbitvcs ohaessler Zim lensfun okeeble dmlite olichtne lnst oliver grass olysonek i2c-tools tuned opohorel recode orion numpy oct2spec pylint recode packaging-team rpm pavlix strongswan pbrezina sssd pcmoore libselinux libsemanage policycoreutils setroubleshoot pcpa 0ad brial pemensik dnsviz ldns strongswan peter python-pyaes petersen libkkc pfilipen libldb libtalloc libtdb libtevent phracek rebase-helper phuang ibus ibus-anthy pingou fedora-gather-easyfix pjp torbrowser-launcher pknirsch tuned pkratoch libsolv plautrba libselinux libsemanage policycoreutils setroubleshoot pmatilai rpm pmoravco rpm pnemade wordxtr potty pystatgrab ppisar recode pranvk soundconverter psavelye python-py9p psutter nftables pvrabec openscap pwalter 0ad b43-tools rabbitvcs pwouters ldns libpwquality libreswan strongswan pwu zinnia qulogic python-mplcursors python-pikepdf rakesh anjuta ralph python-logging-tree python-logutils python-pylibravatar raveit65 pluma ravenoak pysvn rcritten lasso rdieter eric gpgme kig lensfun numpy sip telepathy-logger rebus python-smbpasswd rhughes GConf2 gnome-doc-utils gtk2 rishi telepathy-logger rjones hivex libdnet libnbd rkuska python-bintrees rlescak ldns subversion rmattes flann libfreenect robert baresip libdnet libftdi pluma ufw rocha dmlite rohanpm kobo rpazdera lnst rstrode gnome-doc-utils gtk2 rvykydal anaconda s4504kr python-smbpasswd sagitter PyQt4 python-dmidecode xpra salimma bamf libkdumpfile strongswan saprasad libreswan sbonazzo sos sbose sssd sbueno anaconda libblockdev scottt urjtag sdyroff python-ansi wiki2beamer senderek cryptlib sergiodj gdb sergiomb xpra sergiopr rubber sgallagh libldb libtalloc libtdb libtevent pysvn sgrubb audit libcap-ng suricata sharkcz libftdi simo lasso libldb libtalloc libtdb libtevent sssd simonm gfal2-python slaanesh zbar slankes pystatgrab smani netgen-mesher omniORB omniORBpy spot dee pyke tcl-snack ssp GConf2 gnome-doc-utils gtk2 stevenfalco kicad stevetraylen systemd-coredump-python stingray pyflowtools suchakra babeltrace lttng-ust suve python-whois svashisht csmock tagoh fonts-tweak-tool tasleson targetd tbzatek libblockdev teigland sanlock tgraf libnl3 thaller libnl3 thalman keycloak-httpd-client-install than PyQt4 sip thl mailnag thm etckeeper python3-simpletal thofmann clingo thozza ldns thunderbirdtr manafirewall till nmstate tkorbar hplip tmraz libpwquality tnorth kicad tomspur numpy torsava pipenv totol libprelude libpreludedb trix lensfun trodgers tbb tross qpid-dispatch ttomecek numpy ttorling pystatgrab twaugh hplip pyppd python-cups system-config-printer ueno marisa veillard libxml2 vmojzis libselinux libsemanage policycoreutils setroubleshoot vmukhame rpm vokac dmlite volter grass vpodzime anaconda libblockdev vpolasek openscap vponcova anaconda vpv gpodder vtrefny libblockdev walters GConf2 wef gjots2 wsato openscap openscap-daemon xvitaly mpv yanqiyu onboard yselkowitz workrave zbyszek systemd-coredump-python tlsh zdohnal hplip python-cups python-pikepdf system-config-printer zsun trace-cmd zultron python-pycxx zuul python-sphinxcontrib-openapi
On 18. 10. 22 11:27, Miro Hrončok wrote:
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
I've created a new copr repository:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils-al...
It always adds python3-setuptools to the buildroot, so packages that will be successful here will be buildable once they add BuildRequires on python3-setuptools.
Note that adding such BuildRequires might however hide some transitive dependency problem, if the distutils import comes from a dependency.
Builds pending.
On 21. 10. 22 12:16, Miro Hrončok wrote:
On 18. 10. 22 11:27, Miro Hrončok wrote:
I suspect most of the packages will fail to build with Python 3.12 (planned for Fedora 39, change proposal TBD). The python3-setutpools package provides a distutils module [^1], so sometimes "simply" adding BuildRequires: python3-setuptools might workaround the problem.
I've created a new copr repository:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils-al...
It always adds python3-setuptools to the buildroot, so packages that will be successful here will be buildable once they add BuildRequires on python3-setuptools.
Note that adding such BuildRequires might however hide some transitive dependency problem, if the distutils import comes from a dependency.
Builds pending.
The following packages have either been fixed in the meantime, or their failure was unrelated:
hplip libreswan libxml2 lttng-ust nispor nmstate photocollage python-cups python-jupyter-polymake python-m2r python-mne python-mplcursors python-rpmfluff python-sphinxcontrib-openapi python-usort rebase-helper sanlock
The following packages succeeded with python3-setuptools, so adding something like this will workaround the problem for them:
BuildRequires: (python3-setuptools if python3-devel >= 3.12)
GConf2 MUSIC PyQt4 SoapySDR Zim anaconda anjuta appliance-tools astrometry audit awake b43-tools babeltrace babeltrace2 bamf baresip brd brial btest cairo-dock-plug-ins ccsm cdist clingo csmock cvc4 dee deltarpm distcc dmlite dnf-plugin-perfmetrics dnsviz eric etckeeper flann fonts-tweak-tool fusion-icon gdb gfal2-python gjots2 glusterfs gnome-doc-utils gnucash gnumeric gphotoframe gpodder graphviz grass gtk2 hivex hugin i2c-tools ibus ibus-anthy insight keycloak-httpd-client-install kig ldns libarcus libblockdev libcap-ng libcint libdnet libfreenect libftdi libkdumpfile libkkc libldb libnbd libneurosim libnl3 libprelude libpreludedb libproxy libpst libsavitar libselinux libsemanage libsolv libssh2-python libtalloc libtdb libtevent link-grammar livecd-tools maildirproc mailnag manafirewall marisa mathgl mpv netgen-mesher ntpsec ocaml-pyml oct2spec omniORB omniORBpy onboard openscap-daemon pam_wrapper pipx pluma policycoreutils pyflowtools pyke pyppd pystatgrab pysvn python-IPy python-PyPDF2 python-ansi python-auth-credential python-bintrees python-cmdln python-cpio python-cram python-cypy python-dbf python-empy python-firehose python-gccinvocation python-gzipstream python-iowait python-ipgetter python-kmod python-logging-tree python-logutils python-messaging python-modestmaps python-multi_key_dict python-nmap python-optcomplete python-pendulum python-py9p python-pyaes python-pycxx python-pyfim python-pylibravatar python-pynest2d python-pyoptical python-pyzolib python-rpdb python-schedutils python-simplevisor python-slip python-smbpasswd python-sysv_ipc python-termcolor python-uinput python-visionegg-quest python-whois python-yamlordereddictloader python3-cangjie python3-script python3-simpletal qpid-dispatch quodlibet rabbitvcs realtime-tests recode rednotebook rpm rteval rubber setroubleshoot simple-ccsm sip sos soundconverter sssd stp subversion syslog-ng systemd-coredump-python targetd tbb tcl-snack telepathy-logger tlsh torbrowser-launcher tuna tuned ufw urjtag uwsgi vips volume_key wiki2beamer wordxtr workrave xen xpra ydiff yokadi zbar
Hi,
On Tue, Oct 18, 2022 at 11:34 AM Miro Hrončok mhroncok@redhat.com wrote:
The Python standard library distutils module will be removed from Python 3.12+ https://peps.python.org/pep-0632/
It's done: https://github.com/python/cpython/commit/0faa0ba240e815614e5a2900e48007acac4...
I created a discussion to collaborate on Python 3.12 incompatible changes like the removal of the distutils package: https://discuss.python.org/t/collaboration-on-handling-python-3-12-incompati...
Victor
python-devel@lists.fedoraproject.org