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_resolved=0
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