Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 909973 - dev-python/wxpython: needs to use PEP517 build (DistutilsNonPEP517Build)
Summary: dev-python/wxpython: needs to use PEP517 build (DistutilsNonPEP517Build)
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Gentoo wxWidgets project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 909855
  Show dependency tree
 
Reported: 2023-07-08 06:56 UTC by Michał Górny
Modified: 2024-02-06 04:36 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-07-08 06:56:48 UTC
This package still uses the legacy eclass code paths.  These paths are deprecated and pose a significant maintenance cost.  Please update the package to use PEP517 build mode.  For more information, please see the Python Guide, particularly; https://projects.gentoo.org/python/guide/migration.html#migrating-to-pep-517-builds
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-08 20:40:50 UTC
[Adding this comment en-masse, sorry for the noise, but it's important.)

1. Please take particular care to check file diffs before/after, possibly using `iwdevtools`. Keep a particular eye out for e.g. config files now missing from /etc and instead being in /usr/lib/python*/site-packages, etc.

2. Please make sure to do the migration in a new revision in ~arch, partly because of 1.
Comment 2 jospezial 2024-02-06 04:36:40 UTC
The conversion to setuptools in this ebuild is important for python 3.12.

I have not tested the gentoo ebuild with python 3.12 but I think the output would look similar.
https://github.com/stefantalpalaru/gentoo-overlay/issues/139

>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-python/wxpython-4.2.1-r2/work/wxPython-4.2.1 ...
 * python3_11: running distutils-r1_run_phase python_compile
/var/tmp/portage/dev-python/wxpython-4.2.1-r2/work/wxPython-4.2.1-python3_11/build.py:43: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils.dep_util import newer, newer_group


------------ BUILD FINISHED ------------
To use wxPython from the build folder (without installing):
 - Set your PYTHONPATH variable to /var/tmp/portage/dev-python/wxpython-4.2.1-r2/work/wxPython-4.2.1-python3_11.
 - You may also need to set your (DY)LD_LIBRARY_PATH to /var/tmp/portage/dev-python/wxpython-4.2.1-r2/work/wxPython-4.2.1-python3_11/build/wxbld/gtk3/lib,
   or wherever the wxWidgets libs have been installed.

Finished command: build_py (59m20.80s)
Done!
 * python3_12: running distutils-r1_run_phase python_compile
Traceback (most recent call last):
  File "/var/tmp/portage/dev-python/wxpython-4.2.1-r2/work/wxPython-4.2.1-python3_12/build.py", line 43, in <module>
    from distutils.dep_util import newer, newer_group
ModuleNotFoundError: No module named 'distutils'
 * ERROR: dev-python/wxpython-4.2.1-r2::stefantalpalaru failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  136:  Called src_compile
 *   environment, line 3955:  Called distutils-r1_src_compile
 *   environment, line 1895:  Called _distutils-r1_run_foreach_impl 'python_compile'
 *   environment, line  708:  Called python_foreach_impl 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 3512:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 3009:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 3007:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 1157:  Called distutils-r1_run_phase 'python_compile'
 *   environment, line 1879:  Called python_compile
 *   environment, line 3306:  Called die
 * The specific snippet of code:
 *       DOXYGEN=/usr/bin/doxygen ${PYTHON} build.py dox etg --nodoc || die;