Control: severity -1 important
Control: tags -1 = ftbfs moreinfo

On Tue, 11 Aug 2026 at 15:26:55 +0100, Matthew Vernon wrote:
As part of prepping for PCRE 10.48, I revised 10.47-2 in experimental, and the glib2.0 tests failed:

https://debusine.debian.net/debian/developers/work-request/998509/

Following your reproducer at the top of this bug report (thank you!), I am able to reproduce the failure - after
apt install libpcre2-8-0/experimental

/usr/libexec/installed-tests/glib/regex

fails as before:

# Compiling pattern /^(a)\g"3/ failed with error: Error while compiling regular expression ?^(a)\g"3? at char 6: \g is not followed by a braced, angle-bracketed, or quoted name or number, or by a plain number
ok 96 /regex/new-fail/78
**
ERROR:../../../glib/tests/regex.c:133:test_new_fail: assertion failed (error == (g-regex-error-quark, 157)): Error while compiling regular expression ?^(a)\g{3? at char 8: syntax error in subpattern number (missing terminator?) (g-regex-error-quark, 0) not ok /regex/new-fail/79 - ERROR:../../../glib/tests/regex.c:133:test_new_fail: assertion failed (error == (g-regex-error-quark, 157)): Error while compiling regular expression ?^(a)\g{3? at char 8: syntax error in subpattern number (missing terminator?) (g-regex-error-quark, 0)

When I rebuild glib2.0 against the updated pcre2, the regex test passes.

I think what's happening here is that the test suite of a glib2.0 that was compiled against the old pcre2 won't accept the new pcre2 behaviour, but the test suite of a glib2.0 that was compiled against the new pcre2 will. You'll see why if you look at the upstream fix for this bug, in https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4884/diffs: it can't possibly handle PCRE2_ERROR_MISSING_NUMBER_TERMINATOR if it was compiled against an older version of pcre2 that didn't define that error code.

So I think that when you're ready to upload a new pcre2 to unstable, glib2.0 will have to be recompiled against it (either asking the release team for a binNMU, or via a sourceful upload), and then they can migrate to testing together. But until then, this bug report doesn't seem actionable: there is nothing reasonable that we can do in unstable that will make glib2.0 handle error codes that don't yet exist in unstable. (I don't think it seems like a good idea to do an #ifndef/#define hard-coding the value we expect newer versions of pcre2 to assign to the new error code...)

If you're checking whether pcre2 (>= 10.48) will make glib2.0 regress, please check that by compiling glib2.0 from source, rather than using its pre-existing binaries.

Thanks,
    smcv

Reply via email to