On Tue, Oct 18, 2022 at 5:28 AM Miro HronĨok <mhroncok(a)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...
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!
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.