Bug 260726

Summary: python autoinstaller is broken with python 3.12
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: Tools / TestsAssignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: jameshoward, mcatanzaro, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=260889
https://bugs.webkit.org/show_bug.cgi?id=260877

Description Michael Catanzaro 2023-08-25 12:02:15 PDT
pkgutil.ImpImporter has been removed:

Downloading setuptools-56.0.0...
Installing setuptools-56.0.0...
Traceback (most recent call last):
  File "/tmp/setuptools-158464/setuptools-56.0.0/setup.py", line 7, in <module>
    import setuptools
  File "/tmp/setuptools-158464/setuptools-56.0.0/setuptools/__init__.py", line 16, in <module>
    import setuptools.version
  File "/tmp/setuptools-158464/setuptools-56.0.0/setuptools/version.py", line 1, in <module>
    import pkg_resources
  File "/tmp/setuptools-158464/setuptools-56.0.0/pkg_resources/__init__.py", line 2158, in <module>
    register_finder(pkgutil.ImpImporter, find_on_path)
                    ^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
Comment 1 Michael Catanzaro 2023-08-25 12:06:46 PDT
(In reply to Michael Catanzaro from comment #0)
> AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you
> mean: 'zipimporter'?

Solution here is simple: just need to update setuptools.

Next bug:

Traceback (most recent call last):
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/git-webkit", line 82, in <module>
    sys.exit(program.main(
             ^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py", line 164, in main
    repository.classifier = classifier(repository) or repository.classifier
                            ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/git-webkit", line 38, in callback
    repository = repository.remote()
                 ^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py", line 56, in decorator
    value = function(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py", line 533, in remote
    return remote.Scm.from_url(url, contributors=self.contributors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py", line 76, in from_url
    return candidate(url, contributors=contributors, classifier=classifier)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py", line 368, in __init__
    self.session = requests.Session()
                   ^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/call_by_need.py", line 35, in __getattribute__
    return object.__getattribute__(self, 'value').__getattribute__(name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/call_by_need.py", line 41, in value
    self._value = self._callback()
                  ^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py", line 36, in <lambda>
    requests = CallByNeed(lambda: __import__('requests'))
                                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/autoinstalled/python-3-x86_64/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/autoinstalled/python-3-x86_64/urllib3/__init__.py", line 7, in <module>
    from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/autoinstalled/python-3-x86_64/urllib3/connectionpool.py", line 11, in <module>
    from .exceptions import (
  File "/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/autoinstalled/python-3-x86_64/urllib3/exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
ModuleNotFoundError: No module named 'urllib3.packages.six.moves'
Comment 2 Michael Catanzaro 2023-08-25 12:08:58 PDT
That one's easy too: just need to update urllib3. That requires also updating requests. Then it works.
Comment 3 Michael Catanzaro 2023-08-25 12:10:17 PDT
Pull request: https://github.com/WebKit/WebKit/pull/17076
Comment 4 EWS 2023-08-29 12:28:01 PDT
Committed 267415@main (cb4faa2a3ee3): <https://commits.webkit.org/267415@main>

Reviewed commits have been landed. Closing PR #17076 and removing active labels.
Comment 5 Radar WebKit Bug Importer 2023-08-29 12:29:15 PDT
<rdar://problem/114649021>
Comment 6 Michael Catanzaro 2023-08-29 19:12:09 PDT
Regression: bug #260889