[Sending again since it didn't reach the Python-devel list first time]
On Tue, Oct 18, 2022 at 10:53:12AM +0100, Richard W.M. Jones wrote:
On Tue, Oct 18, 2022 at 11:27:47AM +0200, Miro Hrončok wrote:
Hey Pythonistas.
The Python standard library distutils module will be removed from Python 3.12+
Annoying, but OK ...
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.
...
rjones hivex libdnet libnbd
I think your testing methodology might have been wrong because we use distutils in other packages that I maintain, notably:
https://github.com/libguestfs/libguestfs/blob/master/m4/guestfs-python.m4
I'm not sure what could have happened here. The RPM would have failed to build if the Python bindings had been ./configure-d out. The link shows libguestfs as "not build yet / Disabled":
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/pa...
but then there's a build which succeeded:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/bu...
and it has Python bindings. (The logs of the build don't seem to be available.)
Anyway I'll see if I can fix this upstream as requested.
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
On 24. 10. 22 12:46, Richard W.M. Jones wrote:
I'm not sure what could have happened here. The RPM would have failed to build if the Python bindings had been ./configure-d out. The link shows libguestfs as "not build yet / Disabled":
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/pa...
(I forgot to respond to this part of your email, so doing that now.)
That is caused by the fact that I build packages in a custom "directory" which is a copr thing that allows me to build thousands of packages in copr without them "seeing" each other, but it has some UX downsides, such as not being visible as built on this page.
but then there's a build which succeeded:
https://copr.fedorainfracloud.org/coprs/g/python/python-without-distutils/bu...
and it has Python bindings. (The logs of the build don't seem to be available.)
Yeah, I only renewed failed builds for the logs, I had no idea people will want to examine succeeded packages.
Looking at the latest succeeded root.log from Koji instead
https://koji.fedoraproject.org/koji/buildinfo?buildID=2074440 https://kojipkgs.fedoraproject.org//packages/libguestfs/1.49.5/2.fc38/data/l...
I see python3-setuptools was installed, which is the likely reason the build succeeded without distutils (as said in my announcement, setuptools provide a distutils module, which is 99%-compatible replacement for the removed standard library module).
python-devel@lists.fedoraproject.org