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