Or a 8.4 optional/experimental feature, where we would allow to build
either against libc regex or PCRE2 (and enable PCRE2 only if explicitly
requested at cmake time).
Le 08/06/2024 à 18:23, Lime, Steve D (MNIT) a écrit :
Maybe a 9.0 change then? Sounds like the underlying issues should be
fixed regardless though.
*From:*MapServer-dev <mapserver-dev-boun...@lists.osgeo.org> *On
Behalf Of *Even Rouault via MapServer-dev
*Sent:* Saturday, June 8, 2024 10:37 AM
*To:* Paul Ramsey <pram...@cleverelephant.ca>; Steve Lime
<sdl...@gmail.com>
*Cc:* MapServer Devs <mapserver-dev@lists.osgeo.org>
*Subject:* Re: [MapServer-dev] GNU Regex Replacement?
*This message may be from an external email source.*
Do not select links or open attachments unless verified. Report all
suspicious emails to Minnesota IT Services Security Operations Center.
------------------------------------------------------------------------
UPDATE: msautotest now pass against PCRE2 with a few extra fixes.
This was actually quite helpful to uncover 2 underlying issues, not
related to PCRE2 itself:
- one (likely) wrong default regex with ms_map_bad_pattern_default in
msCGILoadMap() where escaping antislash was missing (probably
tolerated by GNU regex , but PCRE2 is more picky about that). Easy to fix
- and more embarrassing, our redefined MS_REG_xxxx constants in
mapregex.h happen to not match the values of GNU regex (they might
perhaps have matched in earlier times, but things have drifted apart
since then)... In particular, MS_REG_NOSUB = 4 was thus wrongly
interpreted as REG_NEWLINE = (1 << 2). I loose some extra hair on
figuring that out. The symptom was in rfc62.map where a query string
parameter whose value is "foo%0Abar" (foo newline bar) happened to
validate (with GNU regex) the following expression '^[a-z]{1,16}$'
whereas it shouldn't have (our expected result was incorrect). The
value matched because msEvalRegex() sets MS_REG_NOSUB which was
wrongly interpreted as REG_NEWLINE, thus making the caret / dollar to
apparently match any line instead of the whole string. When using
PCRE2, the match didn't occur because PCRE2 and GNU regex have exactly
subtle different semantics regarding newline matching (I tried to
understand https://www.pcre.org/current/doc/html/pcre2posix.html#SEC5,
but beyond my mastering)
So all in all, it seems PCRE2 could be a viable alternative. I would
expect "subtle" differences, so any mapfile having regular expressions
in it that was tested with GNU/BSD/POSIX/whatever regex should be
carefully checked for correct execution if switching to PCRE2
Even
Le 08/06/2024 à 15:35, Even Rouault via MapServer-dev a écrit :
Hi,
my attempt at https://github.com/MapServer/MapServer/pull/7073 .
It links, but PCRE2 doesn't seem to speak the same regex dialect
as GNU regex...
Even
Le 08/06/2024 à 05:31, Paul Ramsey via MapServer-dev a écrit :
Looks like it was in Centos as far back as 7, and is in base
Ubuntu. It’s in MacPorts and Homebrew. So, fairly common?
P.
On Jun 7, 2024, at 8:06 PM, Steve Lime <sdl...@gmail.com>
<mailto:sdl...@gmail.com> wrote:
One would think replacement wouldn’t be that hard. It’s
pretty localized in MapServer. Is pcre2 widely available?
On Fri, Jun 7, 2024 at 2:40 PM Paul Ramsey via
MapServer-dev <mapserver-dev@lists.osgeo.org> wrote:
We dragged around a dependency on pcre which got
updated to pcre2 lately.
> On Jun 7, 2024, at 12:38 PM, Howard Butler via
MapServer-dev <mapserver-dev@lists.osgeo.org> wrote:
>
> I was playing around with getting Conda Forge builds
of MapServer working, and when I got to Windows, I
realized we need the GNU Regex library
>
>
https://github.com/conda-forge/mapserver-feedstock/issues/47#issue-2341018003
>
> It is ancient, not released as a standalone library
anymore, and causes anything linking against it to
also be GPL (which we're doing in the Windows build
situation). Maybe it is not worth the trouble to
change anything, but if one were to do so, what should
be used in its place?
>
> Howard
> _______________________________________________
> MapServer-dev mailing list
> MapServer-dev@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
_______________________________________________
MapServer-dev mailing list
MapServer-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev
_______________________________________________
MapServer-dev mailing list
MapServer-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
MapServer-dev mailing list
MapServer-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev
--
http://www.spatialys.com
My software is free, but my time generally not.
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
MapServer-dev mailing list
MapServer-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev