sci-libs/libsvm: add 3.37

Closes: https://bugs.gentoo.org/952674
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2026-04-07 04:44:17 +01:00
parent eeb86ed337
commit fdf5bb2285
3 changed files with 156 additions and 0 deletions
+1
View File
@@ -1 +1,2 @@
DIST libsvm-3.3.tar.gz 910001 BLAKE2B 69364210998e496e333c6a87a66ad3f1515f2b3e98fe7bc579e8aee6d4df0473a4282f979d4f7d1729ce7080fd8b009ce830caab0ac37b57fafff0d2686e86e0 SHA512 705cdebffce0d9ea053cf51b2bfd46303d306b7a2c34ee46065f19e1227459fbdbe6fde6e4769935a0c225da831ec137fb9c0c28fbc2efa06724a94bdd76500d
DIST libsvm-3.37.tar.gz 943582 BLAKE2B 6b085d8473242d35d7416baecba887fedb432a803b47e99dccee9f46859d6e22f63fc487df3448fd535aa8673b22d529bdb28fc23a53326eb74361dd72431ec5 SHA512 c5ecee6e46dc4b16995af16ab90330aa0804155787301fb6046d790828634d809b90f85675d252020ae7ca60ca2c19cd9eaa3ac53ac50f2674d76ac2b12001cc
@@ -0,0 +1,44 @@
diff --git a/Makefile b/Makefile
index 1bc5d4e..a8a46a9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,28 +1,30 @@
CXX ?= g++
-CFLAGS = -Wall -Wconversion -O3 -fPIC
+CFLAGS ?= -Wall -Wconversion
+CXXFLAGS ?= $(CFLAGS)
SHVER = 4
OS = $(shell uname)
ifeq ($(OS),Darwin)
- SHARED_LIB_FLAG = -dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)
+ SHARED_LIB_FLAG = -dynamiclib -Wl,-install_name,libsvm.so.$(SHVER) -fPIC
else
- SHARED_LIB_FLAG = -shared -Wl,-soname,libsvm.so.$(SHVER)
+ SHARED_LIB_FLAG = -shared -Wl,-soname,libsvm.so.$(SHVER) -fPIC
endif
# Uncomment the following lines to enable parallelization with OpenMP
# CFLAGS += -fopenmp
# SHARED_LIB_FLAG += -fopenmp
-all: svm-train svm-predict svm-scale
+all: svm-train svm-predict svm-scale lib
lib: svm.o
- $(CXX) $(SHARED_LIB_FLAG) svm.o -o libsvm.so.$(SHVER)
+ $(CXX) $(LDFLAGS) $(SHARED_LIB_FLAG) svm.o -o libsvm.so.$(SHVER)
+ ln -s libsvm.so.$(SHVER) libsvm.so
svm-predict: svm-predict.c svm.o
- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
+ $(CXX) $(CFLAGS) $(LDFLAGS) svm-predict.c svm.o -o svm-predict -lm
svm-train: svm-train.c svm.o
- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm
+ $(CXX) $(CFLAGS) $(LDFLAGS) svm-train.c svm.o -o svm-train -lm
svm-scale: svm-scale.c
- $(CXX) $(CFLAGS) svm-scale.c -o svm-scale
+ $(CXX) $(CFLAGS) $(LDFLAGS) svm-scale.c -o svm-scale
svm.o: svm.cpp svm.h
- $(CXX) $(CFLAGS) -c svm.cpp
+ $(CXX) $(CXXFLAGS) -c svm.cpp
clean:
rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)
+111
View File
@@ -0,0 +1,111 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
inherit java-pkg-opt-2 python-r1 toolchain-funcs
DESCRIPTION="Library for Support Vector Machines"
HOMEPAGE="https://www.csie.ntu.edu.tw/~cjlin/libsvm/"
SRC_URI="https://www.csie.ntu.edu.tw/~cjlin/libsvm/${PN}-${PV/0}.tar.gz"
S="${WORKDIR}/${PN}-${PV/0}"
LICENSE="BSD"
SLOT="0/2"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="java openmp python tools"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
DEPEND="
java? ( >=virtual/jdk-1.8:* )
python? ( ${PYTHON_DEPS} )
"
RDEPEND="
java? ( >=virtual/jre-1.8:* )
python? ( ${PYTHON_DEPS} )
tools? ( sci-visualization/gnuplot )
"
PATCHES=(
"${FILESDIR}"/${PN}-3.37-makefile.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
default
java-pkg_clean
sed -i -e "s@\.\./@${EPREFIX}/usr/bin/@g" tools/*.py \
|| die "Failed to fix paths in python files"
sed -i -e "s|./grid.py|${EPREFIX}/usr/bin/svm-grid|g" tools/*.py \
|| die "Failed to fix paths for svm-grid"
sed -i -e 's/grid.py/svm-grid/g' tools/grid.py \
|| die "Failed to rename grid.py to svm-grid"
}
src_configure() {
use java && export JAVAC_FLAGS="$(java-pkg_javac-args)"
if use openmp; then
export OPENMP_CFLAGS="-fopenmp -DOPENMP"
export OPENMP_LIBS="-fopenmp"
fi
tc-export CXX CC
}
src_compile() {
default
use java && emake -C java
}
src_install() {
dobin svm-train svm-predict svm-scale
dolib.so *.so*
doheader svm.h
DOCS=( README )
if use tools; then
local t
for t in tools/*.py; do
python_foreach_impl python_newscript ${t} svm-$(basename ${t} .py)
done
mv tools/README{,.tools} || die
DOCS+=( tools/README.tools )
docinto examples
dodoc heart_scale
dodoc -r svm-toy
docompress -x /usr/share/doc/${PF}/examples
fi
if use python ; then
installation() {
touch python/__init__.py || die
python_moduleinto libsvm
python_domodule python/*.py
}
python_foreach_impl installation
mv python/README{,.python} || die
DOCS+=( python/README.python )
fi
HTML_DOCS=( FAQ.html )
if use java; then
java-pkg_dojar java/libsvm.jar
HTML_DOCS+=( java/test_applet.html )
fi
einstalldocs
}