Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1718349
Summary: | python-passlib fails to build with Python 3.8 | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Petr Viktorin <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, 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
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! |