5 Commits

10 changed files with 258 additions and 273 deletions

View File

@@ -1,147 +0,0 @@
From 1cd2509ed74ae47965006d16de3c09db029b4efe Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Date: Mon, 4 Jan 2021 23:45:13 +0100
Subject: [PATCH] Fix various cmake issues: "CMAKE_INSTALL_FULL_LIBDIR" not
being correctly evaluated and used pkgconfig directory wrongly set to include
instead of lib cmake directory wrongly set to include instead of lib
core_libname contrib_libname PACKAGE_CMAKE_INSTALL_INCLUDEDIR
PACKAGE_CMAKE_INSTALL_LIBDIR variables not being substituted to cmake.in
files cmake helpers not being correctly set
---
CMakeLists.txt | 2 +-
src/config/CMakeLists.txt | 12 ++++++------
src/config/contrib/CMakeLists.txt | 7 ++++---
.../contrib/liblucene++-contribConfig.cmake.in | 6 +++---
src/config/core/CMakeLists.txt | 7 ++++---
src/config/core/liblucene++Config.cmake.in | 6 +++---
6 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 41de688b..71dbbd56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,7 +21,7 @@ if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
endif()
set(LIB_DESTINATION
- "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE STRING "Define lib output directory name")
+ "${CMAKE_INSTALL_LIBDIR}" CACHE STRING "Define lib output directory name")
####################################
diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt
index e5e66240..fe8e8b89 100644
--- a/src/config/CMakeLists.txt
+++ b/src/config/CMakeLists.txt
@@ -1,16 +1,16 @@
####################################
# Set config vars
####################################
-set(core_libname, "lucene++")
-set(contrib_libname, "lucene++-contrib")
+set(core_libname "lucene++")
+set(contrib_libname "lucene++-contrib")
set(
- PACKAGE_CMAKE_INSTALL_INCLUDEDIR,
- "${lucene++_INCLUDE_DIR}/lucene++/")
+ PACKAGE_CMAKE_INSTALL_INCLUDEDIR
+ "${CMAKE_INSTALL_INCLUDEDIR}/lucene++/")
set(
- PACKAGE_CMAKE_INSTALL_LIBDIR,
- "${LIB_INSTALL_DIR}/cmake")
+ PACKAGE_CMAKE_INSTALL_LIBDIR
+ "${LIB_DESTINATION}")
####################################
diff --git a/src/config/contrib/CMakeLists.txt b/src/config/contrib/CMakeLists.txt
index c0dd86fc..b4a4391c 100644
--- a/src/config/contrib/CMakeLists.txt
+++ b/src/config/contrib/CMakeLists.txt
@@ -9,7 +9,7 @@ if(NOT WIN32)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++-contrib.pc"
- DESTINATION "include/pkgconfig")
+ DESTINATION "${LIB_DESTINATION}/pkgconfig")
endif()
@@ -19,7 +19,8 @@ endif()
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/liblucene++-contribConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++-contribConfig.cmake"
- INSTALL_DESTINATION "${LIB_DESTINATION}/cmake")
+ INSTALL_DESTINATION "${LIB_DESTINATION}/cmake/liblucene++-contrib"
+ PATH_VARS contrib_libname PACKAGE_CMAKE_INSTALL_INCLUDEDIR PACKAGE_CMAKE_INSTALL_LIBDIR)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++-contribConfigVersion.cmake"
@@ -30,4 +31,4 @@ install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++-contribConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++-contribConfigVersion.cmake"
- DESTINATION "include/cmake")
+ DESTINATION "${LIB_DESTINATION}/cmake/liblucene++-contrib")
diff --git a/src/config/contrib/liblucene++-contribConfig.cmake.in b/src/config/contrib/liblucene++-contribConfig.cmake.in
index f92f6830..85fdfd2e 100644
--- a/src/config/contrib/liblucene++-contribConfig.cmake.in
+++ b/src/config/contrib/liblucene++-contribConfig.cmake.in
@@ -20,6 +20,6 @@ if (NOT DEFINED set_and_check)
endif()
-set_and_check(liblucene++-contrib_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/@contrib_libname@")
-set_and_check(liblucene++-contrib_LIBRARY_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
-set(liblucene++-contrib_LIBRARIES "@PACKAGE_CMAKE_INSTALL_LIBDIR@/@contrib_libname@")
+set_and_check(liblucene++-contrib_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+set_and_check(liblucene++-contrib_LIBRARY_DIRS "${PACKAGE_PREFIX_DIR}/@PACKAGE_CMAKE_INSTALL_LIBDIR@")
+set(liblucene++-contrib_LIBRARIES "@contrib_libname@")
diff --git a/src/config/core/CMakeLists.txt b/src/config/core/CMakeLists.txt
index a3eb17a1..65376f55 100644
--- a/src/config/core/CMakeLists.txt
+++ b/src/config/core/CMakeLists.txt
@@ -9,7 +9,7 @@ if(NOT WIN32)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++.pc"
- DESTINATION "include/pkgconfig")
+ DESTINATION "${LIB_DESTINATION}/pkgconfig")
endif()
@@ -19,7 +19,8 @@ endif()
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/liblucene++Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++Config.cmake"
- INSTALL_DESTINATION "${LIB_DESTINATION}/cmake")
+ INSTALL_DESTINATION "${LIB_DESTINATION}/cmake/liblucene++"
+ PATH_VARS core_libname PACKAGE_CMAKE_INSTALL_INCLUDEDIR PACKAGE_CMAKE_INSTALL_LIBDIR)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/liblucene++ConfigVersion.cmake
@@ -30,4 +31,4 @@ install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/liblucene++ConfigVersion.cmake"
- DESTINATION "include/cmake")
+ DESTINATION "${LIB_DESTINATION}/cmake/liblucene++")
diff --git a/src/config/core/liblucene++Config.cmake.in b/src/config/core/liblucene++Config.cmake.in
index 89b48a3d..574f8129 100644
--- a/src/config/core/liblucene++Config.cmake.in
+++ b/src/config/core/liblucene++Config.cmake.in
@@ -20,8 +20,8 @@ if (NOT DEFINED set_and_check)
endif()
-set_and_check(liblucene++_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/@core_libname@")
-set_and_check(liblucene++_LIBRARY_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
-set(liblucene++_LIBRARIES "@PACKAGE_CMAKE_INSTALL_LIBDIR@/@core_libname@")
+set_and_check(liblucene++_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+set_and_check(liblucene++_LIBRARY_DIRS "${PACKAGE_PREFIX_DIR}/@PACKAGE_CMAKE_INSTALL_LIBDIR@")
+set(liblucene++_LIBRARIES "@core_libname@")

View File

@@ -1,24 +0,0 @@
From 5c06dc53560668606b72fa0e673c9eb96948ff39 Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Date: Mon, 4 Jan 2021 15:47:21 +0100
Subject: [PATCH] CMakeLists.txt: fix typo preventing lucene++-contrib library
symlink from being created correctly
The SONAME/SOVERSION weren't evaluated and set correctly because of the wrong target name.
---
src/contrib/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/contrib/CMakeLists.txt b/src/contrib/CMakeLists.txt
index 46ed8a24..afeccb4e 100644
--- a/src/contrib/CMakeLists.txt
+++ b/src/contrib/CMakeLists.txt
@@ -77,7 +77,7 @@ endif()
####################################
target_compile_options(lucene++-contrib PRIVATE -DLPP_BUILDING_LIB)
-set_target_properties(lucene++
+set_target_properties(lucene++-contrib
PROPERTIES
COTIRE_CXX_PREFIX_HEADER_INIT "include/ContribInc.h"
CXX_VISIBILITY_PRESET hidden

View File

@@ -1,33 +0,0 @@
diff -Nur a/src/contrib/CMakeLists.txt b/src/contrib/CMakeLists.txt
--- a/src/contrib/CMakeLists.txt 2020-12-29 20:10:43.000000000 +0800
+++ b/src/contrib/CMakeLists.txt 2021-06-08 13:50:28.225527544 +0800
@@ -3,6 +3,8 @@
####################################
# create library target
####################################
+add_subdirectory(include)
+
if (LUCENE_BUILD_SHARED)
add_library(lucene++-contrib SHARED)
else()
@@ -94,4 +96,5 @@
install(
FILES ${contrib_headers}
DESTINATION "include/lucene++"
+ DESTINATION "src/contrib/include"
COMPONENT development-contrib)
diff -Nur a/src/contrib/include/CMakeLists.txt b/src/contrib/include/CMakeLists.txt
--- a/src/contrib/include/CMakeLists.txt 1970-01-01 08:00:00.000000000 +0800
+++ b/src/contrib/include/CMakeLists.txt 2020-12-29 20:10:43.000000000 +0800
@@ -0,0 +1,11 @@
+####################################
+# install headers
+####################################
+
+file(GLOB_RECURSE lucene_headers
+ "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
+)
+
+install(
+ FILES ${lucene_headers}
+ DESTINATION include/lucene++ )

View File

@@ -1,49 +0,0 @@
From 39cd44bd54e918d25ee464477992ad0dc234dcba Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Date: Mon, 4 Jan 2021 16:29:25 +0100
Subject: [PATCH] pkgconfig: use correct LIBDIR for destination library
---
src/config/contrib/liblucene++-contrib.pc.in | 4 ++--
src/config/core/liblucene++.pc.in | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/config/contrib/liblucene++-contrib.pc.in b/src/config/contrib/liblucene++-contrib.pc.in
index 21026e0a..64c3acac 100644
--- a/src/config/contrib/liblucene++-contrib.pc.in
+++ b/src/config/contrib/liblucene++-contrib.pc.in
@@ -1,13 +1,13 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}/bin
-libdir=@LIB_DESTINATION@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/include/lucene++
lib=lucene++-contrib
Name: liblucene++-contrib
Description: Contributions for Lucene++ - a C++ search engine, ported from the popular Apache Lucene
Version: @lucene++_VERSION@
-Libs: -L@LIB_DESTINATION@ -l${lib}
+Libs: -L${libdir} -l${lib}
Cflags: -I${includedir}
Requires: liblucene++ = @lucene++_VERSION@
diff --git a/src/config/core/liblucene++.pc.in b/src/config/core/liblucene++.pc.in
index 32d16ad7..690f7d24 100644
--- a/src/config/core/liblucene++.pc.in
+++ b/src/config/core/liblucene++.pc.in
@@ -1,12 +1,12 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}/bin
-libdir=@LIB_DESTINATION@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/include/lucene++
lib=lucene++
Name: liblucene++
Description: Lucene++ - a C++ search engine, ported from the popular Apache Lucene
Version: @lucene++_VERSION@
-Libs: -L@LIB_DESTINATION@ -l${lib}
+Libs: -L${libdir} -l${lib}
Cflags: -I${includedir}

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af5cf59a93cf6dce86828e108e010359517c25ce487152af68520785d183813c
size 2456644

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,78 @@
From e6a376836e5c891577eae6369263152106b9bc02 Mon Sep 17 00:00:00 2001
From: Christian Heusel <christian@heusel.eu>
Date: Tue, 21 Jan 2025 01:01:58 +0100
Subject: [PATCH] Migrate to boost::asio::io_context
The code previously used the deprecated (and with bost 1.87.0 removed)
`boost::asio::io_service`, which used to be an alias to `io_context`.
The new version heavily changes the `io_context` API and therefore is no
the old interface was removed.
Fixes https://github.com/luceneplusplus/LucenePlusPlus/issues/208
Signed-off-by: Christian Heusel <christian@heusel.eu>
---
include/lucene++/ThreadPool.h | 10 ++++++----
src/core/util/ThreadPool.cpp | 9 +++++----
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/include/lucene++/ThreadPool.h b/include/lucene++/ThreadPool.h
index dc6446ff..175ac8ad 100644
--- a/include/lucene++/ThreadPool.h
+++ b/include/lucene++/ThreadPool.h
@@ -14,7 +14,9 @@
namespace Lucene {
-typedef boost::shared_ptr<boost::asio::io_service::work> workPtr;
+
+typedef boost::asio::io_context io_context_t;
+typedef boost::asio::executor_work_guard<io_context_t::executor_type> work_t;
/// A Future represents the result of an asynchronous computation. Methods are provided to check if the computation
/// is complete, to wait for its completion, and to retrieve the result of the computation. The result can only be
@@ -51,8 +53,8 @@ class ThreadPool : public LuceneObject {
LUCENE_CLASS(ThreadPool);
protected:
- boost::asio::io_service io_service;
- workPtr work;
+ io_context_t io_context;
+ work_t work;
boost::thread_group threadGroup;
static const int32_t THREADPOOL_SIZE;
@@ -64,7 +66,7 @@ class ThreadPool : public LuceneObject {
template <typename FUNC>
FuturePtr scheduleTask(FUNC func) {
FuturePtr future(newInstance<Future>());
- io_service.post(boost::bind(&ThreadPool::execute<FUNC>, this, func, future));
+ boost::asio::post(io_context, boost::bind(&ThreadPool::execute<FUNC>, this, func, future));
return future;
}
diff --git a/src/core/util/ThreadPool.cpp b/src/core/util/ThreadPool.cpp
index 8086d8b1..116f521c 100644
--- a/src/core/util/ThreadPool.cpp
+++ b/src/core/util/ThreadPool.cpp
@@ -14,15 +14,16 @@ Future::~Future() {
const int32_t ThreadPool::THREADPOOL_SIZE = 5;
-ThreadPool::ThreadPool() {
- work.reset(new boost::asio::io_service::work(io_service));
+ThreadPool::ThreadPool()
+ :
+ work(boost::asio::make_work_guard(io_context))
+{
for (int32_t i = 0; i < THREADPOOL_SIZE; ++i) {
- threadGroup.create_thread(boost::bind(&boost::asio::io_service::run, &io_service));
+ threadGroup.create_thread(boost::bind(&boost::asio::io_context::run, &io_context));
}
}
ThreadPool::~ThreadPool() {
- work.reset(); // stop all threads
threadGroup.join_all(); // wait for all competition
}

3
lucene++-3.0.9.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4e69e29d5d79a976498ef71eab70c9c88c7014708be4450a9fda7780fe93584e
size 2458287

View File

@@ -1,3 +1,28 @@
-------------------------------------------------------------------
Wed May 7 08:10:23 UTC 2025 - Simon Lees <sflees@suse.de>
- export CMAKE_POLICY_VERSION_MINIMUM="3.5" to ignore cmakes
minimum version warnings
-------------------------------------------------------------------
Tue Apr 8 20:39:19 UTC 2025 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 3.0.9:
* fix race conditions whe initializing static variables
* build system fixes
- add patch lucene++-3.0.9-fix-linking-DefaultSimilarity.patch
- Drop patches merged upstream:
* lucene++-3.0.8-fix-contrib-soname.patch
* lucene++-3.0.8-fix-pc-libdir.patch
* lucene++-3.0.8-fix-missing-headers.patch
* lucene++-3.0.8-fix-cmake-issues.patch
-------------------------------------------------------------------
Tue Mar 18 08:51:27 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Add lucene++-3.0.9-migrate-to-boost-asio-io_context.patch
* fix with boost 1.87
-------------------------------------------------------------------
Fri Apr 26 08:11:30 UTC 2024 - Ana Guerrero <ana.guerrero@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package lucene++
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,24 +17,19 @@
Name: lucene++
Version: 3.0.8
Version: 3.0.9
Release: 0
Summary: A high-performance, full-featured text search engine written in C++
License: Apache-2.0 OR LGPL-3.0-or-later
Group: Development/Libraries/C and C++
URL: https://github.com/luceneplusplus/LucenePlusPlus
Source: https://github.com/luceneplusplus/LucenePlusPlus/archive/rel_%{version}/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM lucene++-3.0.8-fix-contrib-soname.patch -- https://github.com/luceneplusplus/LucenePlusPlus/pull/161
Patch0: lucene++-3.0.8-fix-contrib-soname.patch
# PATCH-FIX-UPSTREAM lucene++-3.0.8-fix-pc-libdir.patch -- https://github.com/luceneplusplus/LucenePlusPlus/pull/162
Patch1: lucene++-3.0.8-fix-pc-libdir.patch
# PATCH-FIX-UPSTREAM lucene++-3.0.8-fix-cmake-issues.patch -- https://github.com/luceneplusplus/LucenePlusPlus/pull/163
Patch2: lucene++-3.0.8-fix-cmake-issues.patch
# PATCH-FIX-UPSTREAM lucene++-3.0.8-fix-missing-headers.patch -- hillwood@opensuse.org
# contrib headers should be installed
Patch3: lucene++-3.0.8-fix-missing-headers.patch
# PATCH-FIX-UPSTREAM lucene++-3.0.9-fix-cmake-issues.patch -- https://github.com/luceneplusplus/LucenePlusPlus/pull/203
Patch4: lucene++-3.0.9-fix-boost1.85.patch
# PATCH-FIX-UPSTREAM lucene++-3.0.9-migrate-to-boost-asio-io_context.patch -- https://github.com/luceneplusplus/LucenePlusPlus/pull/210
Patch5: lucene++-3.0.9-migrate-to-boost-asio-io_context.patch
# PATCH-FIX-UPSTREAM https://github.com/luceneplusplus/LucenePlusPlus/pull/200
Patch6: lucene++-3.0.9-fix-linking-DefaultSimilarity.patch
BuildRequires: cmake >= 3.5
BuildRequires: gcc-c++
BuildRequires: libboost_atomic-devel
@@ -69,6 +64,9 @@ Development files for lucene++, a high-performance, full-featured text search en
%autosetup -p1 -n LucenePlusPlus-rel_%{version}
%build
# Remove cmake4 error due to not setting
# min cmake version - sflees.de
export CMAKE_POLICY_VERSION_MINIMUM=3.5
%cmake -DINSTALL_GTEST=OFF
%make_build lucene++ lucene++-contrib
@@ -76,16 +74,24 @@ Development files for lucene++, a high-performance, full-featured text search en
%cmake_install
%check
# Exclude known failing test on ix86 (https://github.com/luceneplusplus/LucenePlusPlus/issues/98)
%ifarch %{ix86}
%define test_filter -Boolean2Test.testRandomQueries
# Disable test failing with "config out of range"
export skip_tests_filter=-$(echo \
SortTest.testEmptyFieldSort \
SortTest.testParallelMultiSort \
ParallelMultiSearcherTest.testEmptyIndex \
ParallelMultiSearcherTest.testFieldSelector \
ParallelMultiSearcherTest.testNormalization \
ParallelMultiSearcherTest.testCustomSimilarity \
ParallelMultiSearcherTest.testDocFreq \
%ifarch %{ix86} # Exclude known failing test on ix86 (https://github.com/luceneplusplus/LucenePlusPlus/issues/98)
Boolean2Test.testRandomQueries \
%endif
%{nil} | tr ' ' ':')
# Tweak path to allow lucene++-tester to find liblucene++ and libgtest
export LD_LIBRARY_PATH="$PWD/build/src/core:$PWD/build/src/contrib:$PWD/build/lib"
build/src/test/lucene++-tester %{?test_filter:--gtest_filter=%{test_filter}}
build/src/test/lucene++-tester --gtest_filter="${skip_tests_filter}"
%post -n liblucene++0 -p /sbin/ldconfig
%postun -n liblucene++0 -p /sbin/ldconfig
%ldconfig_scriptlets -n liblucene++0
%files -n liblucene++0
%{_libdir}/liblucene++.so.*