From 1ba9c12d6ed1d6054c055bea8480e2d0132ae8eb Mon Sep 17 00:00:00 2001 From: LinuxUserGD Date: Tue, 11 Apr 2023 00:01:01 +0200 Subject: dev-cpp/clucene: fix removed std::binary_function in c++17 Closes: https://bugs.gentoo.org/853298 Closes: https://bugs.gentoo.org/869170 Signed-off-by: LinuxUserGD Closes: https://github.com/gentoo/gentoo/pull/30547 Signed-off-by: Sam James --- dev-cpp/clucene/clucene-2.3.3.4-r8.ebuild | 66 ------- dev-cpp/clucene/clucene-2.3.3.4-r9.ebuild | 67 +++++++ .../clucene-2.3.3.4-fix-binary-function.patch | 199 +++++++++++++++++++++ 3 files changed, 266 insertions(+), 66 deletions(-) delete mode 100644 dev-cpp/clucene/clucene-2.3.3.4-r8.ebuild create mode 100644 dev-cpp/clucene/clucene-2.3.3.4-r9.ebuild create mode 100644 dev-cpp/clucene/files/clucene-2.3.3.4-fix-binary-function.patch (limited to 'dev-cpp') diff --git a/dev-cpp/clucene/clucene-2.3.3.4-r8.ebuild b/dev-cpp/clucene/clucene-2.3.3.4-r8.ebuild deleted file mode 100644 index 3ee090b7f675..000000000000 --- a/dev-cpp/clucene/clucene-2.3.3.4-r8.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PN="${PN}"-core -MY_P="${MY_PN}"-"${PV}" - -inherit cmake - -DESCRIPTION="High-performance, full-featured text search engine based off of lucene in C++" -HOMEPAGE="https://clucene.sourceforge.net" -SRC_URI="mirror://sourceforge/clucene/${MY_P}.tar.gz" - -LICENSE="|| ( Apache-2.0 LGPL-2.1 )" -SLOT="1" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" - -IUSE="debug doc static-libs" - -BDEPEND=" - doc? ( >=app-doc/doxygen-1.4.2 ) -" - -RESTRICT="test" - -DOCS=(AUTHORS ChangeLog README README.PACKAGE REQUESTS) - -S="${WORKDIR}/${MY_PN}-${PV}" - -PATCHES=( - "${FILESDIR}/${P}-fix-clang.patch" - "${FILESDIR}/${P}-contrib.patch" - "${FILESDIR}/${P}-pkgconfig.patch" - "${FILESDIR}/${P}-gcc6.patch" - "${FILESDIR}/${P}-gmtime.patch" - "${FILESDIR}/${P}-musl-pthread.patch" - "${FILESDIR}/${P}-libcxx.patch" -) - -src_prepare() { - cmake_src_prepare - - # patch out installing bundled boost headers, we build against system one - sed -i \ - -e '/ADD_SUBDIRECTORY (src\/ext)/d' \ - CMakeLists.txt || die - rm -rf src/ext || die -} - -src_configure() { - # Disabled threads: see upstream bug - # https://sourceforge.net/p/clucene/bugs/197/ - local mycmakeargs=( - -DENABLE_ASCII_MODE=OFF - -DENABLE_PACKAGING=OFF - -DDISABLE_MULTITHREADING=OFF - -DBUILD_CONTRIBS_LIB=ON - "-DLIB_DESTINATION=${EPREFIX}/usr/$(get_libdir)" - -DENABLE_DEBUG=$(usex debug) - -DENABLE_CLDOCS=$(usex doc) - -DBUILD_STATIC_LIBRARIES=$(usex static-libs) - ) - - cmake_src_configure -} diff --git a/dev-cpp/clucene/clucene-2.3.3.4-r9.ebuild b/dev-cpp/clucene/clucene-2.3.3.4-r9.ebuild new file mode 100644 index 000000000000..656750220d5b --- /dev/null +++ b/dev-cpp/clucene/clucene-2.3.3.4-r9.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MY_PN="${PN}"-core +MY_P="${MY_PN}"-"${PV}" + +inherit cmake + +DESCRIPTION="High-performance, full-featured text search engine based off of lucene in C++" +HOMEPAGE="https://clucene.sourceforge.net" +SRC_URI="mirror://sourceforge/clucene/${MY_P}.tar.gz" + +LICENSE="|| ( Apache-2.0 LGPL-2.1 )" +SLOT="1" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" + +IUSE="debug doc static-libs" + +BDEPEND=" + doc? ( >=app-doc/doxygen-1.4.2 ) +" + +RESTRICT="test" + +DOCS=(AUTHORS ChangeLog README README.PACKAGE REQUESTS) + +S="${WORKDIR}/${MY_PN}-${PV}" + +PATCHES=( + "${FILESDIR}/${P}-fix-clang.patch" + "${FILESDIR}/${P}-contrib.patch" + "${FILESDIR}/${P}-pkgconfig.patch" + "${FILESDIR}/${P}-gcc6.patch" + "${FILESDIR}/${P}-gmtime.patch" + "${FILESDIR}/${P}-musl-pthread.patch" + "${FILESDIR}/${P}-libcxx.patch" + "${FILESDIR}/${P}-fix-binary-function.patch" +) + +src_prepare() { + cmake_src_prepare + + # patch out installing bundled boost headers, we build against system one + sed -i \ + -e '/ADD_SUBDIRECTORY (src\/ext)/d' \ + CMakeLists.txt || die + rm -rf src/ext || die +} + +src_configure() { + # Disabled threads: see upstream bug + # https://sourceforge.net/p/clucene/bugs/197/ + local mycmakeargs=( + -DENABLE_ASCII_MODE=OFF + -DENABLE_PACKAGING=OFF + -DDISABLE_MULTITHREADING=OFF + -DBUILD_CONTRIBS_LIB=ON + "-DLIB_DESTINATION=${EPREFIX}/usr/$(get_libdir)" + -DENABLE_DEBUG=$(usex debug) + -DENABLE_CLDOCS=$(usex doc) + -DBUILD_STATIC_LIBRARIES=$(usex static-libs) + ) + + cmake_src_configure +} diff --git a/dev-cpp/clucene/files/clucene-2.3.3.4-fix-binary-function.patch b/dev-cpp/clucene/files/clucene-2.3.3.4-fix-binary-function.patch new file mode 100644 index 000000000000..dbcff1bb1169 --- /dev/null +++ b/dev-cpp/clucene/files/clucene-2.3.3.4-fix-binary-function.patch @@ -0,0 +1,199 @@ +Replace std::binary_function with typedefs (deprecated in c++11 and removed in c++17). +Bug: https://bugs.gentoo.org/869170 +--- a/src/core/CLucene/index/_Term.h ++++ b/src/core/CLucene/index/_Term.h +@@ -13,9 +13,12 @@ + CL_NS_DEF(index) + + +-class Term_Equals:public CL_NS_STD(binary_function) ++class Term_Equals + { + public: ++ typedef const Term* first_argument_type; ++ typedef const Term* second_argument_type; ++ typedef bool result_type; + bool operator()( const Term* val1, const Term* val2 ) const{ + return val1->equals(val2); + } +--- a/src/core/CLucene/search/BooleanQuery.cpp ++++ b/src/core/CLucene/search/BooleanQuery.cpp +@@ -25,9 +25,12 @@ CL_NS_USE(index) + CL_NS_USE(util) + CL_NS_DEF(search) + +- class BooleanClause_Compare:public CL_NS_STD(binary_function) ++ class BooleanClause_Compare + { + public: ++ typedef const BooleanClause* first_argument_type; ++ typedef const BooleanClause* second_argument_type; ++ typedef bool result_type; + bool operator()( const BooleanClause* val1, const BooleanClause* val2 ) const { + return val1->equals(val2); + } +--- a/src/core/CLucene/search/MultiPhraseQuery.cpp ++++ b/src/core/CLucene/search/MultiPhraseQuery.cpp +@@ -377,9 +377,12 @@ TCHAR* MultiPhraseQuery::toString(const TCHAR* f) const { + return buffer.giveBuffer(); + } + +-class TermArray_Equals:public CL_NS_STD(binary_function) ++class TermArray_Equals + { + public: ++ typedef const Term** first_argument_type; ++ typedef const Term** second_argument_type; ++ typedef bool result_type; + bool operator()( CL_NS(util)::ArrayBase* val1, CL_NS(util)::ArrayBase* val2 ) const{ + if ( val1->length != val2->length ) + return false; +--- a/src/core/CLucene/util/Equators.h ++++ b/src/core/CLucene/util/Equators.h +@@ -22,21 +22,30 @@ CL_NS_DEF(util) + /** @internal */ + class CLUCENE_INLINE_EXPORT Equals{ + public: +- class CLUCENE_INLINE_EXPORT Int32:public CL_NS_STD(binary_function) ++ class CLUCENE_INLINE_EXPORT Int32 + { + public: ++ typedef const int32_t* first_argument_type; ++ typedef const int32_t* second_argument_type; ++ typedef bool result_type; + bool operator()( const int32_t val1, const int32_t val2 ) const; + }; + +- class CLUCENE_INLINE_EXPORT Char:public CL_NS_STD(binary_function) ++ class CLUCENE_INLINE_EXPORT Char + { + public: ++ typedef const char* first_argument_type; ++ typedef const char* second_argument_type; ++ typedef bool result_type; + bool operator()( const char* val1, const char* val2 ) const; + }; + #ifdef _UCS2 +- class CLUCENE_INLINE_EXPORT WChar: public CL_NS_STD(binary_function) ++ class CLUCENE_INLINE_EXPORT WChar + { + public: ++ typedef const wchar_t* first_argument_type; ++ typedef const wchar_t* second_argument_type; ++ typedef bool result_type; + bool operator()( const wchar_t* val1, const wchar_t* val2 ) const; + }; + class CLUCENE_INLINE_EXPORT TChar: public WChar{ +@@ -48,9 +57,12 @@ public: + + + template +- class CLUCENE_INLINE_EXPORT Void:public CL_NS_STD(binary_function) ++ class CLUCENE_INLINE_EXPORT Void + { + public: ++ typedef const void* first_argument_type; ++ typedef const void* second_argument_type; ++ typedef bool result_type; + bool operator()( _cl* val1, _cl* val2 ) const{ + return val1==val2; + } +--- a/src/core/CLucene/util/_Arrays.h ++++ b/src/core/CLucene/util/_Arrays.h +@@ -124,12 +124,14 @@ CL_NS_DEF(util) + + template +- class CLListEquals: +- public CL_NS_STD(binary_function) ++ class CLListEquals + { + typedef typename class1::const_iterator _itr1; + typedef typename class2::const_iterator _itr2; + public: ++ typedef class1* first_argument_type; ++ typedef class2* second_argument_type; ++ typedef bool result_type; + CLListEquals(){ + } + bool equals( class1* val1, class2* val2 ) const{ +--- a/src/test/index/TestTermVectorsReader.cpp ++++ b/src/test/index/TestTermVectorsReader.cpp +@@ -93,17 +93,21 @@ CL_NS_USE(util); + } + }; + +- struct MyTCharCompare : +- public std::binary_function ++ struct MyTCharCompare + { ++ typedef const TCHAR* first_argument_type; ++ typedef const TCHAR* second_argument_type; ++ typedef bool result_type; + bool operator () (const TCHAR* v1, const TCHAR* v2) const { + return _tcscmp(v1, v2) < 0; + } + }; + +- struct TestTokenCompare : +- public std::binary_function ++ struct TestTokenCompare + { ++ typedef const TestToken* first_argument_type; ++ typedef const TestToken* second_argument_type; ++ typedef bool result_type; + bool operator () (const TestToken* t1, const TestToken* t2) const { + return t1->pos < t2->pos; + } +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -45,6 +45,14 @@ ELSE(NOT CMAKE_BUILD_TYPE) + MESSAGE( "Compiling as ${CMAKE_BUILD_TYPE}" ) + ENDIF(NOT CMAKE_BUILD_TYPE) + ++IF(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ SET(CMAKE_COMPILER_IS_CLANG 1) ++ENDIF(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ ++IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ SET(CMAKE_COMPILER_IS_CLANGXX 1) ++ENDIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ + OPTION(ENABLE_DEBUG + "enable debug support" + OFF) +@@ -62,14 +70,14 @@ OPTION(ENABLE_ASCII_MODE + OFF) + + SET(ENABLE_ANSI_MODE OFF) +-IF(CMAKE_COMPILER_IS_GNUCXX) ++IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX) + SET(ENABLE_ANSI_MODE ON) + + #exceptions: + IF(MINGW OR CYGWIN) + SET(ENABLE_ANSI_MODE OFF) + ENDIF(MINGW OR CYGWIN) +-ENDIF(CMAKE_COMPILER_IS_GNUCXX) ++ENDIF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX) + + OPTION(ENABLE_ANSI_MODE + "compile with -ansi flag" +@@ -109,7 +117,7 @@ OPTION(ENABLE_COMPILE_TESTS + + #check flags... + INCLUDE (TestCXXAcceptsFlag) +-IF ( CMAKE_COMPILER_IS_GNUCC ) ++IF ( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG ) + CHECK_CXX_ACCEPTS_FLAG(-pg GccFlagPg) + IF ( GccFlagPg ) + OPTION(ENABLE_GPROF +@@ -131,7 +139,7 @@ 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 OR CMAKE_COMPILER_IS_CLANG) + + + #Single output directory for building all executables and libraries. -- cgit v1.2.3