3 %bcond_without octave # Octave (MATLAB) module
4 %bcond_without python # Python (any) interface
5 %bcond_without python2 # Python 2.x interface
6 %bcond_without python3 # Python 3.x interface
10 %undefine with_python3
12 Summary: LIBLINEAR - a Library for Large Linear Classification
13 Summary(pl.UTF-8): LIBLINEAR - biblioteka do liniowej klasyfikacji dużych danych
19 Source0: https://www.csie.ntu.edu.tw/~cjlin/liblinear/%{name}-%{version}.tar.gz
20 # Source0-md5: 5f332f5f965d4ccb2c35a594abd6ec1d
21 Patch0: %{name}-python.patch
22 Patch1: %{name}-make.patch
23 Patch2: %{name}-matlab.patch
24 URL: https://www.csie.ntu.edu.tw/~cjlin/liblinear/
25 BuildRequires: blas-devel
26 BuildRequires: libstdc++-devel
27 %{?with_octave:BuildRequires: octave-devel}
28 %{?with_python2:BuildRequires: python-devel >= 1:2.7}
29 %{?with_python3:BuildRequires: python3-devel >= 1:3.5}
30 BuildRequires: rpm-pythonprov
31 BuildRequires: rpmbuild(macros) >= 1.714
32 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 %define octave_oct_dir %(octave-config --oct-site-dir)
37 LIBLINEAR is a simple package for solving large-scale regularized
38 linear classification and regression. It currently supports:
39 - L2-regularized logistic regression/L2-loss support vector
40 classification/L1-loss support vector classification
41 - L1-regularized L2-loss support vector classification/L1-regularized
43 - L2-regularized L2-loss support vector regression/L1-loss support
46 %description -l pl.UTF-8
47 LIBLINEAR to prosty pakiet do rozwiązywania zagadnień regularnej
48 klasyfikacji liniowej i regresji. Obecnie obsługuje:
49 - regresję logistyczną z regularyzacją L2
50 - regresję logistyczną z regularyzacją L1
51 - regresję wektorową z regularyzacją L2
54 Summary: Header files for LIBLINEAR library
55 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LIBLINEAR
56 Group: Development/Libraries
57 Requires: %{name} = %{version}-%{release}
60 Header files for LIBLINEAR library.
62 %description devel -l pl.UTF-8
63 Pliki nagłówkowe biblioteki LIBLINEAR.
65 %package -n octave-liblinear
66 Summary: MATLAB/Octave interface for LIBLINEAR library
67 Summary(pl.UTF-8): Interfejs MATLAB-a/Octave do biblioteki LIBLINEAR
71 %description -n octave-liblinear
72 MATLAB/Octave interface for LIBLINEAR library.
74 %description -n octave-liblinear -l pl.UTF-8
75 Interfejs MATLAB-a/Octave do biblioteki LIBLINEAR.
77 %package -n python-liblinear
78 Summary: Python 2 interface for LIBLINEAR library
79 Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki LIBLINEAR
80 Group: Libraries/Python
81 Requires: %{name} = %{version}-%{release}
82 Requires: python-libs >= 1:2.7
85 %description -n python-liblinear
86 Python 2 interface for LIBLINEAR library.
88 %description -n python-liblinear -l pl.UTF-8
89 Interfejs Pythona 2 do biblioteki LIBLINEAR.
91 %package -n python3-liblinear
92 Summary: Python 3 interface for LIBLINEAR library
93 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki LIBLINEAR
94 Group: Libraries/Python
95 Requires: %{name} = %{version}-%{release}
96 Requires: python3-libs >= 1:3.5
99 %description -n python3-liblinear
100 Python 3 interface for LIBLINEAR library.
102 %description -n python3-liblinear -l pl.UTF-8
103 Interfejs Pythona 3 do biblioteki LIBLINEAR.
115 CFLAGS="%{rpmcflags} -fPIC -Wall" \
119 %{__make} -C matlab \
122 CFLAGS="%{rpmcflags} -fPIC -I.. -I/usr/include/octave -Wall" \
141 rm -rf $RPM_BUILD_ROOT
142 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}}
144 install liblinear.so.* $RPM_BUILD_ROOT%{_libdir}
145 ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/liblinear.so.*) $RPM_BUILD_ROOT%{_libdir}/liblinear.so
146 cp -p linear.h newton.h $RPM_BUILD_ROOT%{_includedir}
147 install train $RPM_BUILD_ROOT%{_bindir}/liblinear-train
148 install predict $RPM_BUILD_ROOT%{_bindir}/liblinear-predict
151 install -d $RPM_BUILD_ROOT%{octave_oct_dir}/liblinear
152 install matlab/*.mex $RPM_BUILD_ROOT%{octave_oct_dir}/liblinear
168 rm -rf $RPM_BUILD_ROOT
170 %post -p /sbin/ldconfig
171 %postun -p /sbin/ldconfig
174 %defattr(644,root,root,755)
175 %doc COPYRIGHT README
176 %attr(755,root,root) %{_bindir}/liblinear-predict
177 %attr(755,root,root) %{_bindir}/liblinear-train
178 %attr(755,root,root) %{_libdir}/liblinear.so.5
181 %defattr(644,root,root,755)
182 %attr(755,root,root) %{_libdir}/liblinear.so
183 %{_includedir}/linear.h
184 %{_includedir}/newton.h
187 %files -n octave-liblinear
188 %defattr(644,root,root,755)
189 %dir %{octave_oct_dir}/liblinear
190 %attr(755,root,root) %{octave_oct_dir}/liblinear/libsvmread.mex
191 %attr(755,root,root) %{octave_oct_dir}/liblinear/libsvmwrite.mex
192 %attr(755,root,root) %{octave_oct_dir}/liblinear/predict.mex
193 %attr(755,root,root) %{octave_oct_dir}/liblinear/train.mex
197 %files -n python-liblinear
198 %defattr(644,root,root,755)
200 %{py_sitescriptdir}/liblinear
201 %{py_sitescriptdir}/liblinear_official-%{version}.0-py*.egg-info
205 %files -n python3-liblinear
206 %defattr(644,root,root,755)
208 %{py3_sitescriptdir}/liblinear
209 %{py3_sitescriptdir}/liblinear_official-%{version}.0-py*.egg-info