• Bug#1100301: ros-vcstools: FTBFS: ERROR test/test_bzr.py::BzrClientTest

    From Santiago Vila@21:1/5 to All on Wed Mar 12 17:40:09 2025
    Package: src:ros-vcstools
    Version: 0.1.42-9
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

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

    --------------------------------------------------------------------------------
    [...]
    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/_distutils/dist.py:270: UserWarning: Unknown distribution option: 'tests_require'
    warnings.warn(msg)
    running clean
    removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build' (and everything under it)
    'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it
    dh_autoreconf_clean -O--buildsystem=pybuild
    dh_clean -O--buildsystem=pybuild
    debian/rules binary
    dh binary --buildsystem=pybuild

    [... snipped ...]

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    ___________ ERROR at setup of BzrClientTest.test_get_url_nonexistant ___________

    self = <class 'test.test_bzr.BzrClientTest'>

    @classmethod
    def setUpClass(self):
    self.root_directory = tempfile.mkdtemp()
    self.directories = dict(setUp=self.root_directory)
    self.remote_path = os.path.join(self.root_directory, "remote")
    os.makedirs(self.remote_path)

    # create a "remote" repo
    subprocess.check_call(["bzr", "init"], cwd=self.remote_path)
    subprocess.check_call(["touch", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "add", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)

    test/test_bzr.py:63:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpqei1mkx2/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    ________ ERROR at setup of BzrClientTest.test_url_matches_with_shortcut ________

    self = <class 'test.test_bzr.BzrClientTest'>

    @classmethod
    def setUpClass(self):
    self.root_directory = tempfile.mkdtemp()
    self.directories = dict(setUp=self.root_directory)
    self.remote_path = os.path.join(self.root_directory, "remote")
    os.makedirs(self.remote_path)

    # create a "remote" repo
    subprocess.check_call(["bzr", "init"], cwd=self.remote_path)
    subprocess.check_call(["touch", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "add", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)

    test/test_bzr.py:63:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpqei1mkx2/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    ____ ERROR at setup of BzrClientTest.test_url_matches_with_shortcut_strings ____

    self = <class 'test.test_bzr.BzrClientTest'>

    @classmethod
    def setUpClass(self):
    self.root_directory = tempfile.mkdtemp()
    self.directories = dict(setUp=self.root_directory)
    self.remote_path = os.path.join(self.root_directory, "remote")
    os.makedirs(self.remote_path)

    # create a "remote" repo
    subprocess.check_call(["bzr", "init"], cwd=self.remote_path)
    subprocess.check_call(["touch", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "add", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)

    test/test_bzr.py:63:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpqei1mkx2/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    _ ERROR at setup of BzrClientTest.test_url_matches_with_shortcut_strings_slashes _

    self = <class 'test.test_bzr.BzrClientTest'>

    @classmethod
    def setUpClass(self):
    self.root_directory = tempfile.mkdtemp()
    self.directories = dict(setUp=self.root_directory)
    self.remote_path = os.path.join(self.root_directory, "remote")
    os.makedirs(self.remote_path)

    # create a "remote" repo
    subprocess.check_call(["bzr", "init"], cwd=self.remote_path)
    subprocess.check_call(["touch", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "add", "fixed.txt"], cwd=self.remote_path)
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)

    test/test_bzr.py:63:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpqei1mkx2/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    ___________ ERROR at setup of BzrClientLogTest.test_get_log_defaults ___________

    self = <class 'test.test_bzr.BzrClientLogTest'>

    @classmethod
    def setUpClass(self):
    BzrClientTestSetups.setUpClass()

    test/test_bzr.py:235:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_bzr.py:63: in setUpClass
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmp9quzttor/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError ---------------------------- Captured stdout setup -----------------------------
    Created a standalone tree (format: 2a)
    adding fixed.txt
    ---------------------------- Captured stderr setup -----------------------------
    Committing to: /tmp/tmp9quzttor/remote/
    bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.
    ____________ ERROR at setup of BzrClientLogTest.test_get_log_limit _____________

    self = <class 'test.test_bzr.BzrClientLogTest'>

    @classmethod
    def setUpClass(self):
    BzrClientTestSetups.setUpClass()

    test/test_bzr.py:235:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_bzr.py:63: in setUpClass
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmp9quzttor/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    _____________ ERROR at setup of BzrClientLogTest.test_get_log_path _____________

    self = <class 'test.test_bzr.BzrClientLogTest'>

    @classmethod
    def setUpClass(self):
    BzrClientTestSetups.setUpClass()

    test/test_bzr.py:235:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_bzr.py:63: in setUpClass
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmp9quzttor/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError
    ______ ERROR at setup of BzrClientAffectedFilesTest.test_get_log_defaults ______

    self = <class 'test.test_bzr.BzrClientAffectedFilesTest'>

    @classmethod
    def setUpClass(self):
    BzrClientTestSetups.setUpClass()

    test/test_bzr.py:266:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_bzr.py:63: in setUpClass
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpjg_l1exu/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError ---------------------------- Captured stdout setup -----------------------------
    Created a standalone tree (format: 2a)
    adding fixed.txt
    ---------------------------- Captured stderr setup -----------------------------
    Committing to: /tmp/tmpjg_l1exu/remote/
    bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.
    ________ ERROR at setup of BzrDiffStatClientTest.test_export_repository ________

    self = <class 'test.test_bzr.BzrDiffStatClientTest'>

    @classmethod
    def setUpClass(self):
    # setup a local repo once for all diff and status test
    BzrClientTestSetups.setUpClass()

    test/test_bzr.py:354:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_bzr.py:63: in setUpClass
    subprocess.check_call(["bzr", "commit", "-m", "initial"], cwd=self.remote_path)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    popenargs = (['bzr', 'commit', '-m', 'initial'],)
    kwargs = {'cwd': '/tmp/tmpzkt759v3/remote'}, retcode = -6
    cmd = ['bzr', 'commit', '-m', 'initial']

    def check_call(*popenargs, **kwargs):
    """Run command with arguments. Wait for command to complete. If
    the exit code was zero then return, otherwise raise
    CalledProcessError. The CalledProcessError object will have the
    return code in the returncode attribute.

    The arguments are the same as for the call function. Example:

    check_call(["ls", "-l"])
    """
    retcode = call(*popenargs, **kwargs)
    if retcode:
    cmd = kwargs.get("args")
    if cmd is None:
    cmd = popenargs[0]
    raise CalledProcessError(retcode, cmd)
    E subprocess.CalledProcessError: Command '['bzr', 'commit', '-m', 'initial']' died with <Signals.SIGABRT: 6>.

    /usr/lib/python3.13/subprocess.py:421: CalledProcessError ---------------------------- Captured stdout setup -----------------------------
    Created a standalone tree (format: 2a)
    adding fixed.txt
    ---------------------------- Captured stderr setup -----------------------------
    Committing to: /tmp/tmpzkt759v3/remote/
    bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.
    =============================== warnings summary ===============================
    test/test_code_format.py:3
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_code_format.py:3: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
    from pkg_resources import parse_version, get_distribution

    test/test_git.py:397
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git.py:397: SyntaxWarning: "is not" with 'tuple' literal. Did you mean "!="?
    self.assertTrue(client._get_branch_parent() is not (None, None))

    test/test_git_subm.py:569
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:569: SyntaxWarning: invalid escape sequence '\ '
    self.assertTrue('''\

    test/test_git_subm.py:577
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:577: SyntaxWarning: invalid escape sequence '\ '
    self.assertTrue('''

    test/test_svn.py:391
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_svn.py:391: SyntaxWarning: invalid escape sequence '\('
    fixedline = re.sub('\(revision [0-9]+\)', '(working copy)', line)

    test/test_svn.py:393
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_svn.py:393: SyntaxWarning: invalid escape sequence '\('
    fixedline = re.sub('\(nonexistent\)', '(working copy)', fixedline)

    .pybuild/cpython3_3.13/build/test/test_base.py::BaseTest::test_shell_command .pybuild/cpython3_3.13/build/test/test_base.py::BaseTest::test_shell_command .pybuild/cpython3_3.13/build/test/test_svn.py::SvnClientTest::testDiffClean
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/vcstools/common.py:346: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    logger.warn(message)

    .pybuild/cpython3_3.13/build/test/test_git.py::GitClientDanglingCommitsTest::test_checkout_untracked_branch_and_update
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/vcstools/git.py:306: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
    logger.warn("vcstools only handles branches tracking default remote,"

    .pybuild/cpython3_3.13/build/test/test_git_subm.py::GitClientTest::test_export_branch
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:285: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
    tarf.extractall(self.export_path)

    .pybuild/cpython3_3.13/build/test/test_git_subm.py::GitClientTest::test_export_hash
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:338: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
    tarf.extractall(self.export_path)

    .pybuild/cpython3_3.13/build/test/test_git_subm.py::GitClientTest::test_export_master
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:210: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
    tarf.extractall(self.export_path)

    .pybuild/cpython3_3.13/build/test/test_git_subm.py::GitClientTest::test_export_relative
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/test_git_subm.py:241: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
    tarf.extractall(self.export_path)

    .pybuild/cpython3_3.13/build/test/test_tar.py::TarClientTest::test_checkout_dir_exists
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/test/mock_server.py:83: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead
    mock_server_thread.setDaemon(True)

    .pybuild/cpython3_3.13/build/test/test_tar.py::TarClientTestLocal::test_checkout_version_compressed_local
    .pybuild/cpython3_3.13/build/test/test_tar.py::TarClientTestLocal::test_checkout_version_local
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/vcstools/tar.py:128: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
    temp_tarfile.extractall(path=tempdir, members=members)

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    ERROR test/test_bzr.py::BzrClientTest::testDiffClean - subprocess.CalledProce...
    ERROR test/test_bzr.py::BzrClientTest::testStatusClean - subprocess.CalledPro...
    ERROR test/test_bzr.py::BzrClientTest::test_checkout - subprocess.CalledProce...
    ERROR test/test_bzr.py::BzrClientTest::test_checkout_dir_exists - subprocess....
    ERROR test/test_bzr.py::BzrClientTest::test_checkout_invalid - subprocess.Cal...
    ERROR test/test_bzr.py::BzrClientTest::test_checkout_invalid_update - subproc...
    ERROR test/test_bzr.py::BzrClientTest::test_checkout_specific_version_and_update
    ERROR test/test_bzr.py::BzrClientTest::test_get_environment_metadata - subpro...
    ERROR test/test_bzr.py::BzrClientTest::test_get_type_name - subprocess.Called...
    ERROR test/test_bzr.py::BzrClientTest::test_get_url_by_reading - subprocess.C...
    ERROR test/test_bzr.py::BzrClientTest::test_get_url_nonexistant - subprocess....
    ERROR test/test_bzr.py::BzrClientTest::test_url_matches_with_shortcut - subpr...
    ERROR test/test_bzr.py::BzrClientTest::test_url_matches_with_shortcut_strings ERROR test/test_bzr.py::BzrClientTest::test_url_matches_with_shortcut_strings_slashes
    ERROR test/test_bzr.py::BzrClientLogTest::test_get_log_defaults - subprocess....
    ERROR test/test_bzr.py::BzrClientLogTest::test_get_log_limit - subprocess.Cal...
    ERROR test/test_bzr.py::BzrClientLogTest::test_get_log_path - subprocess.Call...
    ERROR test/test_bzr.py::BzrClientAffectedFilesTest::test_get_log_defaults - s...
    ERROR test/test_bzr.py::BzrDiffStatClientTest::test_export_repository - subpr...
    ================= 129 passed, 17 warnings, 19 errors in 54.91s =================
    E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest test
    dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:11: binary] Error 25
    dpkg-buildpackage: error: debian/rules binary 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/202503/

    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:ros-vcstools, so that this is still
    visible in the BTS web page for this package.

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)