Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

distutil.dep_util compatibility #11

Open
rafspiny opened this issue Jul 24, 2024 · 0 comments
Open

distutil.dep_util compatibility #11

rafspiny opened this issue Jul 24, 2024 · 0 comments

Comments

@rafspiny
Copy link

rafspiny commented Jul 24, 2024

Hi!

I am using python-efl 1.26.1 from the release tarball.
I noticed that I cannot build any package when using at least python3.10 or newer (tried 3.11 and 3.12). I did not tried with lower versions.

2024-07-23 22:24:33,689 root INFO running build_i18n
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 443, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 439, in main
    return func(args)
           ^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 229, in build_wheel
    print(build_wheel_impl(args, args.wheel_dir), file=out)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 221, in build_wheel_impl
    wheel_name = backend.build_wheel(str(wheel_dir), args.config_json)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/build_meta.py", line 410, in build_wheel
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3.11/site-packages/setuptools/build_meta.py", line 487, in run_setup
    super().run_setup(setup_script=setup_script)
  File "/usr/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
    exec(code, locals())
  File "<string>", line 15, in <module>
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 184, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 968, in run_command
    super().run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 368, in run
    self.run_command("build")
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 968, in run_command
    super().run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.11/site-packages/efl/utils/setup.py", line 28, in run
    self.run_command('build_i18n')
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 968, in run_command
    super().run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.11/site-packages/efl/utils/setup.py", line 123, in run
    self.compile_po(lang)
  File "/usr/lib/python3.11/site-packages/efl/utils/setup.py", line 164, in compile_po
    if distutils.dep_util.newer(po_file, mo_file):
       ^^^^^^^^^^^^^^^^^^
AttributeError: module 'distutils' has no attribute 'dep_util'. Did you mean: 'dir_util'?
 * ERROR: media-gfx/eluminance-9999::enlightenment-live failed (compile phase):
 *   Wheel build failed

This is due to the weird behaviour of distutils.

Python 3.10.14 (main, Jul  3 2024, 03:50:21) [GCC 13.2.1 20240210] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils
>>> distutils.dep_util
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'distutils' has no attribute 'dep_util'. Did you mean: 'dir_util'?
>>> from distutil import dep_util
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'distutil'
>>> from distutils import dep_util
>>> dep_util
<module 'distutils.dep_util' from '/usr/lib/python3.10/site-packages/setuptools/_distutils/dep_util.py'>
>>>

I am keeping a patch that I apply on my systems. Do you think it can be applied directly here?

index e47578f..5990489 100644
--- a/efl/utils/setup.py
+++ b/efl/utils/setup.py
@@ -16,7 +16,7 @@
 # along with this Python-EFL.  If not, see <http://www.gnu.org/licenses/>.

 import os
-import distutils
+from distutils import dep_util
 import distutils.command.build
 from distutils.log import warn, info, error

@@ -68,7 +68,7 @@ class build_edc(distutils.cmd.Command):
             sources.extend( os.path.join(root, name) for name in files )

         edj_file = os.path.join('build', 'themes', '%s.edj' % name)
-        if distutils.dep_util.newer_group(sources, edj_file):
+        if dep_util.newer_group(sources, edj_file):
             info('compiling theme "%s" from edc file: "%s"' % (name, edc_file))
             cmd = ['edje_cc', '-v',
                    '-id', theme_dir, '-id', os.path.join(theme_dir, 'images'),
@rafspiny rafspiny changed the title distutil.dep_util comptibility distutil.dep_util compatibility Jul 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant