[MapServer-dev] GNU Regex Replacement?
Even Rouault
even.rouault at spatialys.com
Sat Jun 8 09:34:13 PDT 2024
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-bounces at lists.osgeo.org> *On
> Behalf Of *Even Rouault via MapServer-dev
> *Sent:* Saturday, June 8, 2024 10:37 AM
> *To:* Paul Ramsey <pramsey at cleverelephant.ca>; Steve Lime
> <sdlime at gmail.com>
> *Cc:* MapServer Devs <mapserver-dev at 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 <sdlime at gmail.com>
> <mailto:sdlime at 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 at 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 at 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 at lists.osgeo.org
> > https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
> _______________________________________________
> MapServer-dev mailing list
> MapServer-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
>
>
> _______________________________________________
>
> MapServer-dev mailing list
>
> MapServer-dev at 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 at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-dev/attachments/20240608/e20b95a2/attachment.htm>
More information about the MapServer-dev
mailing list