summaryrefslogtreecommitdiff
path: root/user/clucene
diff options
context:
space:
mode:
Diffstat (limited to 'user/clucene')
-rw-r--r--user/clucene/APKBUILD79
-rw-r--r--user/clucene/disable-threading.patch75
-rw-r--r--user/clucene/install_contribs_lib.patch42
-rw-r--r--user/clucene/pkgconfig.patch12
-rw-r--r--user/clucene/usleep.patch12
5 files changed, 220 insertions, 0 deletions
diff --git a/user/clucene/APKBUILD b/user/clucene/APKBUILD
new file mode 100644
index 000000000..2c5e047e4
--- /dev/null
+++ b/user/clucene/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Max Rees <maxcrees@me.com>
+pkgname=clucene
+pkgver=2.3.3.4
+pkgrel=5
+pkgdesc="A C++ port of Lucene"
+url="http://www.sourceforge.net/projects/clucene"
+arch="all"
+license="(LGPL-2.1+ OR Apache-2.0) AND RSA-MD AND (LGPL-2.0+ OR Apache-2.0) AND Zlib AND Apache-2.0"
+depends=""
+depends_dev="zlib-dev boost-dev"
+makedepends="cmake $depends_dev"
+subpackages="$pkgname-dev $pkgname-contribs"
+source="http://downloads.sourceforge.net/clucene/clucene-core-$pkgver.tar.gz
+ pkgconfig.patch
+ install_contribs_lib.patch
+ usleep.patch
+ disable-threading.patch
+"
+builddir="$srcdir/$pkgname-core-$pkgver"
+
+prepare() {
+ default_prepare
+ cd "$builddir"
+ # Do not use bundled zlib or boost
+ sed -ie '/ADD_SUBDIRECTORY (src\/ext)/d' CMakeLists.txt
+ rm -rf src/ext
+}
+
+build() {
+ cd "$builddir"
+ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_CONTRIBS_LIB=BOOL:ON \
+ -DLIB_DESTINATION:PATH=/usr/lib \
+ -DLUCENE_SYS_INCLUDES:PATH=/usr/lib \
+ -DDISABLE_MULTITHREADING=BOOL:ON
+ make
+}
+
+check() {
+ cd "$builddir"
+
+ # clucene is not smart enough to delete files between successive checks,
+ # so let's remove them for it. Otherwise, if check is run a second time
+ # without clearing the files beforehand, a lot of tests will fail.
+ rm -rf "$builddir/tmp"
+ mkdir "$builddir/tmp"
+
+ # Need to force cmake to update - some sort of race condition
+ touch CMakeCache.txt
+ make cl_test
+
+ cd bin
+ TMP="$builddir/tmp" ./cl_test
+}
+
+package() {
+ cd "$builddir"
+ make install/fast DESTDIR="$pkgdir"
+ rm -r "$pkgdir"/usr/lib/CLuceneConfig.cmake
+}
+
+contribs() {
+ pkgdesc="Language specific text analyzers for CLucene"
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/libclucene-contribs*.so.* "$subpkgdir"/usr/lib/
+}
+
+dev() {
+ default_dev
+ mv "$pkgdir"/usr/lib/CLucene/*.cmake "$subpkgdir"/usr/lib/CLucene/
+}
+
+sha512sums="1c9da9077edcebd46563bd9e47d330518e0b30061016650a759cfe051e9748fdad8932a472b1cca53a6adafed5f41656527271fc5f55ddfcefb558f0d83286b4 clucene-core-2.3.3.4.tar.gz
+b357cb5a1c5d66219f3168724a71af3ebf5c45c752a612d3a69c170b739acc065dc17c261c3a730298ea6c637fe820637a100f73ab03d931734f80bb598fbf55 pkgconfig.patch
+0aa92635949089196e4e7c579e78761e8751987ef5036320a161a4aaa67da3c63756398c903419c76ea0fbdc8a949e871fcb65be98179a9853a24a5a4cacfde3 install_contribs_lib.patch
+5de49cb5eba1f9033f28281e0e5ff0e29fe6842ea3e1cb246c12649dc12dedad15e1811b45ccc989a1b743657eb0eeb4937616aa19ec5ee482cd323f54431b99 usleep.patch
+3ded79aed693f6de35389377eddea0b4b0bb0cafd016f6f766986297c35912b18c1e90cedb1fb1d256765abdaab05ca2999aec2fe7ae309fa75231ac94c519a9 disable-threading.patch"
diff --git a/user/clucene/disable-threading.patch b/user/clucene/disable-threading.patch
new file mode 100644
index 000000000..87a5d1c91
--- /dev/null
+++ b/user/clucene/disable-threading.patch
@@ -0,0 +1,75 @@
+Adapted from https://sourceforge.net/p/clucene/bugs/197
+--- clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.cpp 2011-03-16 20:21:07.000000000 -0400
++++ clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.cpp 2018-05-20 19:24:09.219901243 -0400
+@@ -466,6 +466,7 @@
+ std::string Misc::toString(const bool value){
+ return value ? "true" : "false";
+ }
++#ifndef _CL_DISABLE_MULTITHREADING
+ std::string Misc::toString(_LUCENE_THREADID_TYPE value){
+ static int32_t nextindex = 0;
+ static std::map<_LUCENE_THREADID_TYPE, int32_t> ids;
+@@ -474,6 +475,7 @@
+ }
+ return toString(ids[value]);
+ }
++#endif
+ std::string Misc::toString(const int32_t value){
+ char buf[20];
+ TCHAR tbuf[20];
+--- clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.h 2011-03-16 20:21:07.000000000 -0400
++++ clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.h 2018-05-20 19:24:09.219901243 -0400
+@@ -67,7 +67,9 @@
+
+ static std::string toString(const int32_t value);
+ static std::string toString(const int64_t value);
++ #ifndef _CL_DISABLE_MULTITHREADING
+ static std::string toString(const _LUCENE_THREADID_TYPE value);
++ #endif
+ static std::string toString(const bool value);
+ static std::string toString(const float_t value);
+ static std::string toString(const TCHAR* s, int32_t len=-1);
+--- clucene-core-2.3.3.4/src/shared/CLucene/LuceneThreads.h 2011-03-16 20:21:07.000000000 -0400
++++ clucene-core-2.3.3.4/src/shared/CLucene/LuceneThreads.h 2018-05-20 19:28:05.999899570 -0400
+@@ -13,10 +13,10 @@
+
+ #if defined(_CL_DISABLE_MULTITHREADING)
+ #define SCOPED_LOCK_MUTEX(theMutex)
+- #define DEFINE_MUTEX(x)
++ //#define DEFINE_MUTEX(x)
+ #define DEFINE_MUTABLE_MUTEX(x)
+ #define DEFINE_CONDITION(x)
+- #define STATIC_DEFINE_MUTEX(x)
++ //#define STATIC_DEFINE_MUTEX(x)
+ #define CONDITION_WAIT(theMutex, theCondition)
+ #define CONDITION_NOTIFYALL(theCondition)
+ #define _LUCENE_CURRTHREADID 1
+@@ -25,11 +25,27 @@
+ #define _LUCENE_THREAD_FUNC_RETURN(val) return (int)val;
+ #define _LUCENE_THREAD_CREATE(func, arg) (*func)(arg)
+ #define _LUCENE_THREAD_JOIN(value) //nothing to do...
+- #define _LUCENE_THREADMUTEX void*
++ //#define _LUCENE_THREADMUTEX void*
+
+ #define _LUCENE_ATOMIC_INC(theInteger) (++(*theInteger))
+ #define _LUCENE_ATOMIC_DEC(theInteger) (--(*theInteger))
+ #define _LUCENE_ATOMIC_INT int
++
++ #define _LUCENE_ATOMIC_INT_SET(x,v) x=v
++ #define _LUCENE_ATOMIC_INT_GET(x) x
++
++ struct CLUCENE_SHARED_EXPORT mutex_thread
++ {
++ void lock() {}
++ void unlock() {}
++ };
++ #define _LUCENE_THREADMUTEX CL_NS(util)::mutex_thread
++
++ #define DEFINE_MUTEX(theMutex) _LUCENE_THREADMUTEX theMutex;
++ #define STATIC_DEFINE_MUTEX(theMutex) static _LUCENE_THREADMUTEX theMutex;
++
++ #define CONDITION_WAIT(theMutex, theCondition)
++ #define CONDITION_NOTIFYALL(theCondition)
+ #else
+ #if defined(_LUCENE_DONTIMPLEMENT_THREADMUTEX)
+ //do nothing
diff --git a/user/clucene/install_contribs_lib.patch b/user/clucene/install_contribs_lib.patch
new file mode 100644
index 000000000..8fbb3c716
--- /dev/null
+++ b/user/clucene/install_contribs_lib.patch
@@ -0,0 +1,42 @@
+diff -NaurpBb clucene-core-2.3.3.4/CMakeLists.txt clucene-core-2.3.3.4-mod/CMakeLists.txt
+--- clucene-core-2.3.3.4/CMakeLists.txt 2011-03-17 03:21:07.000000000 +0300
++++ clucene-core-2.3.3.4-mod/CMakeLists.txt 2011-08-16 16:56:55.968268152 +0400
+@@ -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 )
+
+
+diff -NaurpBb clucene-core-2.3.3.4/src/contribs-lib/CMakeLists.txt clucene-core-2.3.3.4-mod/src/contribs-lib/CMakeLists.txt
+--- clucene-core-2.3.3.4/src/contribs-lib/CMakeLists.txt 2011-03-17 03:21:07.000000000 +0300
++++ clucene-core-2.3.3.4-mod/src/contribs-lib/CMakeLists.txt 2011-08-16 17:14:13.499275499 +0400
+@@ -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/user/clucene/pkgconfig.patch b/user/clucene/pkgconfig.patch
new file mode 100644
index 000000000..aff20d7b4
--- /dev/null
+++ b/user/clucene/pkgconfig.patch
@@ -0,0 +1,12 @@
+diff -up clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake.pkgconfig_sys_includes clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake
+--- clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake.pkgconfig_sys_includes 2011-03-16 19:21:07.000000000 -0500
++++ clucene-core-2.3.3.4/src/core/libclucene-core.pc.cmake 2012-03-19 09:01:00.689263954 -0500
+@@ -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
+-Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext
++Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core -lclucene-shared
++Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext -I@LUCENE_SYS_INCLUDES@
+ ~
diff --git a/user/clucene/usleep.patch b/user/clucene/usleep.patch
new file mode 100644
index 000000000..d6cbac360
--- /dev/null
+++ b/user/clucene/usleep.patch
@@ -0,0 +1,12 @@
+Add missing include needed to run tests which use usleep
+
+--- clucene-core-2.3.3.4/src/test/test.h 2011-03-17 00:21:07.000000000 +0000
++++ clucene-core-2.3.3.4/src/test/test.h 2017-12-27 09:43:25.320000000 +0000
+@@ -23,6 +23,7 @@
+ #include <iostream>
+ #include <string.h>
+ #include <stdio.h>
++#include <unistd.h>
+
+ using namespace std;
+