0002-Raise-minimum-flex-version-to-2.5.37.patch

text/plain

Filename: 0002-Raise-minimum-flex-version-to-2.5.37.patch
Type: text/plain
Part: 1
Message: Re: pure parsers and reentrant scanners

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch 0002
Subject: Raise minimum flex version to 2.5.37
File+
config/programs.m4 4 4
configure 2 2
doc/src/sgml/installation.sgml 2 2
meson.build 1 1
src/backend/utils/misc/guc-file.l 1 1
From b33f36166fdb5b9dec746ba721881d696241e291 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Thu, 9 Jan 2025 08:41:28 +0100
Subject: [PATCH 2/2] Raise minimum flex version to 2.5.37

---
 config/programs.m4                | 8 ++++----
 configure                         | 4 ++--
 doc/src/sgml/installation.sgml    | 4 ++--
 meson.build                       | 2 +-
 src/backend/utils/misc/guc-file.l | 2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/config/programs.m4 b/config/programs.m4
index 490ec9fe9f5..417a4f6d06c 100644
--- a/config/programs.m4
+++ b/config/programs.m4
@@ -59,8 +59,8 @@ AC_SUBST(BISONFLAGS)
 # PGAC_PATH_FLEX
 # --------------
 # Look for Flex, set the output variable FLEX to its path if found.
-# Reject versions before 2.5.35 (the earliest version in the buildfarm
-# as of 2022). Also find Flex if its installed under `lex', but do not
+# Reject versions before 2.5.37 (the earliest version in the buildfarm
+# as of 2025). Also find Flex if its installed under `lex', but do not
 # accept other Lex programs.
 
 AC_DEFUN([PGAC_PATH_FLEX],
@@ -84,14 +84,14 @@ else
         echo '%%'  > conftest.l
         if $pgac_candidate -t conftest.l 2>/dev/null | grep FLEX_SCANNER >/dev/null 2>&1; then
           pgac_flex_version=`$pgac_candidate --version 2>/dev/null`
-          if echo "$pgac_flex_version" | sed ['s/[.a-z]/ /g'] | $AWK '{ if ([$]1 == 2 && ([$]2 > 5 || ([$]2 == 5 && [$]3 >= 35))) exit 0; else exit 1;}'
+          if echo "$pgac_flex_version" | sed ['s/[.a-z]/ /g'] | $AWK '{ if ([$]1 == 2 && ([$]2 > 5 || ([$]2 == 5 && [$]3 >= 37))) exit 0; else exit 1;}'
           then
             pgac_cv_path_flex=$pgac_candidate
             break 2
           else
             AC_MSG_ERROR([
 *** The installed version of Flex, $pgac_candidate, is too old to use with PostgreSQL.
-*** Flex version 2.5.35 or later is required, but this is $pgac_flex_version.])
+*** Flex version 2.5.37 or later is required, but this is $pgac_flex_version.])
           fi
         fi
       fi
diff --git a/configure b/configure
index a0b5e10ca39..6f50ab4d7eb 100755
--- a/configure
+++ b/configure
@@ -9955,14 +9955,14 @@ else
         echo '%%'  > conftest.l
         if $pgac_candidate -t conftest.l 2>/dev/null | grep FLEX_SCANNER >/dev/null 2>&1; then
           pgac_flex_version=`$pgac_candidate --version 2>/dev/null`
-          if echo "$pgac_flex_version" | sed 's/[.a-z]/ /g' | $AWK '{ if ($1 == 2 && ($2 > 5 || ($2 == 5 && $3 >= 35))) exit 0; else exit 1;}'
+          if echo "$pgac_flex_version" | sed 's/[.a-z]/ /g' | $AWK '{ if ($1 == 2 && ($2 > 5 || ($2 == 5 && $3 >= 37))) exit 0; else exit 1;}'
           then
             pgac_cv_path_flex=$pgac_candidate
             break 2
           else
             as_fn_error $? "
 *** The installed version of Flex, $pgac_candidate, is too old to use with PostgreSQL.
-*** Flex version 2.5.35 or later is required, but this is $pgac_flex_version." "$LINENO" 5
+*** Flex version 2.5.37 or later is required, but this is $pgac_flex_version." "$LINENO" 5
           fi
         fi
       fi
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index ebdb5b3bc2d..c6dfbf0bfd3 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -100,7 +100,7 @@ <title>Requirements</title>
        <primary>yacc</primary>
       </indexterm>
 
-      <application>Flex</application> 2.5.35 or later and
+      <application>Flex</application> 2.5.37 or later and
       <application>Bison</application> 2.3 or later are required.  Other
       <application>lex</application> and <application>yacc</application>
       programs cannot be used.
@@ -3813,7 +3813,7 @@ <title>Requirements</title>
        <para>
         <productname>Bison</productname> and <productname>Flex</productname> are
         required.  Only <productname>Bison</productname> versions 2.3 and later
-        will work. <productname>Flex</productname> must be version 2.5.35 or later.
+        will work. <productname>Flex</productname> must be version 2.5.37 or later.
         Binaries can be downloaded from <ulink
         url="https://github.com/lexxmark/winflexbison"></ulink>.
        </para>
diff --git a/meson.build b/meson.build
index cfd654d2916..ae0dfa852af 100644
--- a/meson.build
+++ b/meson.build
@@ -334,7 +334,7 @@ endif
 # External programs
 perl = find_program(get_option('PERL'), required: true, native: true)
 python = find_program(get_option('PYTHON'), required: true, native: true)
-flex = find_program(get_option('FLEX'), native: true, version: '>= 2.5.35')
+flex = find_program(get_option('FLEX'), native: true, version: '>= 2.5.37')
 bison = find_program(get_option('BISON'), native: true, version: '>= 2.3')
 sed = find_program(get_option('SED'), 'sed', native: true, required: false)
 prove = find_program(get_option('PROVE'), native: true, required: false)
diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l
index c0ecb8b2ce2..280c3320954 100644
--- a/src/backend/utils/misc/guc-file.l
+++ b/src/backend/utils/misc/guc-file.l
@@ -302,7 +302,7 @@ record_config_file_error(const char *errmsg,
 /*
  * Flex fatal errors bring us here.  Stash the error message and jump back to
  * ParseConfigFp().  Assume all msg arguments point to string constants; this
- * holds for flex 2.5.35 (earliest we support). Otherwise, we would need to
+ * holds for flex 2.5.37 (earliest we support). Otherwise, we would need to
  * copy the message.
  *
  * We return "int" since this takes the place of calls to fprintf().
-- 
2.47.1