FS#78514 - [cyrus-imapd] Undefined symbol: pcre2_regexec

Attached to Project: Community Packages
Opened by Giovanni Bottaro (bgiovanni) - Saturday, 13 May 2023, 20:33 GMT
Last edited by Torsten Keßler (tpkessler) - Sunday, 03 September 2023, 08:26 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Bruno Pagani (ArchangeGabriel)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


It seems like the /usr/lib/perl5/5.36/vendor_perl/auto/Cyrus/IMAP/IMAP.so shared object, which is used by the cyradm administration tool, is missing linking against the pcre2 library and as a result causes invocations of cyradm to error out as follows:
[waw@archlinux cyrus_PKGBUILD]$ cyradm
Can't load '/usr/lib/perl5/5.36/vendor_perl/auto/Cyrus/IMAP/IMAP.so' for module Cyrus::IMAP: /usr/lib/perl5/5.36/vendor_perl/auto/Cyrus/IMAP/IMAP.so: undefined symbol: pcre2_regexec at /usr/lib/perl5/5.36/core_perl/DynaLoader.pm line 206.
at /usr/lib/perl5/5.36/vendor_perl/Cyrus/IMAP/Admin.pm line 43.
Compilation failed in require at /usr/lib/perl5/5.36/vendor_perl/Cyrus/IMAP/Admin.pm line 43.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.36/vendor_perl/Cyrus/IMAP/Admin.pm line 43.
Compilation failed in require at /usr/lib/perl5/5.36/vendor_perl/Cyrus/IMAP/Shell.pm line 59.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.36/vendor_perl/Cyrus/IMAP/Shell.pm line 59.
Compilation failed in require at /usr/bin/vendor_perl/cyradm line 66.
BEGIN failed--compilation aborted at /usr/bin/vendor_perl/cyradm line 66.

Additional info:
* package version(s) : 3.6.1-1
* link to upstream bug report, if any:
- https://github.com/cyrusimap/cyrus-imapd/issues/2629#issuecomment-456925909
- https://bugzilla.redhat.com/show_bug.cgi?id=1668723
- !!! FEDORA PATCH WHICH SOLVES THE ISSUE !!! : https://src.fedoraproject.org/rpms/cyrus-imapd/blob/rawhide/f/patch-cyrus-perl-linking
--> Note that this patch is for the old pcre library, since Arch is looking forward to use pcre2 this should be taken into account. (We probably should use "-lpcre2-posix" instead)

Steps to reproduce:
Install cyrus-imapd from community-testing, execute cyradm, the error message mentioned above pops out.

--> !!! I've personally verified that applying the patch Fedora is using actually solves the issue! !!!
This task depends upon

Closed by  Torsten Keßler (tpkessler)
Sunday, 03 September 2023, 08:26 GMT
Reason for closing:  Won't fix
Additional comments about closing:  Package is currently not in the repos.
Comment by loqs (loqs) - Sunday, 30 July 2023, 13:18 GMT
@bgiovanni can you please try building with the attached patch which is based on the Fedora one but uses the variable LIB_REGEX, so it should work with or without the pcre2 patch and also with new pcre2 PR [1].

[1] https://github.com/cyrusimap/cyrus-imapd/pull/4545
Comment by Giovanni Bottaro (bgiovanni) - Sunday, 30 July 2023, 19:10 GMT
@loqs I can confirm that the issue doesn't appear if I build Cyrus from master (after minor tweaking of the PKGBUILD) with both your patch and the the PCRE2 patch you linked (#4545).
cyradm is seemingly running OK.