commit: b9cbcfed388f333529cb32b2ce8eaaa2ff9c8b17 Author: Yiyang Wu <xgreenlandforwyy <AT> gmail <DOT> com> AuthorDate: Fri Dec 13 06:41:12 2024 +0000 Commit: Nowa Ammerlaan <nowa <AT> gentoo <DOT> org> CommitDate: Mon Mar 24 12:43:44 2025 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=b9cbcfed
sci-libs/lightgbm: new package, add 4.5.0 Signed-off-by: Yiyang Wu <xgreenlandforwyy <AT> gmail.com> Signed-off-by: Nowa Ammerlaan <nowa <AT> gentoo.org> .../lightgbm/files/lightgbm-4.5.0-eigen3.patch | 13 ++++++ .../lightgbm/files/lightgbm-4.5.0-libdir.patch | 36 ++++++++++++++++ sci-libs/lightgbm/lightgbm-4.5.0.ebuild | 49 ++++++++++++++++++++++ sci-libs/lightgbm/metadata.xml | 13 ++++++ 4 files changed, 111 insertions(+) diff --git a/sci-libs/lightgbm/files/lightgbm-4.5.0-eigen3.patch b/sci-libs/lightgbm/files/lightgbm-4.5.0-eigen3.patch new file mode 100644 index 000000000..5ada8179f --- /dev/null +++ b/sci-libs/lightgbm/files/lightgbm-4.5.0-eigen3.patch @@ -0,0 +1,13 @@ +Index: LightGBM/src/treelearner/linear_tree_learner.cpp +=================================================================== +--- LightGBM.orig/src/treelearner/linear_tree_learner.cpp ++++ LightGBM/src/treelearner/linear_tree_learner.cpp +@@ -4,7 +4,7 @@ + */ + #include "linear_tree_learner.h" + +-#include <Eigen/Dense> ++#include "eigen3/Eigen/Dense" + + #include <algorithm> + diff --git a/sci-libs/lightgbm/files/lightgbm-4.5.0-libdir.patch b/sci-libs/lightgbm/files/lightgbm-4.5.0-libdir.patch new file mode 100644 index 000000000..42ae8d05a --- /dev/null +++ b/sci-libs/lightgbm/files/lightgbm-4.5.0-libdir.patch @@ -0,0 +1,36 @@ +From 9512c085f7a453a40ce85ce86233c5c6d32c7aaf Mon Sep 17 00:00:00 2001 +From: Yiyang Wu <[email protected]> +Date: Fri, 8 Nov 2024 20:23:00 +0800 +Subject: [PATCH] Use cmake default install location + +Install 64bit dynamic and static libs to lib is not allowed in some +distributions + +Reference: https://cmake.org/cmake/help/latest/command/install.html#signatures +Signed-off-by: Yiyang Wu <[email protected]> +--- + CMakeLists.txt | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 183ef62b..b558b67b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -829,13 +829,7 @@ if(APPLE AND USE_OPENMP AND NOT BUILD_STATIC_LIB) + ) + endif() + +-install( +- TARGETS _lightgbm +- RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin +- LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +- ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +-) +- ++install( TARGETS _lightgbm ) + if(INSTALL_HEADERS) + install( + DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM +-- +2.47.0 + diff --git a/sci-libs/lightgbm/lightgbm-4.5.0.ebuild b/sci-libs/lightgbm/lightgbm-4.5.0.ebuild new file mode 100644 index 000000000..0e9ec540e --- /dev/null +++ b/sci-libs/lightgbm/lightgbm-4.5.0.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake cuda + +DESCRIPTION="Gradient boosting framework (GBM) based on decision tree algorithms" +HOMEPAGE="https://github.com/microsoft/LightGBM" +SRC_URI="https://github.com/microsoft/LightGBM/archive/refs/tags/v${PV}.tar.gz -> LightGBM-${PV}.tar.gz + https://github.com/boostorg/compute/archive/36350b7d.tar.gz -> compute-36350b7d.tar.gz + https://github.com/google/double-conversion/archive/f4cb2384.tar.gz -> double-conversion-f4cb2384.tar.gz + https://github.com/lemire/fast_double_parser/archive/efec0353.tar.gz -> fast_double_parser-efec0353.tar.gz + https://github.com/fmtlib/fmt/archive/f5e54359.tar.gz -> fmt-f5e54359.tar.gz" +S="${WORKDIR}/LightGBM-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="cuda" + +RDEPEND="cuda? ( >=dev-util/nvidia-cuda-toolkit-11 )" +DEPEND=">=dev-cpp/eigen-3.4" + +PATCHES=( "${FILESDIR}"/${PN}-4.5.0-eigen3.patch + "${FILESDIR}"/${PN}-4.5.0-libdir.patch ) + +src_prepare() { + rmdir external_libs/compute && ln -sv "${WORKDIR}"/compute-36350b7de849300bd3d72a05d8bf890ca405a014 external_libs/compute || die + rmdir external_libs/fast_double_parser/benchmarks/dependencies/double-conversion && ln -sv "${WORKDIR}"/double-conversion-f4cb2384efa55dee0e6652f8674b05763441ab09 external_libs/fast_double_parser/benchmarks/dependencies/double-conversion || die + rmdir external_libs/fast_double_parser && ln -sv "${WORKDIR}"/fast_double_parser-efec03532ef65984786e5e32dbc81f6e6a55a115 external_libs/fast_double_parser || die + rmdir external_libs/fmt && ln -sv "${WORKDIR}"/fmt-f5e54359df4c26b6230fc61d38aa294581393084 external_libs/fmt || die + cmake_src_prepare + use cuda && cuda_src_prepare +} + +src_configure() { + local mycmakeargs=() + if use cuda; then + # Host compiler should also be nvcc compatible, + # or error occur in the final linking + # CMakeLists also ensures that, so configure fails if we just set CMAKE_CUDA_FLAGS + PATH="$(cuda_gccdir):${PATH}" + mycmakeargs+=( + -DUSE_CUDA=ON + ) + fi + cmake_src_configure +} diff --git a/sci-libs/lightgbm/metadata.xml b/sci-libs/lightgbm/metadata.xml new file mode 100644 index 000000000..0edac4ac1 --- /dev/null +++ b/sci-libs/lightgbm/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'> +<pkgmetadata> + <maintainer type="person"> + <email>[email protected]</email> + </maintainer> + <maintainer type="person"> + <email>[email protected]</email> + </maintainer> + <upstream> + <remote-id type="github">microsoft/LightGBM</remote-id> + </upstream> +</pkgmetadata>
