diff --git a/.cvsignore b/.cvsignore
index d5d706e..12c8c4b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
guide.pdf
-libsvm-2.86.tar.gz
+libsvm-2.88.tar.gz
diff --git a/import.log b/import.log
new file mode 100644
index 0000000..c281024
--- /dev/null
+++ b/import.log
@@ -0,0 +1 @@
+libsvm-2_88-0_fc9:HEAD:libsvm-2.88-0.fc9.src.rpm:1226043285
diff --git a/libsvm-2.86.patch b/libsvm-2.86.patch
deleted file mode 100644
index c8314e1..0000000
--- a/libsvm-2.86.patch
+++ /dev/null
@@ -1,604 +0,0 @@
-diff -up ./FAQ.html.orig ./FAQ.html
-diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java
-diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
---- ./java/libsvm/svm_model.java.orig 2007-01-13 08:23:39.000000000 +1000
-+++ ./java/libsvm/svm_model.java 2008-04-29 15:48:00.000000000 +1000
-@@ -4,6 +4,7 @@
- package libsvm;
- public class svm_model implements java.io.Serializable
- {
-+ static final long serialVersionUID = 2709444323471798245L;
- svm_parameter param; // parameter
- int nr_class; // number of classes, = 2 in regression/one class svm
- int l; // total #SV
-diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java
---- ./java/libsvm/svm_node.java.orig 2003-10-11 22:30:47.000000000 +1000
-+++ ./java/libsvm/svm_node.java 2008-04-29 15:48:00.000000000 +1000
-@@ -1,6 +1,7 @@
- package libsvm;
- public class svm_node implements java.io.Serializable
- {
-+ static final long serialVersionUID = 2709444323471798245L;
- public int index;
- public double value;
- }
-diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java
---- ./java/libsvm/svm_parameter.java.orig 2006-03-04 01:44:14.000000000 +1000
-+++ ./java/libsvm/svm_parameter.java 2008-04-29 15:48:00.000000000 +1000
-@@ -1,6 +1,7 @@
- package libsvm;
- public class svm_parameter implements Cloneable,java.io.Serializable
- {
-+ static final long serialVersionUID = 2709444323471798245L;
- /* svm_type */
- public static final int C_SVC = 0;
- public static final int NU_SVC = 1;
-diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java
---- ./java/libsvm/svm_problem.java.orig 2003-10-11 22:30:47.000000000 +1000
-+++ ./java/libsvm/svm_problem.java 2008-04-29 15:48:00.000000000 +1000
-@@ -1,6 +1,7 @@
- package libsvm;
- public class svm_problem implements java.io.Serializable
- {
-+ static final long serialVersionUID = -4451389443706847272L;
- public int l;
- public double[] y;
- public svm_node[][] x;
-diff -up ./java/Makefile.orig ./java/Makefile
---- ./java/Makefile.orig 2007-11-11 22:17:30.000000000 +1000
-+++ ./java/Makefile 2008-04-29 15:48:00.000000000 +1000
-@@ -3,13 +3,22 @@ FILES = libsvm/svm.class libsvm/svm_mode
- libsvm/svm_parameter.class libsvm/svm_problem.class \
- svm_train.class svm_predict.class svm_toy.class svm_scale.class
-
--#JAVAC = jikes
--JAVAC_FLAGS = -target 1.5 -source 1.5
--JAVAC = javac
--# JAVAC_FLAGS =
-+JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java
-+JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER}
-+CLASSPATH = .
-+JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH}
-+
-+ifndef JAVAC
-+JAVAC=javac
-+endif
-+
-+ifndef JAR
-+JAR=jar
-+endif
-+
-
- all: $(FILES)
-- jar cvf libsvm.jar *.class libsvm/*.class
-+ ${JAR} cvf libsvm.jar *.class libsvm/*.class
-
- .java.class:
- $(JAVAC) $(JAVAC_FLAGS) $<
-@@ -17,8 +26,22 @@ all: $(FILES)
- libsvm/svm.java: libsvm/svm.m4
- m4 libsvm/svm.m4 > libsvm/svm.java
-
-+javadoc:
-+ javadoc -d docs *.java libsvm/*.java
-+
-+install:
-+ mkdir -p ${JAVA_TARGETDIR}
-+ install -m 644 libsvm.jar ${JAVA_TARGETDIR}
-+ install -m 644 test_applet.html ${JAVA_TARGETDIR}
-+# mkdir -p ${JAVA_DOCDIR}
-+# cd docs; cp -R * ${JAVA_DOCDIR}
-+uninstall:
-+ rm -fr ${JAVA_TARGETDIR}
-+ rm -fr ${JAVA_DOCDIR}
-+
- clean:
- rm -f libsvm/*.class *.class *.jar libsvm/*~ *~ libsvm/svm.java
-+ rm -rf docs
-
- dist: clean all
- rm *.class libsvm/*.class
-diff -up ./java/svm_predict.java.orig ./java/svm_predict.java
-diff -up ./java/svm_scale.java.orig ./java/svm_scale.java
-diff -up ./java/svm_toy.java.orig ./java/svm_toy.java
---- ./java/svm_toy.java.orig 2007-07-01 23:02:51.000000000 +1000
-+++ ./java/svm_toy.java 2008-04-29 15:48:00.000000000 +1000
-@@ -6,7 +6,7 @@ import java.awt.event.*;
- import java.io.*;
-
- public class svm_toy extends Applet {
--
-+ static final long serialVersionUID = -8325676470152687806L;
- static final String DEFAULT_PARAM="-t 2 -c 100";
- int XLEN;
- int YLEN;
-@@ -453,6 +453,7 @@ public class svm_toy extends Applet {
- }
-
- class AppletFrame extends Frame {
-+ static final long serialVersionUID = -8428435143024670779L;
- AppletFrame(String title, Applet applet, int width, int height)
- {
- super(title);
-diff -up ./java/svm_train.java.orig ./java/svm_train.java
-diff -up ./java/test_applet.html.orig ./java/test_applet.html
---- ./java/test_applet.html.orig 2003-07-12 14:06:55.000000000 +1000
-+++ ./java/test_applet.html 2008-04-29 15:48:00.000000000 +1000
-@@ -1 +1,3 @@
--
-+
-+
-+
-diff -up ./Makefile.orig ./Makefile
---- ./Makefile.orig 2007-10-14 16:29:12.000000000 +1000
-+++ ./Makefile 2008-04-29 15:48:00.000000000 +1000
-@@ -1,15 +1,109 @@
- CXX? = g++
- CFLAGS = -Wall -O3
-+MAKE = make
-+LIBSVM_VER=${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR}
-+DOT_LIBS=.libs
-+LIBS= -L${DOT_LIBS} -lsvm
-
--all: svm-train svm-predict svm-scale
-+export LIBSVM_VER
-
--svm-predict: svm-predict.c svm.o
-- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
--svm-train: svm-train.c svm.o
-- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm
--svm-scale: svm-scale.c
-- $(CXX) $(CFLAGS) svm-scale.c -o svm-scale
--svm.o: svm.cpp svm.h
-- $(CXX) $(CFLAGS) -c svm.cpp
-+ifndef DESTDIR
-+INSTDIR=/usr
-+else
-+INSTDIR=${DESTDIR}/usr
-+endif
-+
-+export INSTDIR
-+
-+IS_64=$(shell /bin/uname -i | awk '/64/ {print 64}')
-+
-+ifndef LIBDIR
-+LIB_INSTDIR=${INSTDIR}/lib${IS_64}
-+else
-+LIB_INSTDIR=${INSTDIR}/..${LIBDIR}
-+endif
-+
-+ifndef LIBDIR
-+LIBDIR=/usr/lib${IS_64}
-+endif
-+
-+export LIBDIR
-+export LIB_INSTDIR
-+
-+all: svm-train svm-predict svm-scale svm-python svm-java svm-lib svm-toy-gtk svm-toy-qt
-+
-+svm-lib: %{DOT_LIBS}/libsvm.so
-+
-+%{DOT_LIBS}/libsvm.so: svm-share.o
-+ $(CXX) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\
-+ -o libsvm.so.${LIBSVM_VER} svm-share.o -lm
-+ mkdir -p .libs
-+ cd ${DOT_LIBS}; ln -sf ../libsvm.so.${LIBSVM_VER} libsvm.so
-+svm-share.o: svm.cpp svm.h
-+ $(CXX) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o
-+svm-predict: svm-predict.c %{DOT_LIBS}/libsvm.so
-+ $(CXX) $(CFLAGS) svm-predict.c -o svm-predict $(LIBS) -lm
-+svm-train: svm-train.c %{DOT_LIBS}/libsvm.so
-+ $(CXX) $(CFLAGS) svm-train.c -o svm-train $(LIBS) -lm
-+svm-scale: svm-scale.c %{DOT_LIBS}/libsvm.so
-+ $(CXX) $(CFLAGS) svm-scale.c -o svm-scale $(LIBS)
-+#svm.o: svm.cpp svm.h
-+# $(CXX) $(CFLAGS) -c svm.cpp
- clean:
-- rm -f *~ svm.o svm-train svm-predict svm-scale
-+ rm -f *~ svm.o svm-train svm-predict svm-scale svm-toy/gtk/svm-toy-gtk svm-toy/qt/svm-toy-qt
-+ ${MAKE} -C python clean
-+ ${MAKE} -C java clean
-+svm-python:
-+ ${MAKE} -C python
-+svm-java:
-+ ${MAKE} -C java
-+svm-toy-gtk:
-+ ${MAKE} -C svm-toy/gtk
-+svm-toy-qt:
-+ ${MAKE} -C svm-toy/qt
-+
-+install: all
-+ mkdir -p ${INSTDIR}/bin
-+ install -m 755 svm-train ${INSTDIR}/bin
-+ install -m 755 svm-predict ${INSTDIR}/bin
-+ install -m 755 svm-scale ${INSTDIR}/bin
-+ mkdir -p ${LIB_INSTDIR}
-+ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}
-+ /sbin/ldconfig -n ${LIB_INSTDIR}
-+ cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so
-+# install package libsvm-devel
-+ mkdir -p ${INSTDIR}/include/libsvm
-+ install -m 644 svm.h ${INSTDIR}/include/libsvm
-+ mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm
-+ install -m 644 *.h ${INSTDIR}/share/libsvm/src
-+ install -m 644 *.c ${INSTDIR}/share/libsvm/src
-+ install -m 644 *.cpp ${INSTDIR}/share/libsvm/src
-+ install -m 644 Makefile ${INSTDIR}/share/libsvm/src
-+ install -m 644 java/*.java ${INSTDIR}/share/libsvm/src/java
-+ install -m 644 java/Makefile ${INSTDIR}/share/libsvm/src/java
-+ install -m 644 java/libsvm/*.java ${INSTDIR}/share/libsvm/src/java/libsvm
-+ install -m 644 java/libsvm/*.m4 ${INSTDIR}/share/libsvm/src/java/libsvm
-+# install package libsvm-python
-+ ${MAKE} -C python install
-+# install package libsvm-java
-+ ${MAKE} -C java install
-+# install package svm-toy
-+ install -m 755 svm-toy/gtk/svm-toy-gtk ${INSTDIR}/bin
-+ install -m 755 svm-toy/qt/svm-toy-qt ${INSTDIR}/bin
-+# install examples
-+ mkdir -p ${INSTDIR}/share/libsvm/examples
-+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
-+uninstall:
-+ rm -f ${INSTDIR}/bin/svm-train
-+ rm -f ${INSTDIR}/bin/svm-predict
-+ rm -f ${INSTDIR}/bin/svm-scale
-+ rm -fr ${INSTDIR}/libsvm/examples
-+ rm -f ${INSTDIR}/include/libsvm/svm.h
-+ rm -f ${LIB_INSTDIR}/libsvm/svm.o
-+ rm -fr ${INSTDIR}/libsvm/src
-+ rm -fr ${INSTDIR}/libsvm
-+ ${MAKE} -C python uninstall
-+ ${MAKE} -C java uninstall
-+ rm -f ${INSTDIR}/bin/svm-toy-gtk
-+ rm -f ${INSTDIR}/bin/svm-toy-qt
-+
-diff -up ./python/cross_validation.py.orig ./python/cross_validation.py
-diff -up ./python/Makefile.orig ./python/Makefile
---- ./python/Makefile.orig 2007-10-14 16:29:12.000000000 +1000
-+++ ./python/Makefile 2008-04-29 15:48:00.000000000 +1000
-@@ -2,9 +2,16 @@ CXX? = g++
- SWIG ?= swig
-
- #Windows: see ../README ../Makefile.win
--PYTHON_INCLUDEDIR ?= /usr/include/python2.4
-+#PYTHON_TEMP:=${shell mktemp}
-+#PYTHON_VERSION:=${shell python -V 2> ${PYTHON_TEMP} ; cat ${PYTHON_TEMP} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f ${PYTHON_TEMP}}
-+ifndef PYTHON_INCLUDEDIR
-
--CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I..
-+PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION}
-+
-+endif
-+PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm
-+
-+CFLAGS_PYTHON = ${CFLAGS} -O3 -I$(PYTHON_INCLUDEDIR) -I..
- LDFLAGS = -shared
- # Mac OS
- # LDFLAGS = -framework Python -bundle
-@@ -15,16 +22,34 @@ svmc.so: svmc_wrap.o svm.o
- $(CXX) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o
-
- svmc_wrap.o: svmc_wrap.c ../svm.h
-- $(CXX) $(CFLAGS) -fPIC -c svmc_wrap.c
-+# echo "PYTHON_VERSION=${PYTHON_VERSION}"
-+# echo "CFLAGS=${CFLAGS}"
-+# echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}"
-+ $(CXX) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c
-
- svmc_wrap.c: svmc.i
- $(SWIG) -python -noproxy svmc.i
-
- svm.o: ../svm.cpp ../svm.h
-- $(CXX) $(CFLAGS) -fPIC -c ../svm.cpp
-+ $(CXX) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp
-
- clean:
- rm -f *~ *.o *.so *.pyc *.pyo svm.o
-
- moreclean: clean
- rm -f svmc_wrap.c
-+
-+
-+install: all
-+ mkdir -p ${PYTHON_TARGETDIR}
-+ install -m 755 cross_validation.py ${PYTHON_TARGETDIR}
-+ install -m 644 svm.py ${PYTHON_TARGETDIR}
-+ install -m 755 svm_test.py ${PYTHON_TARGETDIR}
-+ install -m 755 test_cross_validation.py ${PYTHON_TARGETDIR}
-+ install -m 644 *.i ${PYTHON_TARGETDIR}
-+ install -m 755 *.so ${PYTHON_TARGETDIR}
-+ install -m 755 ../tools/*.py ${PYTHON_TARGETDIR}
-+
-+uninstall:
-+ rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm
-+
-diff -up ./python/svmc_wrap.c.orig ./python/svmc_wrap.c
-diff -up ./python/svm.py.orig ./python/svm.py
-diff -up ./python/svm_test.py.orig ./python/svm_test.py
-diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py
-diff -up ./svm.cpp.orig ./svm.cpp
-diff -up ./svm.h.orig ./svm.h
-diff -up ./svm-predict.c.orig ./svm-predict.c
-diff -up ./svm-scale.c.orig ./svm-scale.c
-diff -up ./svm-toy/gtk/callbacks.cpp.orig ./svm-toy/gtk/callbacks.cpp
---- ./svm-toy/gtk/callbacks.cpp.orig 2006-03-04 17:40:12.000000000 +1000
-+++ ./svm-toy/gtk/callbacks.cpp 2008-04-29 15:48:00.000000000 +1000
-@@ -2,6 +2,7 @@
- #include
- #include
- #include
-+#include
- #include "callbacks.h"
- #include "interface.h"
- #include "../../svm.h"
-diff -up ./svm-toy/gtk/callbacks.h.orig ./svm-toy/gtk/callbacks.h
-diff -up ./svm-toy/gtk/interface.c.orig ./svm-toy/gtk/interface.c
-diff -up ./svm-toy/gtk/interface.h.orig ./svm-toy/gtk/interface.h
-diff -up ./svm-toy/gtk/main.c.orig ./svm-toy/gtk/main.c
-diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile
---- ./svm-toy/gtk/Makefile.orig 2007-10-14 16:29:12.000000000 +1000
-+++ ./svm-toy/gtk/Makefile 2008-04-29 15:48:00.000000000 +1000
-@@ -1,22 +1,28 @@
- CC? = gcc
- CXX? = g++
--CFLAGS = -Wall -O3 -g `gtk-config --cflags`
--LIBS = `gtk-config --libs`
-+#CFLAGS = -Wall -O3 -g `gtk-config --cflags`
-+#LIBS = `gtk-config --libs`
-+COPT = `pkg-config --cflags --libs gtk+-2.0`
-+DOT_LIBS=../../.libs
-+LIBS= -L${DOT_LIBS} -lsvm
-
--svm-toy: main.o interface.o callbacks.o ../../svm.o
-- $(CXX) $(CFLAGS) main.o interface.o callbacks.o ../../svm.o -o svm-toy $(LIBS)
-+
-+all: svm-toy-gtk
-+
-+svm-toy-gtk: main.o interface.o callbacks.o
-+ $(CXX) $(COPT) main.o interface.o callbacks.o ${LIBS} -o svm-toy-gtk
-
- main.o: main.c
-- $(CC) $(CFLAGS) -c main.c
-+ $(CC) $(COPT) -c main.c
-
- interface.o: interface.c interface.h
-- $(CC) $(CFLAGS) -c interface.c
-+ $(CC) $(COPT) -c interface.c
-
- callbacks.o: callbacks.cpp callbacks.h
-- $(CXX) $(CFLAGS) -c callbacks.cpp
-+ $(CXX) $(COPT) -c callbacks.cpp
-
--../../svm.o:
-- cd ../..; make svm.o
-+#../../svm.o:
-+# cd ../..; make svm.o
-
- clean:
-- 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
-diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile
---- ./svm-toy/qt/Makefile.orig 2007-10-14 16:29:12.000000000 +1000
-+++ ./svm-toy/qt/Makefile 2008-04-29 16:29:15.000000000 +1000
-@@ -1,19 +1,50 @@
- CXX? = g++
--CFLAGS = -Wall -O3 -DQT_THREAD_SUPPORT
--BIN = $(QTDIR)/bin
--INCLUDE = $(QTDIR)/include
--LIB = $(QTDIR)/lib
--#BIN = /usr/bin
--#INCLUDE = /usr/include/qt3
--#LIB = /usr/lib/qt3
-+CFLAGS = -Wall -O3
-+#LIBDIR?=/usr/lib64
-+#QT4_DIR=
-+QT4_DIR:= $(shell if [ -e ${LIBDIR}/pkgconfig/Qt3Support.pc ]; then echo ${LIBDIR}/qt4; fi)
-
--svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o
-- $(CXX) -I$(INCLUDE) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy -L$(LIB) -lqt-mt
-+ifdef QT4_DIR
-+ QTDIR:=${QT4_DIR}
-+ BIN := ${QTDIR}/bin
-+ FLAGS:=${CFLAGS} -I/usr/include/Qt -DQT3_SUPPORT -DQT_INCLUDE_COMPAT `pkg-config --cflags --libs Qt3Support QtGui`
-+ QT3_TO_4:=$(shell if [ -e "${BIN}/qt3to4" ]; then echo "${BIN}/qt3to4"; fi)
-+ ifndef QT3_TO_4
-+ QT3_TO_4:=$(shell if [ -e /usr/bin/qt3to4 ]; then echo /usr/bin/qt3to4; fi)
-+ endif
-+else
-+ QTDIR:=${LIBDIR}/qt-3.3
-+ BIN := ${QTDIR}/bin
-+ FLAGS:=${CFLAGS} `pkg-config --cflags --libs qt-mt`
-+endif
-+
-+
-+DOT_LIBS=../../.libs
-+LIBS= -L${DOT_LIBS} -lsvm
-+
-+all: svm-toy-qt
-+
-+svm-toy-qt: svm-toy.new.cpp svm-toy.moc ../../svm.o
-+ $(CXX) $(FLAGS) svm-toy.new.cpp ../../svm.o -o svm-toy-qt $(LIBS)
- # add -pthread for bsd
-
--svm-toy.moc: svm-toy.cpp
-- $(BIN)/moc svm-toy.cpp -o svm-toy.moc
--../../svm.o:
-- cd ../..; make svm.o
-+
-+svm-toy.moc: svm-toy.new.cpp
-+ echo "QT4_DIR=${QT4_DIR}"
-+ echo "QTDIR=${QTDIR}"
-+ echo "BIN=${BIN}"
-+# echo "LIBDIR=${LIBDIR}"
-+# echo "FLAGS=${FLAGS}"
-+ ${BIN}/moc svm-toy.new.cpp -o svm-toy.moc
-+#../../svm.o:
-+# cd ../..; make svm.o
-+
-+svm-toy.new.cpp: svm-toy.cpp
-+ cp svm-toy.cpp svm-toy.new.cpp
-+ifdef QT3_TO_4
-+ echo "QT3_TO_4=${QT3_TO_4}"
-+ ${QT3_TO_4} -alwaysOverwrite svm-toy.new.cpp
-+endif
-+
- clean:
-- rm -f *~ svm-toy svm-toy.moc ../../svm.o
-+ rm -f *~ svm-toy-qt svm-toy.moc ../../svm.o svm-toy.new.cpp
-diff -up ./svm-toy/qt/svm-toy.cpp.orig ./svm-toy/qt/svm-toy.cpp
---- ./svm-toy/qt/svm-toy.cpp.orig 2006-03-04 17:40:12.000000000 +1000
-+++ ./svm-toy/qt/svm-toy.cpp 2008-04-29 16:13:32.000000000 +1000
-@@ -67,14 +67,15 @@ private:
- void clear_all()
- {
- point_list.clear();
-- buffer.fill(black);
-- paintEvent(NULL);
-+ buffer.fill(Qt::black);
-+ repaint(FALSE);
- }
- void draw_point(const point& p)
- {
- const QPixmap& icon = choose_icon(p.value);
-- window_painter.drawPixmap((int)(p.x*XLEN),(int)(p.y*YLEN),icon);
-+
- buffer_painter.drawPixmap((int)(p.x*XLEN),(int)(p.y*YLEN),icon);
-+ repaint(FALSE);
- }
- void draw_all_points()
- {
-@@ -213,33 +214,23 @@ private slots:
-
- buffer_painter.setPen(colors[0]);
- buffer_painter.drawLine(0,0,0,YLEN-1);
-- window_painter.setPen(colors[0]);
-- window_painter.drawLine(0,0,0,YLEN-1);
-
- int p = (int)(param.p * YLEN);
- for(i = 1; i < XLEN; i++)
- {
- buffer_painter.setPen(colors[0]);
- buffer_painter.drawLine(i,0,i,YLEN-1);
-- window_painter.setPen(colors[0]);
-- window_painter.drawLine(i,0,i,YLEN-1);
-
- buffer_painter.setPen(colors[5]);
- buffer_painter.drawLine(i-1,j[i-1],i,j[i]);
-- window_painter.setPen(colors[5]);
-- window_painter.drawLine(i-1,j[i-1],i,j[i]);
-
- if(param.svm_type == EPSILON_SVR)
- {
- buffer_painter.setPen(colors[2]);
- buffer_painter.drawLine(i-1,j[i-1]+p,i,j[i]+p);
-- window_painter.setPen(colors[2]);
-- window_painter.drawLine(i-1,j[i-1]+p,i,j[i]+p);
-
- buffer_painter.setPen(colors[2]);
- buffer_painter.drawLine(i-1,j[i-1]-p,i,j[i]-p);
-- window_painter.setPen(colors[2]);
-- window_painter.drawLine(i-1,j[i-1]-p,i,j[i]-p);
- }
- }
-
-@@ -281,9 +272,7 @@ private slots:
- double d = svm_predict(model, x);
- if (param.svm_type == ONE_CLASS && d<0) d=2;
- buffer_painter.setPen(colors[(int)d]);
-- window_painter.setPen(colors[(int)d]);
- buffer_painter.drawPoint(i,j);
-- window_painter.drawPoint(i,j);
- }
-
- svm_destroy_model(model);
-@@ -352,9 +341,9 @@ SvmToyWindow::SvmToyWindow()
- ,current_value(1)
- {
- buffer.resize(XLEN,YLEN);
-- buffer.fill(black);
-+ buffer.fill(Qt::black);
-
-- window_painter.begin(this);
-+// window_painter.begin(this);
- buffer_painter.begin(&buffer);
-
- QObject::connect(&button_change_icon, SIGNAL(clicked()), this,
-@@ -371,7 +360,7 @@ SvmToyWindow::SvmToyWindow()
- SLOT(button_run_clicked()));
-
- // don't blank the window before repainting
-- setBackgroundMode( NoBackground );
-+ setBackgroundMode( Qt::NoBackground );
-
- icon1.resize(4,4);
- icon2.resize(4,4);
-@@ -403,7 +392,7 @@ SvmToyWindow::SvmToyWindow()
-
- SvmToyWindow::~SvmToyWindow()
- {
-- window_painter.end();
-+// window_painter.end();
- buffer_painter.end();
- }
-
-@@ -417,7 +406,9 @@ void SvmToyWindow::mousePressEvent( QMou
- void SvmToyWindow::paintEvent( QPaintEvent* )
- {
- // copy the image from the buffer pixmap to the window
-- bitBlt( this, 0, 0, &buffer );
-+ // Compatiable both Qt-3 and Qt-4
-+ QPainter p(this);
-+ p.drawPixmap(0, 0, buffer);
- }
-
- int main( int argc, char* argv[] )
-diff -up ./svm-toy/windows/svm-toy.cpp.orig ./svm-toy/windows/svm-toy.cpp
-diff -up ./svm-train.c.orig ./svm-train.c
-diff -up ./tools/checkdata.py.orig ./tools/checkdata.py
-diff -up ./tools/easy.py.orig ./tools/easy.py
---- ./tools/easy.py.orig 2008-02-10 22:12:43.000000000 +1000
-+++ ./tools/easy.py 2008-04-29 15:48:00.000000000 +1000
-@@ -2,6 +2,7 @@
-
- import sys
- import os
-+from distutils.sysconfig import get_python_lib
- from subprocess import *
-
- if len(sys.argv) <= 1:
-@@ -12,10 +13,10 @@ if len(sys.argv) <= 1:
-
- is_win32 = (sys.platform == 'win32')
- if not is_win32:
-- svmscale_exe = "../svm-scale"
-- svmtrain_exe = "../svm-train"
-- svmpredict_exe = "../svm-predict"
-- grid_py = "./grid.py"
-+ svmscale_exe = "/usr/bin/svm-scale"
-+ svmtrain_exe = "/usr/bin/svm-train"
-+ svmpredict_exe = "/usr/bin/svm-predict"
-+ grid_py = get_python_lib(1)+"/libsvm/grid.py"
- gnuplot_exe = "/usr/bin/gnuplot"
- else:
- # example for windows
-diff -up ./tools/grid.py.orig ./tools/grid.py
---- ./tools/grid.py.orig 2008-03-10 00:33:09.000000000 +1000
-+++ ./tools/grid.py 2008-04-29 15:48:00.000000000 +1000
-@@ -11,7 +11,7 @@ from subprocess import *
-
- is_win32 = (sys.platform == 'win32')
- if not is_win32:
-- svmtrain_exe = "../svm-train"
-+ svmtrain_exe = "/usr/bin/svm-train"
- gnuplot_exe = "/usr/bin/gnuplot"
- else:
- # example for windows
-@@ -88,6 +88,7 @@ Usage: grid.py [-log2c begin,end,step] [
- i = i + 1
-
- pass_through_string = join(pass_through_options," ")
-+ print 'dataset_pathname=%s' % dataset_pathname
- assert os.path.exists(svmtrain_exe),"svm-train executable not found"
- assert os.path.exists(gnuplot_exe),"gnuplot executable not found"
- assert os.path.exists(dataset_pathname),"dataset not found"
-diff -up ./tools/subset.py.orig ./tools/subset.py
diff --git a/libsvm-2.88.patch b/libsvm-2.88.patch
new file mode 100644
index 0000000..d42d46a
--- /dev/null
+++ b/libsvm-2.88.patch
@@ -0,0 +1,373 @@
+diff -up ./FAQ.html.orig ./FAQ.html
+diff -up ./java/Makefile.orig ./java/Makefile
+--- ./java/Makefile.orig 2007-11-11 22:17:30.000000000 +1000
++++ ./java/Makefile 2008-11-05 16:59:35.000000000 +1000
+@@ -3,13 +3,22 @@ FILES = libsvm/svm.class libsvm/svm_mode
+ libsvm/svm_parameter.class libsvm/svm_problem.class \
+ svm_train.class svm_predict.class svm_toy.class svm_scale.class
+
+-#JAVAC = jikes
+-JAVAC_FLAGS = -target 1.5 -source 1.5
+-JAVAC = javac
+-# JAVAC_FLAGS =
++JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java
++JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER}
++CLASSPATH = .
++JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH}
++
++ifndef JAVAC
++JAVAC=javac
++endif
++
++ifndef JAR
++JAR=jar
++endif
+
+-all: $(FILES)
+- jar cvf libsvm.jar *.class libsvm/*.class
++
++all: $(FILES) javadoc
++ ${JAR} cvf libsvm.jar *.class libsvm/*.class
+
+ .java.class:
+ $(JAVAC) $(JAVAC_FLAGS) $<
+@@ -17,8 +26,24 @@ all: $(FILES)
+ libsvm/svm.java: libsvm/svm.m4
+ m4 libsvm/svm.m4 > libsvm/svm.java
+
++javadoc: docs/index.html
++
++docs/index.html: $(FILES)
++ javadoc -d docs *.java libsvm/*.java
++
++install:
++ mkdir -p ${JAVA_TARGETDIR}
++ install -m 644 libsvm.jar ${JAVA_TARGETDIR}
++ install -m 644 test_applet.html ${JAVA_TARGETDIR}
++ mkdir -p ${JAVA_DOCDIR}
++ cd docs; cp -R * ${JAVA_DOCDIR}
++uninstall:
++ rm -fr ${JAVA_TARGETDIR}
++ rm -fr ${JAVA_DOCDIR}
++
+ clean:
+ rm -f libsvm/*.class *.class *.jar libsvm/*~ *~ libsvm/svm.java
++ rm -rf docs
+
+ dist: clean all
+ rm *.class libsvm/*.class
+diff -up ./java/test_applet.html.orig ./java/test_applet.html
+--- ./java/test_applet.html.orig 2003-07-12 14:07:32.000000000 +1000
++++ ./java/test_applet.html 2008-11-05 14:08:00.000000000 +1000
+@@ -1 +1,3 @@
+-
++
++
++
+diff -up ./Makefile.orig ./Makefile
+--- ./Makefile.orig 2008-09-15 14:36:48.000000000 +1000
++++ ./Makefile 2008-11-05 18:18:03.000000000 +1000
+@@ -1,11 +1,40 @@
+ CXX? = g++
+-CFLAGS = -Wall -Wconversion -O3 -fPIC
++CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC
+ SHVER = 1
++MAKE = make
++DOT_LIBS=.libs
++LIBS= -L${DOT_LIBS} -lsvm
++export LIBSVM_VER
+
+-all: svm-train svm-predict svm-scale
++ifndef DESTDIR
++INSTDIR=/usr
++else
++INSTDIR=${DESTDIR}/usr
++endif
++
++export INSTDIR
++
++IS_64=$(shell /bin/uname -i | awk '/64/ {print 64}')
++
++ifndef LIBDIR
++LIB_INSTDIR=${INSTDIR}/lib${IS_64}
++else
++LIB_INSTDIR=${INSTDIR}/..${LIBDIR}
++endif
++
++ifndef LIBDIR
++LIBDIR=/usr/lib${IS_64}
++endif
++
++export LIBDIR
++export LIB_INSTDIR
++
++
++all: svm-train svm-predict svm-scale lib svm-python svm-java svm-toy-gtk svm-toy-qt
+
+ lib: svm.o
+- $(CXX) -shared svm.o -o libsvm.so.$(SHVER)
++ $(CXX) -shared -Wl,-soname,libsvm.so.$(SHVER) svm.o -o libsvm.so.$(SHVER)
++ ln -sf libsvm.so.$(SHVER) libsvm.so
+
+ svm-predict: svm-predict.c svm.o
+ $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
+@@ -16,4 +45,59 @@ svm-scale: svm-scale.c
+ svm.o: svm.cpp svm.h
+ $(CXX) $(CFLAGS) -c svm.cpp
+ clean:
+- rm -f *~ svm.o svm-train svm-predict svm-scale
++ rm -f *~ svm.o svm-train svm-predict svm-scale svm-toy/gtk/svm-toy-gtk svm-toy/qt/svm-toy-qt
++ ${MAKE} -C python clean
++ ${MAKE} -C java clean
++svm-python:
++ ${MAKE} -C python
++svm-java:
++ ${MAKE} -C java
++svm-toy-gtk:
++ ${MAKE} -C svm-toy/gtk
++svm-toy-qt:
++ ${MAKE} -C svm-toy/qt
++
++install: all
++ mkdir -p ${INSTDIR}/bin
++ install -m 755 svm-train ${INSTDIR}/bin
++ install -m 755 svm-predict ${INSTDIR}/bin
++ install -m 755 svm-scale ${INSTDIR}/bin
++ mkdir -p ${LIB_INSTDIR}
++ install -m 755 libsvm.so.$(SHVER) ${LIB_INSTDIR}
++# install package libsvm-devel
++ mkdir -p ${INSTDIR}/include/libsvm
++ install -m 644 svm.h ${INSTDIR}/include/libsvm
++ mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm
++ install -m 644 *.h ${INSTDIR}/share/libsvm/src
++ install -m 644 *.c ${INSTDIR}/share/libsvm/src
++ install -m 644 *.cpp ${INSTDIR}/share/libsvm/src
++ install -m 644 Makefile ${INSTDIR}/share/libsvm/src
++ install -m 644 java/*.java ${INSTDIR}/share/libsvm/src/java
++ install -m 644 java/Makefile ${INSTDIR}/share/libsvm/src/java
++ install -m 644 java/libsvm/*.java ${INSTDIR}/share/libsvm/src/java/libsvm
++ install -m 644 java/libsvm/*.m4 ${INSTDIR}/share/libsvm/src/java/libsvm
++# install package libsvm-python
++ ${MAKE} -C python install
++# install package libsvm-java
++ ${MAKE} -C java install
++# install package svm-toy
++ install -m 755 svm-toy/gtk/svm-toy-gtk ${INSTDIR}/bin
++ install -m 755 svm-toy/qt/svm-toy-qt ${INSTDIR}/bin
++# install examples
++ mkdir -p ${INSTDIR}/share/libsvm/examples
++ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
++uninstall:
++ rm -f ${INSTDIR}/bin/svm-train
++ rm -f ${INSTDIR}/bin/svm-predict
++ rm -f ${INSTDIR}/bin/svm-scale
++ rm -fr ${INSTDIR}/libsvm/examples
++ rm -f ${INSTDIR}/include/libsvm/svm.h
++ rm -f ${LIB_INSTDIR}/libsvm/svm.o
++ rm -fr ${INSTDIR}/libsvm/src
++ rm -fr ${INSTDIR}/libsvm
++ ${MAKE} -C python uninstall
++ ${MAKE} -C java uninstall
++ rm -f ${INSTDIR}/bin/svm-toy-gtk
++ rm -f ${INSTDIR}/bin/svm-toy-qt
++
++
+diff -up ./python/cross_validation.py.orig ./python/cross_validation.py
+diff -up ./python/Makefile.orig ./python/Makefile
+--- ./python/Makefile.orig 2007-10-14 16:29:12.000000000 +1000
++++ ./python/Makefile 2008-11-05 14:08:00.000000000 +1000
+@@ -2,9 +2,16 @@ CXX? = g++
+ SWIG ?= swig
+
+ #Windows: see ../README ../Makefile.win
+-PYTHON_INCLUDEDIR ?= /usr/include/python2.4
++#PYTHON_TEMP:=${shell mktemp}
++#PYTHON_VERSION:=${shell python -V 2> ${PYTHON_TEMP} ; cat ${PYTHON_TEMP} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f ${PYTHON_TEMP}}
++ifndef PYTHON_INCLUDEDIR
+
+-CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I..
++PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION}
++
++endif
++PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm
++
++CFLAGS_PYTHON = ${CFLAGS} -O3 -I$(PYTHON_INCLUDEDIR) -I..
+ LDFLAGS = -shared
+ # Mac OS
+ # LDFLAGS = -framework Python -bundle
+@@ -15,16 +22,34 @@ svmc.so: svmc_wrap.o svm.o
+ $(CXX) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o
+
+ svmc_wrap.o: svmc_wrap.c ../svm.h
+- $(CXX) $(CFLAGS) -fPIC -c svmc_wrap.c
++# echo "PYTHON_VERSION=${PYTHON_VERSION}"
++# echo "CFLAGS=${CFLAGS}"
++# echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}"
++ $(CXX) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c
+
+ svmc_wrap.c: svmc.i
+ $(SWIG) -python -noproxy svmc.i
+
+ svm.o: ../svm.cpp ../svm.h
+- $(CXX) $(CFLAGS) -fPIC -c ../svm.cpp
++ $(CXX) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp
+
+ clean:
+ rm -f *~ *.o *.so *.pyc *.pyo svm.o
+
+ moreclean: clean
+ rm -f svmc_wrap.c
++
++
++install: all
++ mkdir -p ${PYTHON_TARGETDIR}
++ install -m 755 cross_validation.py ${PYTHON_TARGETDIR}
++ install -m 644 svm.py ${PYTHON_TARGETDIR}
++ install -m 755 svm_test.py ${PYTHON_TARGETDIR}
++ install -m 755 test_cross_validation.py ${PYTHON_TARGETDIR}
++ install -m 644 *.i ${PYTHON_TARGETDIR}
++ install -m 755 *.so ${PYTHON_TARGETDIR}
++ install -m 755 ../tools/*.py ${PYTHON_TARGETDIR}
++
++uninstall:
++ rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm
++
+diff -up ./python/setup.py.orig ./python/setup.py
+diff -up ./python/svm.py.orig ./python/svm.py
+diff -up ./python/svm_test.py.orig ./python/svm_test.py
+diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py
+diff -up ./svm.cpp.orig ./svm.cpp
+diff -up ./svm-toy/gtk/callbacks.cpp.orig ./svm-toy/gtk/callbacks.cpp
+--- ./svm-toy/gtk/callbacks.cpp.orig 2006-03-04 17:40:12.000000000 +1000
++++ ./svm-toy/gtk/callbacks.cpp 2008-11-05 14:08:00.000000000 +1000
+@@ -2,6 +2,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "callbacks.h"
+ #include "interface.h"
+ #include "../../svm.h"
+diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile
+--- ./svm-toy/gtk/Makefile.orig 2007-10-14 16:29:12.000000000 +1000
++++ ./svm-toy/gtk/Makefile 2008-11-05 16:18:10.000000000 +1000
+@@ -2,21 +2,27 @@ CC? = gcc
+ CXX? = g++
+ CFLAGS = -Wall -O3 -g `gtk-config --cflags`
+ LIBS = `gtk-config --libs`
++COPT = -Wall -O3 -g `pkg-config --cflags --libs gtk+-2.0`
++LOCAL_LIBDIR=../../
++LIBS= -L${LOCAL_LIBDIR} -lsvm
+
+-svm-toy: main.o interface.o callbacks.o ../../svm.o
+- $(CXX) $(CFLAGS) main.o interface.o callbacks.o ../../svm.o -o svm-toy $(LIBS)
++
++all: svm-toy-gtk
++
++svm-toy-gtk: main.o interface.o callbacks.o
++ $(CXX) $(COPT) main.o interface.o callbacks.o ${LIBS} -o svm-toy-gtk
+
+ main.o: main.c
+- $(CC) $(CFLAGS) -c main.c
++ $(CC) $(COPT) -c main.c
+
+ interface.o: interface.c interface.h
+- $(CC) $(CFLAGS) -c interface.c
++ $(CC) $(COPT) -c interface.c
+
+ callbacks.o: callbacks.cpp callbacks.h
+- $(CXX) $(CFLAGS) -c callbacks.cpp
++ $(CXX) $(COPT) -c callbacks.cpp
+
+-../../svm.o:
+- cd ../..; make svm.o
++#../../svm.o:
++# cd ../..; make svm.o
+
+ clean:
+- rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o ../../svm.o
++ rm -f *~ callbacks.o svm-toy-gtk main.o interface.o callbacks.o
+diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile
+--- ./svm-toy/qt/Makefile.orig 2008-05-01 22:42:15.000000000 +1000
++++ ./svm-toy/qt/Makefile 2008-11-05 17:42:43.000000000 +1000
+@@ -1,17 +1,24 @@
+ CXX? = g++
+-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui
++CFLAGS = -Wall -O3
++
++FLAGS:=${CFLAGS} `pkg-config --cflags --libs QtGui`
++
++LOCAL_LIBDIR=../../
++LIBS= -L${LOCAL_LIBDIR} -lsvm
++
+ INCLUDE = /usr/include/qt4
+ MOC = /usr/bin/moc-qt4
+
+-svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o
+- $(CXX) $(FLAGS) svm-toy.cpp ../../svm.o -o svm-toy
++all: svm-toy-qt
++
++svm-toy-qt: svm-toy.cpp svm-toy.moc
++ $(CXX) $(FLAGS) svm-toy.cpp ${LIBS} -o svm-toy-qt
++
+
+ svm-toy.moc: svm-toy.cpp
+ $(MOC) svm-toy.cpp -o svm-toy.moc
+
+-../../svm.o:
+- cd ../..; make svm.o
+
+ clean:
+- rm -f *~ svm-toy svm-toy.moc ../../svm.o
++ rm -f *~ svm-toy-qt svm-toy.moc ../../svm.o
+
+diff -up ./svm-toy/qt/svm-toy.cpp.orig ./svm-toy/qt/svm-toy.cpp
+diff -up ./svm-toy/windows/svm-toy.cpp.orig ./svm-toy/windows/svm-toy.cpp
+diff -up ./tools/checkdata.py.orig ./tools/checkdata.py
+diff -up ./tools/easy.py.orig ./tools/easy.py
+--- ./tools/easy.py.orig 2008-02-10 22:12:43.000000000 +1000
++++ ./tools/easy.py 2008-11-05 14:08:00.000000000 +1000
+@@ -2,6 +2,7 @@
+
+ import sys
+ import os
++from distutils.sysconfig import get_python_lib
+ from subprocess import *
+
+ if len(sys.argv) <= 1:
+@@ -12,10 +13,10 @@ if len(sys.argv) <= 1:
+
+ is_win32 = (sys.platform == 'win32')
+ if not is_win32:
+- svmscale_exe = "../svm-scale"
+- svmtrain_exe = "../svm-train"
+- svmpredict_exe = "../svm-predict"
+- grid_py = "./grid.py"
++ svmscale_exe = "/usr/bin/svm-scale"
++ svmtrain_exe = "/usr/bin/svm-train"
++ svmpredict_exe = "/usr/bin/svm-predict"
++ grid_py = get_python_lib(1)+"/libsvm/grid.py"
+ gnuplot_exe = "/usr/bin/gnuplot"
+ else:
+ # example for windows
+diff -up ./tools/grid.py.orig ./tools/grid.py
+--- ./tools/grid.py.orig 2008-08-08 20:41:11.000000000 +1000
++++ ./tools/grid.py 2008-11-05 14:08:00.000000000 +1000
+@@ -11,7 +11,7 @@ from subprocess import *
+
+ is_win32 = (sys.platform == 'win32')
+ if not is_win32:
+- svmtrain_exe = "../svm-train"
++ svmtrain_exe = "/usr/bin/svm-train"
+ gnuplot_exe = "/usr/bin/gnuplot"
+ else:
+ # example for windows
+@@ -88,6 +88,7 @@ Usage: grid.py [-log2c begin,end,step] [
+ i = i + 1
+
+ pass_through_string = join(pass_through_options," ")
++ print 'dataset_pathname=%s' % dataset_pathname
+ assert os.path.exists(svmtrain_exe),"svm-train executable not found"
+ assert os.path.exists(gnuplot_exe),"gnuplot executable not found"
+ assert os.path.exists(dataset_pathname),"dataset not found"
+diff -up ./tools/subset.py.orig ./tools/subset.py
diff --git a/libsvm.spec b/libsvm.spec
index 91cb695..c6503a4 100644
--- a/libsvm.spec
+++ b/libsvm.spec
@@ -1,6 +1,6 @@
Name: libsvm
-Version: 2.86
-Release: 13%{?dist}
+Version: 2.88
+Release: 0%{?dist}
Summary: A Library for Support Vector Machines
Group: Development/Libraries
@@ -16,8 +16,6 @@ Source5: LibSVM-svm-toy-48.png
Patch0: %{name}-%{version}.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-%define libsvm_ver_major 2
-%define libsvm_ver_minor 86
%{!?pyver: %define pyver %(python -c 'import sys; print(sys.version[0:3])')}
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%define libsvm_python_dir %{python_sitearch}/libsvm
@@ -59,15 +57,16 @@ programs with libsvm in Python.
%package java
Summary: Java tools and interfaces for libsvm
Group: Development/Libraries
-BuildRequires: java-1.5.0-gcj-devel >= 1.5.0.0
-#Client doesn't necessory use gcj
-#Requires: java-1.5.0-gcj >= 1.5.0.0
+BuildRequires: java-1.6.0-openjdk-devel
+#Client doesn't necessory use java-1.6.0
Requires: %{name} = %{version}-%{release}
%description java
Java tools and interfaces for libsvm.
Install this package if you want to develop
programs with libsvm in Java.
+Install libsvm-javadoc for
+
%package svm-toy-gtk
Summary: GTK version of svm-toy (libsvm demostration program)
@@ -84,10 +83,16 @@ display the derived separating hyperplane.
%package svm-toy-qt
Summary: QT version of svm-toy (libsvm demostration program)
Group: Development/Libraries
-BuildRequires: qt-devel
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig
+
+%if 0%{?fedora} >= 9
+BuildRequires: qt-devel
Requires: qt
+%else
+BuildRequires: qt4-devel
+Requires: qt4
+%endif
Requires: %{name} = %{version}-%{release}
%description svm-toy-qt
@@ -107,9 +112,9 @@ cp %{SOURCE5} %{name}-svm-toy-qt-48.png
%build
-make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" JAVAC="%{javac}" JAR="%{jar}" LIBDIR="%{_libdir}" LIBSVM_VER_MAJOR="%{libsvm_ver_major}" LIBSVM_VER_MINOR=%{libsvm_ver_minor}
%{__sed} -i 's/\r//' FAQ.html
%{__sed} -i 's/\r//' ChangeLog
+make all RPM_CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" JAVAC="%{javac}" JAR="%{jar}" LIBDIR="%{_libdir}"
mv python/README python/README-Python
mv tools/README tools/README-Tools
cp README java/README-Java
@@ -119,8 +124,8 @@ cp README svm-toy/qt
%install
rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" LIBSVM_VER_MAJOR="%{libsvm_ver_major}" LIBSVM_VER_MINOR=%{libsvm_ver_minor}
-#cd ${RPM_BUILD_ROOT}%{libdir_libsvm}; ln -sf %{name}.so.%{version} %{name}.so
+make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" LIBSVM_VER="%{version}"
+ln -sf %{name}.so.1 ${RPM_BUILD_ROOT}%{_libdir}/%{name}.so
rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/
cp %{name}-svm-toy-gtk-48.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/
@@ -166,8 +171,7 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/svm-train
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/examples
-%{_libdir}/%{name}.so.%{version}
-%{_libdir}/%{name}.so.%{libsvm_ver_major}
+%{_libdir}/%{name}.so.1
%files devel
@@ -183,9 +187,9 @@ rm -rf $RPM_BUILD_ROOT
%files java
%defattr(-,root,root,-)
-%doc java/README-Java
+%doc java/README-Java
%{_datadir}/%{name}/java
-#%{_datadir}/javadoc/%{name}-%{version}
+%{_datadir}/javadoc/%{name}-%{version}
%files svm-toy-gtk
%defattr(-,root,root,-)
@@ -203,6 +207,28 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Wed Nov 05 2008 Ding-Yi Chen - 2.88-0
+- Note:
+ + SO version now follows upstream, i.e. SHVER=1, as upstream start to build shared library now.
+ Be aware that previously SO version of libsvm.so is libsvm.so.2.86, which looks higher than
+ the current SO version libsvm.so.1.
+ + Replaced java-1.5.0-gcj-devel with java-1.6.0-openjdk-devel.
+ + java sub-package now have javadoc.
+- Upstream update
+ + From 2.87: 2008/10/13
+ * svm-toy/qt updated to qt4 from qt3
+ * fix a bug in svm-scale.c
+ * max feature index of -r file is considered
+ * Makefile: add make lib; add -Wconversion and -fPIC in Makefile
+ * Add "rb" in load_model of svm.cpp
+ * Simplify do_shrinking of svm.cpp
+ * Change the order of loops in reconstrict_gradient of svm.cpp
+ * save the number of kernel evaluations
+ * Add python/setup.py
+ + From 2.88: 2008/10/30
+ * better gradient reconstructions
+ * issue a warning when -h 0 may be faster
+
* Thu Apr 29 2008 Ding-Yi Chen - 2.86-13
- Fix svm-toy-qt clear button does not clear.
(from Hsiang-Fu Yu in National Taiwan University)
diff --git a/log b/log
index 4df78fb..15da1b9 100644
--- a/log
+++ b/log
@@ -139,4 +139,22 @@ file updated.
version number in svm.h and svm.m4
rename svmtrain.exe to svm-train.exe
python: while 1 --> while True, Popen -> call
- show best parameters on the contour of grid.py
\ No newline at end of file
+ show best parameters on the contour of grid.py
+
+2.87: 2008/10/13
+ svm-toy/qt updated to qt4 from qt3
+ fix a bug in svm-scale.c
+ max feature index of -r file is considered
+ Makefile: add make lib; add -Wconversion and -fPIC in Makefile
+ Add "rb" in load_model of svm.cpp
+ Simplify do_shrinking of svm.cpp
+ Change the order of loops in reconstrict_gradient of svm.cpp
+ save the number of kernel evaluations
+ Add python/setup.py
+
+2.88: 2008/10/30
+ better gradient reconstructions
+ issue a warning when -h 0 may be faster
+
+2.89: 2009/04/01
+ todo: python 2.6, java 1.6, openMP, fast input
\ No newline at end of file
diff --git a/sources b/sources
index 0372550..2a65311 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
aae7a8f7e357e86e1c893b706bb02a63 guide.pdf
-fe0cccace12516382be5a7c513e4b056 libsvm-2.86.tar.gz
+1b69c7d887d349b13f9f2cf245310fea libsvm-2.88.tar.gz