demotion of pcre3 in favor of pcre2

Bug #1792544 reported by Matthias Klose on 2018-09-14
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
aide (Ubuntu)
Undecided
Unassigned
apache2 (Ubuntu)
Undecided
Unassigned
apr-util (Ubuntu)
Undecided
Unassigned
clamav (Ubuntu)
Undecided
Unassigned
exim4 (Ubuntu)
Undecided
Unassigned
freeradius (Ubuntu)
Undecided
Unassigned
git (Ubuntu)
Undecided
Unassigned
glib2.0 (Ubuntu)
Undecided
Unassigned
grep (Ubuntu)
Undecided
Unassigned
haproxy (Ubuntu)
Undecided
Unassigned
libpam-mount (Ubuntu)
Undecided
Unassigned
libselinux (Ubuntu)
Undecided
Unassigned
nginx (Ubuntu)
Undecided
Unassigned
nmap (Ubuntu)
Undecided
Unassigned
pcre3 (Ubuntu)
Undecided
Unassigned
php7.2 (Ubuntu)
Undecided
Unassigned
postfix (Ubuntu)
Undecided
Unassigned
python-pyscss (Ubuntu)
Undecided
Unassigned
quagga (Ubuntu)
Undecided
Unassigned
rasqal (Ubuntu)
Undecided
Unassigned
slang2 (Ubuntu)
Undecided
Unassigned
sssd (Ubuntu)
Undecided
Unassigned
wget (Ubuntu)
Undecided
Unassigned
zsh (Ubuntu)
Undecided
Unassigned

Bug Description

demotion of pcre3 in favor of pcre2. These packages need analysis what needs to be done for the demotion of pcre3:

Packages which are ready to build with pcre2 should be marked as 'Triaged', packages which are not ready should be marked as 'Incomplete'.

aide
apache2
apr-util
clamav
exim4
freeradius
git
glib2.0
grep
haproxy
libpam-mount
libselinux
nginx
nmap
php7.2
postfix
python-pyscss
quagga
rasqal
slang2
sssd
wget
zsh

------

For clarification: pcre2 is actually newer than pcre3. pcre3 is just poorly named (according to jbicha).

Matthias Klose (doko) on 2018-09-14
description: updated
Matthias Klose (doko) on 2018-09-14
Changed in pcre3 (Ubuntu):
status: New → Confirmed
Timo Aaltonen (tjaalton) wrote :

sssd builds fine with libpcre2-dev

Changed in sssd (Ubuntu):
status: New → Triaged
Jeremy Bicha (jbicha) wrote :

Debian's git has already switched

Changed in git (Ubuntu):
status: New → Triaged
Jeremy Bicha (jbicha) wrote :

Debian's php7.3 has already switched

Changed in php7.2 (Ubuntu):
status: New → Triaged
Jeremy Bicha (jbicha) wrote :

Debian's clamav has already switched.

Changed in clamav (Ubuntu):
status: New → Triaged
Thomas Ward (teward) on 2018-09-14
description: updated
Thomas Ward (teward) wrote :

Nginx properly builds with pcre2

Changed in nginx (Ubuntu):
status: New → Triaged
Axel Beckert (xtaran) wrote :

zsh in Debian Unstable (5.6.2-1) seems to build fine if I exchange libpcre3-dev by libpcre2-dev in Build-Depends and Build-Using (via debian/rules).

Noël Köthe (noel) wrote :

wget builds and works with pcre2 in Debian (uploaded). I cannot change the Status to Triaged. Maybe somebody with higher privileges can change the wget status of this bug to Triaged. thx.

Changed in wget (Ubuntu):
assignee: nobody → Noël Köthe (noel)
Jeremy Bicha (jbicha) on 2018-09-17
Changed in wget (Ubuntu):
status: New → Triaged
assignee: Noël Köthe (noel) → nobody
Jeremy Bicha (jbicha) on 2018-09-17
Changed in zsh (Ubuntu):
status: New → Triaged
Andreas Hasenack (ahasenack) wrote :

I've seen the wget debian change, but just switching builddeps from pcre3-dev to pcre2-dev and rebuilding isn't enough. The package ends up not finding pcre and doesn't enable it:
checking for PCRE... no
checking pcre.h usability... no
checking pcre.h presence... no
checking for pcre.h... no
...
  Libs: -luuid -lidn2 -lnettle -lgnutls -lz -lpsl

So while the package builds, it's not using pcre.

I tried to switch apache, and while I could make it find pcre2-config and use it, pcre2 has different libraries than pcre3:
pcre3-config --libs: -lpcre
pcre2-config --libs: no such parameter

In pcre2, we have --libs8, --libs-posix, --libs32 and --libs16, but no --libs. Is this a bug in pcre2-config?

Any quick tips about this before I dig in further?

Anders Kaseorg (andersk) wrote :

Andreas: No, it’s not a bug. PCRE2 is a new project that’s not intended to be compatible with the older PCRE (i.e. what Debian misnamed “pcre3”). The API is completely different and this is expected. See bug 1636666 for context, and specifically the PCRE2 release announcement linked in the bug description:

https://lists.exim.org/lurker/message/20150105.162835.0666407a.en.html

That’s why getting rid of PCRE “in favor of” PCRE2 is a pointless way to frame the issue. PCRE2 neither replaces nor conflicts with PCRE, as was pointed out many times in bug 1636666.

But since we’re apparently gathering information here: although Apache 2.4.x does not support PCRE2, Apache trunk does support PCRE2 as of r1773454. (As you can see, this support was added by creating separate conditionally compiled code paths for PCRE and PCRE2.)

https://github.com/apache/httpd/commit/b1a3338e011a17ad190fb7f66cf5ca9acf353570

Anders Kaseorg (andersk) wrote :

apr-util has a false Build-Depends on libpcre3-dev; it should simply be dropped. A corresponding Depends was already dropped in https://bugs.debian.org/757140.

Matthias Klose (doko) wrote :

apr-util: filed a Debian bug.

Changed in wget (Ubuntu):
status: Triaged → Incomplete
Anders Kaseorg (andersk) wrote :

• Aide: no PCRE2 support
• Exim: no PCRE2 support, upstream bug: https://bugs.exim.org/show_bug.cgi?id=1878
• FreeRADIUS: no PCRE2 support, mentioned in passing: https://github.com/FreeRADIUS/freeradius-server/issues/1865
• GLib: no PCRE2 support
• grep: no PCRE2 support

Changed in aide (Ubuntu):
status: New → Incomplete
Changed in exim4 (Ubuntu):
status: New → Incomplete
Changed in freeradius (Ubuntu):
status: New → Incomplete
Changed in glib2.0 (Ubuntu):
status: New → Incomplete
Changed in grep (Ubuntu):
status: New → Incomplete
Anders Kaseorg (andersk) wrote :

• pam_mount: no PCRE2 support
• nmap: no PCRE2 support
• postfix: no PCRE2 support, http://postfix.1071664.n5.nabble.com/Plans-for-using-PCRE-v2-in-Postfix-td83200.html
• pyScss: no PCRE2 support

Changed in libpam-mount (Ubuntu):
status: New → Incomplete
Changed in nmap (Ubuntu):
status: New → Incomplete
Changed in postfix (Ubuntu):
status: New → Incomplete
Changed in python-pyscss (Ubuntu):
status: New → Incomplete
Anders Kaseorg (andersk) wrote :

• Quagga: no PCRE2 support
• Rasqal: no PCRE2 support
• S-Lang: no PCRE2 support

Changed in quagga (Ubuntu):
status: New → Incomplete
Changed in rasqal (Ubuntu):
status: New → Incomplete
Changed in slang2 (Ubuntu):
status: New → Incomplete
Timo Aaltonen (tjaalton) wrote :

Actually, sssd build would still pull libpcre3-dev because of some dependency, and then use that... and upstream config phase doesn't support pcre2. I've filed a bug upstream.

Changed in sssd (Ubuntu):
status: Triaged → Confirmed
Anders Kaseorg (andersk) wrote :

I think that completes the analysis of the current state of things. Although it seems infeasible to demote PCRE at this time, there’s no reason that should block the promotion of PCRE2, especially seeing as a bundled copy of PCRE2 is already in main (18.04 and 18.10) via libqt5core5a.

Changed in sssd (Ubuntu):
status: Confirmed → Incomplete
Anders Kaseorg (andersk) wrote :

Note to those filing upstream bugs: probably don’t call the old library “pcre3” since that’s not a thing outside Debian/Ubuntu.

Hi,

Andreas Hasenack wrote:
> I've seen the wget debian change, but just switching builddeps from pcre3-dev to pcre2-dev and rebuilding isn't enough. The package ends up not finding pcre and doesn't enable it:
> checking for PCRE... no
> checking pcre.h usability... no
> checking pcre.h presence... no
> checking for pcre.h... no
> ...
> Libs: -luuid -lidn2 -lnettle -lgnutls -lz -lpsl
>
> So while the package builds, it's not using pcre.
>
> I tried to switch apache, and while I could make it find pcre2-config and use it, pcre2 has different libraries than pcre3:
> pcre3-config --libs: -lpcre
> pcre2-config --libs: no such parameter
>
> In pcre2, we have --libs8, --libs-posix, --libs32 and --libs16, but no
> --libs. Is this a bug in pcre2-config?

Indeed, same for zsh:

checking for pcre-config... no
checking pcre.h usability... no
checking pcre.h presence... no
checking for pcre.h... no
checking for pcre_compile... no
checking for pcre_study... no
checking for pcre_exec... no
[...]
../../Test/V07pcre.ztst: starting.
../../Test/V07pcre.ztst: skipped (the zsh/pcre module is not available)

→ Back to Incomplete. I'll revert that commit from the recent 5.6.2-2
  upload.

  Regards, Axel
--
 ,''`. | Axel Beckert <email address hidden>, https://people.debian.org/~abe/
: :' : | Debian Developer, ftp.ch.debian.org Admin
`. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5
  `- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE

Changed in zsh (Ubuntu):
status: Triaged → Incomplete
Anders Kaseorg (andersk) wrote :

Likewise, nginx does not support PCRE2: https://trac.nginx.org/nginx/ticket/720

Changed in nginx (Ubuntu):
status: Triaged → Incomplete
Matthias Klose (doko) on 2018-09-18
Changed in libselinux (Ubuntu):
status: New → Triaged
Changed in haproxy (Ubuntu):
status: New → Triaged
Thomas Ward (teward) wrote :

Nice find, I looked in trac but must have missed that...

Sent from my Sprint Samsung Galaxy S9+.
-------- Original message --------From: Anders Kaseorg <email address hidden> Date: 9/18/18 06:22 (GMT-05:00) To: <email address hidden> Subject: [Bug 1792544] Re: demotion of pcre3 in favor of pcre2
Likewise, nginx does not support PCRE2:
https://trac.nginx.org/nginx/ticket/720

** Bug watch added: trac.nginx.org/nginx/ #720
   http://trac.nginx.org/nginx/ticket/720

** Changed in: nginx (Ubuntu)
       Status: Triaged => Incomplete

--
You received this bug notification because you are subscribed to nginx
in Ubuntu.
Matching subscriptions: nginx
https://bugs.launchpad.net/bugs/1792544

Title:
  demotion of pcre3 in favor of pcre2

Status in aide package in Ubuntu:
  Incomplete
Status in apache2 package in Ubuntu:
  New
Status in apr-util package in Ubuntu:
  New
Status in clamav package in Ubuntu:
  Triaged
Status in exim4 package in Ubuntu:
  Incomplete
Status in freeradius package in Ubuntu:
  Incomplete
Status in git package in Ubuntu:
  Triaged
Status in glib2.0 package in Ubuntu:
  Incomplete
Status in grep package in Ubuntu:
  Incomplete
Status in haproxy package in Ubuntu:
  New
Status in libpam-mount package in Ubuntu:
  Incomplete
Status in libselinux package in Ubuntu:
  New
Status in nginx package in Ubuntu:
  Incomplete
Status in nmap package in Ubuntu:
  Incomplete
Status in pcre3 package in Ubuntu:
  Confirmed
Status in php7.2 package in Ubuntu:
  Triaged
Status in postfix package in Ubuntu:
  Incomplete
Status in python-pyscss package in Ubuntu:
  Incomplete
Status in quagga package in Ubuntu:
  Incomplete
Status in rasqal package in Ubuntu:
  Incomplete
Status in slang2 package in Ubuntu:
  Incomplete
Status in sssd package in Ubuntu:
  Incomplete
Status in wget package in Ubuntu:
  Incomplete
Status in zsh package in Ubuntu:
  Incomplete

Bug description:
  demotion of pcre3 in favor of pcre2. These packages need analysis what
  needs to be done for the demotion of pcre3:

  Packages which are ready to build with pcre2 should be marked as
  'Triaged', packages which are not ready should be marked as
  'Incomplete'.

  aide
  apache2
  apr-util
  clamav
  exim4
  freeradius
  git
  glib2.0
  grep
  haproxy
  libpam-mount
  libselinux
  nginx
  nmap
  php7.2
  postfix
  python-pyscss
  quagga
  rasqal
  slang2
  sssd
  wget
  zsh

  ------

  For clarification: pcre2 is actually newer than pcre3.  pcre3 is just
  poorly named (according to jbicha).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/aide/+bug/1792544/+subscriptions

Jeremy Bicha (jbicha) wrote :
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apr-util - 1.6.1-2ubuntu1

---------------
apr-util (1.6.1-2ubuntu1) cosmic; urgency=medium

  * Drop build dependency on libpcre3-dev. Closes: #909077. LP: #1792544.

 -- Matthias Klose <email address hidden> Tue, 18 Sep 2018 13:05:27 +0200

Changed in apr-util (Ubuntu):
status: New → Fix Released
Thomas Ward (teward) wrote :

NGINX has technically said this is won't fix:

From a response to my inquiry: http://mailman.nginx.org/pipermail/nginx-devel/2018-September/011448.html

------

Hello!

On Tue, Sep 18, 2018 at 08:12:20AM -0400, Thomas Ward wrote:

> Downstream in Ubuntu, it has been proposed to demote pcre3 and
> use pcre2 instead as it is newer.
> https://trac.nginx.org/nginx/ticket/720 shows it was marked 4
> years ago that NGINX does not support pcre2. Are there any
> plans to use pcre2 instead of pcre3?

There are no immediate plans.

When we last checked, there were no problems with PCRE, but PCRE2
wasn't available in most distributions we support, making the
switch mostly meaningless.

Also, it looks like PCRE2 is still not supported even by Exim,
which is the parent project of PCRE and PCRE2:

https://bugs.exim.org/show_bug.cgi?id=1878

As such, adding PCRE2 support to nginx looks premature.

--
Maxim Dounin
http://mdounin.ru/

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.