[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