[clucene09] Enable reference counting (LUCENE_ENABLE_REFCOUNT) for Qt Assistant (#1128293)
Kevin Kofler
kkofler at fedoraproject.org
Sat Oct 25 19:34:27 UTC 2014
commit 6b43729099280af2faf3184cd5d75344040f05b5
Author: Kevin Kofler <Kevin at tigcc.ticalc.org>
Date: Sat Oct 25 21:34:22 2014 +0200
Enable reference counting (LUCENE_ENABLE_REFCOUNT) for Qt Assistant (#1128293)
* Sat Oct 25 2014 Kevin Kofler <Kevin at tigcc.ticalc.org> 0.9.21b-11
- Enable reference counting (LUCENE_ENABLE_REFCOUNT) for Qt Assistant (#1128293)
- Bump soversion to 3.0.1, as apparently intended by upstream to begin with
- Better GCC 4.8 fix, works with refcount without adding throwspecs everywhere
clucene-core-0.9.21b-enable-refcount.patch | 13 +++
clucene-core-0.9.21b-fix-soversion.patch | 24 +++++
clucene-core-0.9.21b-gcc48.patch | 146 ++--------------------------
clucene09.spec | 19 +++-
4 files changed, 63 insertions(+), 139 deletions(-)
---
diff --git a/clucene-core-0.9.21b-enable-refcount.patch b/clucene-core-0.9.21b-enable-refcount.patch
new file mode 100644
index 0000000..eb8584e
--- /dev/null
+++ b/clucene-core-0.9.21b-enable-refcount.patch
@@ -0,0 +1,13 @@
+diff -ur clucene-core-0.9.21b/src/CLucene/CLConfig.h clucene-core-0.9.21b-enable-refcount/src/CLucene/CLConfig.h
+--- clucene-core-0.9.21b/src/CLucene/CLConfig.h 2008-10-23 19:44:37.000000000 +0200
++++ clucene-core-0.9.21b-enable-refcount/src/CLucene/CLConfig.h 2014-10-25 19:08:04.000000000 +0200
+@@ -147,7 +147,8 @@
+ //If reference counting is enabled, the wrapper can add a reference to any class
+ //and when _CLDECDELETE is called, the reference is decremented and only deleted
+ //if the refcount is zero.
+-//#define LUCENE_ENABLE_REFCOUNT
++//enabled because Qt Assistant requires this option
++#define LUCENE_ENABLE_REFCOUNT
+
+
+ ////////////////////////////////////////////////////////////////////
diff --git a/clucene-core-0.9.21b-fix-soversion.patch b/clucene-core-0.9.21b-fix-soversion.patch
new file mode 100644
index 0000000..b863208
--- /dev/null
+++ b/clucene-core-0.9.21b-fix-soversion.patch
@@ -0,0 +1,24 @@
+diff -ur clucene-core-0.9.21b/src/Makefile.am clucene-core-0.9.21b-fix-soversion/src/Makefile.am
+--- clucene-core-0.9.21b/src/Makefile.am 2008-10-23 19:44:37.000000000 +0200
++++ clucene-core-0.9.21b-fix-soversion/src/Makefile.am 2014-10-25 21:16:25.000000000 +0200
+@@ -3,7 +3,7 @@
+
+ include_HEADERS = CLucene.h
+ lib_LTLIBRARIES = libclucene.la
+-libclucene_la_LDFLAGS = --version-info $(CLLIB_VERSION) --release $(PACKAGE_VERSION)
++libclucene_la_LDFLAGS = -version-info $(CLLIB_VERSION)
+
+ lsrcdir = $(top_srcdir)/src/CLucene
+ EXTRA_DIST = $(lsrcdir)/CLMonolithic.cpp \
+diff -ur clucene-core-0.9.21b/src/Makefile.in clucene-core-0.9.21b-fix-soversion/src/Makefile.in
+--- clucene-core-0.9.21b/src/Makefile.in 2008-10-23 20:18:25.000000000 +0200
++++ clucene-core-0.9.21b-fix-soversion/src/Makefile.in 2014-10-25 21:16:33.000000000 +0200
+@@ -281,7 +281,7 @@
+ AUTOMAKE_OPTIONS = 1.6
+ include_HEADERS = CLucene.h
+ lib_LTLIBRARIES = libclucene.la
+-libclucene_la_LDFLAGS = --version-info $(CLLIB_VERSION) --release $(PACKAGE_VERSION)
++libclucene_la_LDFLAGS = -version-info $(CLLIB_VERSION)
+ lsrcdir = $(top_srcdir)/src/CLucene
+ EXTRA_DIST = $(lsrcdir)/CLMonolithic.cpp \
+ $(lsrcdir)/CMakeLists.txt \
diff --git a/clucene-core-0.9.21b-gcc48.patch b/clucene-core-0.9.21b-gcc48.patch
index 63e6737..d79bc64 100644
--- a/clucene-core-0.9.21b-gcc48.patch
+++ b/clucene-core-0.9.21b-gcc48.patch
@@ -1,144 +1,16 @@
-diff -up clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h.gcc48 clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h
---- clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h.gcc48 2008-10-23 12:44:35.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h 2013-08-27 13:17:35.754234297 -0500
-@@ -58,7 +58,7 @@ public:
+diff -ur clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h clucene-core-0.9.21b-gcc48/src/CLucene/debug/lucenebase.h
+--- clucene-core-0.9.21b/src/CLucene/debug/lucenebase.h 2008-10-23 19:44:35.000000000 +0200
++++ clucene-core-0.9.21b-gcc48/src/CLucene/debug/lucenebase.h 2014-10-25 20:54:09.000000000 +0200
+@@ -58,7 +58,11 @@
__cl_refcount--;
return __cl_refcount;
}
- virtual ~LuceneBase(){};
-+ virtual ~LuceneBase() throw(CLuceneError&) {};
++ virtual ~LuceneBase()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ {};
};
class LuceneVoidBase{
-diff -up clucene-core-0.9.21b/src/CLucene/index/CompoundFile.cpp.gcc48 clucene-core-0.9.21b/src/CLucene/index/CompoundFile.cpp
---- clucene-core-0.9.21b/src/CLucene/index/CompoundFile.cpp.gcc48 2013-08-27 13:17:35.754234297 -0500
-+++ clucene-core-0.9.21b/src/CLucene/index/CompoundFile.cpp 2013-08-27 13:18:02.844949386 -0500
-@@ -94,7 +94,7 @@ CompoundFileReader::CompoundFileReader(D
- )
- }
-
--CompoundFileReader::~CompoundFileReader(){
-+CompoundFileReader::~CompoundFileReader() throw(CLuceneError&) {
- close();
- }
-
-diff -up clucene-core-0.9.21b/src/CLucene/index/CompoundFile.h.gcc48 clucene-core-0.9.21b/src/CLucene/index/CompoundFile.h
---- clucene-core-0.9.21b/src/CLucene/index/CompoundFile.h.gcc48 2008-10-23 12:44:37.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/index/CompoundFile.h 2013-08-27 13:17:35.755234286 -0500
-@@ -95,7 +95,7 @@ protected:
-
- public:
- CompoundFileReader(CL_NS(store)::Directory* dir, char* name);
-- ~CompoundFileReader();
-+ ~CompoundFileReader() throw(CLuceneError&);
- CL_NS(store)::Directory* getDirectory();
- const char* getName() const;
-
-diff -up clucene-core-0.9.21b/src/CLucene/index/Term.cpp.gcc48 clucene-core-0.9.21b/src/CLucene/index/Term.cpp
---- clucene-core-0.9.21b/src/CLucene/index/Term.cpp.gcc48 2008-10-23 12:44:37.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/index/Term.cpp 2013-08-27 13:17:35.755234286 -0500
-@@ -81,7 +81,7 @@ Term::Term(const TCHAR* fld, const TCHAR
- set(fld,txt);
- }
-
--Term::~Term(){
-+Term::~Term() throw (CLuceneError&) {
- //Func - Destructor.
- //Pre - true
- //Post - The instance has been destroyed. field and text have been deleted if pre(intrn) is false
-diff -up clucene-core-0.9.21b/src/CLucene/index/Term.h.gcc48 clucene-core-0.9.21b/src/CLucene/index/Term.h
---- clucene-core-0.9.21b/src/CLucene/index/Term.h.gcc48 2008-10-23 12:44:37.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/index/Term.h 2013-08-27 13:17:35.755234286 -0500
-@@ -68,7 +68,7 @@ class Term:LUCENE_REFBASE {
- Term(const TCHAR* fld, const TCHAR* txt);
-
- ///Destructor.
-- ~Term();
-+ ~Term() throw(CLuceneError&);
-
- ///Returns the field of this term, an interned string. The field indicates
- ///the part of a document which this term came from.
-diff -up clucene-core-0.9.21b/src/CLucene/store/Directory.h.gcc48 clucene-core-0.9.21b/src/CLucene/store/Directory.h
---- clucene-core-0.9.21b/src/CLucene/store/Directory.h.gcc48 2008-10-23 12:44:36.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/Directory.h 2013-08-27 13:17:35.756234276 -0500
-@@ -41,7 +41,7 @@ CL_NS_DEF(store)
- public:
- DEFINE_MUTEX(THIS_LOCK)
-
-- virtual ~Directory(){ };
-+ virtual ~Directory() throw(CLuceneError&) { };
-
- // Returns an null terminated array of strings, one for each file in the directory.
- char** list() const{
-diff -up clucene-core-0.9.21b/src/CLucene/store/FSDirectory.cpp.gcc48 clucene-core-0.9.21b/src/CLucene/store/FSDirectory.cpp
---- clucene-core-0.9.21b/src/CLucene/store/FSDirectory.cpp.gcc48 2008-10-23 13:01:52.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/FSDirectory.cpp 2013-08-27 13:17:35.756234276 -0500
-@@ -368,7 +368,7 @@ void FSDirectory::FSIndexInput::readInte
- strcat(buffer,name);
- }
-
-- FSDirectory::~FSDirectory(){
-+ FSDirectory::~FSDirectory() throw(CLuceneError&) {
- }
-
- void FSDirectory::list(vector<string>* names) const{ //todo: fix this, ugly!!!
-diff -up clucene-core-0.9.21b/src/CLucene/store/FSDirectory.h.gcc48 clucene-core-0.9.21b/src/CLucene/store/FSDirectory.h
---- clucene-core-0.9.21b/src/CLucene/store/FSDirectory.h.gcc48 2008-10-23 13:00:43.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/FSDirectory.h 2013-08-27 13:17:35.756234276 -0500
-@@ -155,7 +155,7 @@
- ///Destructor - only call this if you are sure the directory
- ///is not being used anymore. Otherwise use the ref-counting
- ///facilities of _CLDECDELETE
-- ~FSDirectory();
-+ ~FSDirectory() throw(CLuceneError&);
-
- /// Get a list of strings, one for each file in the directory.
- void list(vector<string>* names) const;
-diff -up clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.cpp.gcc48 clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.cpp
---- clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.cpp.gcc48 2008-10-23 12:44:36.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.cpp 2013-08-27 13:17:35.757234265 -0500
-@@ -219,7 +219,7 @@ CL_NS_DEF(store)
- {
- }
-
-- RAMDirectory::~RAMDirectory(){
-+ RAMDirectory::~RAMDirectory() throw(CLuceneError&) {
- //todo: should call close directory?
- }
-
-diff -up clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.h.gcc48 clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.h
---- clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.h.gcc48 2008-10-23 12:44:36.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/RAMDirectory.h 2013-08-27 13:17:35.757234265 -0500
-@@ -131,7 +131,7 @@ CL_NS_DEF(store)
- ///Destructor - only call this if you are sure the directory
- ///is not being used anymore. Otherwise use the ref-counting
- ///facilities of dir->close
-- virtual ~RAMDirectory();
-+ virtual ~RAMDirectory() throw(CLuceneError&);
- RAMDirectory(Directory* dir);
-
- /**
-diff -up clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.cpp.gcc48 clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.cpp
---- clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.cpp.gcc48 2008-10-23 12:44:36.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.cpp 2013-08-27 13:17:35.757234265 -0500
-@@ -16,7 +16,7 @@ CL_NS_USE(util)
- {
- transOpen = false;
- }
-- TransactionalRAMDirectory::~TransactionalRAMDirectory(){
-+ TransactionalRAMDirectory::~TransactionalRAMDirectory() throw(CLuceneError&) {
- }
-
- bool TransactionalRAMDirectory::archiveOrigFileIfNecessary(const char* name) {
-diff -up clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.h.gcc48 clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.h
---- clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.h.gcc48 2008-10-23 12:44:36.000000000 -0500
-+++ clucene-core-0.9.21b/src/CLucene/store/TransactionalRAMDirectory.h 2013-08-27 13:17:35.757234265 -0500
-@@ -44,7 +44,7 @@ CL_NS_DEF(store)
-
- public:
- TransactionalRAMDirectory();
-- virtual ~TransactionalRAMDirectory();
-+ virtual ~TransactionalRAMDirectory() throw(CLuceneError&);
-
- bool transIsOpen() const;
- void transStart();
diff --git a/clucene09.spec b/clucene09.spec
index e88bc30..13e0e20 100644
--- a/clucene09.spec
+++ b/clucene09.spec
@@ -1,7 +1,7 @@
Summary: A C++ port of Lucene
Name: clucene09
Version: 0.9.21b
-Release: 10%{?dist}
+Release: 11%{?dist}
License: LGPLv2+ or ASL 2.0
Group: System Environment/Libraries
URL: http://www.sourceforge.net/projects/clucene/
@@ -11,6 +11,13 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# gcc-4.8/exceptions related fix, http://bugzilla.redhat.com/998477
Patch1: clucene-core-0.9.21b-gcc48.patch
+# enable reference counting (LUCENE_ENABLE_REFCOUNT) for Qt Assistant (#1128293)
+Patch2: clucene-core-0.9.21b-enable-refcount.patch
+
+# fix the soname version that ended up at 0.0.0
+# This bumps the soname, but that is actually wanted because of Patch2 above.
+Patch3: clucene-core-0.9.21b-fix-soversion.patch
+
%description
CLucene is a C++ port of Lucene. It is a high-performance, full-
featured text search engine written in C++. CLucene is faster than
@@ -50,6 +57,9 @@ to work with the newer version and the newer API.
%setup -q -n clucene-core-%{version}
%patch1 -p1 -b .gcc48
+%patch2 -p1 -b .enable-refcount
+%patch3 -p1 -b .fix-soversion
+touch src/Makefile.in
%build
%configure --disable-static
@@ -64,7 +74,7 @@ mkdir -p $RPM_BUILD_ROOT{%{_includedir},%{_libdir}}/%{name}/
mv -f $RPM_BUILD_ROOT%{_includedir}/{CLucene,CLucene.h,%{name}}
mv -f $RPM_BUILD_ROOT%{_libdir}/{CLucene,%{name}}
rm -f $RPM_BUILD_ROOT%{_libdir}/libclucene.so
-ln -sf ../libclucene.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/%{name}/libclucene.so
+ln -sf ../libclucene.so.* $RPM_BUILD_ROOT%{_libdir}/%{name}/libclucene.so
# Don't install any libtool .la files
rm -rf $RPM_BUILD_ROOT%{_libdir}/*.la
@@ -104,6 +114,11 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/%{name}/
%changelog
+* Sat Oct 25 2014 Kevin Kofler <Kevin at tigcc.ticalc.org> 0.9.21b-11
+- Enable reference counting (LUCENE_ENABLE_REFCOUNT) for Qt Assistant (#1128293)
+- Bump soversion to 3.0.1, as apparently intended by upstream to begin with
+- Better GCC 4.8 fix, works with refcount without adding throwspecs everywhere
+
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.9.21b-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
More information about the scm-commits
mailing list