3 %bcond_without java # Java library
4 %bcond_without octave # Octave (MATLAB) module
5 %bcond_without python # Python (any) interface
6 %bcond_without python2 # Python 2.x interface
7 %bcond_without python3 # Python 3.x interface
10 %undefine with_python2
11 %undefine with_python3
13 Summary: LIBSVM - simple, easy-to-use and efficient software for SVM classification and regression
14 Summary(pl.UTF-8): LIBSVM - proste, łatwe w użyciu i wydajne oprogramowanie do klasyfikacji i regresji SVM
20 Source0: https://www.csie.ntu.edu.tw/~cjlin/libsvm/%{name}-%{version}.tar.gz
21 # Source0-md5: 818aa0201dc9d938846a6394653915f4
22 Patch0: %{name}-python.patch
23 Patch1: %{name}-make.patch
24 URL: https://www.csie.ntu.edu.tw/~cjlin/libsvm/
25 %{?with_java:BuildRequires: jdk >= 1.7}
26 BuildRequires: libstdc++-devel
27 %{?with_java:BuildRequires: m4}
28 %{?with_octave:BuildRequires: octave-devel}
29 %{?with_python2:BuildRequires: python-devel >= 1:2.6}
30 %{?with_python3:BuildRequires: python3-devel >= 1:3.2}
31 BuildRequires: rpm-pythonprov
32 BuildRequires: rpmbuild(macros) >= 1.507
33 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35 %define octave_oct_dir %(octave-config --oct-site-dir)
38 Libsvm is a simple, easy-to-use, and efficient software for SVM
39 classification and regression. It solves C-SVM classification, nu-SVM
40 classification, one-class-SVM, epsilon-SVM regression, and nu-SVM
41 regression. It also provides an automatic model selection tool for
44 %description -l pl.UTF-8
45 Libsvm tio proste, łatwe w użyciu i wydajne oprogramowanie do
46 klasyfikacji i regresji SVM. Rozwiązuje problemy klasyfikacji C-SVM,
47 klasyfikacji nu-SVM, jednoklasowe SVM, regresji epsilon-SVM oraz
48 regresji nu-SVM. Udostępnia także narzędzie do automatycznego wyboru
49 modelu dla klasyfikacji C-SVM.
52 Summary: Header files for LIBSVM library
53 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LIBSVM
54 Group: Development/Libraries
55 Requires: %{name} = %{version}-%{release}
58 Header files for LIBSVM library.
60 %description devel -l pl.UTF-8
61 Pliki nagłówkowe biblioteki LIBSVM.
63 %package -n java-libsvm
64 Summary: Java interface for LIBSVM library
65 Summary(pl.UTF-8): Interfejs Javy do biblioteki LIBSVM
66 Group: Libraries/Python
69 %description -n java-libsvm
70 Java interface for LIBSVM library.
72 %description -n java-libsvm -l pl.UTF-8
73 Interfejs Javy do biblioteki LIBSVM.
75 %package -n octave-libsvm
76 Summary: MATLAB/Octave interface for LIBSVM library
77 Summary(pl.UTF-8): Interfejs MATLAB-a/Octave do biblioteki LIBSVM
81 %description -n octave-libsvm
82 MATLAB/Octave interface for LIBSVM library.
84 %description -n octave-libsvm -l pl.UTF-8
85 Interfejs MATLAB-a/Octave do biblioteki LIBSVM.
87 %package -n python-libsvm
88 Summary: Python 2 interface for LIBSVM library
89 Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki LIBSVM
90 Group: Libraries/Python
91 Requires: %{name} = %{version}-%{release}
92 Requires: python-libs >= 1:2.6
94 %description -n python-libsvm
95 Python 2 interface for LIBSVM library.
97 %description -n python-libsvm -l pl.UTF-8
98 Interfejs Pythona 2 do biblioteki LIBSVM.
100 %package -n python3-libsvm
101 Summary: Python 3 interface for LIBSVM library
102 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki LIBSVM
103 Group: Libraries/Python
104 Requires: %{name} = %{version}-%{release}
105 Requires: python3-libs >= 1:3.2
107 %description -n python3-libsvm
108 Python 3 interface for LIBSVM library.
110 %description -n python3-libsvm -l pl.UTF-8
111 Interfejs Pythona 3 do biblioteki LIBSVM.
118 # probably it was meant to be shared between liblinear and libsvm interfaces,
119 # but it's impossible to keep in sync at distro level between different
120 # versions of both packages (see python patch for changes in sources)
121 %{__mv} python/{commonutil,svmcommonutil}.py
127 CFLAGS="%{rpmcflags} -fPIC -Wall"
134 %{__make} -C matlab \
137 CFLAGS="%{rpmcflags} -fPIC -I.. -I/usr/include/octave -Wall" \
144 rm -rf $RPM_BUILD_ROOT
145 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}}
147 install libsvm.so.* $RPM_BUILD_ROOT%{_libdir}
148 ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/libsvm.so.*) $RPM_BUILD_ROOT%{_libdir}/libsvm.so
149 cp -p svm.h $RPM_BUILD_ROOT%{_includedir}
150 install svm-predict svm-scale svm-train $RPM_BUILD_ROOT%{_bindir}
153 install -D java/libsvm.jar $RPM_BUILD_ROOT%{_javadir}/libsvm.jar
157 install -d $RPM_BUILD_ROOT%{octave_oct_dir}/libsvm
158 install matlab/*.mex $RPM_BUILD_ROOT%{octave_oct_dir}/libsvm
162 install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
163 cp -p python/*.py $RPM_BUILD_ROOT%{py_sitescriptdir}
164 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
165 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
170 install -d $RPM_BUILD_ROOT%{py3_sitescriptdir}
171 cp -p python/*.py $RPM_BUILD_ROOT%{py3_sitescriptdir}
172 %py3_comp $RPM_BUILD_ROOT%{py3_sitescriptdir}
173 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitescriptdir}
177 rm -rf $RPM_BUILD_ROOT
179 %post -p /sbin/ldconfig
180 %postun -p /sbin/ldconfig
183 %defattr(644,root,root,755)
184 %doc COPYRIGHT FAQ.html README
185 %attr(755,root,root) %{_bindir}/svm-predict
186 %attr(755,root,root) %{_bindir}/svm-scale
187 %attr(755,root,root) %{_bindir}/svm-train
188 %attr(755,root,root) %{_libdir}/libsvm.so.2
191 %defattr(644,root,root,755)
192 %attr(755,root,root) %{_libdir}/libsvm.so
196 %files -n java-libsvm
197 %defattr(644,root,root,755)
198 %{_javadir}/libsvm.jar
202 %files -n octave-libsvm
203 %defattr(644,root,root,755)
204 %dir %{octave_oct_dir}/libsvm
205 %attr(755,root,root) %{octave_oct_dir}/libsvm/libsvmread.mex
206 %attr(755,root,root) %{octave_oct_dir}/libsvm/libsvmwrite.mex
207 %attr(755,root,root) %{octave_oct_dir}/libsvm/svmpredict.mex
208 %attr(755,root,root) %{octave_oct_dir}/libsvm/svmtrain.mex
212 %files -n python-libsvm
213 %defattr(644,root,root,755)
215 %{py_sitescriptdir}/svm.py[co]
216 %{py_sitescriptdir}/svmcommonutil.py[co]
217 %{py_sitescriptdir}/svmutil.py[co]
221 %files -n python3-libsvm
222 %defattr(644,root,root,755)
224 %{py3_sitescriptdir}/svm.py
225 %{py3_sitescriptdir}/svmcommonutil.py
226 %{py3_sitescriptdir}/svmutil.py
227 %{py3_sitescriptdir}/__pycache__/svm.cpython-*.py[co]
228 %{py3_sitescriptdir}/__pycache__/svmcommonutil.cpython-*.py[co]
229 %{py3_sitescriptdir}/__pycache__/svmutil.cpython-*.py[co]