Bug 1718349
| Summary: | python-passlib fails to build with Python 3.8 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Petr Viktorin (pviktori) <pviktori> | ||||
| Component: | python-passlib | Assignee: | Alan Pevec (Fedora) <apevec> | ||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | rawhide | CC: | apevec, besser82, gauret, mhroncok | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2019-07-13 07:25:56 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 1686977 | ||||||
| Attachments: |
|
||||||
|
Description
Petr Viktorin (pviktori)
2019-06-07 14:21:45 UTC
This blocks the rebuild of ansible and that might be important for some. Any news, Alan? Could you please prioritize this? Aurelien? Alan, Aurelien, are you responsive? This should be fixed upstream, in the meantime since upstream seems stagnant (no commits for 2 years: https://bitbucket.org/ecollins/passlib/commits/all ) we can patch this in RPM. Created attachment 1589359 [details]
proposed fix in RPM TODO propose upstream
Petr, please review proposed patch. Thanks. Petr is on EuroPython, I'll have a look. The patch subject is a bit cryptic: Replace code lifted from timeit with using timeit
Python 2.7 %check failed:
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_apps.py", line 10, in <module>
from passlib import apps, hash as hashmod
File "/builddir/build/BUILD/passlib-1.7.1/passlib/apps.py", line 11, in <module>
from passlib.context import LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_context.py", line 20, in <module>
from passlib.context import CryptContext, LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_context_deprecated.py", line 23, in <module>
from passlib.context import CryptContext, CryptPolicy, LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_ext_django.py", line 11, in <module>
from passlib import apps as _apps, exc, registry
File "/builddir/build/BUILD/passlib-1.7.1/passlib/apps.py", line 11, in <module>
from passlib.context import LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_ext_django_source.py", line 13, in <module>
from passlib.ext.django.utils import DJANGO_VERSION, DjangoTranslator, _PasslibHasherWrapper
File "/builddir/build/BUILD/passlib-1.7.1/passlib/ext/django/utils.py", line 20, in <module>
from passlib.context import CryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_handlers_django.py", line 16, in <module>
from passlib.tests.test_ext_django import DJANGO_VERSION, MIN_DJANGO_VERSION
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_ext_django.py", line 11, in <module>
from passlib import apps as _apps, exc, registry
File "/builddir/build/BUILD/passlib-1.7.1/passlib/apps.py", line 11, in <module>
from passlib.context import LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: scram: test handling of 'algs' in context object
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_handlers_pbkdf2.py", line 420, in test_95_context_algs
from passlib.context import CryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: Failure: ImportError (cannot import name timer)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_hosts.py", line 10, in <module>
from passlib import hosts, hash as hashmod
File "/builddir/build/BUILD/passlib-1.7.1/passlib/hosts.py", line 8, in <module>
from passlib.context import LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: passlib.registry: verify we have tests for all builtin handlers
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_registry.py", line 221, in test_handlers
self.assertTrue(get_handler_case(name))
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_handlers.py", line 57, in get_handler_case
__import__(modname)
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_handlers_django.py", line 16, in <module>
from passlib.tests.test_ext_django import DJANGO_VERSION, MIN_DJANGO_VERSION
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_ext_django.py", line 11, in <module>
from passlib import apps as _apps, exc, registry
File "/builddir/build/BUILD/passlib-1.7.1/passlib/apps.py", line 11, in <module>
from passlib.context import LazyCryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
======================================================================
ERROR: test is_crypt_context()
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/passlib-1.7.1/passlib/tests/test_utils.py", line 150, in test_is_crypt_context
from passlib.context import CryptContext
File "/builddir/build/BUILD/passlib-1.7.1/passlib/context.py", line 16, in <module>
from passlib.utils import (handlers as uh, to_bytes,
ImportError: cannot import name timer
----------------------------------------------------------------------
Ran 2636 tests in 155.391s
FAILED (SKIP=1137, errors=11)
yeah it would help to run tests before posting a patch BTW running tests on 3.7 produces one more deprecation warning which needs to handled: passlib/utils/__init__.py:276: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working if isinstance(source, collections.Sequence): https://bitbucket.org/apevec/passlib/commits/58f3efd111e930baf39ff50df27ed7f2d24f759d is passing tests on py2 and py3 TODO fix collections ABC usage Thanks for the fix! |