pcre2: Update to version 10.39

Message ID 20211128221701.3793969-1-adolf.belka@ipfire.org
State Accepted
Commit 43164c65570a6ee1d1903a08896ce3bc4b0164d3
Headers show
Series pcre2: Update to version 10.39 | expand

Commit Message

Adolf Belka Nov. 28, 2021, 10:17 p.m. UTC
- Update from 10.37 to 10.39
- Update of rootfile
- Changelog
  Version 10.39 29-October-2021
    1. Fix incorrect detection of alternatives in first character search in JIT.
    2. Merged patch from @carenas (GitHub #28):
       Visual Studio 2013 includes support for %zu and %td, so let newer
       versions of it avoid the fallback, and while at it, make sure that
       the first check is for DISABLE_PERCENT_ZT so it will be always
       honoured if chosen.
       prtdiff_t is signed, so use a signed type instead, and make sure
       that an appropiate width is chosen if pointers are 64bit wide and
       long is not (ex: Windows 64bit).
       IMHO removing the cast (and therefore the positibilty of truncation)
       make the code cleaner and the fallback is likely portable enough
       with all 64-bit POSIX systems doing LP64 except for Windows.
    3. Merged patch from @carenas (GitHub #29) to update to Unicode 14.0.0.
    4. Merged patch from @carenas (GitHub #30):
       * Cleanup: remove references to no longer used stdint.h
         Since 19c50b9d (Unconditionally use inttypes.h instead of trying for stdint.h
         (simplification) and remove the now unnecessary inclusion in
         pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
         Remove checks for it in autotools and CMake and document better the expected
         build failures for systems that might have stdint.h (C99) and not inttypes.h
         (from POSIX), like old Windows.
       * Cleanup: remove detection for inttypes.h which is a hard dependency
         CMake checks for standard headers are not meant to be used for hard
         dependencies, so will prevent a possible fallback to work.
         Alternatively, the header could be checked to make the configuration fail
         instead of breaking the build, but that was punted, as it was missing anyway
         from autotools.
    5. Merged patch from @carenas (GitHub #32):
       * jit: allow building with ancient MSVC versions
         Visual Studio older than 2013 fails to build with JIT enabled, because it is
         unable to parse non C89 compatible syntax, with mixed declarations and code.
         While most recent compilers wouldn't even report this as a warning since it
         is valid C99, it could be also made visible by adding to gcc/clang the
         -Wdeclaration-after-statement flag at build time.
         Move the code below the affected definitions.
       * pcre2grep: avoid mixing declarations with code
         Since d5a61ee8 (Patch to detect (and ignore) symlink loops in pcre2grep,
         2021-08-28), code will fail to build in a strict C89 compiler.
         Reformat slightly to make it C89 compatible again.
  Version 10.38 01-October-2021
    1. Fix invalid single character repetition issues in JIT when the repetition
       is inside a capturing bracket and the bracket is preceeded by character
       literals.
    2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
       This extends the CMake build system to build both static and shared libraries
       in one go, builds the static library with PIC, and exposes PCRE2 libraries
       using the CMake config files. JWB provided these notes:
       - Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
       - Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
         variable. Added PCRE2_STATIC variable to the static build using the
         target_compile_definitions() function.
       - Extended the CMake config files.
         - Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
           the static and shared libraries.
         - Added the PCRE_STATIC variable to the target compile definitions for the
           import of the static library.
       Building static and shared libraries using MSVC results in a name clash of
       the libraries. Both static and shared library builds create, for example, the
       file pcre2-8.lib. Therefore, I decided to change the static library names by
       adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
       [Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
    3. Increased the minimum release number for CMake to 3.0.0 because older than
       2.8.12 is deprecated (it was set to 2.8.5) and causes warnings. Even 3.0.0 is
       quite old; it was released in 2014.
    4. Implemented a modified version of Thomas Tempelmann's pcre2grep patch for
       detecting symlink loops. This is dependent on the availability of realpath(),
       which is now tested for in ./configure and CMakeLists.txt.
    5. Implemented a modified version of Thomas Tempelmann's patch for faster
       case-independent "first code unit" searches for unanchored patterns in 8-bit
       mode in the interpreters. Instead of just remembering whether one case matched
       or not, it remembers the position of a previous match so as to avoid
       unnecessary repeated searching.
    6. Perl now locks out \K in lookarounds, so PCRE2 now does the same by default.
       However, just in case anybody was relying on the old behaviour, there is an
       option called PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK that enables the old behaviour.
       An option has also been added to pcre2grep to enable this.
    7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
    8. There is a loop counter to catch excessively crazy patterns when checking
       the lengths of lookbehinds at compile time. This was incorrectly getting reset
       whenever a lookahead was processed, leading to some fuzzer-generated patterns
       taking a very long time to compile when (?|) was present in the pattern,
       because (?|) disables caching of group lengths.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/pcre2 | 226 +++++++++++++++++-----------------
 lfs/pcre2                     |   4 +-
 2 files changed, 115 insertions(+), 115 deletions(-)

Comments

Michael Tremer Nov. 29, 2021, 10:05 a.m. UTC | #1
Hello,

This patch is absolutely fine, but I wanted to raise that some packages have a —-disable-docs switch for the configure script which might come handy for large root file changes like this.

We do not need the docs and so we do not need to install them. That saves editing time and might also save us a second of build time.

Maybe this is a useful thought for some other packages.

Best,
-Michael

Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

> On 28 Nov 2021, at 22:17, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Update from 10.37 to 10.39
> - Update of rootfile
> - Changelog
>  Version 10.39 29-October-2021
>    1. Fix incorrect detection of alternatives in first character search in JIT.
>    2. Merged patch from @carenas (GitHub #28):
>       Visual Studio 2013 includes support for %zu and %td, so let newer
>       versions of it avoid the fallback, and while at it, make sure that
>       the first check is for DISABLE_PERCENT_ZT so it will be always
>       honoured if chosen.
>       prtdiff_t is signed, so use a signed type instead, and make sure
>       that an appropiate width is chosen if pointers are 64bit wide and
>       long is not (ex: Windows 64bit).
>       IMHO removing the cast (and therefore the positibilty of truncation)
>       make the code cleaner and the fallback is likely portable enough
>       with all 64-bit POSIX systems doing LP64 except for Windows.
>    3. Merged patch from @carenas (GitHub #29) to update to Unicode 14.0.0.
>    4. Merged patch from @carenas (GitHub #30):
>       * Cleanup: remove references to no longer used stdint.h
>         Since 19c50b9d (Unconditionally use inttypes.h instead of trying for stdint.h
>         (simplification) and remove the now unnecessary inclusion in
>         pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
>         Remove checks for it in autotools and CMake and document better the expected
>         build failures for systems that might have stdint.h (C99) and not inttypes.h
>         (from POSIX), like old Windows.
>       * Cleanup: remove detection for inttypes.h which is a hard dependency
>         CMake checks for standard headers are not meant to be used for hard
>         dependencies, so will prevent a possible fallback to work.
>         Alternatively, the header could be checked to make the configuration fail
>         instead of breaking the build, but that was punted, as it was missing anyway
>         from autotools.
>    5. Merged patch from @carenas (GitHub #32):
>       * jit: allow building with ancient MSVC versions
>         Visual Studio older than 2013 fails to build with JIT enabled, because it is
>         unable to parse non C89 compatible syntax, with mixed declarations and code.
>         While most recent compilers wouldn't even report this as a warning since it
>         is valid C99, it could be also made visible by adding to gcc/clang the
>         -Wdeclaration-after-statement flag at build time.
>         Move the code below the affected definitions.
>       * pcre2grep: avoid mixing declarations with code
>         Since d5a61ee8 (Patch to detect (and ignore) symlink loops in pcre2grep,
>         2021-08-28), code will fail to build in a strict C89 compiler.
>         Reformat slightly to make it C89 compatible again.
>  Version 10.38 01-October-2021
>    1. Fix invalid single character repetition issues in JIT when the repetition
>       is inside a capturing bracket and the bracket is preceeded by character
>       literals.
>    2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
>       This extends the CMake build system to build both static and shared libraries
>       in one go, builds the static library with PIC, and exposes PCRE2 libraries
>       using the CMake config files. JWB provided these notes:
>       - Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
>       - Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
>         variable. Added PCRE2_STATIC variable to the static build using the
>         target_compile_definitions() function.
>       - Extended the CMake config files.
>         - Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
>           the static and shared libraries.
>         - Added the PCRE_STATIC variable to the target compile definitions for the
>           import of the static library.
>       Building static and shared libraries using MSVC results in a name clash of
>       the libraries. Both static and shared library builds create, for example, the
>       file pcre2-8.lib. Therefore, I decided to change the static library names by
>       adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
>       [Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
>    3. Increased the minimum release number for CMake to 3.0.0 because older than
>       2.8.12 is deprecated (it was set to 2.8.5) and causes warnings. Even 3.0.0 is
>       quite old; it was released in 2014.
>    4. Implemented a modified version of Thomas Tempelmann's pcre2grep patch for
>       detecting symlink loops. This is dependent on the availability of realpath(),
>       which is now tested for in ./configure and CMakeLists.txt.
>    5. Implemented a modified version of Thomas Tempelmann's patch for faster
>       case-independent "first code unit" searches for unanchored patterns in 8-bit
>       mode in the interpreters. Instead of just remembering whether one case matched
>       or not, it remembers the position of a previous match so as to avoid
>       unnecessary repeated searching.
>    6. Perl now locks out \K in lookarounds, so PCRE2 now does the same by default.
>       However, just in case anybody was relying on the old behaviour, there is an
>       option called PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK that enables the old behaviour.
>       An option has also been added to pcre2grep to enable this.
>    7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
>    8. There is a loop counter to catch excessively crazy patterns when checking
>       the lengths of lookbehinds at compile time. This was incorrectly getting reset
>       whenever a lookahead was processed, leading to some fuzzer-generated patterns
>       taking a very long time to compile when (?|) was present in the pattern,
>       because (?|) disables caching of group lengths.
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> config/rootfiles/common/pcre2 | 226 +++++++++++++++++-----------------
> lfs/pcre2                     |   4 +-
> 2 files changed, 115 insertions(+), 115 deletions(-)
> 
> diff --git a/config/rootfiles/common/pcre2 b/config/rootfiles/common/pcre2
> index e5b02d1f7..9d3e33496 100644
> --- a/config/rootfiles/common/pcre2
> +++ b/config/rootfiles/common/pcre2
> @@ -6,132 +6,132 @@
> #usr/lib/libpcre2-16.la
> #usr/lib/libpcre2-16.so
> usr/lib/libpcre2-16.so.0
> -usr/lib/libpcre2-16.so.0.10.2
> +usr/lib/libpcre2-16.so.0.10.4
> #usr/lib/libpcre2-32.la
> #usr/lib/libpcre2-32.so
> usr/lib/libpcre2-32.so.0
> -usr/lib/libpcre2-32.so.0.10.2
> +usr/lib/libpcre2-32.so.0.10.4
> #usr/lib/libpcre2-8.la
> #usr/lib/libpcre2-8.so
> usr/lib/libpcre2-8.so.0
> -usr/lib/libpcre2-8.so.0.10.2
> +usr/lib/libpcre2-8.so.0.10.4
> #usr/lib/libpcre2-posix.la
> #usr/lib/libpcre2-posix.so
> usr/lib/libpcre2-posix.so.3
> -usr/lib/libpcre2-posix.so.3.0.0
> +usr/lib/libpcre2-posix.so.3.0.1
> #usr/lib/pkgconfig/libpcre2-16.pc
> #usr/lib/pkgconfig/libpcre2-32.pc
> #usr/lib/pkgconfig/libpcre2-8.pc
> #usr/lib/pkgconfig/libpcre2-posix.pc
> -#usr/share/doc/pcre-pcre2-10.37
> -#usr/share/doc/pcre-pcre2-10.37/AUTHORS
> -#usr/share/doc/pcre-pcre2-10.37/COPYING
> -#usr/share/doc/pcre-pcre2-10.37/ChangeLog
> -#usr/share/doc/pcre-pcre2-10.37/LICENCE
> -#usr/share/doc/pcre-pcre2-10.37/NEWS
> -#usr/share/doc/pcre-pcre2-10.37/README
> -#usr/share/doc/pcre-pcre2-10.37/html
> -#usr/share/doc/pcre-pcre2-10.37/html/NON-AUTOTOOLS-BUILD.txt
> -#usr/share/doc/pcre-pcre2-10.37/html/README.txt
> -#usr/share/doc/pcre-pcre2-10.37/html/index.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2-config.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_callout_enumerate.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy_with_tables.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_copy.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_config.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_copy.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_converted_pattern_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_dfa_match.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_copy.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_error_message.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_mark.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_match_data_size.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_count.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_pointer.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_startchar.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_compile.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_free_unused_memory.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_match.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_assign.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_copy.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create_from_pattern.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_convert.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_info.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_decode.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_encode.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_get_number_of_codes.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_bsr.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_callout.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_character_tables.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_extra_options.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_recursion_guard.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_depth_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_escape.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_separator.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_heap_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_match_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_max_pattern_length.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_newline.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_offset_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_parens_nest_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_limit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_memory_management.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_substitute_callout.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substitute.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_byname.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_bynumber.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_byname.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_bynumber.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_byname.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_bynumber.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_free.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_get.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_nametable_scan.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_number_from_name.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2api.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2build.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2callout.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2compat.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2convert.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2demo.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2grep.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2jit.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2limits.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2matching.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2partial.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2pattern.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2perform.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2posix.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2sample.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2serialize.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2syntax.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2test.html
> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2unicode.html
> -#usr/share/doc/pcre-pcre2-10.37/pcre2-config.txt
> -#usr/share/doc/pcre-pcre2-10.37/pcre2.txt
> -#usr/share/doc/pcre-pcre2-10.37/pcre2grep.txt
> -#usr/share/doc/pcre-pcre2-10.37/pcre2test.txt
> +#usr/share/doc/pcre-pcre2-10.39
> +#usr/share/doc/pcre-pcre2-10.39/AUTHORS
> +#usr/share/doc/pcre-pcre2-10.39/COPYING
> +#usr/share/doc/pcre-pcre2-10.39/ChangeLog
> +#usr/share/doc/pcre-pcre2-10.39/LICENCE
> +#usr/share/doc/pcre-pcre2-10.39/NEWS
> +#usr/share/doc/pcre-pcre2-10.39/README
> +#usr/share/doc/pcre-pcre2-10.39/html
> +#usr/share/doc/pcre-pcre2-10.39/html/NON-AUTOTOOLS-BUILD.txt
> +#usr/share/doc/pcre-pcre2-10.39/html/README.txt
> +#usr/share/doc/pcre-pcre2-10.39/html/index.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2-config.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_callout_enumerate.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy_with_tables.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_copy.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_config.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_copy.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_converted_pattern_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_dfa_match.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_copy.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_error_message.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_mark.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_match_data_size.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_count.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_pointer.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_startchar.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_compile.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_free_unused_memory.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_match.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_assign.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_copy.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create_from_pattern.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_convert.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_info.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_decode.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_encode.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_get_number_of_codes.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_bsr.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_callout.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_character_tables.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_extra_options.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_recursion_guard.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_depth_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_escape.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_separator.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_heap_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_match_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_max_pattern_length.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_newline.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_offset_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_parens_nest_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_limit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_memory_management.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_substitute_callout.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substitute.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_byname.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_bynumber.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_byname.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_bynumber.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_byname.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_bynumber.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_free.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_get.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_nametable_scan.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_number_from_name.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2api.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2build.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2callout.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2compat.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2convert.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2demo.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2grep.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2jit.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2limits.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2matching.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2partial.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2pattern.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2perform.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2posix.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2sample.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2serialize.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2syntax.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2test.html
> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2unicode.html
> +#usr/share/doc/pcre-pcre2-10.39/pcre2-config.txt
> +#usr/share/doc/pcre-pcre2-10.39/pcre2.txt
> +#usr/share/doc/pcre-pcre2-10.39/pcre2grep.txt
> +#usr/share/doc/pcre-pcre2-10.39/pcre2test.txt
> #usr/share/man/man1/pcre2-config.1
> #usr/share/man/man1/pcre2grep.1
> #usr/share/man/man1/pcre2test.1
> diff --git a/lfs/pcre2 b/lfs/pcre2
> index fd9548a73..00bea9203 100644
> --- a/lfs/pcre2
> +++ b/lfs/pcre2
> @@ -24,7 +24,7 @@
> 
> include Config
> 
> -VER        = 10.37
> +VER        = 10.39
> 
> THISAPP    = pcre2-$(VER)
> DL_FILE    = $(THISAPP).tar.gz
> @@ -54,7 +54,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_MD5 = a0b59d89828f62d2e1caac04f7c51e0b
> +$(DL_FILE)_MD5 = 7389e3524de2cda3d21fde8c224febf1
> 
> install : $(TARGET)
> 
> -- 
> 2.34.0
>
Adolf Belka Nov. 29, 2021, 10:39 a.m. UTC | #2
Hi Michael,

On 29/11/2021 11:05, Michael Tremer wrote:
> Hello,
> 
> This patch is absolutely fine, but I wanted to raise that some packages have a —-disable-docs switch for the configure script which might come handy for large root file changes like this.
Thanks very much for this input. I was not aware of this. Learn something new every day :-)
> 
> We do not need the docs and so we do not need to install them. That saves editing time and might also save us a second of build time.
> 
> Maybe this is a useful thought for some other packages.
Will indeed try and remember to check on this in future, same as I now do for disabling static libs wherever they can be.

Regards,
Adolf.
> 
> Best,
> -Michael
> 
> Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>
> 
>> On 28 Nov 2021, at 22:17, Adolf Belka <adolf.belka@ipfire.org> wrote:
>>
>> - Update from 10.37 to 10.39
>> - Update of rootfile
>> - Changelog
>>   Version 10.39 29-October-2021
>>     1. Fix incorrect detection of alternatives in first character search in JIT.
>>     2. Merged patch from @carenas (GitHub #28):
>>        Visual Studio 2013 includes support for %zu and %td, so let newer
>>        versions of it avoid the fallback, and while at it, make sure that
>>        the first check is for DISABLE_PERCENT_ZT so it will be always
>>        honoured if chosen.
>>        prtdiff_t is signed, so use a signed type instead, and make sure
>>        that an appropiate width is chosen if pointers are 64bit wide and
>>        long is not (ex: Windows 64bit).
>>        IMHO removing the cast (and therefore the positibilty of truncation)
>>        make the code cleaner and the fallback is likely portable enough
>>        with all 64-bit POSIX systems doing LP64 except for Windows.
>>     3. Merged patch from @carenas (GitHub #29) to update to Unicode 14.0.0.
>>     4. Merged patch from @carenas (GitHub #30):
>>        * Cleanup: remove references to no longer used stdint.h
>>          Since 19c50b9d (Unconditionally use inttypes.h instead of trying for stdint.h
>>          (simplification) and remove the now unnecessary inclusion in
>>          pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
>>          Remove checks for it in autotools and CMake and document better the expected
>>          build failures for systems that might have stdint.h (C99) and not inttypes.h
>>          (from POSIX), like old Windows.
>>        * Cleanup: remove detection for inttypes.h which is a hard dependency
>>          CMake checks for standard headers are not meant to be used for hard
>>          dependencies, so will prevent a possible fallback to work.
>>          Alternatively, the header could be checked to make the configuration fail
>>          instead of breaking the build, but that was punted, as it was missing anyway
>>          from autotools.
>>     5. Merged patch from @carenas (GitHub #32):
>>        * jit: allow building with ancient MSVC versions
>>          Visual Studio older than 2013 fails to build with JIT enabled, because it is
>>          unable to parse non C89 compatible syntax, with mixed declarations and code.
>>          While most recent compilers wouldn't even report this as a warning since it
>>          is valid C99, it could be also made visible by adding to gcc/clang the
>>          -Wdeclaration-after-statement flag at build time.
>>          Move the code below the affected definitions.
>>        * pcre2grep: avoid mixing declarations with code
>>          Since d5a61ee8 (Patch to detect (and ignore) symlink loops in pcre2grep,
>>          2021-08-28), code will fail to build in a strict C89 compiler.
>>          Reformat slightly to make it C89 compatible again.
>>   Version 10.38 01-October-2021
>>     1. Fix invalid single character repetition issues in JIT when the repetition
>>        is inside a capturing bracket and the bracket is preceeded by character
>>        literals.
>>     2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
>>        This extends the CMake build system to build both static and shared libraries
>>        in one go, builds the static library with PIC, and exposes PCRE2 libraries
>>        using the CMake config files. JWB provided these notes:
>>        - Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
>>        - Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
>>          variable. Added PCRE2_STATIC variable to the static build using the
>>          target_compile_definitions() function.
>>        - Extended the CMake config files.
>>          - Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
>>            the static and shared libraries.
>>          - Added the PCRE_STATIC variable to the target compile definitions for the
>>            import of the static library.
>>        Building static and shared libraries using MSVC results in a name clash of
>>        the libraries. Both static and shared library builds create, for example, the
>>        file pcre2-8.lib. Therefore, I decided to change the static library names by
>>        adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
>>        [Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
>>     3. Increased the minimum release number for CMake to 3.0.0 because older than
>>        2.8.12 is deprecated (it was set to 2.8.5) and causes warnings. Even 3.0.0 is
>>        quite old; it was released in 2014.
>>     4. Implemented a modified version of Thomas Tempelmann's pcre2grep patch for
>>        detecting symlink loops. This is dependent on the availability of realpath(),
>>        which is now tested for in ./configure and CMakeLists.txt.
>>     5. Implemented a modified version of Thomas Tempelmann's patch for faster
>>        case-independent "first code unit" searches for unanchored patterns in 8-bit
>>        mode in the interpreters. Instead of just remembering whether one case matched
>>        or not, it remembers the position of a previous match so as to avoid
>>        unnecessary repeated searching.
>>     6. Perl now locks out \K in lookarounds, so PCRE2 now does the same by default.
>>        However, just in case anybody was relying on the old behaviour, there is an
>>        option called PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK that enables the old behaviour.
>>        An option has also been added to pcre2grep to enable this.
>>     7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
>>     8. There is a loop counter to catch excessively crazy patterns when checking
>>        the lengths of lookbehinds at compile time. This was incorrectly getting reset
>>        whenever a lookahead was processed, leading to some fuzzer-generated patterns
>>        taking a very long time to compile when (?|) was present in the pattern,
>>        because (?|) disables caching of group lengths.
>>
>> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
>> ---
>> config/rootfiles/common/pcre2 | 226 +++++++++++++++++-----------------
>> lfs/pcre2                     |   4 +-
>> 2 files changed, 115 insertions(+), 115 deletions(-)
>>
>> diff --git a/config/rootfiles/common/pcre2 b/config/rootfiles/common/pcre2
>> index e5b02d1f7..9d3e33496 100644
>> --- a/config/rootfiles/common/pcre2
>> +++ b/config/rootfiles/common/pcre2
>> @@ -6,132 +6,132 @@
>> #usr/lib/libpcre2-16.la
>> #usr/lib/libpcre2-16.so
>> usr/lib/libpcre2-16.so.0
>> -usr/lib/libpcre2-16.so.0.10.2
>> +usr/lib/libpcre2-16.so.0.10.4
>> #usr/lib/libpcre2-32.la
>> #usr/lib/libpcre2-32.so
>> usr/lib/libpcre2-32.so.0
>> -usr/lib/libpcre2-32.so.0.10.2
>> +usr/lib/libpcre2-32.so.0.10.4
>> #usr/lib/libpcre2-8.la
>> #usr/lib/libpcre2-8.so
>> usr/lib/libpcre2-8.so.0
>> -usr/lib/libpcre2-8.so.0.10.2
>> +usr/lib/libpcre2-8.so.0.10.4
>> #usr/lib/libpcre2-posix.la
>> #usr/lib/libpcre2-posix.so
>> usr/lib/libpcre2-posix.so.3
>> -usr/lib/libpcre2-posix.so.3.0.0
>> +usr/lib/libpcre2-posix.so.3.0.1
>> #usr/lib/pkgconfig/libpcre2-16.pc
>> #usr/lib/pkgconfig/libpcre2-32.pc
>> #usr/lib/pkgconfig/libpcre2-8.pc
>> #usr/lib/pkgconfig/libpcre2-posix.pc
>> -#usr/share/doc/pcre-pcre2-10.37
>> -#usr/share/doc/pcre-pcre2-10.37/AUTHORS
>> -#usr/share/doc/pcre-pcre2-10.37/COPYING
>> -#usr/share/doc/pcre-pcre2-10.37/ChangeLog
>> -#usr/share/doc/pcre-pcre2-10.37/LICENCE
>> -#usr/share/doc/pcre-pcre2-10.37/NEWS
>> -#usr/share/doc/pcre-pcre2-10.37/README
>> -#usr/share/doc/pcre-pcre2-10.37/html
>> -#usr/share/doc/pcre-pcre2-10.37/html/NON-AUTOTOOLS-BUILD.txt
>> -#usr/share/doc/pcre-pcre2-10.37/html/README.txt
>> -#usr/share/doc/pcre-pcre2-10.37/html/index.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2-config.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_callout_enumerate.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy_with_tables.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_copy.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_config.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_copy.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_converted_pattern_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_dfa_match.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_copy.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_error_message.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_mark.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_match_data_size.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_count.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_pointer.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_startchar.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_compile.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_free_unused_memory.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_match.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_assign.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_copy.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create_from_pattern.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_convert.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_info.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_decode.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_encode.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_get_number_of_codes.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_bsr.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_callout.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_character_tables.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_extra_options.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_recursion_guard.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_depth_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_escape.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_separator.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_heap_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_match_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_max_pattern_length.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_newline.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_offset_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_parens_nest_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_limit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_memory_management.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_substitute_callout.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substitute.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_byname.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_bynumber.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_byname.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_bynumber.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_byname.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_bynumber.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_free.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_get.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_nametable_scan.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_number_from_name.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2api.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2build.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2callout.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2compat.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2convert.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2demo.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2grep.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2jit.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2limits.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2matching.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2partial.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2pattern.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2perform.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2posix.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2sample.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2serialize.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2syntax.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2test.html
>> -#usr/share/doc/pcre-pcre2-10.37/html/pcre2unicode.html
>> -#usr/share/doc/pcre-pcre2-10.37/pcre2-config.txt
>> -#usr/share/doc/pcre-pcre2-10.37/pcre2.txt
>> -#usr/share/doc/pcre-pcre2-10.37/pcre2grep.txt
>> -#usr/share/doc/pcre-pcre2-10.37/pcre2test.txt
>> +#usr/share/doc/pcre-pcre2-10.39
>> +#usr/share/doc/pcre-pcre2-10.39/AUTHORS
>> +#usr/share/doc/pcre-pcre2-10.39/COPYING
>> +#usr/share/doc/pcre-pcre2-10.39/ChangeLog
>> +#usr/share/doc/pcre-pcre2-10.39/LICENCE
>> +#usr/share/doc/pcre-pcre2-10.39/NEWS
>> +#usr/share/doc/pcre-pcre2-10.39/README
>> +#usr/share/doc/pcre-pcre2-10.39/html
>> +#usr/share/doc/pcre-pcre2-10.39/html/NON-AUTOTOOLS-BUILD.txt
>> +#usr/share/doc/pcre-pcre2-10.39/html/README.txt
>> +#usr/share/doc/pcre-pcre2-10.39/html/index.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2-config.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_callout_enumerate.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy_with_tables.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_copy.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_config.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_copy.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_converted_pattern_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_dfa_match.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_copy.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_error_message.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_mark.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_match_data_size.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_count.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_pointer.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_startchar.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_compile.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_free_unused_memory.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_match.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_assign.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_copy.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create_from_pattern.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_convert.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_info.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_decode.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_encode.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_get_number_of_codes.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_bsr.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_callout.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_character_tables.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_extra_options.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_recursion_guard.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_depth_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_escape.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_separator.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_heap_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_match_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_max_pattern_length.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_newline.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_offset_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_parens_nest_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_limit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_memory_management.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_substitute_callout.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substitute.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_byname.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_bynumber.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_byname.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_bynumber.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_byname.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_bynumber.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_free.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_get.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_nametable_scan.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_number_from_name.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2api.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2build.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2callout.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2compat.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2convert.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2demo.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2grep.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2jit.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2limits.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2matching.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2partial.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2pattern.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2perform.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2posix.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2sample.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2serialize.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2syntax.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2test.html
>> +#usr/share/doc/pcre-pcre2-10.39/html/pcre2unicode.html
>> +#usr/share/doc/pcre-pcre2-10.39/pcre2-config.txt
>> +#usr/share/doc/pcre-pcre2-10.39/pcre2.txt
>> +#usr/share/doc/pcre-pcre2-10.39/pcre2grep.txt
>> +#usr/share/doc/pcre-pcre2-10.39/pcre2test.txt
>> #usr/share/man/man1/pcre2-config.1
>> #usr/share/man/man1/pcre2grep.1
>> #usr/share/man/man1/pcre2test.1
>> diff --git a/lfs/pcre2 b/lfs/pcre2
>> index fd9548a73..00bea9203 100644
>> --- a/lfs/pcre2
>> +++ b/lfs/pcre2
>> @@ -24,7 +24,7 @@
>>
>> include Config
>>
>> -VER        = 10.37
>> +VER        = 10.39
>>
>> THISAPP    = pcre2-$(VER)
>> DL_FILE    = $(THISAPP).tar.gz
>> @@ -54,7 +54,7 @@ objects = $(DL_FILE)
>>
>> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>>
>> -$(DL_FILE)_MD5 = a0b59d89828f62d2e1caac04f7c51e0b
>> +$(DL_FILE)_MD5 = 7389e3524de2cda3d21fde8c224febf1
>>
>> install : $(TARGET)
>>
>> -- 
>> 2.34.0
>>
>

Patch

diff --git a/config/rootfiles/common/pcre2 b/config/rootfiles/common/pcre2
index e5b02d1f7..9d3e33496 100644
--- a/config/rootfiles/common/pcre2
+++ b/config/rootfiles/common/pcre2
@@ -6,132 +6,132 @@ 
 #usr/lib/libpcre2-16.la
 #usr/lib/libpcre2-16.so
 usr/lib/libpcre2-16.so.0
-usr/lib/libpcre2-16.so.0.10.2
+usr/lib/libpcre2-16.so.0.10.4
 #usr/lib/libpcre2-32.la
 #usr/lib/libpcre2-32.so
 usr/lib/libpcre2-32.so.0
-usr/lib/libpcre2-32.so.0.10.2
+usr/lib/libpcre2-32.so.0.10.4
 #usr/lib/libpcre2-8.la
 #usr/lib/libpcre2-8.so
 usr/lib/libpcre2-8.so.0
-usr/lib/libpcre2-8.so.0.10.2
+usr/lib/libpcre2-8.so.0.10.4
 #usr/lib/libpcre2-posix.la
 #usr/lib/libpcre2-posix.so
 usr/lib/libpcre2-posix.so.3
-usr/lib/libpcre2-posix.so.3.0.0
+usr/lib/libpcre2-posix.so.3.0.1
 #usr/lib/pkgconfig/libpcre2-16.pc
 #usr/lib/pkgconfig/libpcre2-32.pc
 #usr/lib/pkgconfig/libpcre2-8.pc
 #usr/lib/pkgconfig/libpcre2-posix.pc
-#usr/share/doc/pcre-pcre2-10.37
-#usr/share/doc/pcre-pcre2-10.37/AUTHORS
-#usr/share/doc/pcre-pcre2-10.37/COPYING
-#usr/share/doc/pcre-pcre2-10.37/ChangeLog
-#usr/share/doc/pcre-pcre2-10.37/LICENCE
-#usr/share/doc/pcre-pcre2-10.37/NEWS
-#usr/share/doc/pcre-pcre2-10.37/README
-#usr/share/doc/pcre-pcre2-10.37/html
-#usr/share/doc/pcre-pcre2-10.37/html/NON-AUTOTOOLS-BUILD.txt
-#usr/share/doc/pcre-pcre2-10.37/html/README.txt
-#usr/share/doc/pcre-pcre2-10.37/html/index.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2-config.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_callout_enumerate.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy_with_tables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_config.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_converted_pattern_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_dfa_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_error_message.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_mark.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_match_data_size.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_count.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_pointer.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_startchar.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_compile.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_free_unused_memory.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_assign.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_copy.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create_from_pattern.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_convert.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_info.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_decode.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_encode.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_get_number_of_codes.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_bsr.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_character_tables.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_extra_options.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_recursion_guard.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_depth_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_escape.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_separator.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_heap_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_match_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_max_pattern_length.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_newline.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_offset_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_parens_nest_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_limit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_memory_management.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_substitute_callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substitute.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_byname.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_bynumber.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_free.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_get.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_nametable_scan.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_number_from_name.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2api.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2build.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2callout.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2compat.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2convert.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2demo.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2grep.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2jit.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2limits.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2matching.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2partial.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2pattern.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2perform.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2posix.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2sample.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2serialize.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2syntax.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2test.html
-#usr/share/doc/pcre-pcre2-10.37/html/pcre2unicode.html
-#usr/share/doc/pcre-pcre2-10.37/pcre2-config.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2grep.txt
-#usr/share/doc/pcre-pcre2-10.37/pcre2test.txt
+#usr/share/doc/pcre-pcre2-10.39
+#usr/share/doc/pcre-pcre2-10.39/AUTHORS
+#usr/share/doc/pcre-pcre2-10.39/COPYING
+#usr/share/doc/pcre-pcre2-10.39/ChangeLog
+#usr/share/doc/pcre-pcre2-10.39/LICENCE
+#usr/share/doc/pcre-pcre2-10.39/NEWS
+#usr/share/doc/pcre-pcre2-10.39/README
+#usr/share/doc/pcre-pcre2-10.39/html
+#usr/share/doc/pcre-pcre2-10.39/html/NON-AUTOTOOLS-BUILD.txt
+#usr/share/doc/pcre-pcre2-10.39/html/README.txt
+#usr/share/doc/pcre-pcre2-10.39/html/index.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2-config.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_callout_enumerate.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_copy_with_tables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_code_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_compile_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_config.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_convert_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_converted_pattern_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_dfa_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_general_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_error_message.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_mark.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_match_data_size.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_count.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_ovector_pointer.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_get_startchar.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_compile.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_free_unused_memory.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_assign.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_jit_stack_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_maketables_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_copy.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_context_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_create_from_pattern.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_match_data_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_convert.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_pattern_info.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_decode.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_encode.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_serialize_get_number_of_codes.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_bsr.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_character_tables.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_extra_options.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_compile_recursion_guard.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_depth_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_escape.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_glob_separator.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_heap_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_match_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_max_pattern_length.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_newline.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_offset_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_parens_nest_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_limit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_recursion_memory_management.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_set_substitute_callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substitute.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_copy_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_get_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_byname.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_length_bynumber.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_free.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_list_get.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_nametable_scan.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2_substring_number_from_name.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2api.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2build.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2callout.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2compat.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2convert.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2demo.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2grep.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2jit.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2limits.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2matching.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2partial.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2pattern.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2perform.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2posix.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2sample.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2serialize.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2syntax.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2test.html
+#usr/share/doc/pcre-pcre2-10.39/html/pcre2unicode.html
+#usr/share/doc/pcre-pcre2-10.39/pcre2-config.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2grep.txt
+#usr/share/doc/pcre-pcre2-10.39/pcre2test.txt
 #usr/share/man/man1/pcre2-config.1
 #usr/share/man/man1/pcre2grep.1
 #usr/share/man/man1/pcre2test.1
diff --git a/lfs/pcre2 b/lfs/pcre2
index fd9548a73..00bea9203 100644
--- a/lfs/pcre2
+++ b/lfs/pcre2
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 10.37
+VER        = 10.39
 
 THISAPP    = pcre2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -54,7 +54,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a0b59d89828f62d2e1caac04f7c51e0b
+$(DL_FILE)_MD5 = 7389e3524de2cda3d21fde8c224febf1
 
 install : $(TARGET)