summaryrefslogtreecommitdiff
path: root/community/lucene++
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-01-06 03:31:16 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-01-06 03:31:16 +0000
commit3b88fa9d064e61705923ef42381b467bc8ecfd32 (patch)
treedbbb364001beff91bdec39c13023b6c742c5e539 /community/lucene++
parentf3c8ccda77966505f7c3f0817fd8c78384411a5a (diff)
Mon Jan 6 03:27:02 UTC 2014
Diffstat (limited to 'community/lucene++')
-rw-r--r--community/lucene++/0001-Add-support-for-compiling-with-c-11.patch291
-rw-r--r--community/lucene++/0002-Turn-off-custom-allocator-by-default.patch138
-rw-r--r--community/lucene++/0003-Fix-accidental-use-of-operator-instead-of-operator.patch26
-rw-r--r--community/lucene++/PKGBUILD49
4 files changed, 504 insertions, 0 deletions
diff --git a/community/lucene++/0001-Add-support-for-compiling-with-c-11.patch b/community/lucene++/0001-Add-support-for-compiling-with-c-11.patch
new file mode 100644
index 000000000..afd4dd7cd
--- /dev/null
+++ b/community/lucene++/0001-Add-support-for-compiling-with-c-11.patch
@@ -0,0 +1,291 @@
+From f4f7a4e212dc96146a9b71c8a09d375a1cd9980e Mon Sep 17 00:00:00 2001
+From: Jason Gilanfarr <jason@upthere.com>
+Date: Thu, 26 Sep 2013 16:46:23 -0700
+Subject: [PATCH] Add support for compiling with c++11.
+
+---
+ include/Array.h | 2 +-
+ include/AttributeSource.h | 2 +-
+ include/Collection.h | 2 +-
+ include/HashMap.h | 2 +-
+ include/HashSet.h | 2 +-
+ include/Map.h | 2 +-
+ include/MiscUtils.h | 2 +-
+ include/Set.h | 2 +-
+ src/core/include/_FieldCacheRangeFilter.h | 2 +-
+ src/core/index/DirectoryReader.cpp | 2 +-
+ src/core/index/IndexWriter.cpp | 2 +-
+ src/core/index/MultiLevelSkipListReader.cpp | 2 +-
+ src/core/index/SegmentMerger.cpp | 2 +-
+ src/core/index/SegmentReader.cpp | 4 ++--
+ src/core/queryparser/QueryParserTokenManager.cpp | 7 ++++---
+ src/core/search/FieldCacheRangeFilter.cpp | 2 +-
+ src/core/search/Query.cpp | 2 +-
+ src/core/store/NativeFSLockFactory.cpp | 2 +-
+ src/core/util/OpenBitSetIterator.cpp | 2 +-
+ 19 files changed, 23 insertions(+), 22 deletions(-)
+
+diff --git a/include/Array.h b/include/Array.h
+index 774d58a..46f38aa 100644
+--- a/include/Array.h
++++ b/include/Array.h
+@@ -119,7 +119,7 @@ namespace Lucene
+
+ operator bool () const
+ {
+- return container;
++ return container.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/include/AttributeSource.h b/include/AttributeSource.h
+index ed3895b..13f716e 100644
+--- a/include/AttributeSource.h
++++ b/include/AttributeSource.h
+@@ -95,7 +95,7 @@ namespace Lucene
+ template <class ATTR>
+ bool hasAttribute()
+ {
+- return getAttribute(ATTR::_getClassName());
++ return getAttribute(ATTR::_getClassName()).get() != NULL;
+ }
+
+ /// Returns the instance of the passed in Attribute contained in this AttributeSource.
+diff --git a/include/Collection.h b/include/Collection.h
+index 2e05a82..31d475e 100644
+--- a/include/Collection.h
++++ b/include/Collection.h
+@@ -211,7 +211,7 @@ namespace Lucene
+
+ operator bool() const
+ {
+- return container;
++ return container.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/include/HashMap.h b/include/HashMap.h
+index 2d40f5d..217c774 100644
+--- a/include/HashMap.h
++++ b/include/HashMap.h
+@@ -82,7 +82,7 @@ namespace Lucene
+
+ operator bool() const
+ {
+- return mapContainer;
++ return mapContainer.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/include/HashSet.h b/include/HashSet.h
+index cefd533..b7dff18 100644
+--- a/include/HashSet.h
++++ b/include/HashSet.h
+@@ -88,7 +88,7 @@ namespace Lucene
+
+ operator bool() const
+ {
+- return setContainer;
++ return setContainer.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/include/Map.h b/include/Map.h
+index c7dabcd..36e8cd9 100644
+--- a/include/Map.h
++++ b/include/Map.h
+@@ -82,7 +82,7 @@ namespace Lucene
+
+ operator bool() const
+ {
+- return mapContainer;
++ return mapContainer.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/include/MiscUtils.h b/include/MiscUtils.h
+index ed65f70..7227b93 100644
+--- a/include/MiscUtils.h
++++ b/include/MiscUtils.h
+@@ -125,7 +125,7 @@ namespace Lucene
+ template <typename TYPE>
+ static bool typeOf(LuceneObjectPtr object)
+ {
+- return boost::dynamic_pointer_cast<TYPE>(object);
++ return boost::dynamic_pointer_cast<TYPE>(object).get() != NULL;
+ }
+
+ /// Return whether given Lucene objects are of equal type.
+diff --git a/include/Set.h b/include/Set.h
+index bc62f17..7adff10 100644
+--- a/include/Set.h
++++ b/include/Set.h
+@@ -132,7 +132,7 @@ namespace Lucene
+
+ operator bool() const
+ {
+- return setContainer;
++ return setContainer.get() != NULL;
+ }
+
+ bool operator! () const
+diff --git a/src/core/include/_FieldCacheRangeFilter.h b/src/core/include/_FieldCacheRangeFilter.h
+index 7e494fd..ba44022 100644
+--- a/src/core/include/_FieldCacheRangeFilter.h
++++ b/src/core/include/_FieldCacheRangeFilter.h
+@@ -146,7 +146,7 @@ namespace Lucene
+ return false;
+ if (lowerVal != otherFilter->lowerVal || upperVal != otherFilter->upperVal)
+ return false;
+- if (parser ? !parser->equals(otherFilter->parser) : otherFilter->parser)
++ if (parser.get() != NULL ? !parser->equals(otherFilter->parser) : otherFilter->parser.get() != NULL)
+ return false;
+ return true;
+ }
+diff --git a/src/core/index/DirectoryReader.cpp b/src/core/index/DirectoryReader.cpp
+index 2d2d1ce..9fddf41 100644
+--- a/src/core/index/DirectoryReader.cpp
++++ b/src/core/index/DirectoryReader.cpp
+@@ -976,7 +976,7 @@ namespace Lucene
+
+ SegmentMergeInfoPtr smi(newLucene<SegmentMergeInfo>(starts[i], termEnum, reader));
+ smi->ord = i;
+- if (t ? termEnum->term() : smi->next())
++ if (t.get() != NULL ? termEnum->term().get() != NULL : smi->next())
+ queue->add(smi); // initialize queue
+ else
+ smi->close();
+diff --git a/src/core/index/IndexWriter.cpp b/src/core/index/IndexWriter.cpp
+index aabb6e4..11926e9 100644
+--- a/src/core/index/IndexWriter.cpp
++++ b/src/core/index/IndexWriter.cpp
+@@ -687,7 +687,7 @@ namespace Lucene
+
+ bool IndexWriter::verbose()
+ {
+- return infoStream;
++ return infoStream.get() != NULL;
+ }
+
+ void IndexWriter::setWriteLockTimeout(int64_t writeLockTimeout)
+diff --git a/src/core/index/MultiLevelSkipListReader.cpp b/src/core/index/MultiLevelSkipListReader.cpp
+index 19096b6..c38fd60 100644
+--- a/src/core/index/MultiLevelSkipListReader.cpp
++++ b/src/core/index/MultiLevelSkipListReader.cpp
+@@ -27,7 +27,7 @@ namespace Lucene
+ this->maxNumberOfSkipLevels = maxSkipLevels;
+ this->skipInterval = Collection<int32_t>::newInstance(maxSkipLevels);
+ this->skipStream[0] = skipStream;
+- this->inputIsBuffered = boost::dynamic_pointer_cast<BufferedIndexInput>(skipStream);
++ this->inputIsBuffered = boost::dynamic_pointer_cast<BufferedIndexInput>(skipStream).get() != NULL;
+ this->skipInterval[0] = skipInterval;
+ this->skipDoc = Collection<int32_t>::newInstance(maxSkipLevels);
+
+diff --git a/src/core/index/SegmentMerger.cpp b/src/core/index/SegmentMerger.cpp
+index d532501..41f4dc5 100644
+--- a/src/core/index/SegmentMerger.cpp
++++ b/src/core/index/SegmentMerger.cpp
+@@ -38,7 +38,7 @@ namespace Lucene
+ const int32_t SegmentMerger::MAX_RAW_MERGE_DOCS = 4192;
+
+ /// norms header placeholder
+- const uint8_t SegmentMerger::NORMS_HEADER[] = {'N', 'R', 'M', -1};
++ const uint8_t SegmentMerger::NORMS_HEADER[] = {'N', 'R', 'M', static_cast<uint8_t>(-1) };
+ const int32_t SegmentMerger::NORMS_HEADER_LENGTH = 4;
+
+ SegmentMerger::SegmentMerger(DirectoryPtr dir, const String& name)
+diff --git a/src/core/index/SegmentReader.cpp b/src/core/index/SegmentReader.cpp
+index 2be0b1f..d9d1b79 100644
+--- a/src/core/index/SegmentReader.cpp
++++ b/src/core/index/SegmentReader.cpp
+@@ -376,7 +376,7 @@ namespace Lucene
+ bool SegmentReader::hasDeletions()
+ {
+ // Don't call ensureOpen() here (it could affect performance)
+- return deletedDocs;
++ return deletedDocs.get() != NULL;
+ }
+
+ bool SegmentReader::usesCompoundFile(SegmentInfoPtr si)
+@@ -923,7 +923,7 @@ namespace Lucene
+ bool CoreReaders::termsIndexIsLoaded()
+ {
+ SyncLock syncLock(this);
+- return tis;
++ return tis.get() != NULL;
+ }
+
+ void CoreReaders::loadTermsIndex(SegmentInfoPtr si, int32_t termsIndexDivisor)
+diff --git a/src/core/queryparser/QueryParserTokenManager.cpp b/src/core/queryparser/QueryParserTokenManager.cpp
+index e769470..cb64c97 100644
+--- a/src/core/queryparser/QueryParserTokenManager.cpp
++++ b/src/core/queryparser/QueryParserTokenManager.cpp
+@@ -15,9 +15,10 @@
+ namespace Lucene
+ {
+ const int64_t QueryParserTokenManager::jjbitVec0[] = {0x1LL, 0x0LL, 0x0LL, 0x0LL};
+- const int64_t QueryParserTokenManager::jjbitVec1[] = {0xfffffffffffffffeLL, 0xffffffffffffffffLL, 0xffffffffffffffffLL, 0xffffffffffffffffLL};
+- const int64_t QueryParserTokenManager::jjbitVec3[] = {0x0LL, 0x0LL, 0xffffffffffffffffLL, 0xffffffffffffffffLL};
+- const int64_t QueryParserTokenManager::jjbitVec4[] = {0xfffefffffffffffeLL, 0xffffffffffffffffLL, 0xffffffffffffffffLL, 0xffffffffffffffffLL};
++ const int64_t QueryParserTokenManager::jjbitVec1[] = {static_cast<int64_t>(0xfffffffffffffffeLL), static_cast<int64_t>(0xffffffffffffffffLL), static_cast<int64_t>(0xffffffffffffffffLL), static_cast<int64_t>(0xffffffffffffffffLL)};
++ const int64_t QueryParserTokenManager::jjbitVec3[] = {0x0LL, 0x0LL, static_cast<int64_t>(0xffffffffffffffffLL), static_cast<int64_t>(0xffffffffffffffffLL)};
++ const int64_t QueryParserTokenManager::jjbitVec4[] = {static_cast<int64_t>(0xfffefffffffffffeLL), static_cast<int64_t>(0xffffffffffffffffLL), static_cast<int64_t>(0xffffffffffffffffLL), static_cast<int64_t>(0xffffffffffffffffLL)};
++
+ const int32_t QueryParserTokenManager::jjnextStates[] = {15, 16, 18, 29, 32, 23, 33, 30, 20, 21, 32, 23, 33, 31, 34, 27, 2, 4, 5, 0, 1};
+
+ /// Token literal values.
+diff --git a/src/core/search/FieldCacheRangeFilter.cpp b/src/core/search/FieldCacheRangeFilter.cpp
+index ce82a28..1585121 100644
+--- a/src/core/search/FieldCacheRangeFilter.cpp
++++ b/src/core/search/FieldCacheRangeFilter.cpp
+@@ -170,7 +170,7 @@ namespace Lucene
+ return false;
+ if (lowerVal != otherFilter->lowerVal || upperVal != otherFilter->upperVal)
+ return false;
+- if (parser ? !parser->equals(otherFilter->parser) : otherFilter->parser)
++ if (parser.get() != NULL ? !parser->equals(otherFilter->parser) : otherFilter->parser.get() != NULL)
+ return false;
+ return true;
+ }
+diff --git a/src/core/search/Query.cpp b/src/core/search/Query.cpp
+index 33aac96..0cfc482 100644
+--- a/src/core/search/Query.cpp
++++ b/src/core/search/Query.cpp
+@@ -73,7 +73,7 @@ namespace Lucene
+ Collection<BooleanClausePtr> clauses;
+ BooleanQueryPtr bq(boost::dynamic_pointer_cast<BooleanQuery>(*query));
+ // check if we can split the query into clauses
+- bool splittable = bq;
++ bool splittable = bq.get() != NULL;
+ if (splittable)
+ {
+ splittable = bq->isCoordDisabled();
+diff --git a/src/core/store/NativeFSLockFactory.cpp b/src/core/store/NativeFSLockFactory.cpp
+index 06f9a47..cc5e96e 100644
+--- a/src/core/store/NativeFSLockFactory.cpp
++++ b/src/core/store/NativeFSLockFactory.cpp
+@@ -79,7 +79,7 @@ namespace Lucene
+ bool NativeFSLock::lockExists()
+ {
+ SyncLock syncLock(this);
+- return lock;
++ return lock.get() != NULL;
+ }
+
+ bool NativeFSLock::obtain()
+diff --git a/src/core/util/OpenBitSetIterator.cpp b/src/core/util/OpenBitSetIterator.cpp
+index 5d61c13..3d43e06 100644
+--- a/src/core/util/OpenBitSetIterator.cpp
++++ b/src/core/util/OpenBitSetIterator.cpp
+@@ -43,7 +43,7 @@ namespace Lucene
+ 0x876, 0x8761, 0x8762, 0x87621, 0x8763, 0x87631, 0x87632, 0x876321, 0x8764,
+ 0x87641, 0x87642, 0x876421, 0x87643, 0x876431, 0x876432, 0x8764321, 0x8765,
+ 0x87651, 0x87652, 0x876521, 0x87653, 0x876531, 0x876532, 0x8765321, 0x87654,
+- 0x876541, 0x876542, 0x8765421, 0x876543, 0x8765431, 0x8765432, 0x87654321
++ 0x876541, 0x876542, 0x8765421, 0x876543, 0x8765431, 0x8765432, static_cast<int32_t>(0x87654321)
+ };
+
+ OpenBitSetIterator::OpenBitSetIterator(OpenBitSetPtr bitSet)
+--
+1.8.5.2
+
diff --git a/community/lucene++/0002-Turn-off-custom-allocator-by-default.patch b/community/lucene++/0002-Turn-off-custom-allocator-by-default.patch
new file mode 100644
index 000000000..10c21a8c4
--- /dev/null
+++ b/community/lucene++/0002-Turn-off-custom-allocator-by-default.patch
@@ -0,0 +1,138 @@
+From 65c63d0a6c3927e0f123f6ec24d5516739fd53b3 Mon Sep 17 00:00:00 2001
+From: Alan Wright <alan@spotify.com>
+Date: Thu, 12 Sep 2013 10:34:00 +0100
+Subject: [PATCH] Turn off custom allocator by default.
+
+closes #40
+---
+ CMakeLists.txt | 25 ++++++++++++++-----------
+ include/Config.h.cmake | 2 +-
+ src/core/CMakeLists.txt | 12 ++++++++----
+ 3 files changed, 23 insertions(+), 16 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ec89210..ab1f10d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -62,6 +62,9 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
+ OPTION(ENABLE_PACKAGING
+ "create build scripts for creating lucene++ packages"
+ OFF)
++OPTION(ENABLE_CUSTOM_ALLOCATOR
++ "use custom memory allocator"
++ OFF)
+ OPTION(ENABLE_NEDMALLOC
+ "use nedmalloc for memory allocations"
+ OFF)
+@@ -75,18 +78,18 @@ OPTION(ENABLE_CYCLIC_CHECK
+ #install path options
+ SET(LIB_DESTINATION "lib" CACHE STRING "Define lib output directory name")
+
++IF ( ENABLE_CUSTOM_ALLOCATOR )
++ SET(DEFINE_USE_CUSTOM_ALLOCATOR "define")
++ELSE ( ENABLE_CUSTOM_ALLOCATOR )
++ SET(DEFINE_USE_CUSTOM_ALLOCATOR "undef")
++ENDIF ( ENABLE_CUSTOM_ALLOCATOR )
++
+ IF ( ENABLE_NEDMALLOC )
+ SET(DEFINE_USE_NEDMALLOC "define")
+ ELSE ( ENABLE_NEDMALLOC )
+ SET(DEFINE_USE_NEDMALLOC "undef")
+ ENDIF ( ENABLE_NEDMALLOC )
+
+-IF ( ENABLE_STANDARD_ALLOCATOR )
+- SET(DEFINE_USE_ALLOCATOR "undef")
+-ELSE ( ENABLE_STANDARD_ALLOCATOR )
+- SET(DEFINE_USE_ALLOCATOR "define")
+-ENDIF ( ENABLE_STANDARD_ALLOCATOR )
+-
+ IF ( ENABLE_CYCLIC_CHECK )
+ SET(DEFINE_USE_CYCLIC_CHECK "define")
+ ELSE ( ENABLE_CYCLIC_CHECK )
+@@ -116,11 +119,11 @@ IF(CYGWIN)
+ ADD_DEFINITIONS(-D__LARGE64_FILES)
+ ENDIF(CYGWIN)
+
+-#set ansi mode
++#set ansi mode
+ SET(ENABLE_ANSI_MODE OFF)
+ IF(CMAKE_COMPILER_IS_GNUCXX)
+ SET(ENABLE_ANSI_MODE ON)
+-
++
+ #exceptions:
+ IF(MINGW OR CYGWIN)
+ SET(ENABLE_ANSI_MODE OFF)
+@@ -130,20 +133,20 @@ IF ( CMAKE_COMPILER_IS_GNUCC )
+ IF( ENABLE_ANSI_MODE )
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi")
+ ENDIF ( ENABLE_ANSI_MODE )
+-ENDIF(CMAKE_COMPILER_IS_GNUCC)
++ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+ ####################################
+ #find boost
+ ####################################
+ SET(Boost_USE_STATIC_LIBS ${LUCENE_USE_STATIC_BOOST_LIBS})
+ SET(Boost_USE_MULTITHREADED ON)
+-#Boost 1.38 required for bug fixes in basic_streambuf.
++#Boost 1.38 required for bug fixes in basic_streambuf.
+ #The following line fails in earlier builds, so if altered, may allow older versions of boost:
+ #boost::gregorian::date date = parser.parse_date(paddedDate.c_str(), dateFormat->c_str(), svp);
+ find_package( Boost 1.38.0 COMPONENTS date_time filesystem iostreams regex system thread unit_test_framework REQUIRED)
+ IF (Boost_FOUND)
+ MESSAGE( STATUS "boost found: includes in ${Boost_INCLUDE_DIRS}, library in ${Boost_LIBRARY_DIRS}")
+- SET(LUCENE_BOOST_LIBS
++ SET(LUCENE_BOOST_LIBS
+ ${Boost_FILESYSTEM_LIBRARY_RELEASE}
+ ${Boost_IOSTREAMS_LIBRARY_RELEASE}
+ ${Boost_REGEX_LIBRARY_RELEASE}
+diff --git a/include/Config.h.cmake b/include/Config.h.cmake
+index ac83b77..13f6460 100644
+--- a/include/Config.h.cmake
++++ b/include/Config.h.cmake
+@@ -78,7 +78,7 @@
+ #@DEFINE_USE_CYCLIC_CHECK@ LPP_USE_CYCLIC_CHECK
+
+ // Define to use custom allocator (useful in Windows builds and when using nedmalloc)
+-#@DEFINE_USE_ALLOCATOR@ LPP_USE_ALLOCATOR
++#@DEFINE_USE_CUSTOM_ALLOCATOR@ LPP_USE_ALLOCATOR
+
+ // Define to use nedmalloc memory allocator
+ #@DEFINE_USE_NEDMALLOC@ LPP_USE_NEDMALLOC
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index a77c12f..ce91ae9 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -20,7 +20,11 @@ file(GLOB_RECURSE HEADERS ${lucene++-base_SOURCE_DIR}/include/*.h
+ file(GLOB_RECURSE lucene_c_sources
+ ${lucene++-lib_SOURCE_DIR}/util/*.c)
+
+-
++
++IF ( ENABLE_CUSTOM_ALLOCATOR )
++ ADD_DEFINITIONS(-DLPP_USE_ALLOCATOR)
++ENDIF()
++
+ IF ( ENABLE_NEDMALLOC )
+ ADD_DEFINITIONS(-DLPP_USE_NEDMALLOC)
+ ENDIF()
+@@ -51,12 +55,12 @@ SET_TARGET_PROPERTIES(lucene++ PROPERTIES
+ SOVERSION ${LUCENE++_SOVERSION}
+ COMPILE_FLAGS -DLPP_HAVE_DLL
+ )
+-TARGET_LINK_LIBRARIES(lucene++
+- lucene++-c
++TARGET_LINK_LIBRARIES(lucene++
++ lucene++-c
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${LUCENE_BOOST_LIBS} )
+ install(TARGETS lucene++
+- DESTINATION ${LIB_DESTINATION}
++ DESTINATION ${LIB_DESTINATION}
+ COMPONENT runtime)
+
+ #################################
+--
+1.8.5.2
+
diff --git a/community/lucene++/0003-Fix-accidental-use-of-operator-instead-of-operator.patch b/community/lucene++/0003-Fix-accidental-use-of-operator-instead-of-operator.patch
new file mode 100644
index 000000000..f05182fcf
--- /dev/null
+++ b/community/lucene++/0003-Fix-accidental-use-of-operator-instead-of-operator.patch
@@ -0,0 +1,26 @@
+From 2ac8183e48a0ab95fa3f405bc26b1b20d51755f2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= <vslavik@gmail.com>
+Date: Sun, 27 Oct 2013 09:17:45 +0100
+Subject: [PATCH] Fix accidental use of operator+ instead of operator<<.
+
+There was a typo in the output expression, appending a number to a string, instead of concatenating them as indented.
+---
+ src/core/index/CheckIndex.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/index/CheckIndex.cpp b/src/core/index/CheckIndex.cpp
+index 9e910f1..7f783d8 100644
+--- a/src/core/index/CheckIndex.cpp
++++ b/src/core/index/CheckIndex.cpp
+@@ -640,7 +640,7 @@ namespace Lucene
+ std::wcout << L"WARNING: would write new segments file, and " << result->totLoseDocCount << L" documents would be lost, if -fix were specified\n\n";
+ else
+ {
+- std::wcout << L"WARNING: " << result->totLoseDocCount + L" documents will be lost\n";
++ std::wcout << L"WARNING: " << result->totLoseDocCount << L" documents will be lost\n";
+ std::wcout << L"NOTE: will write new segments file in 5 seconds; this will remove " << result->totLoseDocCount;
+ std::wcout << L" docs from the index. THIS IS YOUR LAST CHANCE TO CTRL+C!\n";
+ for (int32_t sec = 0; sec < 5; ++sec)
+--
+1.8.5.2
+
diff --git a/community/lucene++/PKGBUILD b/community/lucene++/PKGBUILD
new file mode 100644
index 000000000..105ec3dcb
--- /dev/null
+++ b/community/lucene++/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id$
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Rafael Ferreira <josephgbr@archlinux.info>
+
+pkgname=lucene++
+pkgver=3.0.4
+pkgrel=1
+pkgdesc='C++ port of the popular Java Lucene library'
+arch=(i686 x86_64)
+url='https://github.com/luceneplusplus/LucenePlusPlus'
+license=('GPL' 'Apache')
+depends=('boost-libs' 'gcc-libs')
+makedepends=('boost' 'cmake')
+source=($url/archive/rel_$pkgver.tar.gz
+ 0001-Add-support-for-compiling-with-c-11.patch
+ 0002-Turn-off-custom-allocator-by-default.patch
+ 0003-Fix-accidental-use-of-operator-instead-of-operator.patch)
+md5sums=('64c34aa66b3870cc015c5d084a1a2b4e'
+ '243c87bed96250043f21d4d6ea6b6c6e'
+ 'ab8c8d5484411a9af55121b4d565f746'
+ '2c1758953b1b3d7c3c14c88b770bcb26')
+
+prepare() {
+ mkdir build
+
+ cd LucenePlusPlus-rel_$pkgver
+
+ # http://www.poedit.net/trac/ticket/568
+ patch -p1 -i ../0001-Add-support-for-compiling-with-c-11.patch
+ patch -p1 -i ../0002-Turn-off-custom-allocator-by-default.patch
+ patch -p1 -i ../0003-Fix-accidental-use-of-operator-instead-of-operator.patch
+}
+
+build() {
+ cd build
+
+ cmake ../LucenePlusPlus-rel_$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_DESTINATION=/usr/lib \
+ -DBoost_LIBRARY_DIR=/usr/lib \
+ -DENABLE_CUSTOM_ALLOCATOR='FALSE'
+
+ make
+}
+
+package() {
+ cd build
+ make DESTDIR="$pkgdir" install
+}