diff --git a/.gitignore b/.gitignore
index f223af3..c5ed10e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ libsvm-3.91.tar.gz
/libsvm-svm-toy-gtk.desktop
/libsvm-svm-toy-qt.desktop
/libsvm-3.20.tar.gz
+/libsvm-3.21.tar.gz
diff --git a/libsvm-3.17.pom b/libsvm-3.17.pom
index 511b1b2..7b7977b 100644
--- a/libsvm-3.17.pom
+++ b/libsvm-3.17.pom
@@ -3,7 +3,7 @@
4.0.0
tw.edu.ntu.csie
libsvm
- 3.20
+ 3.17
jar
LIBSVM
A Library for Support Vector Machines
diff --git a/libsvm-3.20.javaDir.patch b/libsvm.javaDir.patch
similarity index 100%
rename from libsvm-3.20.javaDir.patch
rename to libsvm.javaDir.patch
diff --git a/libsvm-3.20.packageMain.patch b/libsvm.packageMain.patch
similarity index 100%
rename from libsvm-3.20.packageMain.patch
rename to libsvm.packageMain.patch
diff --git a/libsvm-3.20.pythonDir.patch b/libsvm.pythonDir.patch
similarity index 100%
rename from libsvm-3.20.pythonDir.patch
rename to libsvm.pythonDir.patch
diff --git a/libsvm.spec b/libsvm.spec
index bf33982..28a7613 100644
--- a/libsvm.spec
+++ b/libsvm.spec
@@ -1,15 +1,15 @@
-%global shver 2
+%define shver 2
%{!?pyver: %global pyver %(python -c 'import sys; print(sys.version[0:3])')}
-%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-%global libdir_libsvm %{_libdir}/libsvm
-%global libsvm_python_dir %{python_sitearch}/libsvm
+%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+%define libdir_libsvm %{_libdir}/libsvm
+%define libsvm_python_dir %{python_sitearch}/libsvm
%global maven_group_id tw.edu.ntu.csie
%global pom_file_version 3.17
%global pom_file_name JPP.%{maven_group_id}-%{name}.pom
Name: libsvm
-Version: 3.20
-Release: 8%{?dist}
+Version: 3.21
+Release: 1%{?dist}
Summary: A Library for Support Vector Machines
Group: Development/Libraries
@@ -22,39 +22,39 @@ Source3: libsvm-svm-toy-gtk.desktop
Source4: libsvm-svm-toy-qt.desktop
Source5: LibSVM-svm-toy-48.png
Source6: http://central.maven.org/maven2/tw/edu/ntu/csie/libsvm/%{pom_file_version}/libsvm-%{pom_file_version}.pom
-Patch0: %{name}-%{version}.packageMain.patch
-Patch1: %{name}-%{version}.pythonDir.patch
-Patch2: %{name}-%{version}.javaDir.patch
-Patch3: %{name}-%{version}.svm-toy.patch
-Patch4: %{name}-%{version}.toolsDir.patch
+Patch0: %{name}.packageMain.patch
+Patch1: %{name}.pythonDir.patch
+Patch2: %{name}.javaDir.patch
+Patch3: %{name}.svm-toy.patch
+Patch4: %{name}.toolsDir.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: grep
%if 0%{?rhel} != 0 && 0%{?rhel} <= 5
-%global moc_path %{_libdir}/qt4/bin/moc
-%global with_vendor "fedora"
+%define moc_path %{_libdir}/qt4/bin/moc
+%define with_vendor "fedora"
%else
-%global moc_path %{_bindir}/moc-qt4
+%define moc_path %{_bindir}/moc-qt4
%endif
# RHEL6 does not have enable_add_maven_depmap
%if 0%{?rhel} != 0 && 0%{?rhel} <= 6
-%global enable_add_maven_depmap FALSE
+%define enable_add_maven_depmap FALSE
%else
-%global enable_add_maven_depmap TRUE
+%define enable_add_maven_depmap TRUE
%endif
%ifnarch ppc ppc64
-%global no_java FALSE
+%define no_java FALSE
%if 0%{?rhel} <= 6
-%global java_dependency java
-%else
-%global java_dependency java-headless
+%define java_dependency java
+%else
+%define java_dependency java-headless
%endif
%else
-%global no_java NO_JAVA
-%global enable_add_maven_depmap FALSE
+%define no_java NO_JAVA
+%define enable_add_maven_depmap FALSE
Obsoletes: libsvm-java < 2.88-1
%endif
@@ -200,16 +200,18 @@ desktop-file-install --delete-original \
%{buildroot}/%{_datadir}/applications/%{name}-svm-toy-qt.desktop
%endif
+# Python
# Fix Bug 646154 - libsvm-python's pth is not set correctly
echo 'libsvm' > %{buildroot}/%{python_sitearch}/libsvm.pth
-
+for p in %{buildroot}%{libsvm_python_dir}/*.py;do
+ sed -i -e 's|#!/usr/bin/env python|#!%{__python2}|' $p
+done
# Java
%if "%{no_java}" == "FALSE"
## Move jars to correct directory
mkdir -p %{buildroot}/%{_javadir}/%{maven_group_id}
-mv %{buildroot}/%{_javadir}/%{name}.jar %{buildroot}/%{_javadir}/%{maven_group_id}/%{name}-%{version}.jar
-ln -s %{name}-%{version}.jar %{buildroot}/%{_javadir}/%{maven_group_id}/%{name}.jar
+mv %{buildroot}/%{_javadir}/%{name}.jar %{buildroot}/%{_javadir}/%{maven_group_id}/%{name}.jar
ln -s %{_javadir}/%{maven_group_id}/%{name}.jar %{buildroot}/%{_javadir}/%{name}.jar
## Install the Java POM
mkdir -p %{buildroot}%{_mavenpomdir}
@@ -247,6 +249,7 @@ rm -rf %{buildroot}
%files
+%defattr(-,root,root,-)
%doc COPYRIGHT FAQ.html ChangeLog guide.pdf
%{_bindir}/svm-predict
%{_bindir}/svm-scale
@@ -256,11 +259,13 @@ rm -rf %{buildroot}
%{_libdir}/%{name}.so.%{shver}
%files devel
+%defattr(-,root,root,-)
%doc README
%{_includedir}/%{name}/
%{_libdir}/%{name}.so
%files python
+%defattr(-,root,root,-)
%doc python/README-Python tools/README-Tools
%{libsvm_python_dir}
%{_bindir}/svm-*.py
@@ -272,9 +277,9 @@ rm -rf %{buildroot}
%else
%files java
%endif
+%defattr(-,root,root,-)
%doc java/README-Java java/test_applet.html
%{_javadir}/%{name}.jar
-%{_javadir}/%{maven_group_id}/%{name}-%{version}.jar
%if "%{enable_add_maven_depmap}" == "FALSE"
%{_javadir}/%{maven_group_id}/%{name}.jar
%{_mavenpomdir}/%{pom_file_name}
@@ -282,29 +287,23 @@ rm -rf %{buildroot}
%endif
%files svm-toy-gtk
+%defattr(-,root,root,-)
%doc svm-toy/gtk/README
%{_bindir}/svm-toy-gtk
%{_datadir}/icons/hicolor/48x48/apps/%{name}-svm-toy-gtk-48.png
%{_datadir}/applications/*%{name}-svm-toy-gtk.desktop
%files svm-toy-qt
+%defattr(-,root,root,-)
%doc svm-toy/qt/README
%{_bindir}/svm-toy-qt
%{_datadir}/icons/hicolor/48x48/apps/%{name}-svm-toy-qt-48.png
%{_datadir}/applications/*%{name}-svm-toy-qt.desktop
-
%changelog
-* Tue Jul 19 2016 Fedora Release Engineering - 3.20-8
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
-
-* Thu Feb 04 2016 Fedora Release Engineering - 3.20-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Fri Dec 25 2015 Björn Esser - 3.20-6
-- Replaced %%define with %%global
-- dropped %%defattr
-- clean trailing whitespaces
+* Wed Jul 20 2016 Ding-Yi Chen - 3.21-1
+- Upstream update to 3.21
+- Fixes Bug 1277450 - libsvm(-java) remove versioned jars from {_javadir}
* Wed Jun 17 2015 Fedora Release Engineering - 3.20-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
@@ -339,7 +338,7 @@ rm -rf %{buildroot}
* Tue Apr 22 2014 Ding-Yi Chen - 3.18-1
- Upstream update to 3.18
- svm.cpp and svm-scale.c: check return values of fscanf
-- matlab interface: Makefile no longer handles octave
+- matlab interface: Makefile no longer handles octave
because make.m should be used
* Fri Mar 28 2014 Michael Simacek - 3.17-4
diff --git a/libsvm-3.20.svm-toy.patch b/libsvm.svm-toy.patch
similarity index 75%
rename from libsvm-3.20.svm-toy.patch
rename to libsvm.svm-toy.patch
index d2a9274..4fc0982 100644
--- a/libsvm-3.20.svm-toy.patch
+++ b/libsvm.svm-toy.patch
@@ -1,6 +1,6 @@
diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile
---- ./svm-toy/gtk/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000
-+++ ./svm-toy/gtk/Makefile 2012-04-04 17:02:28.366615284 +1000
+--- ./svm-toy/gtk/Makefile.svm-toy 2015-12-14 23:49:17.000000000 +1000
++++ ./svm-toy/gtk/Makefile 2016-07-20 11:56:30.157119649 +1000
@@ -1,10 +1,12 @@
CC? = gcc
CXX? = g++
@@ -31,24 +31,27 @@ diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile
- rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o ../../svm.o
+ rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o ${LOCAL_LIBDIR}/svm.o
diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile
---- ./svm-toy/qt/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000
-+++ ./svm-toy/qt/Makefile 2012-04-04 17:02:28.366615284 +1000
-@@ -1,17 +1,22 @@
+--- ./svm-toy/qt/Makefile.svm-toy 2016-07-20 11:56:30.157119649 +1000
++++ ./svm-toy/qt/Makefile 2016-07-20 13:40:21.876341574 +1000
+@@ -1,17 +1,25 @@
CXX? = g++
--CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui
--INCLUDE = /usr/include/qt4
--MOC = /usr/bin/moc-qt4
++-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui
++-MOC = /usr/bin/moc-qt4
+ INCLUDE = /usr/include/qt4
+-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -I$(INCLUDE)/QtCore
+SHVER?=2
+CFLAGS = -Wall -O3 `pkg-config --cflags --libs QtGui`
+ LIB = -lQtGui -lQtCore
+-MOC = /usr/bin/moc-qt4
+MOC=${MOC_PATH}
+LOCAL_LIBDIR=../..
+LIBS = -L${LOCAL_LIBDIR} -lsvm
+LIBSVM_SO_SHVER=${LOCAL_LIBDIR}/libsvm.so.$(SHVER)
-svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o
-- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy
+- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy $(LIB)
+all: svm-toy-qt
-+
++
+svm-toy-qt: svm-toy.cpp svm-toy.moc $(LIBSVM_SO_SHVER)
+ $(CXX) $(CFLAGS) svm-toy.cpp ${LIBS} -o $@
@@ -61,6 +64,4 @@ diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile
+ make -C ${LOCAL_LIBDIR} lib
clean:
-- rm -f *~ svm-toy svm-toy.moc ../../svm.o
-+ rm -f *~ svm-toy svm-toy.moc $(LIBSVM_SO_SHVER)
-
+ rm -f *~ svm-toy svm-toy.moc ../../svm.o
diff --git a/libsvm-3.20.toolsDir.patch b/libsvm.toolsDir.patch
similarity index 100%
rename from libsvm-3.20.toolsDir.patch
rename to libsvm.toolsDir.patch
diff --git a/log b/log
index 85ef1bb..c6074b0 100644
--- a/log
+++ b/log
@@ -277,3 +277,9 @@ i subroutines to get SVs
3.20: 2014/11/15
matlab interface:
fix a bug in libsvmwrite.c introduced in 3.19 (cannot run on windows)
+
+3.21: 2015/12/14
+ pre-built windows exe files changed from 32 to 64 bit
+ matlab interface:
+ now use #include "../svm.h"
+ fix some minor issues in make.m of matlab interface
\ No newline at end of file
diff --git a/sources b/sources
index 2aa72d2..46bd5da 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-b1543809993e2653dd2787f62c3c390a guide.pdf
-5f088e5f89da1c65b642300c9c5ea772 libsvm-3.20.tar.gz
+e7392f325efd1c6ddacd8e2c8bb023d1 guide.pdf
+30d2a0a8043e0f66cb7903b3ce45b3bf libsvm-3.21.tar.gz