[packages/liblinear] - updated to 2.45 (new soname, changed python packaging)
qboosh
qboosh at pld-linux.org
Tue Jan 17 22:04:43 CET 2023
commit 3ed7b17062af940540e0ee204581bc9f21fb1824
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue Jan 17 22:05:54 2023 +0100
- updated to 2.45 (new soname, changed python packaging)
liblinear-make.patch | 34 +++++++++++++--------------
liblinear-matlab.patch | 14 +++++------
liblinear-python.patch | 62 ++++++++++++++++++++++++++++++++++++++----------
liblinear.spec | 64 ++++++++++++++++++++++++++------------------------
4 files changed, 106 insertions(+), 68 deletions(-)
---
diff --git a/liblinear.spec b/liblinear.spec
index a75e538..7cc9c72 100644
--- a/liblinear.spec
+++ b/liblinear.spec
@@ -12,12 +12,12 @@
Summary: LIBLINEAR - a Library for Large Linear Classification
Summary(pl.UTF-8): LIBLINEAR - biblioteka do liniowej klasyfikacji dużych danych
Name: liblinear
-Version: 2.30
-Release: 5
+Version: 2.45
+Release: 1
License: BSD
Group: Libraries
Source0: https://www.csie.ntu.edu.tw/~cjlin/liblinear/%{name}-%{version}.tar.gz
-# Source0-md5: 5c807aebd62c3eca72b809d66e1432e8
+# Source0-md5: 28357277645087a39b5d8ac2212eed51
Patch0: %{name}-python.patch
Patch1: %{name}-make.patch
Patch2: %{name}-matlab.patch
@@ -25,10 +25,10 @@ URL: https://www.csie.ntu.edu.tw/~cjlin/liblinear/
BuildRequires: blas-devel
BuildRequires: libstdc++-devel
%{?with_octave:BuildRequires: octave-devel}
-%{?with_python2:BuildRequires: python-devel >= 1:2.6}
-%{?with_python3:BuildRequires: python3-devel >= 1:3.2}
+%{?with_python2:BuildRequires: python-devel >= 1:2.7}
+%{?with_python3:BuildRequires: python3-devel >= 1:3.5}
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.507
+BuildRequires: rpmbuild(macros) >= 1.714
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define octave_oct_dir %(octave-config --oct-site-dir)
@@ -79,7 +79,7 @@ Summary: Python 2 interface for LIBLINEAR library
Summary(pl.UTF-8): Interfejs Pythona 2 do biblioteki LIBLINEAR
Group: Libraries/Python
Requires: %{name} = %{version}-%{release}
-Requires: python-libs >= 1:2.6
+Requires: python-libs >= 1:2.7
BuildArch: noarch
%description -n python-liblinear
@@ -93,7 +93,7 @@ Summary: Python 3 interface for LIBLINEAR library
Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki LIBLINEAR
Group: Libraries/Python
Requires: %{name} = %{version}-%{release}
-Requires: python3-libs >= 1:3.2
+Requires: python3-libs >= 1:3.5
BuildArch: noarch
%description -n python3-liblinear
@@ -125,13 +125,25 @@ Interfejs Pythona 3 do biblioteki LIBLINEAR.
MEX_EXT=mex
%endif
+%if %{with python2}
+cd python
+%py_build
+cd ..
+%endif
+
+%if %{with python3}
+cd python
+%py3_build
+cd ..
+%endif
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}}
install liblinear.so.* $RPM_BUILD_ROOT%{_libdir}
ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/liblinear.so.*) $RPM_BUILD_ROOT%{_libdir}/liblinear.so
-cp -p linear.h tron.h $RPM_BUILD_ROOT%{_includedir}
+cp -p linear.h newton.h $RPM_BUILD_ROOT%{_includedir}
install train $RPM_BUILD_ROOT%{_bindir}/liblinear-train
install predict $RPM_BUILD_ROOT%{_bindir}/liblinear-predict
@@ -141,20 +153,15 @@ install matlab/*.mex $RPM_BUILD_ROOT%{octave_oct_dir}/liblinear
%endif
%if %{with python2}
-install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
-cp -p python/*.py $RPM_BUILD_ROOT%{py_sitescriptdir}
-
-%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
-%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
-%py_postclean
+cd python
+%py_install
+cd ..
%endif
%if %{with python3}
-install -d $RPM_BUILD_ROOT%{py3_sitescriptdir}
-cp -p python/*.py $RPM_BUILD_ROOT%{py3_sitescriptdir}
-
-%py3_comp $RPM_BUILD_ROOT%{py3_sitescriptdir}
-%py3_ocomp $RPM_BUILD_ROOT%{py3_sitescriptdir}
+cd python
+%py3_install
+cd ..
%endif
%clean
@@ -168,13 +175,13 @@ rm -rf $RPM_BUILD_ROOT
%doc COPYRIGHT README
%attr(755,root,root) %{_bindir}/liblinear-predict
%attr(755,root,root) %{_bindir}/liblinear-train
-%attr(755,root,root) %{_libdir}/liblinear.so.3
+%attr(755,root,root) %{_libdir}/liblinear.so.5
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/liblinear.so
%{_includedir}/linear.h
-%{_includedir}/tron.h
+%{_includedir}/newton.h
%if %{with octave}
%files -n octave-liblinear
@@ -190,19 +197,14 @@ rm -rf $RPM_BUILD_ROOT
%files -n python-liblinear
%defattr(644,root,root,755)
%doc python/README
-%{py_sitescriptdir}/commonutil.py[co]
-%{py_sitescriptdir}/liblinear.py[co]
-%{py_sitescriptdir}/liblinearutil.py[co]
+%{py_sitescriptdir}/liblinear
+%{py_sitescriptdir}/liblinear_official-2.45.0-py*.egg-info
%endif
%if %{with python3}
%files -n python3-liblinear
%defattr(644,root,root,755)
%doc python/README
-%{py3_sitescriptdir}/commonutil.py
-%{py3_sitescriptdir}/liblinear.py
-%{py3_sitescriptdir}/liblinearutil.py
-%{py3_sitescriptdir}/__pycache__/commonutil.cpython-*.py[co]
-%{py3_sitescriptdir}/__pycache__/liblinear.cpython-*.py[co]
-%{py3_sitescriptdir}/__pycache__/liblinearutil.cpython-*.py[co]
+%{py3_sitescriptdir}/liblinear
+%{py3_sitescriptdir}/liblinear_official-2.45.0-py*.egg-info
%endif
diff --git a/liblinear-make.patch b/liblinear-make.patch
index b91ee14..6b1f5a9 100644
--- a/liblinear-make.patch
+++ b/liblinear-make.patch
@@ -1,29 +1,29 @@
---- liblinear-2.1/Makefile.orig 2015-09-27 00:03:26.000000000 +0200
-+++ liblinear-2.1/Makefile 2017-01-29 09:07:42.640874155 +0100
-@@ -8,19 +8,20 @@
+--- liblinear-2.45/Makefile.orig 2023-01-17 21:01:39.637840513 +0100
++++ liblinear-2.45/Makefile 2023-01-17 21:05:06.673385572 +0100
+@@ -8,18 +8,21 @@ OS = $(shell uname)
all: train predict
--lib: linear.o tron.o blas/blas.a
-+lib: linear.o tron.o
+-lib: linear.o newton.o blas/blas.a
++lib: liblinear.so
++
++liblinear.so: linear.o newton.o
if [ "$(OS)" = "Darwin" ]; then \
SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,liblinear.so.$(SHVER)"; \
else \
SHARED_LIB_FLAG="-shared -Wl,-soname,liblinear.so.$(SHVER)"; \
fi; \
-- $(CXX) $${SHARED_LIB_FLAG} linear.o tron.o blas/blas.a -o liblinear.so.$(SHVER)
-+ $(CXX) $${SHARED_LIB_FLAG} linear.o tron.o -o liblinear.so.$(SHVER) $(LIBS) ; \
-+ ln -s liblinear.so.$(SHVER) liblinear.so
+- $(CXX) $${SHARED_LIB_FLAG} linear.o newton.o blas/blas.a -o liblinear.so.$(SHVER)
++ $(CXX) $${SHARED_LIB_FLAG} linear.o newton.o -o liblinear.so.$(SHVER) $(LIBS) ; \
++ ln -sf liblinear.so.$(SHVER) liblinear.so
--train: tron.o linear.o train.c blas/blas.a
-- $(CXX) $(CFLAGS) -o train train.c tron.o linear.o $(LIBS)
-+train: lib train.c
+-train: newton.o linear.o train.c blas/blas.a
+- $(CXX) $(CFLAGS) -o train train.c newton.o linear.o $(LIBS)
++train: liblinear.so train.c
+ $(CXX) $(CFLAGS) -o train train.c -L. -llinear $(LIBS)
--predict: tron.o linear.o predict.c blas/blas.a
-- $(CXX) $(CFLAGS) -o predict predict.c tron.o linear.o $(LIBS)
-+predict: lib predict.c
-+ $(CXX) $(CFLAGS) -o predict predict.c -L. -llinear $(LIBS)
+-predict: newton.o linear.o predict.c blas/blas.a
++predict: liblinear.so predict.c
+ $(CXX) $(CFLAGS) -o predict predict.c newton.o linear.o $(LIBS)
- tron.o: tron.cpp tron.h
- $(CXX) $(CFLAGS) -c -o tron.o tron.cpp
+ newton.o: newton.cpp newton.h
diff --git a/liblinear-matlab.patch b/liblinear-matlab.patch
index b5be3a7..70483d6 100644
--- a/liblinear-matlab.patch
+++ b/liblinear-matlab.patch
@@ -1,19 +1,19 @@
---- liblinear-2.30/matlab/Makefile.orig 2019-12-25 13:15:35.331813000 +0100
-+++ liblinear-2.30/matlab/Makefile 2019-12-25 13:20:29.616885387 +0100
-@@ -21,14 +21,14 @@
+--- liblinear-2.45/matlab/Makefile.orig 2023-01-17 21:05:21.933302902 +0100
++++ liblinear-2.45/matlab/Makefile 2023-01-17 21:06:23.029638581 +0100
+@@ -22,14 +22,14 @@ octave:
binary: train.$(MEX_EXT) predict.$(MEX_EXT) libsvmread.$(MEX_EXT) libsvmwrite.$(MEX_EXT)
- train.$(MEX_EXT): train.c ../linear.h ../tron.cpp ../linear.cpp linear_model_matlab.c \
+ train.$(MEX_EXT): train.c ../linear.h ../newton.cpp ../linear.cpp linear_model_matlab.c \
- ../blas/daxpy.c ../blas/ddot.c ../blas/dnrm2.c ../blas/dscal.c
+ $(nil)
- $(MEX) $(MEX_OPTION) train.c ../tron.cpp ../linear.cpp linear_model_matlab.c \
+ $(MEX) $(MEX_OPTION) train.c ../newton.cpp ../linear.cpp linear_model_matlab.c \
- ../blas/daxpy.c ../blas/ddot.c ../blas/dnrm2.c ../blas/dscal.c
+ -lblas
- predict.$(MEX_EXT): predict.c ../linear.h ../tron.cpp ../linear.cpp linear_model_matlab.c \
+ predict.$(MEX_EXT): predict.c ../linear.h ../newton.cpp ../linear.cpp linear_model_matlab.c \
- ../blas/daxpy.c ../blas/ddot.c ../blas/dnrm2.c ../blas/dscal.c
+ $(nil)
- $(MEX) $(MEX_OPTION) predict.c ../tron.cpp ../linear.cpp linear_model_matlab.c \
+ $(MEX) $(MEX_OPTION) predict.c ../newton.cpp ../linear.cpp linear_model_matlab.c \
- ../blas/daxpy.c ../blas/ddot.c ../blas/dnrm2.c ../blas/dscal.c
+ -lblas
diff --git a/liblinear-python.patch b/liblinear-python.patch
index 94ea8ed..e8ce53b 100644
--- a/liblinear-python.patch
+++ b/liblinear-python.patch
@@ -1,24 +1,60 @@
---- liblinear-2.1/python/liblinear.py.orig 2015-09-27 00:03:39.000000000 +0200
-+++ liblinear-2.1/python/liblinear.py 2017-01-28 23:38:33.691264075 +0100
+--- liblinear-2.45/python/liblinear/commonutil.py.orig 2022-08-11 09:26:17.000000000 +0200
++++ liblinear-2.45/python/liblinear/commonutil.py 2023-01-17 21:00:29.844885280 +0100
+@@ -1,5 +1,3 @@
+-#!/usr/bin/env python
+-
+ from __future__ import print_function
+ from array import array
+ import sys
+--- liblinear-2.45/python/liblinear/liblinear.py.orig 2022-08-11 09:26:18.000000000 +0200
++++ liblinear-2.45/python/liblinear/liblinear.py 2023-01-17 21:00:59.301392367 +0100
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
from ctypes import *
from ctypes.util import find_library
from os import path
---- liblinear-2.1/python/liblinearutil.py.orig 2015-09-27 00:03:40.000000000 +0200
-+++ liblinear-2.1/python/liblinearutil.py 2017-01-28 23:38:44.447930619 +0100
+@@ -25,10 +23,7 @@ __all__ = ['liblinear', 'feature_node',
+ 'print_null']
+
+ try:
+- dirname = path.dirname(path.abspath(__file__))
+- dynamic_lib_name = 'clib.cp*'
+- path_to_so = glob(path.join(dirname, dynamic_lib_name))[0]
+- liblinear = CDLL(path_to_so)
++ liblinear = CDLL("liblinear.so.5")
+ except:
+ try :
+ if sys.platform == 'win32':
+--- liblinear-2.45/python/liblinear/liblinearutil.py.orig 2022-08-11 09:26:18.000000000 +0200
++++ liblinear-2.45/python/liblinear/liblinearutil.py 2023-01-17 21:01:09.311338139 +0100
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
import os, sys
- sys.path = [os.path.dirname(os.path.abspath(__file__))] + sys.path
- from liblinear import *
---- liblinear-2.30/python/commonutil.py.orig 2019-03-20 18:28:22.000000000 +0100
-+++ liblinear-2.30/python/commonutil.py 2019-12-25 13:22:28.729573432 +0100
-@@ -1,5 +1,3 @@
--#!/usr/bin/env python
+ from .liblinear import *
+ from .liblinear import __all__ as liblinear_all
+--- liblinear-2.45/python/setup.py.orig 2022-08-11 09:26:18.000000000 +0200
++++ liblinear-2.45/python/setup.py 2023-01-17 21:31:10.778245422 +0100
+@@ -84,9 +84,6 @@ class CleanCommand(clean_cmd):
+ rmtree(f)
+
+ def main():
+- if not path.exists(cpp_dir):
+- create_cpp_source()
-
- from __future__ import print_function
- from array import array
- import sys
+ with open("README") as f:
+ long_description = f.read()
+
+@@ -101,11 +98,6 @@ def main():
+ author_email="cjlin at csie.ntu.edu.tw",
+ url="https://www.csie.ntu.edu.tw/~cjlin/liblinear",
+ install_requires=["scipy"],
+- ext_modules=[
+- Extension(
+- "{}.{}".format(PACKAGE_DIR, dynamic_lib_name), **kwargs_for_extension
+- )
+- ],
+ cmdclass={"clean": CleanCommand},
+ )
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/liblinear.git/commitdiff/3ed7b17062af940540e0ee204581bc9f21fb1824
More information about the pld-cvs-commit
mailing list