[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