Compare commits
No commits in common. "c8s" and "c9" have entirely different histories.
1
.clucene.metadata
Normal file
1
.clucene.metadata
Normal file
@ -0,0 +1 @@
|
||||
1e7539eb92789f64dd47c2e7461334dd92865a0e SOURCES/clucene-core-2.3.3.4-e8e3d20.tar.xz
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1 @@
|
||||
SOURCES/clucene-core-2.3.3.4-e8e3d20.tar.xz
|
||||
/clucene-core-2.3.3.4-e8e3d20.tar.xz
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 44cc1d696b6528712d92d33660dd8017dcd0b3e2 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Wed, 31 Jul 2019 16:57:31 +0200
|
||||
Subject: [PATCH 1/2] Make sure to return value from non-void function
|
||||
|
||||
This had been commented out with 92145f058c88a9607341d8a20c3944a96ec00cf8
|
||||
"All remaining memory leaks int tests removed. Fixes made by Veit and Anthony
|
||||
Novatsis are incorporated" for no apparent reason---presumably by accident.
|
||||
|
||||
The effect (besides a -Wreturn-type warning) when building e.g. RelWithDebInfo
|
||||
(i.e., with optimizations) on Fedora 30 (with GCC 9.1) was that the implicit
|
||||
call to ~WhitespaceAnalyzer at the end of searchDocs was directly followed
|
||||
(lacking the code sequence corresponding to "return 0;") by some compiler-
|
||||
generated code to jump into some _Z10searchDocsPv.cold code (which is apparently
|
||||
meant as an optimization, to be called from certain cold conditions) which
|
||||
happened to also call ~WhitespaceAnalyzer. The net effect was that the
|
||||
|
||||
WhitespaceAnalyzer an;
|
||||
|
||||
object was deleted twice, causing a SIGSEGV.
|
||||
---
|
||||
src/test/search/TestIndexSearcher.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/test/search/TestIndexSearcher.cpp b/src/test/search/TestIndexSearcher.cpp
|
||||
index 5c410ff4..02c21aaf 100644
|
||||
--- a/src/test/search/TestIndexSearcher.cpp
|
||||
+++ b/src/test/search/TestIndexSearcher.cpp
|
||||
@@ -28,7 +28,7 @@ _LUCENE_THREAD_FUNC(searchDocs, _searcher) {
|
||||
_CLLDELETE(query);
|
||||
|
||||
CONDITION_WAIT(deleteMutex, deleteCondition);
|
||||
-// _LUCENE_THREAD_FUNC_RETURN(0);
|
||||
+ _LUCENE_THREAD_FUNC_RETURN(0);
|
||||
}
|
||||
|
||||
void testEndThreadException(CuTest *tc) {
|
||||
--
|
||||
2.21.0
|
||||
|
112
SOURCES/0002-Avoid-deadlock-in-TestIndexSearcher.patch
Normal file
112
SOURCES/0002-Avoid-deadlock-in-TestIndexSearcher.patch
Normal file
@ -0,0 +1,112 @@
|
||||
From bdc374bfbb0ca34ddb40713eb51d8535fdf11952 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Bergmann <sbergman@redhat.com>
|
||||
Date: Wed, 31 Jul 2019 16:27:33 +0200
|
||||
Subject: [PATCH 2/2] Avoid deadlock in TestIndexSearcher
|
||||
|
||||
---
|
||||
src/test/search/TestIndexSearcher.cpp | 51 +++++++++++++++++++++------
|
||||
1 file changed, 41 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/test/search/TestIndexSearcher.cpp b/src/test/search/TestIndexSearcher.cpp
|
||||
index 02c21aaf..a6dde5ba 100644
|
||||
--- a/src/test/search/TestIndexSearcher.cpp
|
||||
+++ b/src/test/search/TestIndexSearcher.cpp
|
||||
@@ -8,9 +8,11 @@
|
||||
|
||||
DEFINE_MUTEX(searchMutex);
|
||||
DEFINE_CONDITION(searchCondition);
|
||||
+bool searchReady;
|
||||
|
||||
DEFINE_MUTEX(deleteMutex);
|
||||
DEFINE_CONDITION(deleteCondition);
|
||||
+bool deleteReady;
|
||||
|
||||
_LUCENE_THREAD_FUNC(searchDocs, _searcher) {
|
||||
|
||||
@@ -19,15 +21,20 @@ _LUCENE_THREAD_FUNC(searchDocs, _searcher) {
|
||||
Query * query = QueryParser::parse(_T("one"), _T("content"), &an);
|
||||
Hits * hits = searcher->search(query);
|
||||
|
||||
-// _LUCENE_SLEEP(9999); //make sure that searchMutex is being waited on...
|
||||
+ {
|
||||
+ SCOPED_LOCK_MUTEX(searchMutex);
|
||||
+ searchReady = true;
|
||||
+ CONDITION_NOTIFYALL(searchCondition);
|
||||
+ }
|
||||
|
||||
- CONDITION_NOTIFYALL(searchCondition);
|
||||
SCOPED_LOCK_MUTEX(deleteMutex);
|
||||
|
||||
_CLLDELETE(hits);
|
||||
_CLLDELETE(query);
|
||||
|
||||
- CONDITION_WAIT(deleteMutex, deleteCondition);
|
||||
+ while (!deleteReady) {
|
||||
+ CONDITION_WAIT(deleteMutex, deleteCondition);
|
||||
+ }
|
||||
_LUCENE_THREAD_FUNC_RETURN(0);
|
||||
}
|
||||
|
||||
@@ -55,13 +62,24 @@ void testEndThreadException(CuTest *tc) {
|
||||
|
||||
// this sequence is OK: delete searcher after search thread finish
|
||||
{
|
||||
+ searchReady = false;
|
||||
+ deleteReady = false;
|
||||
+
|
||||
IndexSearcher * searcher = _CLNEW IndexSearcher(&ram);
|
||||
_LUCENE_THREADID_TYPE thread = _LUCENE_THREAD_CREATE(&searchDocs, searcher);
|
||||
- SCOPED_LOCK_MUTEX(searchMutex);
|
||||
|
||||
- CONDITION_WAIT(searchMutex, searchCondition);
|
||||
-// _LUCENE_SLEEP(9999); //make sure that deleteMutex is being waited on...
|
||||
- CONDITION_NOTIFYALL(deleteCondition);
|
||||
+ {
|
||||
+ SCOPED_LOCK_MUTEX(searchMutex);
|
||||
+ while (!searchReady) {
|
||||
+ CONDITION_WAIT(searchMutex, searchCondition);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
+ SCOPED_LOCK_MUTEX(deleteMutex);
|
||||
+ deleteReady = true;
|
||||
+ CONDITION_NOTIFYALL(deleteCondition);
|
||||
+ }
|
||||
|
||||
_LUCENE_THREAD_JOIN(thread);
|
||||
|
||||
@@ -71,14 +89,27 @@ void testEndThreadException(CuTest *tc) {
|
||||
|
||||
// this produces memory exception: delete searcher after search finish but before thread finish
|
||||
{
|
||||
+ searchReady = false;
|
||||
+ deleteReady = false;
|
||||
+
|
||||
IndexSearcher * searcher = _CLNEW IndexSearcher(&ram);
|
||||
_LUCENE_THREADID_TYPE thread = _LUCENE_THREAD_CREATE(&searchDocs, searcher);
|
||||
- SCOPED_LOCK_MUTEX(searchMutex);
|
||||
|
||||
- CONDITION_WAIT(searchMutex, searchCondition);
|
||||
+ {
|
||||
+ SCOPED_LOCK_MUTEX(searchMutex);
|
||||
+ while (!searchReady) {
|
||||
+ CONDITION_WAIT(searchMutex, searchCondition);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
searcher->close();
|
||||
_CLLDELETE(searcher);
|
||||
- CONDITION_NOTIFYALL(deleteCondition);
|
||||
+
|
||||
+ {
|
||||
+ SCOPED_LOCK_MUTEX(deleteMutex);
|
||||
+ deleteReady = true;
|
||||
+ CONDITION_NOTIFYALL(deleteCondition);
|
||||
+ }
|
||||
|
||||
_LUCENE_THREAD_JOIN(thread);
|
||||
}
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,14 +1,13 @@
|
||||
|
||||
%define git_long e8e3d20f20da5ee3e37d347207b01890829a5475
|
||||
%define git_short e8e3d20
|
||||
%define snap 20130812
|
||||
%global git_long e8e3d20f20da5ee3e37d347207b01890829a5475
|
||||
%global git_short e8e3d20
|
||||
%global snap 20130812
|
||||
|
||||
Summary: A C++ port of Lucene
|
||||
Name: clucene
|
||||
Version: 2.3.3.4
|
||||
Release: 31.%{snap}.%{git_short}git%{?dist}
|
||||
Release: 42.%{snap}.%{git_short}git%{?dist}
|
||||
License: LGPLv2+ or ASL 2.0
|
||||
Group: Development/System
|
||||
URL: http://www.sourceforge.net/projects/clucene
|
||||
%if 0%{?snap}
|
||||
# git archive e8e3d20f20da5ee3e37d347207b01890829a5475 --prefix=clucene-core-2.3.3.4/ | xz -9 > ../clucene-core-2.3.3.4-e8e3d20.tar.xz
|
||||
@ -20,8 +19,10 @@ Source0: http://downloads.sourceforge.net/clucene/clucene-core-%{version}.tar.gz
|
||||
|
||||
BuildRequires: boost-devel
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gawk
|
||||
BuildRequires: gawk
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: make
|
||||
|
||||
## upstreamable patches
|
||||
# include LUCENE_SYS_INCLUDES in pkgconfig --cflags output
|
||||
@ -38,6 +39,10 @@ Patch51: clucene-core-2.3.3.4-install_contribs_lib.patch
|
||||
Patch52: clucene-core-2.3.3.4-CLuceneConfig.patch
|
||||
# Fix tests for undefined usleep
|
||||
Patch53: clucene-core-2.3.3.4-usleep.patch
|
||||
# Upstream at <https://sourceforge.net/p/clucene/bugs/232/> "Patches for
|
||||
# TestIndexSearcher failures":
|
||||
Patch54: 0001-Make-sure-to-return-value-from-non-void-function.patch
|
||||
Patch55: 0002-Avoid-deadlock-in-TestIndexSearcher.patch
|
||||
|
||||
%description
|
||||
CLucene is a C++ port of the popular Apache Lucene search engine
|
||||
@ -48,7 +53,6 @@ date with Lucene 2.3.2. It contains most of the same functionality as the Java v
|
||||
|
||||
%package core
|
||||
Summary: Core clucene module
|
||||
Group: Development/System
|
||||
Provides: clucene = %{version}-%{release}
|
||||
#Requires: %{name} = %{version}-%{release}
|
||||
%description core
|
||||
@ -60,7 +64,6 @@ date with Lucene 2.3.2. It contains most of the same functionality as the Java v
|
||||
|
||||
%package core-devel
|
||||
Summary: Headers for developing programs that will use %{name}
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-contribs-lib%{?_isa} = %{version}-%{release}
|
||||
%description core-devel
|
||||
@ -69,7 +72,6 @@ developing with clucene
|
||||
|
||||
%package contribs-lib
|
||||
Summary: Language specific text analyzers for %{name}
|
||||
Group: Development/System
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
%description contribs-lib
|
||||
%{summary}.
|
||||
@ -82,26 +84,24 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
%patch51 -p1 -b .install_contribs_lib
|
||||
%patch52 -p1 -b .CLuceneConfig
|
||||
%patch53 -p1 -b .usleep
|
||||
%patch54 -p1 -b .return-value
|
||||
%patch55 -p1 -b .avoid-deadlock
|
||||
|
||||
# nuke bundled code
|
||||
rm -rfv src/ext/{boost/,zlib/}
|
||||
|
||||
|
||||
%build
|
||||
mkdir -p %{_target_platform}
|
||||
pushd %{_target_platform}
|
||||
%{cmake} \
|
||||
-DBUILD_CONTRIBS_LIB:BOOL=ON \
|
||||
-DLIB_DESTINATION:PATH=%{_libdir} \
|
||||
-DLUCENE_SYS_INCLUDES:PATH=%{_libdir} \
|
||||
..
|
||||
popd
|
||||
-DLUCENE_SYS_INCLUDES:PATH=%{_libdir}
|
||||
|
||||
make %{?_smp_mflags} -C %{_target_platform}
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
|
||||
%cmake_install
|
||||
|
||||
|
||||
%check
|
||||
@ -119,8 +119,8 @@ time make -C %{_target_platform} test ARGS="--timeout 300 --output-on-failure" |
|
||||
%ldconfig_scriptlets core
|
||||
|
||||
%files core
|
||||
%defattr(-, root, root, -)
|
||||
%doc APACHE.license AUTHORS ChangeLog COPYING LGPL.license README
|
||||
%doc AUTHORS ChangeLog README
|
||||
%license APACHE.license COPYING LGPL.license
|
||||
%{_libdir}/libclucene-core.so.1*
|
||||
%{_libdir}/libclucene-core.so.%{version}
|
||||
%{_libdir}/libclucene-shared.so.1*
|
||||
@ -129,12 +129,10 @@ time make -C %{_target_platform} test ARGS="--timeout 300 --output-on-failure" |
|
||||
%ldconfig_scriptlets contribs-lib
|
||||
|
||||
%files contribs-lib
|
||||
%defattr(-, root, root, -)
|
||||
%{_libdir}/libclucene-contribs-lib.so.1*
|
||||
%{_libdir}/libclucene-contribs-lib.so.%{version}
|
||||
|
||||
%files core-devel
|
||||
%defattr(-, root, root, -)
|
||||
%dir %{_libdir}/CLucene
|
||||
%{_includedir}/CLucene/
|
||||
%{_includedir}/CLucene.h
|
||||
@ -145,6 +143,43 @@ time make -C %{_target_platform} test ARGS="--timeout 300 --output-on-failure" |
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.3.4-42.20130812.e8e3d20git
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.3.4-41.20130812.e8e3d20git
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-40.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-39.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jul 21 2020 Rex Dieter <rdieter@fedoraproject.org> - 2.3.3.4-38.20130812.e8e3d20.git
|
||||
- pull in some upstream fixes (PR, previous commit)
|
||||
- use latest %%cmake macros
|
||||
- s/define/global/
|
||||
|
||||
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 2.3.3.4-37.20130812.e8e3d20git
|
||||
- Use make macros
|
||||
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-36.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-35.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-34.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-33.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Feb 20 2018 Rex Dieter <rdieter@fedoraproject.org> - 2.3.3.4-3220130812.e8e3d20git
|
||||
- BR: gcc-c++, .spec cleanup
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3.4-31.20130812.e8e3d20git
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
@ -1,6 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}
|
Loading…
Reference in New Issue
Block a user