diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/clucene-core')
7 files changed, 395 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/2.x.nix b/nixpkgs/pkgs/development/libraries/clucene-core/2.x.nix new file mode 100644 index 000000000000..91347813a24f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/2.x.nix @@ -0,0 +1,57 @@ +{stdenv, fetchurl, cmake, boost, zlib}: + +stdenv.mkDerivation rec { + name = "clucene-core-2.3.3.4"; + + src = fetchurl { + url = "mirror://sourceforge/clucene/${name}.tar.gz"; + sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ boost zlib ]; + + cmakeFlags = [ + "-DBUILD_CONTRIBS=ON" + "-DBUILD_CONTRIBS_LIB=ON" + "-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON" + ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-D_CL_HAVE_GCC_ATOMIC_FUNCTIONS=0" + "-D_CL_HAVE_NAMESPACES_EXITCODE=0" + "-D_CL_HAVE_NO_SNPRINTF_BUG_EXITCODE=0" + "-D_CL_HAVE_NO_SNWPRINTF_BUG_EXITCODE=0" + "-D_CL_HAVE_TRY_BLOCKS_EXITCODE=0" + "-D_CL_HAVE_PTHREAD_MUTEX_RECURSIVE=0" + "-DLUCENE_STATIC_CONSTANT_SYNTAX_EXITCODE=0" + ]; + + patches = # From debian + [ ./Fix-pkgconfig-file-by-adding-clucene-shared-library.patch + ./Fixing_ZLIB_configuration_in_shared_CMakeLists.patch + ./Install-contribs-lib.patch + ] ++ stdenv.lib.optionals stdenv.isDarwin [ ./fix-darwin.patch ]; + + # fails with "Unable to find executable: + # /build/clucene-core-2.3.3.4/build/bin/cl_test" + doCheck = false; + + NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing"; + + meta = with stdenv.lib; { + description = "Core library for full-featured text search engine"; + longDescription = '' + CLucene is a high-performance, scalable, cross platform, full-featured, + open-source indexing and searching API. Specifically, CLucene is the guts + of a search engine, the hard stuff. You write the easy stuff: the UI and + the process of selecting and parsing your data files to pump them into + the search engine yourself, and any specialized queries to pull it back + for display or further processing. + + CLucene is a port of the very popular Java Lucene text search engine API. + ''; + homepage = http://clucene.sourceforge.net; + platforms = platforms.unix; + license = with licenses; [ asl20 lgpl2 ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch b/nixpkgs/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch new file mode 100644 index 000000000000..80e49a8e712e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch @@ -0,0 +1,19 @@ +From 7be4a19b76d98260cf95040a47935f854a4ba7a4 Mon Sep 17 00:00:00 2001 +From: Valentin Rusu <kde@rusu.info> +Date: Sat, 17 Dec 2011 13:47:58 +0100 +Subject: [PATCH] Fix .pc file by adding clucene-shared library + +--- + src/core/libclucene-core.pc.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/core/libclucene-core.pc.cmake ++++ b/src/core/libclucene-core.pc.cmake +@@ -6,6 +6,6 @@ includedir=${prefix}/include:${prefix}/i + Name: libclucene + Description: CLucene - a C++ search engine, ported from the popular Apache Lucene + Version: @CLUCENE_VERSION_MAJOR@.@CLUCENE_VERSION_MINOR@.@CLUCENE_VERSION_REVISION@.@CLUCENE_VERSION_PATCH@ +-Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core ++Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core -lclucene-shared + Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext + ~ diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch b/nixpkgs/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch new file mode 100644 index 000000000000..f5f44a7fa2c4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch @@ -0,0 +1,20 @@ +From 772481ca94071ddfe65102a451926e4f9aeb4d2c Mon Sep 17 00:00:00 2001 +From: Veit Jahns <idolum@users.sourceforge.net> +Date: Thu, 26 May 2011 13:35:28 +0200 +Subject: [PATCH] Fixing ZLIB configuration in shared's CMakeLists + +--- + src/shared/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/shared/CMakeLists.txt ++++ b/src/shared/CMakeLists.txt +@@ -42,7 +42,7 @@ INCLUDE (CheckAtomicFunctions) + find_package(ZLIB) + IF ( ZLIB_FOUND ) + SET ( EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARY} ) +-ELSEIF ( ZLIB_FOUND ) ++ELSE ( ZLIB_FOUND ) + MESSAGE( "ZLIB not found, using local: ${clucene-ext_SOURCE_DIR}/zlib" ) + SET(ZLIB_INCLUDE_DIR ${clucene-ext_SOURCE_DIR}/zlib ) + SET(ZLIB_LIBRARY ${clucene-ext_BINARY_DIR}) diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch b/nixpkgs/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch new file mode 100644 index 000000000000..899411fe02b4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch @@ -0,0 +1,49 @@ +Description: contribs-lib is not built and installed even with config +Author: Vitaliy Filippov +Bug: https://sourceforge.net/tracker/index.php?func=detail&aid=3392466&group_id=80013&atid=558446 + +--- + CMakeLists.txt | 2 +- + src/contribs-lib/CMakeLists.txt | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -163,7 +163,7 @@ IF ( BUILD_CONTRIBS ) + SET(BUILD_CONTRIBS_LIB 1) + ENDIF ( BUILD_CONTRIBS ) + IF ( BUILD_CONTRIBS_LIB ) +- ADD_SUBDIRECTORY (src/contribs-lib EXCLUDE_FROM_ALL) ++ ADD_SUBDIRECTORY (src/contribs-lib) + ENDIF ( BUILD_CONTRIBS_LIB ) + + +--- a/src/contribs-lib/CMakeLists.txt ++++ b/src/contribs-lib/CMakeLists.txt +@@ -106,9 +106,26 @@ add_library(clucene-contribs-lib SHARED + ) + TARGET_LINK_LIBRARIES(clucene-contribs-lib ${clucene_contrib_extra_libs}) + ++#install public headers. ++FOREACH(file ${HEADERS}) ++ get_filename_component(apath ${file} PATH) ++ get_filename_component(aname ${file} NAME) ++ file(RELATIVE_PATH relpath ${CMAKE_SOURCE_DIR}/src/contribs-lib ${apath}) ++ IF ( NOT aname MATCHES "^_.*" ) ++ install(FILES ${file} ++ DESTINATION include/${relpath} ++ COMPONENT development) ++ ENDIF ( NOT aname MATCHES "^_.*" ) ++ENDFOREACH(file) ++ + #set properties on the libraries + SET_TARGET_PROPERTIES(clucene-contribs-lib PROPERTIES + VERSION ${CLUCENE_VERSION} + SOVERSION ${CLUCENE_SOVERSION} + COMPILE_DEFINITIONS_DEBUG _DEBUG + ) ++ ++#and install library ++install(TARGETS clucene-contribs-lib ++ DESTINATION ${LIB_DESTINATION} ++ COMPONENT runtime ) diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/default.nix b/nixpkgs/pkgs/development/libraries/clucene-core/default.nix new file mode 100644 index 000000000000..8451b0853729 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/default.nix @@ -0,0 +1,29 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation rec { + name = "clucene-core-0.9.21b"; + + src = fetchurl { + url = "mirror://sourceforge/clucene/${name}.tar.bz2"; + sha256 = "202ee45af747f18642ae0a088d7c4553521714a511a1a9ec99b8144cf9928317"; + }; + + patches = [ ./gcc6.patch ]; + + meta = with stdenv.lib; { + description = "Core library for full-featured text search engine"; + longDescription = '' + CLucene is a high-performance, scalable, cross platform, full-featured, + open-source indexing and searching API. Specifically, CLucene is the guts + of a search engine, the hard stuff. You write the easy stuff: the UI and + the process of selecting and parsing your data files to pump them into + the search engine yourself, and any specialized queries to pull it back + for display or further processing. + + CLucene is a port of the very popular Java Lucene text search engine API. + ''; + homepage = http://clucene.sourceforge.net; + platforms = platforms.linux; + license = with licenses; [ asl20 lgpl2 ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/fix-darwin.patch b/nixpkgs/pkgs/development/libraries/clucene-core/fix-darwin.patch new file mode 100644 index 000000000000..c06413f3c2e1 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/fix-darwin.patch @@ -0,0 +1,75 @@ +--- a/src/shared/CLucene/LuceneThreads.h ++++ b/src/shared/CLucene/LuceneThreads.h +@@ -7,6 +7,9 @@ + #ifndef _LuceneThreads_h + #define _LuceneThreads_h + ++#if defined(_CL_HAVE_PTHREAD) ++ #include <pthread.h> ++#endif + + CL_NS_DEF(util) + class CLuceneThreadIdCompare; + +--- a/src/shared/CLucene/config/repl_tchar.h ++++ b/src/shared/CLucene/config/repl_tchar.h +@@ -28,26 +28,26 @@ + #define _istdigit iswdigit //* digit char check + #define _totlower towlower //* convert char to lower case + #define _totupper towupper //* convert char to lower case +- #define _tcslwr wcslwr //* convert string to lower case ++ #define _tcslwr std::wcslwr //* convert string to lower case + + //these are the string handling functions + //we may need to create wide-character/multi-byte replacements for these +- #define _tcscpy wcscpy //copy a string to another string +- #define _tcsncpy wcsncpy //copy a specified amount of one string to another string. +- #define _tcscat wcscat //copy a string onto the end of the other string +- #define _tcsncat wcsncat +- #define _tcschr wcschr //find location of one character +- #define _tcsstr wcsstr //find location of a string +- #define _tcslen wcslen //get length of a string +- #define _tcscmp wcscmp //case sensitive compare two strings +- #define _tcsncmp wcsncmp //case sensitive compare two strings +- #define _tcscspn wcscspn //location of any of a set of character in a string ++ #define _tcscpy std::wcscpy //copy a string to another string ++ #define _tcsncpy std::wcsncpy //copy a specified amount of one string to another string. ++ #define _tcscat std::wcscat //copy a string onto the end of the other string ++ #define _tcsncat std::wcsncat ++ #define _tcschr std::wcschr //find location of one character ++ #define _tcsstr std::wcsstr //find location of a string ++ #define _tcslen std::wcslen //get length of a string ++ #define _tcscmp std::wcscmp //case sensitive compare two strings ++ #define _tcsncmp std::wcsncmp //case sensitive compare two strings ++ #define _tcscspn std::wcscspn //location of any of a set of character in a string + + //string compare + #ifdef _CL_HAVE_FUNCTION_WCSICMP +- #define _tcsicmp wcsicmp //* case insensitive compare two string ++ #define _tcsicmp std::wcsicmp //* case insensitive compare two string + #else +- #define _tcsicmp wcscasecmp //* case insensitive compare two string ++ #define _tcsicmp std::wcscasecmp //* case insensitive compare two string + #endif + #if defined(_CL_HAVE_FUNCTION_WCSDUP) + #define _tcsdup wcsdup +@@ -56,8 +56,8 @@ + #endif + + //conversion functions +- #define _tcstod wcstod //convert a string to a double +- #define _tcstoi64 wcstoll //* convers a string to an 64bit bit integer ++ #define _tcstod std::wcstod //convert a string to a double ++ #define _tcstoi64 std::wcstoll //* convers a string to an 64bit bit integer + #define _itot _i64tot + #define _i64tot lltow //* converts a 64 bit integer to a string (with base) + #else //if defined(_ASCII) +@@ -105,7 +105,7 @@ + //some tchar headers miss these... + #ifndef _tcstoi64 + #if defined(_UCS2) +- #define _tcstoi64 wcstoll //* convers a string to an 64bit bit integer ++ #define _tcstoi64 std::wcstoll //* convers a string to an 64bit bit integer + #else + #define _tcstoi64 strtoll + #endif diff --git a/nixpkgs/pkgs/development/libraries/clucene-core/gcc6.patch b/nixpkgs/pkgs/development/libraries/clucene-core/gcc6.patch new file mode 100644 index 000000000000..f78b26d24f6a --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/clucene-core/gcc6.patch @@ -0,0 +1,146 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=998477 + +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: + __cl_refcount--; + return __cl_refcount; + } +- virtual ~LuceneBase(){}; ++ virtual ~LuceneBase() throw(CLuceneError&) {}; + }; + + 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(); |