On Fri, Aug 14, 2015 at 1:25 AM, Anatol Belski <anatol....@belski.net>
wrote:

>
>
> > -----Original Message-----
> > From: a...@adamharvey.name [mailto:a...@adamharvey.name] On Behalf
> > Of Adam Harvey
> > Sent: Thursday, August 13, 2015 8:44 PM
> > To: Christoph Becker <cmbecke...@gmx.de>
> > Cc: Anatol Belski <anatol....@belski.net>; PHP internals
> > <internals@lists.php.net>
> > Subject: Re: [PHP-DEV] libpcre version requirements
> >
> > On 13 August 2015 at 04:35, Christoph Becker <cmbecke...@gmx.de> wrote:
> > > On 12.08.2015 at 08:44, Anatol Belski wrote:
> > >>
> > >> [...] However look -
> http://w3techs.com/technologies/details/os-linux/all/all
> > . From those, CentOS 5/6 releases are not even a year old and contain
> 6.6, 7.x
> > but take 20% of all the Linux market share. Note that according to that
> Linux
> > takes only 35.9% of it. Now, say disregarding CentOS 5 and other
> rare/too old
> > platforms, the other 65% of the usages are not taken into account. So how
> > much loss on PHP7 adoption would happen, is a question. Maybe there are
> other
> > stats, just operating on what is available.
> > >>
> > >> On the other hand  - as with the bug #70232, is it really worth
> disabling the
> > whole PCRE just to be sure one bug is fixed? I would see it as not being
> such.  It
> > is clear, that no distro will suddenly be upgrading from say PHP 5.3 to
> PHP7 in an
> > older branch, but keeping as much compat as possible will allow third
> party
> > repositories to still provide PHP7 there. This is at least my reason to
> say the
> > version shouldn't be raised - as it shouldn't go beyond 7.x at least
> because of
> > CentOS 6, and then it is probably useless to do it ATM. As long as it
> doesn't block
> > the work towards future, at least.
> > >
> > > Well, then it might be best to leave the requirements as they are for
> > > now. :)
> >
> > I'm still OK requiring 8.00 in PHP 7.0, personally — even that is almost
> six years
> > old, and users on older distros and OSes can use the bundled libpcre.
> It's not like
> > this is going to break the common case where the user doesn't set any
> specific
> > PCRE flags in configure, and I don't think it's unreasonable to expect
> third party
> > packagers to use a bundled library if they're building on that old a
> system.
> > They're effectively shouldering the burden of providing security updates
> for PHP
> > regardless of what the distro does.
>
> What about the other 65% of the market share where we have no idea what
> happens? Well, some of them are Windows where bundled PCRE is used, but the
> rest is like UNIXes, maybe they're 50/50 or alike.
>
> Besides that - an average user won't even have gcc installed to use the
> bundled PCRE or not, and what packagers would do - yep, that's a question.
> However distributions usually enforce shared libs usage for the exact
> reason to centralize delivery of the (security) updates.
>
> I would suggest to make this move (raising the PCRE version to 7 or 8) in
> master after 7.0 is branched. Then there were enough time to see how 7.0 is
> being handled, to get feedback on that change and to react accordingly, if
> needed.
>
> Regards
>
> Anatol
>

There already was some discussion about bumping the libpcre version for
5.6. I'll quote what I said back then:

> [...] I think the low version requirement is bad for other reasons:
There's a big gulf in terms of both features and bug fixes between PCRE 6.6
and what PHP currently bundles. It's a bit ridiculous that you can end up
using a PHP version from 2014 together with a decade old PCRE version.

and

> It would still be nice to increase the minimum version number [...],
because allowing prehistoric PCRE versions in a new release makes zero
sense. I recommend at least 8.10 because it both supports marks and - more
relevantly to most users - supports UCP mode, which PHP uses by default (if
available). UCP mode can significantly change the behavior of PCRE with the
/u modifier, as such guaranteeing a minimum version of 8.10 will also
guarantee a somewhat consistent /u behavior.

Basically, if we allow a too broad range of PCRE versions, we also allow a
broad range of behavior people have to deal with. If people use the /u
modifier, they will get significantly (and at the same time subtly)
different behavior if PHP was linked against libpcre newer or older than
8.10.

Distros that will ship with PHP 7 will also ship with new PCRE versions.
External package repositories with PHP 7 will also have newer PCRE
versions. People compiling themselves use the bundled version.

Let's bump this. If you install PHP 7 in 2016 you should *not* have to deal
with a PCRE version released in 2006.

Nikita

Reply via email to