Package: src:debmutate
Version: 0.80
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

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

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" 
module
I: pybuild base:384: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14  
* Building wheel...
running bdist_wheel

[... snipped ...]

test_invalid_extension 
(tests.test_orig.ComponentFromOrigTarballTests.test_invalid_extension) ... ok
test_simple (tests.test_patch.FindCommonPatchSuffixTests.test_simple) ... ok
test_comment (tests.test_patch.ReadSeriesFileTests.test_comment) ... ok
test_empty (tests.test_patch.ReadSeriesFileTests.test_empty) ... ok
test_empty_line (tests.test_patch.ReadSeriesFileTests.test_empty_line) ... ok
test_options (tests.test_patch.ReadSeriesFileTests.test_options) ... ok
test_edit_comment (tests.test_patch.SeriesTests.test_edit_comment) ... ok
test_edit_nonexistent (tests.test_patch.SeriesTests.test_edit_nonexistent) ... 
ok
test_edit_simple (tests.test_patch.SeriesTests.test_edit_simple) ... ok
test_remove (tests.test_patch.SeriesTests.test_remove) ... ok
test_diff (tests.test_reformatting.CheckPreserveFormattingTests.test_diff) ... 
ok
test_formatting_different 
(tests.test_reformatting.CheckPreserveFormattingTests.test_formatting_different)
 ... ok
test_formatting_same 
(tests.test_reformatting.CheckPreserveFormattingTests.test_formatting_same) ... 
ok
test_reformatting_allowed 
(tests.test_reformatting.CheckPreserveFormattingTests.test_reformatting_allowed)
 ... ok
test_changed (tests.test_reformatting.EditFormattedFileTests.test_changed) ... 
ok
test_unchanged (tests.test_reformatting.EditFormattedFileTests.test_unchanged) 
... ok
test_unformattable 
(tests.test_reformatting.EditFormattedFileTests.test_unformattable) ... ok
test_do_not_edit (tests.test_reformatting.GeneratedFileTests.test_do_not_edit) 
... ok
test_do_not_edit_after_header 
(tests.test_reformatting.GeneratedFileTests.test_do_not_edit_after_header) ... 
ok
test_generated_control_file 
(tests.test_reformatting.GeneratedFileTests.test_generated_control_file) ... ok
test_missing (tests.test_reformatting.GeneratedFileTests.test_missing) ... ok
test_gbp_tag_format 
(tests.test_vcs.ExpandGbpTagFormatTests.test_gbp_tag_format) ... ok
test_normal (tests.test_vcs.MangleVersionForGitTests.test_normal) ... ok
test_replace_tilde (tests.test_vcs.MangleVersionForGitTests.test_replace_tilde) 
... ok
test_branch (tests.test_vcs.SplitVcsUrlTests.test_branch) ... ok
test_none (tests.test_vcs.SplitVcsUrlTests.test_none) ... ok
test_branch (tests.test_vcs.UnsplitVcsUrlTests.test_branch) ... ok
test_none (tests.test_vcs.UnsplitVcsUrlTests.test_none) ... ok
test_existing (tests.test_versions.AddDfsgSuffixTests.test_existing) ... ok
test_new (tests.test_versions.AddDfsgSuffixTests.test_new) ... ok
test_changed (tests.test_versions.DebianizeUpstreamVersionTests.test_changed) 
... ok
test_unchanged 
(tests.test_versions.DebianizeUpstreamVersionTests.test_unchanged) ... ok
test_git (tests.test_versions.GetRevisionSnapshotTests.test_git) ... ok
test_non_numeric_snapshot 
(tests.test_versions.GetRevisionSnapshotTests.test_non_numeric_snapshot) ... ok
test_with_snapshot 
(tests.test_versions.GetRevisionSnapshotTests.test_with_snapshot) ... ok
test_with_snapshot_plus 
(tests.test_versions.GetRevisionSnapshotTests.test_with_snapshot_plus) ... ok
test_with_svn_snapshot 
(tests.test_versions.GetRevisionSnapshotTests.test_with_svn_snapshot) ... ok
test_with_svn_snapshot_plus 
(tests.test_versions.GetRevisionSnapshotTests.test_with_svn_snapshot_plus) ... 
ok
test_without_snapshot 
(tests.test_versions.GetRevisionSnapshotTests.test_without_snapshot) ... ok
test_git (tests.test_versions.GitSnapshotDataFromVersionTests.test_git) ... ok
test_next (tests.test_versions.GitSnapshotDataFromVersionTests.test_next) ... ok
test_not_git (tests.test_versions.GitSnapshotDataFromVersionTests.test_not_git) 
... ok
test_mangled (tests.test_versions.MangleVersionForGitTests.test_mangled) ... ok
test_simple (tests.test_versions.MangleVersionForGitTests.test_simple) ... ok
test_matches (tests.test_versions.MatchesReleaseTests.test_matches) ... ok
test_nothing (tests.test_versions.StripDfsgSuffixTests.test_nothing) ... ok
test_strip (tests.test_versions.StripDfsgSuffixTests.test_strip) ... ok
test_debian_with_dash 
(tests.test_versions.TestPackageVersion.test_debian_with_dash) ... ok
test_simple_debian (tests.test_versions.TestPackageVersion.test_simple_debian) 
... ok
test_simple_ubuntu (tests.test_versions.TestPackageVersion.test_simple_ubuntu) 
... ok
test_ubuntu_with_dash 
(tests.test_versions.TestPackageVersion.test_ubuntu_with_dash) ... ok
test_ubuntu_with_epoch 
(tests.test_versions.TestPackageVersion.test_ubuntu_with_epoch) ... ok
test_dfsg (tests.test_versions.TestUpstreamVersionAddRevision.test_dfsg) ... ok
test_git_new_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_git_new_rev) ... ok
test_git_tilde_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_git_tilde_rev) ... ok
test_new_rev (tests.test_versions.TestUpstreamVersionAddRevision.test_new_rev) 
... ok
test_svn_new_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_svn_new_rev) ... ok
test_svn_plus_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_svn_plus_rev) ... ok
test_svn_tilde_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_svn_tilde_rev) ... ok
test_update_plus_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_update_plus_rev) ... ok
test_update_tilde_rev 
(tests.test_versions.TestUpstreamVersionAddRevision.test_update_tilde_rev) ... 
ok
test_html_search (tests.test_watch.HtmlSearchTests.test_html_search) ... ERROR
test_parse_continued_leading_spaces_3 
(tests.test_watch.ParseWatchFileTests.test_parse_continued_leading_spaces_3) 
... ok
test_parse_continued_leading_spaces_4 
(tests.test_watch.ParseWatchFileTests.test_parse_continued_leading_spaces_4) 
... ok
test_parse_empty (tests.test_watch.ParseWatchFileTests.test_parse_empty) ... ok
test_parse_global_opts 
(tests.test_watch.ParseWatchFileTests.test_parse_global_opts) ... ok
test_parse_no_version 
(tests.test_watch.ParseWatchFileTests.test_parse_no_version) ... ok
test_parse_opt_quotes 
(tests.test_watch.ParseWatchFileTests.test_parse_opt_quotes) ... ok
test_parse_package_variable 
(tests.test_watch.ParseWatchFileTests.test_parse_package_variable) ... ok
test_parse_simple (tests.test_watch.ParseWatchFileTests.test_parse_simple) ... 
ok
test_parse_single (tests.test_watch.ParseWatchFileTests.test_parse_single) ... 
ok
test_parse_subst_expr 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr) ... ERROR
test_parse_subst_expr_escape 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_escape) ... ERROR
test_parse_subst_expr_invalid 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_invalid) ... ERROR
test_parse_subst_expr_percent 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_percent) ... ERROR
test_parse_tr_expr (tests.test_watch.ParseWatchFileTests.test_parse_tr_expr) 
... ok
test_parse_utf8 (tests.test_watch.ParseWatchFileTests.test_parse_utf8) ... ok
test_parse_weird_quotes 
(tests.test_watch.ParseWatchFileTests.test_parse_weird_quotes) ... ok
test_parse_with_opts 
(tests.test_watch.ParseWatchFileTests.test_parse_with_opts) ... ok
test_parse_with_script 
(tests.test_watch.ParseWatchFileTests.test_parse_with_script) ... ok
test_parse_with_spacing_around_version 
(tests.test_watch.ParseWatchFileTests.test_parse_with_spacing_around_version) 
... ok
test_parse_y_expr (tests.test_watch.ParseWatchFileTests.test_parse_y_expr) ... 
ok
test_pattern_included 
(tests.test_watch.ParseWatchFileTests.test_pattern_included) ... ok
test_plain_search (tests.test_watch.PlainSearchTests.test_plain_search) ... 
ERROR
test_search (tests.test_watch.SearchTests.test_search) ... ERROR
test_file_with_just_comments 
(tests.test_watch.WatchEditorTests.test_file_with_just_comments) ... ok
test_version_change (tests.test_watch.WatchEditorTests.test_version_change) ... 
ok

======================================================================
ERROR: test_html_search (tests.test_watch.HtmlSearchTests.test_html_search)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
259, in html_search
    yield (m.substring(1), urljoin(base_url, m.substring(0)))
           ^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'substring'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 449, in test_html_search
    list(
    ~~~~^
        html_search(
        ^^^^^^^^^^^^
            body, "/foo-(\\d+\\.\\d+)\\.tar\\.gz", "https://example.com/";
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
    ),
    ^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
260, in html_search
    except pcre2.exceptions.MatchError:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

======================================================================
ERROR: test_parse_subst_expr 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
332, in uversionmangle
    return apply_sed_expr(vm, version)
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
209, in apply_sed_expr
    return cast(str, pcre2.substitute(pattern, replacement, orig))
                     ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'substitute'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 311, in test_parse_subst_expr
    self.assertEqual("1.0", wf.entries[0].uversionmangle("1.0"))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
333, in uversionmangle
    except pcre2.exceptions.LibraryError as e:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

======================================================================
ERROR: test_parse_subst_expr_escape 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_escape)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
332, in uversionmangle
    return apply_sed_expr(vm, version)
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
209, in apply_sed_expr
    return cast(str, pcre2.substitute(pattern, replacement, orig))
                     ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'substitute'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 364, in test_parse_subst_expr_escape
    self.assertEqual("1.0", wf.entries[0].uversionmangle("1.0"))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
333, in uversionmangle
    except pcre2.exceptions.LibraryError as e:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

======================================================================
ERROR: test_parse_subst_expr_invalid 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_invalid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
332, in uversionmangle
    return apply_sed_expr(vm, version)
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
206, in apply_sed_expr
    (kind, (pattern, replacement, flags)) = parse_sed_expr(vm)
                                            ~~~~~~~~~~~~~~^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
161, in parse_sed_expr
    return ("s", parse_subst_expr(vm))
                 ~~~~~~~~~~~~~~~~^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
174, in parse_subst_expr
    raise InvalidUVersionMangle(vm)
debmutate.watch.InvalidUVersionMangle: 
s/(\d)[_\.\-\+]?((RC|rc|pre|alpha)\d*)$$1~$2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 393, in test_parse_subst_expr_invalid
    self.assertRaises(
    ~~~~~~~~~~~~~~~~~^
        InvalidUVersionMangle, wf.entries[0].uversionmangle, "1.0alpha1"
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/unittest/case.py", line 795, in assertRaises
    return context.handle('assertRaises', args, kwargs)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/unittest/case.py", line 238, in handle
    callable_obj(*args, **kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
333, in uversionmangle
    except pcre2.exceptions.LibraryError as e:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

======================================================================
ERROR: test_parse_subst_expr_percent 
(tests.test_watch.ParseWatchFileTests.test_parse_subst_expr_percent)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
332, in uversionmangle
    return apply_sed_expr(vm, version)
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
209, in apply_sed_expr
    return cast(str, pcre2.substitute(pattern, replacement, orig))
                     ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'substitute'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 379, in test_parse_subst_expr_percent
    self.assertEqual("1.0", wf.entries[0].uversionmangle("1.0"))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
333, in uversionmangle
    except pcre2.exceptions.LibraryError as e:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

======================================================================
ERROR: test_plain_search (tests.test_watch.PlainSearchTests.test_plain_search)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 488, in test_plain_search
    list(
    ~~~~^
        plain_search(
        ^^^^^^^^^^^^^
            body, "foo-(\\d+\\.\\d+)\\.tar\\.gz", "https://example.com/";
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
    ),
    ^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
267, in plain_search
    for m in pcre2.scan(matching_pattern.encode(), body):
             ^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'scan'

======================================================================
ERROR: test_search (tests.test_watch.SearchTests.test_search)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
259, in html_search
    yield (m.substring(1), urljoin(base_url, m.substring(0)))
           ^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'substring'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_watch.py", 
line 540, in test_search
    list(
    ~~~~^
        search(
        ^^^^^^^
    ...<5 lines>...
        )
        ^
    ),
    ^
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
291, in search
    yield from searchers[searchmode](
        resp.read(), _subst(matching_pattern, package), url
    )
  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/debmutate/watch.py", line 
260, in html_search
    except pcre2.exceptions.MatchError:
           ^^^^^^^^^^^^^^^^
AttributeError: module 'pcre2' has no attribute 'exceptions'

----------------------------------------------------------------------
Ran 323 tests in 0.149s

FAILED (errors=7, skipped=2)
E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m unittest discover 
-v 
dh_auto_test: error: pybuild --test -i python{version} -p "3.14 3.13" returned 
exit code 13
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

Reply via email to