Package: src:python-passlib
Version: 1.7.4-4
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py config 
running config
I: pybuild base:311: python3.12 setup.py config 
running config
   dh_auto_build -O--buildsystem=pybuild
I: pybuild base:311: /usr/bin/python3.13 setup.py build 
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_passlib/build/passlib

[... snipped ...]

    
        :arg name:
            name of backend to load, can be any of the following:
    
            * ``"any"`` -- use current backend if one is loaded,
              otherwise load the first available backend.
    
            * ``"default"`` -- use the first available backend.
    
            * any string in :attr:`backends`, loads specified backend.
    
        :param dryrun:
            If True, this perform all setup actions *except* switching over to 
the new backend.
            (this flag is used to implement :meth:`has_backend`).
    
            .. versionadded:: 1.7
    
        :raises ValueError:
            If backend name is unknown.
    
        :raises passlib.exc.MissingBackendError:
            If specific backend is missing;
            or in the case of ``"any"`` / ``"default"``, if *no* backends are 
available.
    
        :raises passlib.exc.PasslibSecurityError:
    
            If ``"any"`` or ``"default"`` was specified,
            but the only backend available has a PasslibSecurityError.
        """
        # check if active backend is acceptable
        if (name == "any" and cls.__backend) or (name and name == 
cls.__backend):
            return cls.__backend
    
        # if this isn't the final subclass, whose bases we can modify,
        # find that class, and recursively call this method for the proper 
class.
        owner = cls._get_backend_owner()
        if owner is not cls:
            return owner.set_backend(name, dryrun=dryrun)
    
        # pick first available backend
        if name == "any" or name == "default":
            default_error = None
            for name in cls.backends:
                try:
                    return cls.set_backend(name, dryrun=dryrun)
                except exc.MissingBackendError:
                    continue
                except exc.PasslibSecurityError as err:
                    # backend is available, but refuses to load due to security 
issue.
                    if default_error is None:
                        default_error = err
                    continue
            if default_error is None:
                msg = "%s: no backends available" % cls.name
                if cls._no_backend_suggestion:
                    msg += cls._no_backend_suggestion
                default_error = exc.MissingBackendError(msg)
>           raise default_error
E           passlib.exc.MissingBackendError: bcrypt: no backends available -- 
recommend you install one (e.g. 'pip install bcrypt')

passlib/utils/handlers.py:2175: MissingBackendError
_______________ bcrypt_sha256_os_crypt_test.test_using_salt_size _______________

self = <passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test 
testMethod=test_using_salt_size>

    def setUp(self):
        assert self.backend == "os_crypt"
        if not self.handler.has_backend("os_crypt"):
            # XXX: currently, any tests that use this are skipped entirely! 
(see issue 120)
>           self._patch_safe_crypt()

passlib/tests/utils.py:3211: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
passlib/tests/utils.py:3245: in _patch_safe_crypt
    handler, alt_backend = self._get_safe_crypt_handler_backend()
passlib/tests/test_handlers_bcrypt.py:679: in _get_safe_crypt_handler_backend
    return bcrypt_os_crypt_test._get_safe_crypt_handler_backend()
passlib/tests/utils.py:3224: in _get_safe_crypt_handler_backend
    handler.get_backend()
passlib/utils/handlers.py:2087: in get_backend
    cls.set_backend()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'passlib.handlers.bcrypt.bcrypt'>, name = 'builtin', dryrun = False

    @classmethod
    def set_backend(cls, name="any", dryrun=False):
        """
        Load specified backend.
    
        :arg name:
            name of backend to load, can be any of the following:
    
            * ``"any"`` -- use current backend if one is loaded,
              otherwise load the first available backend.
    
            * ``"default"`` -- use the first available backend.
    
            * any string in :attr:`backends`, loads specified backend.
    
        :param dryrun:
            If True, this perform all setup actions *except* switching over to 
the new backend.
            (this flag is used to implement :meth:`has_backend`).
    
            .. versionadded:: 1.7
    
        :raises ValueError:
            If backend name is unknown.
    
        :raises passlib.exc.MissingBackendError:
            If specific backend is missing;
            or in the case of ``"any"`` / ``"default"``, if *no* backends are 
available.
    
        :raises passlib.exc.PasslibSecurityError:
    
            If ``"any"`` or ``"default"`` was specified,
            but the only backend available has a PasslibSecurityError.
        """
        # check if active backend is acceptable
        if (name == "any" and cls.__backend) or (name and name == 
cls.__backend):
            return cls.__backend
    
        # if this isn't the final subclass, whose bases we can modify,
        # find that class, and recursively call this method for the proper 
class.
        owner = cls._get_backend_owner()
        if owner is not cls:
            return owner.set_backend(name, dryrun=dryrun)
    
        # pick first available backend
        if name == "any" or name == "default":
            default_error = None
            for name in cls.backends:
                try:
                    return cls.set_backend(name, dryrun=dryrun)
                except exc.MissingBackendError:
                    continue
                except exc.PasslibSecurityError as err:
                    # backend is available, but refuses to load due to security 
issue.
                    if default_error is None:
                        default_error = err
                    continue
            if default_error is None:
                msg = "%s: no backends available" % cls.name
                if cls._no_backend_suggestion:
                    msg += cls._no_backend_suggestion
                default_error = exc.MissingBackendError(msg)
>           raise default_error
E           passlib.exc.MissingBackendError: bcrypt: no backends available -- 
recommend you install one (e.g. 'pip install bcrypt')

passlib/utils/handlers.py:2175: MissingBackendError
________________ bcrypt_sha256_os_crypt_test.test_using_version ________________

self = <passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test 
testMethod=test_using_version>

    def setUp(self):
        # ensure builtin is enabled for duration of test.
        if TEST_MODE("full") and self.backend == "builtin":
            key = "PASSLIB_BUILTIN_BCRYPT"
            orig = os.environ.get(key)
            if orig:
                self.addCleanup(os.environ.__setitem__, key, orig)
            else:
                self.addCleanup(os.environ.__delitem__, key)
            os.environ[key] = "enabled"
>       super(_bcrypt_sha256_test, self).setUp()

passlib/tests/test_handlers_bcrypt.py:585: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
passlib/tests/utils.py:3211: in setUp
    self._patch_safe_crypt()
passlib/tests/utils.py:3245: in _patch_safe_crypt
    handler, alt_backend = self._get_safe_crypt_handler_backend()
passlib/tests/test_handlers_bcrypt.py:679: in _get_safe_crypt_handler_backend
    return bcrypt_os_crypt_test._get_safe_crypt_handler_backend()
passlib/tests/utils.py:3224: in _get_safe_crypt_handler_backend
    handler.get_backend()
passlib/utils/handlers.py:2087: in get_backend
    cls.set_backend()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'passlib.handlers.bcrypt.bcrypt'>, name = 'builtin', dryrun = False

    @classmethod
    def set_backend(cls, name="any", dryrun=False):
        """
        Load specified backend.
    
        :arg name:
            name of backend to load, can be any of the following:
    
            * ``"any"`` -- use current backend if one is loaded,
              otherwise load the first available backend.
    
            * ``"default"`` -- use the first available backend.
    
            * any string in :attr:`backends`, loads specified backend.
    
        :param dryrun:
            If True, this perform all setup actions *except* switching over to 
the new backend.
            (this flag is used to implement :meth:`has_backend`).
    
            .. versionadded:: 1.7
    
        :raises ValueError:
            If backend name is unknown.
    
        :raises passlib.exc.MissingBackendError:
            If specific backend is missing;
            or in the case of ``"any"`` / ``"default"``, if *no* backends are 
available.
    
        :raises passlib.exc.PasslibSecurityError:
    
            If ``"any"`` or ``"default"`` was specified,
            but the only backend available has a PasslibSecurityError.
        """
        # check if active backend is acceptable
        if (name == "any" and cls.__backend) or (name and name == 
cls.__backend):
            return cls.__backend
    
        # if this isn't the final subclass, whose bases we can modify,
        # find that class, and recursively call this method for the proper 
class.
        owner = cls._get_backend_owner()
        if owner is not cls:
            return owner.set_backend(name, dryrun=dryrun)
    
        # pick first available backend
        if name == "any" or name == "default":
            default_error = None
            for name in cls.backends:
                try:
                    return cls.set_backend(name, dryrun=dryrun)
                except exc.MissingBackendError:
                    continue
                except exc.PasslibSecurityError as err:
                    # backend is available, but refuses to load due to security 
issue.
                    if default_error is None:
                        default_error = err
                    continue
            if default_error is None:
                msg = "%s: no backends available" % cls.name
                if cls._no_backend_suggestion:
                    msg += cls._no_backend_suggestion
                default_error = exc.MissingBackendError(msg)
>           raise default_error
E           passlib.exc.MissingBackendError: bcrypt: no backends available -- 
recommend you install one (e.g. 'pip install bcrypt')

passlib/utils/handlers.py:2175: MissingBackendError
=============================== warnings summary ===============================
passlib/tests/test_context_deprecated.py:17
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_passlib/build/passlib/tests/test_context_deprecated.py:17:
 DeprecationWarning: pkg_resources is deprecated as an API. See 
https://setuptools.pypa.io/en/latest/pkg_resources.html
    from pkg_resources import resource_filename

.pybuild/cpython3_3.13_passlib/build/passlib/tests/test_apache.py::HtpasswdFileTest::test_02_set_password_default_scheme
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_passlib/build/passlib/apache.py:723: 
PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using 
fallback for default scheme 'portable'
    warn("HtpasswdFile: no bcrypt backends available, "

.pybuild/cpython3_3.13_passlib/build/passlib/tests/test_crypto_scrypt.py: 11 
warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_passlib/build/passlib/crypto/scrypt/__init__.py:162:
 PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower 
than is required for adequate security. Installing scrypt support (via 'pip 
install scrypt') is strongly recommended
    warn("Using builtin scrypt backend, which is %dx slower than is required "

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
passlib/tests/test_handlers.py::des_crypt_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers.py::md5_crypt_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers.py::sha256_crypt_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers.py::sha512_crypt_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_01_required_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_02_config_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_02_using_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_03_hash_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_03_legacy_hash_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_04_hash_types
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_05_backends
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_10_optional_salt_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_11_unique_salt
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_12_min_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_13_max_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_14_salt_chars
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_15_salt_type
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_20_optional_rounds_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_21_min_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_21b_max_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_30_HasManyIdents
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_61_secret_case_sensitive
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_62_secret_border
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_63_large_secret
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_64_forbidden_chars
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_70_hashes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_70_parsehash
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_71_alternates
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_71_parsehash_results
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_72_configs
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_73_unidentified
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_74_malformed
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_75_foreign
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_76_hash_border
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_77_fuzz_input
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_78_fuzz_threading
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_80_faulty_crypt
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_81_crypt_fallback
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_90_bcrypt_padding
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_disable_and_enable
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_many_idents_using
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_replace_w_max_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_and_needs_update
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_harness
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_w_default_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_w_min_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_w_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_w_vary_rounds_generation
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_has_rounds_using_w_vary_rounds_parsing
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_needs_update_w_padding
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_secret_w_truncate_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_secret_wo_truncate_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_truncate_error_setting
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_os_crypt_test::test_using_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_01_required_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_02_config_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_02_using_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_03_hash_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_03_legacy_hash_workflow
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_04_hash_types
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_05_backends
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_10_optional_salt_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_11_unique_salt
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_12_min_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_13_max_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_14_salt_chars
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_15_salt_type
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_20_optional_rounds_attributes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_21_min_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_21b_max_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_30_HasManyIdents
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_30_HasOneIdent
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_61_secret_case_sensitive
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_62_secret_border
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_63_large_secret
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_64_forbidden_chars
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_70_hashes
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_70_parsehash
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_71_alternates
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_71_parsehash_results
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_72_configs
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_73_unidentified
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_74_malformed
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_75_foreign
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_76_hash_border
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_77_fuzz_input
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_78_fuzz_threading
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_80_faulty_crypt
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_81_crypt_fallback
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_82_crypt_support
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_calc_digest_v2
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_disable_and_enable
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_many_idents_using
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_replace_w_max_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_and_needs_update
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_harness
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_w_default_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_w_min_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_w_rounds
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_w_vary_rounds_generation
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_has_rounds_using_w_vary_rounds_parsing
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_secret_w_truncate_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_secret_wo_truncate_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_truncate_error_setting
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_using_salt_size
FAILED 
passlib/tests/test_handlers_bcrypt.py::bcrypt_sha256_os_crypt_test::test_using_version
==== 107 failed, 1806 passed, 2357 skipped, 13 warnings in 97.32s (0:01:37) ====
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_passlib/build; python3.13 -m pytest 
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_passlib/build; 
python3.12 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.4.1
collected 4366 items

passlib/tests/test_apache.py ..................ss.............           [  0%]
passlib/tests/test_apps.py ...........                                   [  1%]
passlib/tests/test_context.py ......................................     [  1%]
passlib/tests/test_context_deprecated.py ........................        [  2%]
passlib/tests/test_crypto_builtin_md4.py .....                           [  2%]
passlib/tests/test_crypto_des.py ....                                    [  2%]
passlib/tests/test_crypto_digest.py ............                         [  2%]
passlib/tests/test_crypto_scrypt.py .....s.................              [  3%]
passlib/tests/test_ext_django.py ssssssssssssssssssssssss                [  3%]
passlib/tests/test_ext_django_source.py s                                [  4%]
passlib/tests/test_handlers.py ......s......ssss...s..ssss....ssssssssss [  4%]
ss.........s......ssss...s..sss.s...s.sssssssssss...................s... [  6%]
...sss.s...s..sss.........s...ssssssssssssssssssssssssssssssssssssssssss [  8%]
sssss......s......ssss...s..sssss...sssssssssss.s...............ssss.... [  9%]
..sss.s...s...ssssssssss.s..ssssssssssssssssssssssssssssssssssssssssssss [ 11%]
ss......s.........s...s..sss.....s.ss........s.........sssssssssss...s.. [ 13%]
sssss...ssssssssssss..s......sssssssssss...s..sssss...sssssssssss.s..s.. [ 14%]
....sssssssssss...s..sssss...ssssssssssss..s......sssssssssss...s..sssss [ 16%]
...ssssssssssss..s......sssssssssss...s..sssss...ssssssssssss..s......ss [ 18%]
sssssssss...s.ssss.s...ss..sssssssssss..s......sssssssssss...s..sssss... [ 19%]
ssssssssssss..s......sssssssssss...s..sssss...ssssssssssss..s......s.... [ 21%]
..ssss...s..ssss....ssssssssssss.........s......ssss...s..ssss....ssssss [ 23%]
ssssss.........s......ssss...s..ssss....ssssssssssss.........s......ssss [ 24%]
...s..ssss....ssssssssssss.........sssssssssss...s.ssss.s...ssssssssssss [ 26%]
..s.............ssss.....sssss....s..ssssssssssss...ssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssss................s.....ssssss..ss..sss........s [ 29%]
.........sssssssssss...s..sss.s...s.ssssssssss.s.s.............ssss..... [ 31%]
.ssss....s...sssssssssss...sssssssssssssssssssssssssssssssssssssssssssss [ 32%]
s......sssssssssss...s...ssss...s...sssssssssss..s......sssssssssss...s. [ 34%]
.sssss...s...sssssssssss..s......s......ssss...s...ss.....ssssssssssss.. [ 36%]
.......s......ssss...s...ss.....ssssssssssss.........sssssssssss...s..ss [ 37%]
s.s...s.sssssssssss..s......sssssssssss...s..sss.s...ssssssssssss..s.... [ 39%]
..sssssssssss...s..sss.s...ssssssssssss..s......sssssssssss...s.ssss.s.. [ 41%]
.ssssssssssss..s......sssssssssss...s..sss.s...s...sssssssssss..s......s [ 42%]
......ssss...s..sssss...ssssssssssss.........s.............s..ssss....ss [ 44%]
.........s.........sssssssssss...s.sssssss..ssssssssssss..s......sssssss [ 46%]
ssss...s..sss.s...s...sssssssssss..s................s......ssss....s..ss [ 47%]
s........s...ssssssssssssssssssssssssssssssssssssssssssssss............. [ 49%]
....s......ss.s....s...ss........s...sssssssssssssssssssssssssssssssssss [ 51%]
sssssssssss................s......ss.s....s...ss........s...ssssssssssss [ 52%]
ssssssssssssssssssssssssssssssssss......s.........s...s..ss.s....sss.... [ 54%]
....s.........sssssssssss...s.ssss.s..ss..ssssssssss..s......sssssssssss [ 56%]
...s..ssssss.ss...ssssssssss..s                                          [ 56%]
passlib/tests/test_handlers_argon2.py ssssssssssssssssssssssssssssssssss [ 57%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 59%]
ss                                                                       [ 59%]
passlib/tests/test_handlers_bcrypt.py ssssssssssssssssssssssssssssssssss [ 60%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 61%]
ssssssssssssssssssssssssssssssssssssss.......................ss......s.. [ 63%]
sss...........s..sssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 64%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 66%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.... [ 68%]
............s....s..ss.s....s..s.ss........s....ssssssssssssssssssssssss [ 69%]
sssssssssssssssssssssssss                                                [ 70%]
passlib/tests/test_handlers_cisco.py ......sssssssssss...s..sssss...s... [ 71%]
.ssssssssss.s.s......sssssssssss...s..sssss...s....ssssssssss.s.s......s [ 72%]
s.sss.ssss...s..sss.s...s..sssssssssss..s                                [ 73%]
passlib/tests/test_handlers_django.py ......sssssssssss...s...ssss..ss.s [ 74%]
sssssssss..s......s......ssss...s...ss.....sssssssssssss.s........s..... [ 76%]
.ssss...s..sss.....ssssssssssssss.........s......ssss...s..sss.....sssss [ 77%]
sssssssss.........s.........s...s..sssss...sssss........s.........s..... [ 79%]
....s...s..sssss...sssss........s...................s.....ssssss...sssss [ 81%]
.........s......................s..sssss...ssss.........s...             [ 82%]
passlib/tests/test_handlers_pbkdf2.py .......s......ssss...s..ssss....ss [ 83%]
ssssssssss.........s.........s...s..ssss....sss........s.........s...... [ 85%]
...s...s..sssss...sss........s.........s.........s...s..sssss...sss..... [ 86%]
...s.........s.........s...s..sssss...sss........s.........s.........s.. [ 88%]
.s..sssss...sss........s.........s.........s...s..sssss...sss........s.. [ 90%]
.......s.........s...s..ssss....s...........ss........s...               [ 91%]
passlib/tests/test_handlers_scrypt.py ....................s..ssss....ss. [ 92%]
........s...ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 93%]
ssssssssssssssssssssssssssssssss                                         [ 94%]
passlib/tests/test_hosts.py ...                                          [ 94%]
passlib/tests/test_pwd.py ........                                       [ 94%]
passlib/tests/test_registry.py ......                                    [ 94%]
passlib/tests/test_totp.py ss.ss...................................      [ 95%]
passlib/tests/test_utils.py ............................................ [ 96%]
...........                                                              [ 97%]
passlib/tests/test_utils_handlers.py ..........................sssssssss [ 97%]
ss...s..sssss...s.sssssssssss..s......s......ssss...s..sssss...s.sssssss [ 99%]
ssss...                                                                  [ 99%]
passlib/tests/test_utils_md4.py .....                                    [ 99%]
passlib/tests/test_utils_pbkdf2.py .......                               [ 99%]
passlib/tests/test_win32.py ..                                           [100%]

=============================== warnings summary ===============================
passlib/utils/__init__.py:854
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_passlib/build/passlib/utils/__init__.py:854:
 DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13
    from crypt import crypt as _crypt

passlib/tests/test_context_deprecated.py:17
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_passlib/build/passlib/tests/test_context_deprecated.py:17:
 DeprecationWarning: pkg_resources is deprecated as an API. See 
https://setuptools.pypa.io/en/latest/pkg_resources.html
    from pkg_resources import resource_filename

.pybuild/cpython3_3.12_passlib/build/passlib/tests/test_crypto_scrypt.py: 11 
warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_passlib/build/passlib/crypto/scrypt/__init__.py:162:
 PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower 
than is required for adequate security. Installing scrypt support (via 'pip 
install scrypt') is strongly recommended
    warn("Using builtin scrypt backend, which is %dx slower than is required "

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========== 2020 passed, 2346 skipped, 13 warnings in 98.80s (0:01:38) ==========
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:6: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202412/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.


Reply via email to