Upstream update

epel8
Ding-Yi Chen 16 years ago
parent 61c60df60a
commit af6ee5565c

@ -1,2 +1,2 @@
guide.pdf guide.pdf
libsvm-2.86.tar.gz libsvm-2.88.tar.gz

@ -0,0 +1 @@
libsvm-2_88-0_fc9:HEAD:libsvm-2.88-0.fc9.src.rpm:1226043285

@ -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 @@
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
+<html>
+<applet code="svm_toy.class" archive="libsvm.jar" width=300 height=350></applet>
+</html>
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 <stdio.h>
#include <ctype.h>
#include <list>
+#include <cstdlib>
#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

@ -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 @@
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
+<html>
+<applet code="svm_toy.class" archive="libsvm.jar" width=300 height=350></applet>
+</html>
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 <stdio.h>
#include <ctype.h>
#include <list>
+#include <cstdlib>
#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

@ -1,6 +1,6 @@
Name: libsvm Name: libsvm
Version: 2.86 Version: 2.88
Release: 13%{?dist} Release: 0%{?dist}
Summary: A Library for Support Vector Machines Summary: A Library for Support Vector Machines
Group: Development/Libraries Group: Development/Libraries
@ -16,8 +16,6 @@ Source5: LibSVM-svm-toy-48.png
Patch0: %{name}-%{version}.patch Patch0: %{name}-%{version}.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root 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])')} %{!?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)")} %{!?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 %define libsvm_python_dir %{python_sitearch}/libsvm
@ -59,15 +57,16 @@ programs with libsvm in Python.
%package java %package java
Summary: Java tools and interfaces for libsvm Summary: Java tools and interfaces for libsvm
Group: Development/Libraries Group: Development/Libraries
BuildRequires: java-1.5.0-gcj-devel >= 1.5.0.0 BuildRequires: java-1.6.0-openjdk-devel
#Client doesn't necessory use gcj #Client doesn't necessory use java-1.6.0
#Requires: java-1.5.0-gcj >= 1.5.0.0
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description java %description java
Java tools and interfaces for libsvm. Java tools and interfaces for libsvm.
Install this package if you want to develop Install this package if you want to develop
programs with libsvm in Java. programs with libsvm in Java.
Install libsvm-javadoc for
%package svm-toy-gtk %package svm-toy-gtk
Summary: GTK version of svm-toy (libsvm demostration program) Summary: GTK version of svm-toy (libsvm demostration program)
@ -84,10 +83,16 @@ display the derived separating hyperplane.
%package svm-toy-qt %package svm-toy-qt
Summary: QT version of svm-toy (libsvm demostration program) Summary: QT version of svm-toy (libsvm demostration program)
Group: Development/Libraries Group: Development/Libraries
BuildRequires: qt-devel
BuildRequires: desktop-file-utils BuildRequires: desktop-file-utils
BuildRequires: pkgconfig BuildRequires: pkgconfig
%if 0%{?fedora} >= 9
BuildRequires: qt-devel
Requires: qt Requires: qt
%else
BuildRequires: qt4-devel
Requires: qt4
%endif
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description svm-toy-qt %description svm-toy-qt
@ -107,9 +112,9 @@ cp %{SOURCE5} %{name}-svm-toy-qt-48.png
%build %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//' FAQ.html
%{__sed} -i 's/\r//' ChangeLog %{__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 python/README python/README-Python
mv tools/README tools/README-Tools mv tools/README tools/README-Tools
cp README java/README-Java cp README java/README-Java
@ -119,8 +124,8 @@ cp README svm-toy/qt
%install %install
rm -rf $RPM_BUILD_ROOT 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} make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" LIBSVM_VER="%{version}"
#cd ${RPM_BUILD_ROOT}%{libdir_libsvm}; ln -sf %{name}.so.%{version} %{name}.so ln -sf %{name}.so.1 ${RPM_BUILD_ROOT}%{_libdir}/%{name}.so
rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/ 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/ 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 %{_bindir}/svm-train
%dir %{_datadir}/%{name} %dir %{_datadir}/%{name}
%{_datadir}/%{name}/examples %{_datadir}/%{name}/examples
%{_libdir}/%{name}.so.%{version} %{_libdir}/%{name}.so.1
%{_libdir}/%{name}.so.%{libsvm_ver_major}
%files devel %files devel
@ -185,7 +189,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc java/README-Java %doc java/README-Java
%{_datadir}/%{name}/java %{_datadir}/%{name}/java
#%{_datadir}/javadoc/%{name}-%{version} %{_datadir}/javadoc/%{name}-%{version}
%files svm-toy-gtk %files svm-toy-gtk
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -203,6 +207,28 @@ rm -rf $RPM_BUILD_ROOT
%changelog %changelog
* Wed Nov 05 2008 Ding-Yi Chen <dchen@redhat.com> - 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 <dchen@redhat.com> - 2.86-13 * Thu Apr 29 2008 Ding-Yi Chen <dchen@redhat.com> - 2.86-13
- Fix svm-toy-qt clear button does not clear. - Fix svm-toy-qt clear button does not clear.
(from Hsiang-Fu Yu in National Taiwan University) (from Hsiang-Fu Yu in National Taiwan University)

18
log

@ -140,3 +140,21 @@ file updated.
rename svmtrain.exe to svm-train.exe rename svmtrain.exe to svm-train.exe
python: while 1 --> while True, Popen -> call python: while 1 --> while True, Popen -> call
show best parameters on the contour of grid.py 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

@ -1,2 +1,2 @@
aae7a8f7e357e86e1c893b706bb02a63 guide.pdf aae7a8f7e357e86e1c893b706bb02a63 guide.pdf
fe0cccace12516382be5a7c513e4b056 libsvm-2.86.tar.gz 1b69c7d887d349b13f9f2cf245310fea libsvm-2.88.tar.gz

Loading…
Cancel
Save