Re: cyradm perl error on Debian Testing

"ellie timoney" <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Hi,

On Thu, 24 Feb 2022, at 2:00 AM, Infraestructura TIC - UNNOBA wrote:
> Yes, both packages are installed:
>
> # dpkg -l | grep libpcre
> ii  libpcre2-8-0:amd64 10.39-3                               
> amd64        New Perl Compatible Regular Expression Library- 8 bit 
> runtime files
> ii  libpcre3:amd64 2:8.39-13                             amd64        
> Old Perl 5 Compatible Regular Expression Library - runtime files

What happens when you build and run cyrus with only one of these pcre libraries installed, but not both?

What about only the other?

>>> undefined symbol: pcreposix_regexec at 

This is probably an incompatibility between the old "libpcre3" package and the new "libpcre2" package.

If you're seeing "undefined symbol: pcreposix_regexec", this almost certainly means that (part of) your Cyrus was built using the libpcre3 headers, but at runtime is loading a library that does not provide the renamed function those headers expect.

The libpcre3 package on Debian has a very necessary modification that renames "regexec" to "pcreposix_regexec", to prevent it clashing with the identically-named but incompatible "regexec" from glibc, and the corresponding header defines a macro such that if you're using the pcre header (not the libc one) and call "regexec", your code will find the pcre version of the function (not the libc one).

I don't know if libpcre2 still requires this hack.  I guess it might not, and then doesn't include it.

There is an open issue regarding the state of Cyrus's support for the new libpcre2 library: https://github.com/cyrusimap/cyrus-imapd/issues/3861 This issue is about a single test failing when using libpcre2, but note that _there are no tests for cyradm_, so any problems with cyradm would not even be found by the tests.  I suggest you join the discussion there with this report.  There is a link to the same issue in the Debian bug tracker; you may want to join that discussion too.

Cyrus 3.4 has no declared support for libpcre2.  If you want to actually run Cyrus, please use the older libpcre3.  I believe the Debian Testing package might be linking against libpcre2 deliberately to solicit reports of things breaking, so please report it!

Cheers,

ellie

------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/T499290c4eacdba28-M6e83dd7fa9937149db111dfb
Delivery options: https://cyrus.topicbox.com/groups/info/subscription
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.