Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package re-flex for openSUSE:Factory checked in at 2026-08-28 19:47:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/re-flex (Old) and /work/SRC/openSUSE:Factory/.re-flex.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "re-flex" Fri Aug 28 19:47:23 2026 rev:8 rq:1374117 version:6.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/re-flex/re-flex.changes 2026-06-18 19:40:55.527935259 +0200 +++ /work/SRC/openSUSE:Factory/.re-flex.new.1265/re-flex.changes 2026-08-28 19:48:04.646434250 +0200 @@ -1,0 +2,28 @@ +Thu Aug 27 18:26:39 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 6.4.0: + * improve DFA growth control: the edge count and the accumulated + positions are now capped alongside the state count, and the state + cap itself is tightened to a third of the previous limit, so + pathological patterns fail with exceeds_limits instead of growing + unbounded + * AbstractMatcher::set_end() defaults its argument to true + * CMake build overhaul: install reflex.pc and reflexmin.pc plus a + package version file, make the installed CMake and pkg-config + files relocatable, and register the rtest regression test +- Rename libreflex6 to libreflex6_4: reflex::Pattern grew by 16 bytes, + which breaks every generated scanner that embeds one by value, and + upstream promises no ABI stability between releases, so the + soversion now tracks major.minor +- Package the minimal runtime library as libreflexmin6_4 with its + pkgconfig file; upstream's CMake build now builds it alongside + libreflex +- Run the upstream rtest regression suite in %check +- Drop the x86-64-v3 build constraint (boo#1246164): 6.4.0 probes SIMD + support by compiling instead of running and applies the AVX2 and + AVX512BW flags only to the sources that need them, so the build no + longer depends on the builder's CPU and the baseline stays SSE2 +- Rebase reflex-shared-soversion.patch: derive the soversion from the + project version, drop the added static ReflexMinLibStatic target + +------------------------------------------------------------------- Old: ---- re-flex-6.3.0.obscpio New: ---- re-flex-6.4.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ re-flex.spec ++++++ --- /var/tmp/diff_new_pack.9Cr85L/_old 2026-08-28 19:48:06.247490213 +0200 +++ /var/tmp/diff_new_pack.9Cr85L/_new 2026-08-28 19:48:06.251490353 +0200 @@ -26,24 +26,23 @@ # published by the Open Source Initiative. -%define sover 6 +# upstream promises no ABI stability between releases (its CMake package +# version file is ExactVersion), so the soversion tracks major.minor +%define soversion 6.4 +%define sover 6_4 Name: re-flex -Version: 6.3.0 +Version: 6.4.0 Release: 0 Summary: C++ regex library and lexical analyzer generator with Unicode support License: BSD-3-Clause URL: https://www.genivia.com/doc/reflex/html/ Source: %{name}-%{version}.tar.xz -# build the shared library (libreflex.so) the upstream CMake build supports and -# give it a soversion; the autotools build only produced static archives +# ship only the shared libreflex/libreflexmin and give them a soversion; +# upstream's CMake build sets none and also installs the static archives Patch0: reflex-shared-soversion.patch BuildRequires: c++_compiler BuildRequires: cmake BuildRequires: pkgconfig -# make sure SIMD optimizations are used and package build reprodicbly -%ifarch x86_64 -#!BuildConstraint: hardware:cpu:flag x86-64-v3 -%endif %description A high-performance C++ regex library and lexical analyzer generator with @@ -57,18 +56,26 @@ %description -n libreflex%{sover} The RE-flex regex matching/lexing runtime library (shared object). +%package -n libreflexmin%{sover} +Summary: Minimal C++ regex library of RE-flex + +%description -n libreflexmin%{sover} +The minimal RE-flex runtime library (shared object): the matcher engine +without the pattern converter, POSIX support and Unicode tables, for linking +generated scanners that do not need them. + %package devel Summary: Development files for %{name} Requires: %{name} = %{version} Requires: libreflex%{sover} = %{version} +Requires: libreflexmin%{sover} = %{version} %description devel -Unicode support. Extends Flex++ with Unicode support, indent/dedent anchors, -lazy quantifiers, functions for lex and syntax error reporting and more. -Seamlessly integrates with Bison and other parsers. +RE-flex is a high-performance C++ regex library and lexical analyzer generator +with Unicode support. This package contains files required for building with re-flex (headers, the -shared-library symlink and the CMake package config). +shared-library symlinks, the pkg-config files and the CMake package config). %prep %autosetup -p1 @@ -82,8 +89,13 @@ # the CMake build does not install the manpage; ship it like the autotools build did install -D -m 0644 doc/man/reflex.1 %{buildroot}%{_mandir}/man1/reflex.1 +%check +%ctest + %ldconfig_scriptlets -n libreflex%{sover} +%ldconfig_scriptlets -n libreflexmin%{sover} + %files %license LICENSE.txt %{_bindir}/reflex @@ -91,11 +103,18 @@ %files -n libreflex%{sover} %license LICENSE.txt -%{_libdir}/libreflex.so.%{sover}* +%{_libdir}/libreflex.so.%{soversion}* + +%files -n libreflexmin%{sover} +%license LICENSE.txt +%{_libdir}/libreflexmin.so.%{soversion}* %files devel %license LICENSE.txt %{_includedir}/reflex %{_libdir}/libreflex.so +%{_libdir}/libreflexmin.so %{_libdir}/cmake/reflex/ +%{_libdir}/pkgconfig/reflex.pc +%{_libdir}/pkgconfig/reflexmin.pc ++++++ _service ++++++ --- /var/tmp/diff_new_pack.9Cr85L/_old 2026-08-28 19:48:06.335493289 +0200 +++ /var/tmp/diff_new_pack.9Cr85L/_new 2026-08-28 19:48:06.343493568 +0200 @@ -2,7 +2,7 @@ <service mode="manual" name="obs_scm"> <param name="url">https://github.com/Genivia/RE-flex.git</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">refs/tags/v6.3.0</param> + <param name="revision">refs/tags/v6.4.0</param> <param name="scm">git</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.9Cr85L/_old 2026-08-28 19:48:06.404495701 +0200 +++ /var/tmp/diff_new_pack.9Cr85L/_new 2026-08-28 19:48:06.411495945 +0200 @@ -1,7 +1,7 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/Genivia/RE-flex.git</param> - <param name="changesrevision">eb6d382593753e4f0ab4e557d2d8c6f193a47878</param> + <param name="changesrevision">eb876d17f1518ef434aae4088ef2640887e70163</param> </service> </servicedata> (No newline at EOF) ++++++ re-flex-6.3.0.obscpio -> re-flex-6.4.0.obscpio ++++++ ++++ 7338 lines of diff (skipped) ++++++ re-flex.obsinfo ++++++ --- /var/tmp/diff_new_pack.9Cr85L/_old 2026-08-28 19:48:08.241559913 +0200 +++ /var/tmp/diff_new_pack.9Cr85L/_new 2026-08-28 19:48:08.251560263 +0200 @@ -1,5 +1,5 @@ name: re-flex -version: 6.3.0 -mtime: 1779024732 -commit: eb6d382593753e4f0ab4e557d2d8c6f193a47878 +version: 6.4.0 +mtime: 1787811856 +commit: eb876d17f1518ef434aae4088ef2640887e70163 ++++++ reflex-shared-soversion.patch ++++++ --- /var/tmp/diff_new_pack.9Cr85L/_old 2026-08-28 19:48:08.290561626 +0200 +++ /var/tmp/diff_new_pack.9Cr85L/_new 2026-08-28 19:48:08.302562045 +0200 @@ -1,39 +1,46 @@ ---- a/CMakeLists.txt 2026-06-18 09:31:51.045948139 +0200 -+++ b/CMakeLists.txt 2026-06-18 09:34:13.737942345 +0200 -@@ -56,24 +56,14 @@ - target_compile_definitions(ReflexLib PRIVATE ${simd_definitions}) - target_compile_options(ReflexLib PRIVATE ${simd_flags}) +Build only the shared libreflex/libreflexmin (distributions do not ship the +static archives) and give them a SONAME -- upstream's CMake build sets none, so +the .so has no versioned name at all. Upstream declares no ABI stability +between releases (its CMake package version file is ExactVersion, and e.g. +reflex::Pattern changed size in 6.4.0), so the SONAME tracks major.minor. + +Index: CMakeLists.txt +=================================================================== +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -75,11 +75,9 @@ + set(reflexmin_library_targets ReflexMinLib) + else() + add_library(ReflexLib SHARED) +- add_library(ReflexLibStatic STATIC) + add_library(ReflexMinLib SHARED) +- add_library(ReflexMinLibStatic STATIC) +- set(reflex_library_targets ReflexLib ReflexLibStatic) +- set(reflexmin_library_targets ReflexMinLib ReflexMinLibStatic) ++ set(reflex_library_targets ReflexLib) ++ set(reflexmin_library_targets ReflexMinLib) + endif() --add_library(ReflexLibStatic STATIC "") --target_sources(ReflexLibStatic PRIVATE ${lib_sources}) --target_include_directories(ReflexLibStatic PUBLIC -- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> -- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> --) --target_compile_definitions(ReflexLibStatic PRIVATE ${simd_definitions}) --target_compile_options(ReflexLibStatic PRIVATE ${simd_flags}) -- - add_executable(Reflex "") - target_sources(Reflex PRIVATE ${bin_sources}) --target_link_libraries(Reflex PRIVATE ReflexLibStatic) -+target_link_libraries(Reflex PRIVATE ReflexLib) - target_compile_definitions(Reflex PRIVATE ${simd_definitions}) - target_compile_options(Reflex PRIVATE ${simd_flags}) + # Set the source files contained in each full-library target. +@@ -142,6 +140,20 @@ + set_target_properties(${target} PROPERTIES OUTPUT_NAME reflexmin) + endforeach() - # Don't user target name as filename instead use lowercase name for backwards compatibility --set_target_properties(ReflexLibStatic PROPERTIES OUTPUT_NAME reflex_static_lib) --set_target_properties(ReflexLib PROPERTIES OUTPUT_NAME reflex_shared_lib) -+set_target_properties(ReflexLib PROPERTIES OUTPUT_NAME reflex VERSION 6.3.0 SOVERSION 6) ++# Shared libraries need a SONAME so that consumers link against a stable ABI ++# name and distributions can package the runtime separately from the headers. ++# This project promises no ABI stability between releases (see the ExactVersion ++# package version file below), so the SONAME tracks major.minor. ++foreach(target IN LISTS reflex_all_library_targets) ++ get_target_property(reflex_target_type ${target} TYPE) ++ if(reflex_target_type STREQUAL "SHARED_LIBRARY") ++ set_target_properties(${target} PROPERTIES ++ VERSION ${PROJECT_VERSION} ++ SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ++ ) ++ endif() ++endforeach() ++ set_target_properties(Reflex PROPERTIES OUTPUT_NAME reflex) - # -@@ -82,7 +72,7 @@ - - include(GNUInstallDirs) - --install(TARGETS Reflex ReflexLib ReflexLibStatic -+install(TARGETS Reflex ReflexLib - EXPORT ReflexTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + # Install the generator and public libraries, and record the library targets for
