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>

Reply via email to