Issue Sieve :regex matcher broken on CentOS 7 — plesk-dovecot-pigeonhole 2.4.x built without libpcre2

sivsoft

New Pleskian
Server operating system version
CentOS 7
Plesk version and microupdate number
18.0.77.x #5, 18.0.78.3
On Plesk Obsidian 18.0.78.3 (CentOS 7.9), any Sieve script using the `regex` extension
fails at compile/runtime with **"Missing regular expression support"**, even though
`require ["regex"]` parses fine. This breaks all Horde Ingo "vacation with active-from/to
date range" filters, since Ingo auto-generates `header :regex "Received" "..."` conditions
for the date window.

## Reproduction (minimal, on any sy-mail-like Plesk CentOS 7 host)

```bash
echo 'require ["regex"]; if header :regex "Subject" "^test.*$" { discard; }' > /tmp/t.sieve
sievec /tmp/t.sieve
# Output:
# t: line 1: error: invalid regular expression '^test.*$' for regex match:
# Missing regular expression support.
# t: error: validation failed.
# sievec: Fatal: failed to compile sieve script
```

## Root cause

Pigeonhole 2.4.2 switched the `:regex` matcher backend from POSIX/PCRE1 to **libpcre2**
(see upstream NEWS: "lib-sieve: Use new regular expression library in core"). When the
package is built without `libpcre2-devel` in build-deps, the regex backend is silently
disabled at compile-time — extension still registers, but runtime returns the error above.

On a current Plesk CentOS 7 host, the package linkage confirms libpcre2 is **not** linked:

```bash
$ rpm -q plesk-dovecot-pigeonhole
plesk-dovecot-pigeonhole-2.4.3-2.centos.7+p18.0.78.2+t260526.1033.x86_64

$ ldd /usr/lib64/dovecot/libdovecot-sieve.so.0.0.0 | grep -E 'pcre'
libpcre.so.1 => /lib64/libpcre.so.1 ← PCRE1 only, no libpcre2-8

$ strings /usr/lib64/dovecot/libdovecot-sieve.so.0.0.0 | grep "Missing regular"
Missing regular expression support ← string hardcoded in the .so

$ ldconfig -p | grep libpcre2-8
libpcre2-8.so.0 (libc6,x86-64) => /lib64/libpcre2-8.so.0 ← library IS present, just not linked
```

The library is on the host (`pcre2-9.x` from `epel/base`), it's just not in the Plesk
build's link chain.

## Same root cause as Debian bug #1121193

This is the exact issue that was reported and fixed upstream in Debian:
**[Debian #1121193 — dovecot-sieve: Regex extension ignored](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1121193)**.
Maintainer's diagnosis: "I neglected to add libpcre2-dev to build-deps for 2.4.2."
Fixed in `dovecot 1:2.4.2+dfsg1-2` (Nov 25, 2025) by adding `libpcre2-dev` to build-deps.

The Plesk CentOS 7 build never picked up that fix, and the same defect was carried into
the 2.4.3 rebuild (`+p18.0.78.2`).

## Affected

- Plesk Obsidian **18.0.77.x** (Pigeonhole 2.4.2)
- Plesk Obsidian **18.0.78.x** (Pigeonhole 2.4.3) ← current
- CentOS 7 / CloudLinux 7 builds (Debian/Ubuntu builds presumably link libpcre2 because
it's a default in those distros; couldn't verify)

## Impact

Any user of Sieve `:regex` matcher on these Plesk builds is affected. Most visible case:
Horde Ingo "vacation with date range" — Ingo's UI emits regex conditions, so end-users
cannot save a vacation message via the webmail. There is **no config-level workaround**;
the only end-user mitigation is to remove the date filter (Ingo then doesn't generate
regex). Manual sieve scripts can use the standardized `date` + `relational` +
`comparator-i;ascii-numeric` extensions instead, but Ingo will overwrite any manual
script on the next "save".

## Request

Please add `pcre2-devel` to `plesk-dovecot-pigeonhole` CentOS 7 build-deps (and rebuild).
The same single-line fix that resolved Debian #1121193.

Happy to provide more details / verify the next build on our affected host.
 
Hello,

Unfortunately the problem cannot be solved by just adding pcre2 as build deps: as centos7 is very old, the version of pcre2 (10.23) is not supported by dovecot 2.4.2 (it requires at least 10.31). In any case the issue with internal id PPPM-15320 is created, but I cannot share any ETA about it.
 
@sivsoft, you may want to consider upgrading or migrating to a more modern/recent OS and switch to a different webmail app. Although CentOS 7 is officially still supported by Plesk till January 1st 2027, the vendor support already ended back in June of 2024 (2 years ago already). Using such an old legacy OS creates all kinds of technical challenges, as @mizar already pointed out. As Plesk will stop to support for CentOS 7 within 6 months, this might a good opportunity to plan your OS upgrade or migration.

In addition to the outdated OS you're running, beware that Horde has been has been deprecated by Plesk back in April. Mainly because Horde developers haven't released updates for year, leaving it vulnerable to to security and compatibility issue's (like the one you're experiencing). Here too, it would be highly recommended to switch to another webmail app, like Roundcube or Sogo (which as feature stack some what similar to Horde).
 
Back
Top