Package: src:libcloud Version: 3.8.0+repack-4 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, your package failed to build. Below you will find how the build ends (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202509/ 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 add an affects on src:libcloud, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:311: python3.13 setup.py clean /usr/lib/python3/dist-packages/setuptools/config/pyprojecttoml.py:72: _ExperimentalConfiguration: `[tool.distutils]` in `pyproject.toml` is still *experimental* and likely to change in future releases. config = read_configuration(filepath, True, ignore_option_errors, dist) /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. [... snipped ...] conn_params = { "hostname": "dummy.host.org", "username": "ubuntu", "key_material": private_key, } mock = ParamikoSSHClient(**conn_params) expected_msg = "private key file is encrypted" > assertRaisesRegex( self, paramiko.ssh_exception.PasswordRequiredException, expected_msg, mock.connect, ) libcloud/test/compute/test_ssh_client.py:199: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ libcloud/utils/py3.py:145: in assertRaisesRegex return getattr(self, "assertRaisesRegex")(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ libcloud/compute/ssh.py:344: in connect conninfo["pkey"] = self._get_pkey_object(key=self.key_material, password=self.password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def _get_pkey_object(self, key, password=None): """ Try to detect private key type and return paramiko.PKey object. # NOTE: Paramiko only supports key in PKCS#1 PEM format. """ key_types = [ (paramiko.RSAKey, "RSA"), > (paramiko.DSSKey, "DSA"), ^^^^^^^^^^^^^^^ (paramiko.ECDSAKey, "EC"), ] E AttributeError: module 'paramiko' has no attribute 'DSSKey'. Did you mean: 'RSAKey'? libcloud/compute/ssh.py:661: AttributeError __ ParamikoSSHClientTests.test_password_protected_key_no_password_provided_2 ___ self = <libcloud.test.compute.test_ssh_client.ParamikoSSHClientTests testMethod=test_password_protected_key_no_password_provided_2> @patch("paramiko.SSHClient", Mock) def test_password_protected_key_no_password_provided_2(self): path = os.path.join( os.path.dirname(__file__), "fixtures", "misc", "test_rsa_2048b_pass_foobar.key", ) # Supplied as key_material with open(path) as fp: private_key = fp.read() conn_params = { "hostname": "dummy.host.org", "username": "ubuntu", "key_material": private_key, "password": "invalid", } mock = ParamikoSSHClient(**conn_params) expected_msg = "OpenSSH private key file checkints do not match" > assertRaisesRegex(self, paramiko.ssh_exception.SSHException, > expected_msg, mock.connect) libcloud/test/compute/test_ssh_client.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ libcloud/utils/py3.py:145: in assertRaisesRegex return getattr(self, "assertRaisesRegex")(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ libcloud/compute/ssh.py:344: in connect conninfo["pkey"] = self._get_pkey_object(key=self.key_material, password=self.password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def _get_pkey_object(self, key, password=None): """ Try to detect private key type and return paramiko.PKey object. # NOTE: Paramiko only supports key in PKCS#1 PEM format. """ key_types = [ (paramiko.RSAKey, "RSA"), > (paramiko.DSSKey, "DSA"), ^^^^^^^^^^^^^^^ (paramiko.ECDSAKey, "EC"), ] E AttributeError: module 'paramiko' has no attribute 'DSSKey'. Did you mean: 'RSAKey'? libcloud/compute/ssh.py:661: AttributeError __ ParamikoSSHClientTests.test_password_protected_key_valid_password_provided __ self = <libcloud.test.compute.test_ssh_client.ParamikoSSHClientTests testMethod=test_password_protected_key_valid_password_provided> @patch("paramiko.SSHClient", Mock) def test_password_protected_key_valid_password_provided(self): path = os.path.join( os.path.dirname(__file__), "fixtures", "misc", "test_rsa_2048b_pass_foobar.key", ) # Supplied as key_material with open(path) as fp: private_key = fp.read() conn_params = { "hostname": "dummy.host.org", "username": "ubuntu", "key_material": private_key, "password": "foobar", } mock = ParamikoSSHClient(**conn_params) > self.assertTrue(mock.connect()) ^^^^^^^^^^^^^^ libcloud/test/compute/test_ssh_client.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ libcloud/compute/ssh.py:344: in connect conninfo["pkey"] = self._get_pkey_object(key=self.key_material, password=self.password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <libcloud.compute.ssh.ParamikoSSHClient object at 0x7f2a99bffd10> key = '-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABB8vQSsS2\nc2ykD4sx...wyejTT9SSoSWUEGi3+wZeUzhW8QOK74Z6s8CnusJxfjKGXNk21T\nRxBHBC9duCtSFk1ARBGKu2WqmHY=\n-----END OPENSSH PRIVATE KEY-----\n' password = 'foobar' def _get_pkey_object(self, key, password=None): """ Try to detect private key type and return paramiko.PKey object. # NOTE: Paramiko only supports key in PKCS#1 PEM format. """ key_types = [ (paramiko.RSAKey, "RSA"), > (paramiko.DSSKey, "DSA"), ^^^^^^^^^^^^^^^ (paramiko.ECDSAKey, "EC"), ] E AttributeError: module 'paramiko' has no attribute 'DSSKey'. Did you mean: 'RSAKey'? libcloud/compute/ssh.py:661: AttributeError =============================== warnings summary =============================== libcloud/common/google.py:110 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/common/google.py:110: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). return datetime.datetime.utcnow() libcloud/test/common/test_openstack_identity.py: 22 warnings libcloud/test/compute/test_deployment.py: 24 warnings libcloud/test/compute/test_openstack.py: 1156 warnings libcloud/test/compute/test_rackspace.py: 1785 warnings libcloud/test/dns/test_rackspace.py: 102 warnings libcloud/test/loadbalancer/test_rackspace.py: 366 warnings libcloud/test/storage/test_cloudfiles.py: 141 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/common/openstack_identity.py:794: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). time_tuple_now = datetime.datetime.utcnow().utctimetuple() libcloud/test/common/test_openstack_identity.py::OpenStackIdentityConnectionTestCase::test_token_expiration_and_force_reauthentication /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/test/common/test_openstack_identity.py:262: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). soon = datetime.datetime.utcnow() + datetime.timedelta( libcloud/test/common/test_osc.py::OSCRequestSignerAlgorithmV4TestCase::test_v4_signature_contains_credential_scope libcloud/test/common/test_osc.py::OSCRequestSignerAlgorithmV4TestCase::test_v4_signature_contains_signed_headers libcloud/test/common/test_osc.py::OSCRequestSignerAlgorithmV4TestCase::test_v4_signature_contains_user_id /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/common/osc.py:78: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). date = datetime.utcnow() libcloud/test/common/test_osc.py::OSCRequestSignerAlgorithmV4TestCase::test_v4_signature_contains_credential_scope /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/test/common/test_osc.py:59: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). datetime.utcnow().strftime("%Y%m%d") libcloud/test/compute/test_opennebula.py::OpenNebula_1_4_Tests::test_create_node libcloud/test/compute/test_opennebula.py::OpenNebula_2_0_Tests::test_create_node /usr/lib/python3.13/xml/etree/ElementTree.py:893: DeprecationWarning: Testing an element's truth value will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. if text or len(elem) or not short_empty_elements: libcloud/test/compute/test_openstack.py::OpenStack_1_0_Tests::test_create_node_with_metadata libcloud/test/compute/test_openstack.py::OpenStack_1_0_FactoryMethodTests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::OpenStack_1_0_Tests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::RackspaceusFirstGenUsTests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::RackspaceusFirstGenUkTests::test_create_node_with_metadata /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/compute/drivers/openstack.py:702: DeprecationWarning: Testing an element's truth value will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. if metadata_elm: libcloud/test/compute/test_openstack.py::OpenStack_1_0_Tests::test_create_node_with_metadata libcloud/test/compute/test_openstack.py::OpenStack_1_0_FactoryMethodTests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::OpenStack_1_0_Tests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::RackspaceusFirstGenUsTests::test_create_node_with_metadata libcloud/test/compute/test_rackspace.py::RackspaceusFirstGenUkTests::test_create_node_with_metadata /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/compute/drivers/openstack.py:706: DeprecationWarning: Testing an element's truth value will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. if files_elm: libcloud/test/compute/test_ssh_client.py: 33 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/compute/ssh.py:147: DeprecationWarning: You are using deprecated "key" argument which has been replaced with "key_files" argument warnings.warn(message, DeprecationWarning) libcloud/test/container/test_ecs.py: 31 warnings libcloud/test/loadbalancer/test_alb.py: 55 warnings libcloud/test/loadbalancer/test_elb.py: 22 warnings libcloud/test/storage/test_aurora.py: 66 warnings libcloud/test/storage/test_google_storage.py: 66 warnings libcloud/test/storage/test_ovh.py: 132 warnings libcloud/test/storage/test_s3.py: 66 warnings libcloud/test/storage/test_scaleway.py: 132 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/common/aws.py:275: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() libcloud/test/dns/test_auroradns.py: 32 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/dns/drivers/auroradns.py:260: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). t = datetime.datetime.utcnow() libcloud/test/dns/test_base.py::BaseTestCase::test_export_zone_to_bind_format_success /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/test/dns/test_base.py:86: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.datetime.utcnow() libcloud/test/dns/test_base.py::BaseTestCase::test_export_zone_to_bind_format_success libcloud/test/dns/test_base.py::BaseTestCase::test_export_zone_to_bind_format_success /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/dns/base.py:483: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") libcloud/test/dns/test_route53.py: 42 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/dns/drivers/route53.py:63: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). time_string = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT") libcloud/test/storage/test_aurora.py::S3Tests::test_get_object_cdn_url libcloud/test/storage/test_google_storage.py::S3Tests::test_get_object_cdn_url libcloud/test/storage/test_ovh.py::S3Tests::test_get_object_cdn_url libcloud/test/storage/test_ovh.py::OvhStorageDriverTestCase::test_get_object_cdn_url libcloud/test/storage/test_s3.py::S3Tests::test_get_object_cdn_url libcloud/test/storage/test_scaleway.py::S3Tests::test_get_object_cdn_url libcloud/test/storage/test_scaleway.py::ScalewayStorageDriverTestCase::test_get_object_cdn_url /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/storage/drivers/s3.py:1296: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() libcloud/test/storage/test_azure_blobs.py::AzureBlobsTests::test_get_object_cdn_url libcloud/test/storage/test_azure_blobs.py::AzuriteBlobsTests::test_get_object_cdn_url /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/storage/drivers/azure_blobs.py:622: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() libcloud/test/test_http.py::HttpLayerTestCase::test_prepared_request_empty_body_chunked_encoding_not_used /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build/libcloud/test/test_http.py:109: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead cls.mock_server_thread.setDaemon(True) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ============================= slowest 10 durations ============================= 2.00s call libcloud/test/test_connection.py::ConnectionClassTestCase::test_parse_errors_can_be_retried 2.00s call libcloud/test/storage/test_base.py::BaseStorageTests::test_should_retry_rate_limited_errors_until_success 2.00s call libcloud/test/storage/test_base.py::BaseStorageTests::test_should_retry_rate_limited_errors 1.00s call libcloud/test/test_connection.py::ConnectionClassTestCase::test_retry_with_timeout 1.00s call libcloud/test/test_connection.py::ConnectionClassTestCase::test_retry_with_sleep 1.00s call libcloud/test/test_connection.py::ConnectionClassTestCase::test_retry_with_backoff 1.00s call libcloud/test/compute/test_vultr.py::VultrTests::test_rate_limit 1.00s call libcloud/test/test_connection.py::ConnectionClassTestCase::test_retry_rate_limit_error_timeout 0.99s call libcloud/test/compute/test_azure_arm.py::AzureNodeDriverTests::test_list_volumes_pagination_timeout 0.97s call libcloud/test/test_utils.py::TestUtils::test_read_in_chunks_corectness =========================== short test summary info ============================ FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_ed25519_key_type FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_key_material_argument FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_key_material_argument_invalid_key FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_key_material_valid_pem_keys FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_key_material_valid_pem_keys_invalid_header_auto_conversion FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_password_protected_key_no_password_provided_1 FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_password_protected_key_no_password_provided_2 FAILED libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_password_protected_key_valid_password_provided === 8 failed, 8101 passed, 25 skipped, 2 deselected, 4304 warnings in 44.89s === E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_libcloud/build; python3.13 -m pytest -m 'not serial' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 --test-pytest --test-args "-m 'not serial'" returned exit code 13 make[1]: *** [debian/rules:19: override_dh_auto_test] Error 25 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:13: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------