{"thread":{"id":"55039","subject":"[PATCH 1/2] config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag","startedAt":"2021-01-24T01:59:23Z","lastAt":"2021-01-28T15:46:04Z","messageCount":5,"participants":["Ævar Arnfjörð Bjarmason","brian m. carlson","Junio C Hamano","Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"415110","messageId":"20210124015833.2753-1-avarab@gmail.com","threadId":"55039","inReplyTo":null,"subject":"[PATCH 1/2] config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-01-24T01:58:32Z","receivedAt":"2021-01-24T01:59:23Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Remove a flag added in my fb95e2e38d (grep: un-break building with\nPCRE >= 8.32 without --enable-jit, 2017-06-01). It's set just below\nUSE_LIBPCRE=YesPlease, so it's been redundant since\ne6c531b808 (Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1,\n2018-03-11).\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n config.mak.uname | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 198ab1e58f..e22d4b6d67 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -664,7 +664,6 @@ else\n \t\tNO_GETTEXT =\n \t\tUSE_GETTEXT_SCHEME = fallthrough\n \t\tUSE_LIBPCRE= YesPlease\n-\t\tNO_LIBPCRE1_JIT = UnfortunatelyYes\n \t\tNO_CURL =\n \t\tUSE_NED_ALLOCATOR = YesPlease\n \telse\n-- \n2.29.2.222.g5d2a92d10f8\n\n"},{"id":"415111","messageId":"20210124015833.2753-2-avarab@gmail.com","threadId":"55039","inReplyTo":"20210124015833.2753-1-avarab@gmail.com","subject":"[PATCH 2/2] Remove support for v1 of the PCRE library","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-01-24T01:58:33Z","receivedAt":"2021-01-24T02:00:26Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Remove support for using version 1 of the PCRE library. Its use has\nbeen discouraged by upstream for a long time, and it's in a\nbugfix-only state.\n\nAnyone who was relying on v1 in particular got a nudge to move to v2\nin e6c531b808 (Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1,\n2018-03-11), which was first released as part of v2.18.0.\n\nWith this the LIBPCRE2 test prerequisites is redundant to PCRE. But\nI'm keeping it for self-documentation purposes, and to avoid conflict\nwith other in-flight PCRE patches.\n\nI'm also not changing all of our own \"pcre2\" names to \"pcre\", i.e. the\ninverse of 6d4b5747f0 (grep: change internal *pcre* variable &\nfunction names to be *pcre1*, 2017-05-25). I don't see the point, and\nit makes the history/blame harder to read. Maybe if there's ever a\nPCRE v3...\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n Makefile                            |  32 ++------\n configure.ac                        |  51 ++----------\n contrib/buildsystems/CMakeLists.txt |   4 -\n grep.c                              | 119 +---------------------------\n grep.h                              |  14 ----\n t/README                            |  12 ---\n t/test-lib.sh                       |   3 +-\n 7 files changed, 18 insertions(+), 217 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 4edfda3e00..cd0ff9a040 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -29,18 +29,11 @@ all::\n # Perl-compatible regular expressions instead of standard or extended\n # POSIX regular expressions.\n #\n-# USE_LIBPCRE is a synonym for USE_LIBPCRE2, define USE_LIBPCRE1\n-# instead if you'd like to use the legacy version 1 of the PCRE\n-# library. Support for version 1 will likely be removed in some future\n-# release of Git, as upstream has all but abandoned it.\n-#\n-# When using USE_LIBPCRE1, define NO_LIBPCRE1_JIT if you want to\n-# disable JIT even if supported by your library.\n+# Only libpcre version 2 is supported. USE_LIBPCRE2 is a synonym for\n+# USE_LIBPCRE, support for the old USE_LIBPCRE1 has been removed.\n #\n # Define LIBPCREDIR=/foo/bar if your PCRE header and library files are\n-# in /foo/bar/include and /foo/bar/lib directories. Which version of\n-# PCRE this points to determined by the USE_LIBPCRE1 and USE_LIBPCRE2\n-# variables.\n+# in /foo/bar/include and /foo/bar/lib directories.\n #\n # Define HAVE_ALLOCA_H if you have working alloca(3) defined in that header.\n #\n@@ -1359,26 +1352,17 @@ ifdef NO_LIBGEN_H\n \tCOMPAT_OBJS += compat/basename.o\n endif\n \n+ifdef USE_LIBPCRE1\n+$(error The USE_LIBPCRE1 build option has been removed, use version 2 with USE_LIBPCRE)\n+endif\n+\n USE_LIBPCRE2 ?= $(USE_LIBPCRE)\n \n ifneq (,$(USE_LIBPCRE2))\n-\tifdef USE_LIBPCRE1\n-$(error Only set USE_LIBPCRE2 (or its alias USE_LIBPCRE) or USE_LIBPCRE1, not both!)\n-\tendif\n-\n \tBASIC_CFLAGS += -DUSE_LIBPCRE2\n \tEXTLIBS += -lpcre2-8\n endif\n \n-ifdef USE_LIBPCRE1\n-\tBASIC_CFLAGS += -DUSE_LIBPCRE1\n-\tEXTLIBS += -lpcre\n-\n-ifdef NO_LIBPCRE1_JIT\n-\tBASIC_CFLAGS += -DNO_LIBPCRE1_JIT\n-endif\n-endif\n-\n ifdef LIBPCREDIR\n \tBASIC_CFLAGS += -I$(LIBPCREDIR)/include\n \tEXTLIBS += -L$(LIBPCREDIR)/$(lib) $(CC_LD_DYNPATH)$(LIBPCREDIR)/$(lib)\n@@ -2726,9 +2710,7 @@ GIT-BUILD-OPTIONS: FORCE\n \t@echo TAR=\\''$(subst ','\\'',$(subst ','\\'',$(TAR)))'\\' >>$@+\n \t@echo NO_CURL=\\''$(subst ','\\'',$(subst ','\\'',$(NO_CURL)))'\\' >>$@+\n \t@echo NO_EXPAT=\\''$(subst ','\\'',$(subst ','\\'',$(NO_EXPAT)))'\\' >>$@+\n-\t@echo USE_LIBPCRE1=\\''$(subst ','\\'',$(subst ','\\'',$(USE_LIBPCRE1)))'\\' >>$@+\n \t@echo USE_LIBPCRE2=\\''$(subst ','\\'',$(subst ','\\'',$(USE_LIBPCRE2)))'\\' >>$@+\n-\t@echo NO_LIBPCRE1_JIT=\\''$(subst ','\\'',$(subst ','\\'',$(NO_LIBPCRE1_JIT)))'\\' >>$@+\n \t@echo NO_PERL=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PERL)))'\\' >>$@+\n \t@echo NO_PTHREADS=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PTHREADS)))'\\' >>$@+\n \t@echo NO_PYTHON=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PYTHON)))'\\' >>$@+\ndiff --git a/configure.ac b/configure.ac\nindex 66aedb9288..031e8d3fee 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -252,16 +252,17 @@ GIT_PARSE_WITH([openssl]))\n # Define USE_LIBPCRE if you have and want to use libpcre. Various\n # commands such as log and grep offer runtime options to use\n # Perl-compatible regular expressions instead of standard or extended\n-# POSIX regular expressions.\n-#\n-# USE_LIBPCRE is a synonym for USE_LIBPCRE2, define USE_LIBPCRE1\n-# instead if you'd like to use the legacy version 1 of the PCRE\n-# library. Support for version 1 will likely be removed in some future\n-# release of Git, as upstream has all but abandoned it.\n+# POSIX regular expressions. Only libpcre version 2 is supported.\n #\n # Define LIBPCREDIR=/foo/bar if your PCRE header and library files are in\n # /foo/bar/include and /foo/bar/lib directories.\n #\n+\n+AC_ARG_WITH(libpcre1,\n+AS_HELP_STRING([--with-libpcre1],[DEPRECATED]),\n+    AC_MSG_ERROR([support for --with-libpcre1 has been removed. Use --with-libpcre2!])\n+    )\n+\n AC_ARG_WITH(libpcre,\n AS_HELP_STRING([--with-libpcre],[synonym for --with-libpcre2]),\n     if test \"$withval\" = \"no\"; then\n@@ -277,22 +278,6 @@ AS_HELP_STRING([--with-libpcre],[synonym for --with-libpcre2]),\n \tGIT_CONF_SUBST([LIBPCREDIR])\n     fi)\n \n-AC_ARG_WITH(libpcre1,\n-AS_HELP_STRING([--with-libpcre1],[support Perl-compatible regexes via libpcre1 (default is NO)])\n-AS_HELP_STRING([],           [ARG can be also prefix for libpcre library and headers]),\n-    if test \"$withval\" = \"no\"; then\n-\tUSE_LIBPCRE1=\n-    elif test \"$withval\" = \"yes\"; then\n-\tUSE_LIBPCRE1=YesPlease\n-    else\n-\tUSE_LIBPCRE1=YesPlease\n-\tLIBPCREDIR=$withval\n-\tAC_MSG_NOTICE([Setting LIBPCREDIR to $LIBPCREDIR])\n-        dnl USE_LIBPCRE1 can still be modified below, so don't substitute\n-        dnl it yet.\n-\tGIT_CONF_SUBST([LIBPCREDIR])\n-    fi)\n-\n AC_ARG_WITH(libpcre2,\n AS_HELP_STRING([--with-libpcre2],[support Perl-compatible regexes via libpcre2 (default is NO)])\n AS_HELP_STRING([],           [ARG can be also prefix for libpcre library and headers]),\n@@ -300,10 +285,6 @@ AS_HELP_STRING([],           [ARG can be also prefix for libpcre library and hea\n         AC_MSG_ERROR([Only supply one of --with-libpcre or its synonym --with-libpcre2!])\n     fi\n \n-    if test -n \"$USE_LIBPCRE1\"; then\n-        AC_MSG_ERROR([Only supply one of --with-libpcre1 or --with-libpcre2!])\n-    fi\n-\n     if test \"$withval\" = \"no\"; then\n \tUSE_LIBPCRE2=\n     elif test \"$withval\" = \"yes\"; then\n@@ -554,25 +535,9 @@ GIT_CONF_SUBST([NEEDS_SSL_WITH_CRYPTO])\n GIT_CONF_SUBST([NO_OPENSSL])\n \n #\n-# Handle the USE_LIBPCRE1 and USE_LIBPCRE2 options potentially set\n-# above.\n+# Handle the USE_LIBPCRE options potentially set above.\n #\n \n-if test -n \"$USE_LIBPCRE1\"; then\n-\n-GIT_STASH_FLAGS($LIBPCREDIR)\n-\n-AC_CHECK_LIB([pcre], [pcre_version],\n-[USE_LIBPCRE1=YesPlease],\n-[USE_LIBPCRE1=])\n-\n-GIT_UNSTASH_FLAGS($LIBPCREDIR)\n-\n-GIT_CONF_SUBST([USE_LIBPCRE1])\n-\n-fi\n-\n-\n if test -n \"$USE_LIBPCRE2\"; then\n \n GIT_STASH_FLAGS($LIBPCREDIR)\ndiff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt\nindex c151dd7257..ac3dbc079a 100644\n--- a/contrib/buildsystems/CMakeLists.txt\n+++ b/contrib/buildsystems/CMakeLists.txt\n@@ -910,9 +910,7 @@ set(PYTHON_PATH /usr/bin/python)\n set(TAR tar)\n set(NO_CURL )\n set(NO_EXPAT )\n-set(USE_LIBPCRE1 )\n set(USE_LIBPCRE2 )\n-set(NO_LIBPCRE1_JIT )\n set(NO_PERL )\n set(NO_PTHREADS )\n set(NO_PYTHON )\n@@ -949,8 +947,6 @@ file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"PYTHON_PATH='${PYTHON_PATH}'\\\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"TAR='${TAR}'\\n\")\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_CURL='${NO_CURL}'\\n\")\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_EXPAT='${NO_EXPAT}'\\n\")\n-file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"USE_LIBPCRE1='${USE_LIBPCRE1}'\\n\")\n-file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_LIBPCRE1_JIT='${NO_LIBPCRE1_JIT}'\\n\")\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_PERL='${NO_PERL}'\\n\")\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_PTHREADS='${NO_PTHREADS}'\\n\")\n file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS \"NO_UNIX_SOCKETS='${NO_UNIX_SOCKETS}'\\n\")\ndiff --git a/grep.c b/grep.c\nindex efeb6dc58d..ad994d6923 100644\n--- a/grep.c\n+++ b/grep.c\n@@ -166,11 +166,6 @@ void grep_init(struct grep_opt *opt, struct repository *repo, const char *prefix\n \t\t\t\t\tpcre2_malloc, pcre2_free, NULL);\n #endif\n \n-#ifdef USE_LIBPCRE1\n-\tpcre_malloc = malloc;\n-\tpcre_free = free;\n-#endif\n-\n \t*opt = grep_defaults;\n \n \topt->repo = repo;\n@@ -223,17 +218,7 @@ static void grep_set_pattern_type_option(enum grep_pattern_type pattern_type, st\n \t\tbreak;\n \n \tcase GREP_PATTERN_TYPE_PCRE:\n-#ifdef USE_LIBPCRE2\n \t\topt->pcre2 = 1;\n-#else\n-\t\t/*\n-\t\t * It's important that pcre1 always be assigned to\n-\t\t * even when there's no USE_LIBPCRE* defined. We still\n-\t\t * call the PCRE stub function, it just dies with\n-\t\t * \"cannot use Perl-compatible regexes[...]\".\n-\t\t */\n-\t\topt->pcre1 = 1;\n-#endif\n \t\tbreak;\n \t}\n }\n@@ -377,92 +362,6 @@ static int is_fixed(const char *s, size_t len)\n \treturn 1;\n }\n \n-#ifdef USE_LIBPCRE1\n-static void compile_pcre1_regexp(struct grep_pat *p, const struct grep_opt *opt)\n-{\n-\tconst char *error;\n-\tint erroffset;\n-\tint options = PCRE_MULTILINE;\n-\tint study_options = 0;\n-\n-\tif (opt->ignore_case) {\n-\t\tif (!opt->ignore_locale && has_non_ascii(p->pattern))\n-\t\t\tp->pcre1_tables = pcre_maketables();\n-\t\toptions |= PCRE_CASELESS;\n-\t}\n-\tif (!opt->ignore_locale && is_utf8_locale() && has_non_ascii(p->pattern))\n-\t\toptions |= PCRE_UTF8;\n-\n-\tp->pcre1_regexp = pcre_compile(p->pattern, options, &error, &erroffset,\n-\t\t\t\t      p->pcre1_tables);\n-\tif (!p->pcre1_regexp)\n-\t\tcompile_regexp_failed(p, error);\n-\n-#if defined(PCRE_CONFIG_JIT) && !defined(NO_LIBPCRE1_JIT)\n-\tpcre_config(PCRE_CONFIG_JIT, &p->pcre1_jit_on);\n-\tif (opt->debug)\n-\t\tfprintf(stderr, \"pcre1_jit_on=%d\\n\", p->pcre1_jit_on);\n-\n-\tif (p->pcre1_jit_on)\n-\t\tstudy_options = PCRE_STUDY_JIT_COMPILE;\n-#endif\n-\n-\tp->pcre1_extra_info = pcre_study(p->pcre1_regexp, study_options, &error);\n-\tif (!p->pcre1_extra_info && error)\n-\t\tdie(\"%s\", error);\n-}\n-\n-static int pcre1match(struct grep_pat *p, const char *line, const char *eol,\n-\t\tregmatch_t *match, int eflags)\n-{\n-\tint ovector[30], ret, flags = PCRE_NO_UTF8_CHECK;\n-\n-\tif (eflags & REG_NOTBOL)\n-\t\tflags |= PCRE_NOTBOL;\n-\n-\tret = pcre_exec(p->pcre1_regexp, p->pcre1_extra_info, line,\n-\t\t\teol - line, 0, flags, ovector,\n-\t\t\tARRAY_SIZE(ovector));\n-\n-\tif (ret < 0 && ret != PCRE_ERROR_NOMATCH)\n-\t\tdie(\"pcre_exec failed with error code %d\", ret);\n-\tif (ret > 0) {\n-\t\tret = 0;\n-\t\tmatch->rm_so = ovector[0];\n-\t\tmatch->rm_eo = ovector[1];\n-\t}\n-\n-\treturn ret;\n-}\n-\n-static void free_pcre1_regexp(struct grep_pat *p)\n-{\n-\tpcre_free(p->pcre1_regexp);\n-#ifdef PCRE_CONFIG_JIT\n-\tif (p->pcre1_jit_on)\n-\t\tpcre_free_study(p->pcre1_extra_info);\n-\telse\n-#endif\n-\t\tpcre_free(p->pcre1_extra_info);\n-\tpcre_free((void *)p->pcre1_tables);\n-}\n-#else /* !USE_LIBPCRE1 */\n-static void compile_pcre1_regexp(struct grep_pat *p, const struct grep_opt *opt)\n-{\n-\tdie(\"cannot use Perl-compatible regexes when not compiled with USE_LIBPCRE\");\n-}\n-\n-static int pcre1match(struct grep_pat *p, const char *line, const char *eol,\n-\t\tregmatch_t *match, int eflags)\n-{\n-\treturn 1;\n-}\n-\n-static void free_pcre1_regexp(struct grep_pat *p)\n-{\n-}\n-#endif /* !USE_LIBPCRE1 */\n-\n #ifdef USE_LIBPCRE2\n static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt)\n {\n@@ -588,11 +487,6 @@ static void free_pcre2_pattern(struct grep_pat *p)\n #else /* !USE_LIBPCRE2 */\n static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt)\n {\n-\t/*\n-\t * Unreachable until USE_LIBPCRE2 becomes synonymous with\n-\t * USE_LIBPCRE. See the sibling comment in\n-\t * grep_set_pattern_type_option().\n-\t */\n \tdie(\"cannot use Perl-compatible regexes when not compiled with USE_LIBPCRE\");\n }\n \n@@ -693,11 +587,6 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)\n \t\treturn;\n \t}\n \n-\tif (opt->pcre1) {\n-\t\tcompile_pcre1_regexp(p, opt);\n-\t\treturn;\n-\t}\n-\n \tif (p->ignore_case)\n \t\tregflags |= REG_ICASE;\n \tif (opt->extended_regexp_option)\n@@ -1051,9 +940,7 @@ void free_grep_patterns(struct grep_opt *opt)\n \t\tcase GREP_PATTERN: /* atom */\n \t\tcase GREP_PATTERN_HEAD:\n \t\tcase GREP_PATTERN_BODY:\n-\t\t\tif (p->pcre1_regexp)\n-\t\t\t\tfree_pcre1_regexp(p);\n-\t\t\telse if (p->pcre2_pattern)\n+\t\t\tif (p->pcre2_pattern)\n \t\t\t\tfree_pcre2_pattern(p);\n \t\t\telse\n \t\t\t\tregfree(&p->regexp);\n@@ -1116,9 +1003,7 @@ static int patmatch(struct grep_pat *p, char *line, char *eol,\n {\n \tint hit;\n \n-\tif (p->pcre1_regexp)\n-\t\thit = !pcre1match(p, line, eol, match, eflags);\n-\telse if (p->pcre2_pattern)\n+\tif (p->pcre2_pattern)\n \t\thit = !pcre2match(p, line, eol, match, eflags);\n \telse\n \t\thit = !regexec_buf(&p->regexp, line, eol - line, 1, match,\ndiff --git a/grep.h b/grep.h\nindex b5c4e223a8..f8b495869f 100644\n--- a/grep.h\n+++ b/grep.h\n@@ -1,15 +1,6 @@\n #ifndef GREP_H\n #define GREP_H\n #include \"color.h\"\n-#ifdef USE_LIBPCRE1\n-#include <pcre.h>\n-#ifndef PCRE_NO_UTF8_CHECK\n-#define PCRE_NO_UTF8_CHECK 0\n-#endif\n-#else\n-typedef int pcre;\n-typedef int pcre_extra;\n-#endif\n #ifdef USE_LIBPCRE2\n #define PCRE2_CODE_UNIT_WIDTH 8\n #include <pcre2.h>\n@@ -71,10 +62,6 @@ struct grep_pat {\n \tsize_t patternlen;\n \tenum grep_header_field field;\n \tregex_t regexp;\n-\tpcre *pcre1_regexp;\n-\tpcre_extra *pcre1_extra_info;\n-\tconst unsigned char *pcre1_tables;\n-\tint pcre1_jit_on;\n \tpcre2_code *pcre2_pattern;\n \tpcre2_match_data *pcre2_match_data;\n \tpcre2_compile_context *pcre2_compile_context;\n@@ -144,7 +131,6 @@ struct grep_opt {\n \tint allow_textconv;\n \tint extended;\n \tint use_reflog_filter;\n-\tint pcre1;\n \tint pcre2;\n \tint relative;\n \tint pathname;\ndiff --git a/t/README b/t/README\nindex c730a70770..5398994eba 100644\n--- a/t/README\n+++ b/t/README\n@@ -1104,18 +1104,6 @@ use these, and \"test_set_prereq\" for how to define your own.\n    Git was compiled with support for PCRE. Wrap any tests\n    that use git-grep --perl-regexp or git-grep -P in these.\n \n- - LIBPCRE1\n-\n-   Git was compiled with PCRE v1 support via\n-   USE_LIBPCRE1=YesPlease. Wrap any PCRE using tests that for some\n-   reason need v1 of the PCRE library instead of v2 in these.\n-\n- - LIBPCRE2\n-\n-   Git was compiled with PCRE v2 support via\n-   USE_LIBPCRE2=YesPlease. Wrap any PCRE using tests that for some\n-   reason need v2 of the PCRE library instead of v1 in these.\n-\n  - CASE_INSENSITIVE_FS\n \n    Test is run on a case insensitive file system.\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 03c1c0836f..2996d7c54c 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -1524,8 +1524,7 @@ esac\n test -z \"$NO_PERL\" && test_set_prereq PERL\n test -z \"$NO_PTHREADS\" && test_set_prereq PTHREADS\n test -z \"$NO_PYTHON\" && test_set_prereq PYTHON\n-test -n \"$USE_LIBPCRE1$USE_LIBPCRE2\" && test_set_prereq PCRE\n-test -n \"$USE_LIBPCRE1\" && test_set_prereq LIBPCRE1\n+test -n \"$USE_LIBPCRE2\" && test_set_prereq PCRE\n test -n \"$USE_LIBPCRE2\" && test_set_prereq LIBPCRE2\n test -z \"$NO_GETTEXT\" && test_set_prereq GETTEXT\n \n-- \n2.29.2.222.g5d2a92d10f8\n\n"},{"id":"415123","messageId":"YAzn0Z+568rtF6rs@camp.crustytoothpaste.net","threadId":"55039","inReplyTo":"20210124015833.2753-2-avarab@gmail.com","subject":"Re: [PATCH 2/2] Remove support for v1 of the PCRE library","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2021-01-24T03:21:53Z","receivedAt":"2021-01-24T03:26:29Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2021-01-24 at 01:58:33, Ævar Arnfjörð Bjarmason wrote:\n> Remove support for using version 1 of the PCRE library. Its use has\n> been discouraged by upstream for a long time, and it's in a\n> bugfix-only state.\n> \n> Anyone who was relying on v1 in particular got a nudge to move to v2\n> in e6c531b808 (Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1,\n> 2018-03-11), which was first released as part of v2.18.0.\n> \n> With this the LIBPCRE2 test prerequisites is redundant to PCRE. But\n> I'm keeping it for self-documentation purposes, and to avoid conflict\n> with other in-flight PCRE patches.\n\nI think it's fine to drop support for the original PCRE.  All supported\nversions of CentOS, Debian, Ubuntu, FreeBSD, and NetBSD have PCRE2 by\nnow, and I'm quite fine with giving folks using systems without security\nupdates a bit of a wake-up call.  I have no reason to believe that any\nother major operating system won't have version 2, either.\n\nSo, essentially, I think this is a good idea.\n-- \nbrian m. carlson (he/him or they/them)\nHouston, Texas, US\n"},{"id":"415125","messageId":"xmqqmtwy29x8.fsf@gitster.c.googlers.com","threadId":"55039","inReplyTo":"YAzn0Z+568rtF6rs@camp.crustytoothpaste.net","subject":"Re: [PATCH 2/2] Remove support for v1 of the PCRE library","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-01-24T05:14:43Z","receivedAt":"2021-01-24T05:15:35Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n\n> On 2021-01-24 at 01:58:33, Ævar Arnfjörð Bjarmason wrote:\n>> Remove support for using version 1 of the PCRE library. Its use has\n>> been discouraged by upstream for a long time, and it's in a\n>> bugfix-only state.\n>> \n>> Anyone who was relying on v1 in particular got a nudge to move to v2\n>> in e6c531b808 (Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1,\n>> 2018-03-11), which was first released as part of v2.18.0.\n>> \n>> With this the LIBPCRE2 test prerequisites is redundant to PCRE. But\n>> I'm keeping it for self-documentation purposes, and to avoid conflict\n>> with other in-flight PCRE patches.\n>\n> I think it's fine to drop support for the original PCRE.  All supported\n> versions of CentOS, Debian, Ubuntu, FreeBSD, and NetBSD have PCRE2 by\n> now, and I'm quite fine with giving folks using systems without security\n> updates a bit of a wake-up call.  I have no reason to believe that any\n> other major operating system won't have version 2, either.\n>\n> So, essentially, I think this is a good idea.\n\nYeah, I too like seeing the world making progress ;-).\n"},{"id":"415505","messageId":"nycvar.QRO.7.76.6.2101281641510.54@tvgsbejvaqbjf.bet","threadId":"55039","inReplyTo":"20210124015833.2753-1-avarab@gmail.com","subject":"Re: [PATCH 1/2] config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2021-01-28T15:44:09Z","receivedAt":"2021-01-28T15:46:04Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Ævar,\n\nOn Sun, 24 Jan 2021, Ævar Arnfjörð Bjarmason wrote:\n\n> Remove a flag added in my fb95e2e38d (grep: un-break building with\n> PCRE >= 8.32 without --enable-jit, 2017-06-01). It's set just below\n> USE_LIBPCRE=YesPlease, so it's been redundant since\n> e6c531b808 (Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1,\n> 2018-03-11).\n>\n> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n> ---\n>  config.mak.uname | 1 -\n>  1 file changed, 1 deletion(-)\n>\n> diff --git a/config.mak.uname b/config.mak.uname\n> index 198ab1e58f..e22d4b6d67 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -664,7 +664,6 @@ else\n>  \t\tNO_GETTEXT =\n>  \t\tUSE_GETTEXT_SCHEME = fallthrough\n>  \t\tUSE_LIBPCRE= YesPlease\n> -\t\tNO_LIBPCRE1_JIT = UnfortunatelyYes\n\nFWIW this is almost precisely what we carry in Git for Windows for a while\n(to battle-test it), as\nhttps://github.com/git-for-windows/git/commit/735a58a38d43659cb985d717ec7eda1f26e121e5\n\nThe only thing that commit does in addition is to insert the forgotten\nspace in the line above, between `USE_LIBPCRE` and `=`.\n\nThanks,\nDscho\n\n>  \t\tNO_CURL =\n>  \t\tUSE_NED_ALLOCATOR = YesPlease\n>  \telse\n> --\n> 2.29.2.222.g5d2a92d10f8\n>\n>\n"}]}