diff options
author | Miroslav Šulc <fordfrog@gentoo.org> | 2025-01-05 12:05:17 +0100 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2025-01-05 12:05:32 +0100 |
commit | d9f9cf5391a70beb6ccd898209330cbcfa606a7c (patch) | |
tree | 657ebf4d8d1c3a87d9e20912afb4e2c98a93d2fe /sci-libs/flann | |
parent | dev-ruby/dry-logic: add 1.6.0 (diff) | |
download | gentoo-d9f9cf5391a70beb6ccd898209330cbcfa606a7c.tar.gz gentoo-d9f9cf5391a70beb6ccd898209330cbcfa606a7c.tar.bz2 gentoo-d9f9cf5391a70beb6ccd898209330cbcfa606a7c.zip |
sci-libs/flann: fixed (probably) boost 1.87 issues
Bug: https://bugs.gentoo.org/946465
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'sci-libs/flann')
-rw-r--r-- | sci-libs/flann/files/flann-1.9.1-boost-1.87.patch | 64 | ||||
-rw-r--r-- | sci-libs/flann/flann-1.9.1-r7.ebuild | 95 |
2 files changed, 159 insertions, 0 deletions
diff --git a/sci-libs/flann/files/flann-1.9.1-boost-1.87.patch b/sci-libs/flann/files/flann-1.9.1-boost-1.87.patch new file mode 100644 index 000000000000..e18604528684 --- /dev/null +++ b/sci-libs/flann/files/flann-1.9.1-boost-1.87.patch @@ -0,0 +1,64 @@ +diff --git a/src/cpp/flann/mpi/client.h b/src/cpp/flann/mpi/client.h +index 19a410c..b7df70e 100644 +--- a/src/cpp/flann/mpi/client.h ++++ b/src/cpp/flann/mpi/client.h +@@ -45,17 +45,16 @@ class Client + public: + Client(const std::string& host, const std::string& service) + { +- tcp::resolver resolver(io_service_); +- tcp::resolver::query query(tcp::v4(), host, service); +- iterator_ = resolver.resolve(query); ++ tcp::resolver resolver(io_context_); ++ results_ = resolver.resolve(host, service); + } + + + template<typename ElementType, typename DistanceType> + void knnSearch(const flann::Matrix<ElementType>& queries, flann::Matrix<int>& indices, flann::Matrix<DistanceType>& dists, int knn, const SearchParams& params) + { +- tcp::socket sock(io_service_); +- sock.connect(*iterator_); ++ tcp::socket sock(io_context_); ++ boost::asio::connect(sock, results_); + + Request<ElementType> req; + req.nn = knn; +@@ -78,8 +77,8 @@ public: + + + private: +- boost::asio::io_service io_service_; +- tcp::resolver::iterator iterator_; ++ boost::asio::io_context io_context_; ++ tcp::resolver::results_type results_; + }; + + +diff --git a/src/cpp/flann/mpi/server.h b/src/cpp/flann/mpi/server.h +index 2caab43..a90538e 100644 +--- a/src/cpp/flann/mpi/server.h ++++ b/src/cpp/flann/mpi/server.h +@@ -119,18 +119,18 @@ public: + void run() + { + boost::mpi::communicator world; +- boost::shared_ptr<boost::asio::io_service> io_service; ++ boost::shared_ptr<boost::asio::io_context> io_context; + boost::shared_ptr<tcp::acceptor> acceptor; + + if (world.rank()==0) { +- io_service.reset(new boost::asio::io_service()); +- acceptor.reset(new tcp::acceptor(*io_service, tcp::endpoint(tcp::v4(), port_))); ++ io_context.reset(new boost::asio::io_context()); ++ acceptor.reset(new tcp::acceptor(*io_context, tcp::endpoint(tcp::v4(), port_))); + std::cout << "Start listening for queries...\n"; + } + for (;;) { + socket_ptr sock; + if (world.rank()==0) { +- sock.reset(new tcp::socket(*io_service)); ++ sock.reset(new tcp::socket(*io_context)); + acceptor->accept(*sock); + std::cout << "Accepted connection\n"; + } diff --git a/sci-libs/flann/flann-1.9.1-r7.ebuild b/sci-libs/flann/flann-1.9.1-r7.ebuild new file mode 100644 index 000000000000..8bd2008b221d --- /dev/null +++ b/sci-libs/flann/flann-1.9.1-r7.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake cuda flag-o-matic toolchain-funcs + +DESCRIPTION="Fast approximate nearest neighbor searches in high dimensional spaces" +HOMEPAGE="https://github.com/mariusmuja/flann" +SRC_URI="https://github.com/mariusmuja/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc ~x86 ~amd64-linux ~x86-linux" +IUSE="cuda doc examples mpi octave openmp" + +BDEPEND=" + app-arch/unzip + doc? ( dev-tex/latex2html ) + mpi? ( app-admin/chrpath ) +" +DEPEND=" + app-arch/lz4:= + cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 ) + mpi? ( + dev-libs/boost:=[mpi] + sci-libs/hdf5:=[mpi] + ) + !mpi? ( !sci-libs/hdf5[mpi] ) + octave? ( >=sci-mathematics/octave-3.6.4-r1:= ) +" +RDEPEND="${DEPEND}" +# TODO: +# readd dependencies for test suite, +# requires multiple ruby dependencies + +PATCHES=( + "${FILESDIR}"/${P}-cmake-3.11{,-1}.patch # bug 678030 + "${FILESDIR}"/${P}-cuda-9.patch + "${FILESDIR}"/${P}-system-lz4.patch # bug 681898 + "${FILESDIR}"/${P}-system-lz4-pkgconfig.patch # bug 827263 + "${FILESDIR}"/${P}-build-oct-rather-than-mex-files-for-octave.patch # bug 830424 + "${FILESDIR}"/${P}-boost-1.87.patch # bug 946465 +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_prepare() { + # bug #302621 + use mpi && export CXX=mpicxx + + use cuda && cuda_src_prepare + + cmake_src_prepare +} + +src_configure() { + append-cxxflags -std=c++11 + + # python bindings are split off into dev-python/pyflann + local mycmakeargs=( + -DBUILD_C_BINDINGS=ON + -DBUILD_PYTHON_BINDINGS=OFF + -DPYTHON_EXECUTABLE= + -DBUILD_CUDA_LIB=$(usex cuda) + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_DOC=$(usex doc) + -DBUILD_TESTS=OFF + -DBUILD_MATLAB_BINDINGS=$(usex octave) + -DUSE_MPI=$(usex mpi) + -DUSE_OPENMP=$(usex openmp) + ) + use cuda && mycmakeargs+=( + -DCUDA_NVCC_FLAGS="${NVCCFLAGS} --linker-options \"-arsch\"" + ) + use doc && mycmakeargs+=( -DDOCDIR=share/doc/${PF} ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + find "${D}" -name 'lib*.a' -delete || die + + # bug 795828; mpicc volunterely adds some runpaths + if use mpi; then + chrpath -d "${ED}"/usr/bin/flann_mpi_{client,server} || die + fi +} |