Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 630730 - AsynchronousLock: Unconditional import of dummy_threading module no longer available in Python 3.7
Summary: AsynchronousLock: Unconditional import of dummy_threading module no longer av...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 631448
  Show dependency tree
 
Reported: 2017-09-11 20:44 UTC by Arfrever Frehtes Taifersar Arahesis
Modified: 2018-02-01 23:54 UTC (History)
0 users

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 Arfrever Frehtes Taifersar Arahesis 2017-09-11 20:44:13 UTC
Support for thread-less build of CPython 3.7 was deleted:
https://github.com/python/cpython/commit/a6a4dc816d68df04a7d592e0b6af8c7ecc4d4344

In this commit, _dummy_thread (Lib/_dummy_thread.py) and dummy_threading (Lib/dummy_threading.py) modules were deleted.
dummy_threading module is used in Portage:


$ python3.7 bin/emerge
Traceback (most recent call last):
  File "bin/emerge", line 44, in <module>
    from _emerge.main import emerge_main
  File "/tmp/portage/pym/_emerge/main.py", line 23, in <module>
    from portage.sync import _SUBMODULE_PATH_MAP
  File "/tmp/portage/pym/portage/sync/__init__.py", line 8, in <module>
    from portage.sync.controller import SyncManager
  File "/tmp/portage/pym/portage/sync/controller.py", line 22, in <module>
    from portage.package.ebuild.doebuild import _check_temp_dir
  File "/tmp/portage/pym/portage/package/ebuild/doebuild.py", line 87, in <module>
    from _emerge.EbuildBuildDir import EbuildBuildDir
  File "/tmp/portage/pym/_emerge/EbuildBuildDir.py", line 4, in <module>
    from _emerge.AsynchronousLock import AsynchronousLock
  File "/tmp/portage/pym/_emerge/AsynchronousLock.py", line 4, in <module>
    import dummy_threading
ModuleNotFoundError: No module named 'dummy_threading'


Beside making import of dummy_threading module optional, pym/portage/tests/locks/test_asynchronous_lock.py will have to be updated to not test force_dummy=True with Python >=3.7.
Comment 1 Zac Medico gentoo-dev 2017-09-11 21:53:07 UTC
This is fixed in the master branch:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=504f66b0e25281e4465ebeceb799c3e54ff2b884
Comment 2 Zac Medico gentoo-dev 2017-09-19 21:05:45 UTC
Released in portage-2.3.9.