diff --git a/.gitignore b/.gitignore index 1ad2fca..2068ba3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ guide.pdf libsvm-2.91.tar.gz /guide.pdf /libsvm-3.0.tar.gz +/libsvm-3.1.tar.gz diff --git a/libsvm-3.0-1.packageMain.patch b/libsvm-3.0-1.packageMain.patch deleted file mode 100644 index ac7a7f7..0000000 --- a/libsvm-3.0-1.packageMain.patch +++ /dev/null @@ -1,114 +0,0 @@ -diff -up ./Makefile.packageMain ./Makefile ---- ./Makefile.packageMain 2010-09-12 22:11:10.000000000 +1000 -+++ ./Makefile 2010-12-14 16:00:15.269681221 +1000 -@@ -1,11 +1,40 @@ - CXX ?= g++ --CFLAGS = -Wall -Wconversion -O3 -fPIC -+CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC - SHVER = 2 -+MAKE = make -+DOT_LIBS=.libs -+LIBS= -L${DOT_LIBS} -lsvm -+export LIBSVM_VER -+ -+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: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt - --all: svm-train svm-predict svm-scale - - lib: svm.o -- $(CXX) -shared -dynamiclib 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,65 @@ 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 libsvm.so.$(SHVER) -+ 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: -+ifneq ("${NO_JAVA}","NO_JAVA") -+ ${MAKE} -C java -+endif -+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 -+ifneq ("${NO_JAVA}","NO_JAVA") -+ 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-java -+ ${MAKE} -C java install -+endif -+# install package libsvm-python -+ ${MAKE} -C python 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 -+ifneq ("${NO_JAVA}","NO_JAVA") -+ ${MAKE} -C java uninstall -+endif -+ rm -f ${INSTDIR}/bin/svm-toy-gtk -+ rm -f ${INSTDIR}/bin/svm-toy-qt diff --git a/libsvm-3.0.pythonDir.patch b/libsvm-3.0.pythonDir.patch deleted file mode 100644 index 2471a06..0000000 --- a/libsvm-3.0.pythonDir.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up ./python/Makefile.pythonDir ./python/Makefile ---- ./python/Makefile.pythonDir 2010-06-16 14:04:46.000000000 +1000 -+++ ./python/Makefile 2010-11-08 11:07:55.950510378 +1000 -@@ -1,4 +1,16 @@ --all = lib -+PYTHON_PATH ?= python${PYTHON_VERSION}/site-packages/libsvm -+PYTHON_TARGETDIR=${LIB_INSTDIR}/${PYTHON_PATH} - --lib: -+all: lib -+ -+lib: ../svm.cpp ../svm.h - cd ..; make lib; cd - -+ -+install: all -+ mkdir -p ${PYTHON_TARGETDIR} -+ install -m 755 *.py ${PYTHON_TARGETDIR} -+ install -m 755 ../tools/*.py ${PYTHON_TARGETDIR} -+ -+uninstall: -+ rm -fr ${LIBDIR}/${PYTHON_PATH}all = lib -+ diff --git a/libsvm-3.0.toolsDir.patch b/libsvm-3.0.toolsDir.patch deleted file mode 100644 index 1d3d69f..0000000 --- a/libsvm-3.0.toolsDir.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up ./tools/easy.py.toolsDir ./tools/easy.py ---- ./tools/easy.py.toolsDir 2010-11-08 11:42:36.754570359 +1000 -+++ ./tools/easy.py 2010-11-08 11:53:23.724570788 +1000 -@@ -12,10 +12,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 = "/usr/bin/grid.py" - gnuplot_exe = "/usr/bin/gnuplot" - else: - # example for windows -diff -up ./tools/grid.py.toolsDir ./tools/grid.py ---- ./tools/grid.py.toolsDir 2010-11-08 11:42:36.756570467 +1000 -+++ ./tools/grid.py 2010-11-08 11:52:59.144511925 +1000 -@@ -17,7 +17,7 @@ else: - - 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 diff --git a/libsvm-3.0.javaDir.patch b/libsvm-3.1.javaDir.patch similarity index 98% rename from libsvm-3.0.javaDir.patch rename to libsvm-3.1.javaDir.patch index 056374b..ed7cf4b 100644 --- a/libsvm-3.0.javaDir.patch +++ b/libsvm-3.1.javaDir.patch @@ -4,7 +4,7 @@ diff -up ./java/Makefile.javaDir ./java/Makefile @@ -4,13 +4,21 @@ FILES = libsvm/svm.class libsvm/svm_mode libsvm/svm_print_interface.class \ svm_train.class svm_predict.class svm_toy.class svm_scale.class - + +JAVA_DOC_DIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER} +CLASSPATH = . #JAVAC = jikes @@ -14,7 +14,7 @@ diff -up ./java/Makefile.javaDir ./java/Makefile JAVAC = javac +endif # JAVAC_FLAGS = - + +ifndef JAR +JAR=jar +endif @@ -22,19 +22,19 @@ diff -up ./java/Makefile.javaDir ./java/Makefile all: $(FILES) - jar cvf libsvm.jar *.class libsvm/*.class + ${JAR} cvf libsvm.jar *.class libsvm/*.class - + .java.class: $(JAVAC) $(JAVAC_FLAGS) $< @@ -18,8 +26,23 @@ 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: ++install: + mkdir -p ${JAVA_TARGET_DIR} + install -m 644 libsvm.jar ${JAVA_TARGET_DIR} +# mkdir -p ${JAVA_DOC_DIR} @@ -46,7 +46,7 @@ diff -up ./java/Makefile.javaDir ./java/Makefile 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.javaDir ./java/test_applet.html diff --git a/libsvm-3.1.packageMain.patch b/libsvm-3.1.packageMain.patch new file mode 100644 index 0000000..87209e9 --- /dev/null +++ b/libsvm-3.1.packageMain.patch @@ -0,0 +1,117 @@ +diff -up ./Makefile.packageMain ./Makefile +--- ./Makefile.packageMain 2010-09-12 22:11:10.000000000 +1000 ++++ ./Makefile 2011-06-14 17:00:32.774749405 +1000 +@@ -1,11 +1,44 @@ + CXX ?= g++ +-CFLAGS = -Wall -Wconversion -O3 -fPIC ++CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC + SHVER = 2 ++MAKE = make ++DOT_LIBS=.libs ++LIBS= -L${DOT_LIBS} -lsvm ++export LIBSVM_VER ++ ++IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}') ++ ++PREFIXDIR?= /usr ++export PREFIXDIR ++ ++LIBDIR?=${PREFIXDIR}/lib${IS_64} ++export LIBDIR ++ ++DATADIR?=${PREFIXDIR}/share ++export DATADIR ++ ++BINDIR?=${PREFIXDIR}/bin ++export BINDIR ++ ++INCLUDEDIR_INSTALL:=${DESTDIR}/${PREFIXDIR}/include ++export INCLUDEDIR_INSTALL ++ ++LIBDIR_INSTALL:=${DESTDIR}/${LIBDIR} ++export LIBDIR_INSTALL ++ ++DATADIR_INSTALL:=${DESTDIR}/${DATADIR} ++export DATA_INSTALL ++ ++BINDIR_INSTALL:=${DESTDIR}/${BINDIR} ++export BINDIR_INSTALL ++ ++ ++all: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt + +-all: svm-train svm-predict svm-scale + + lib: svm.o +- $(CXX) -shared -dynamiclib 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 +49,64 @@ 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 libsvm.so.$(SHVER) ++ 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: ++ifneq ("${NO_JAVA}","NO_JAVA") ++ ${MAKE} -C java ++endif ++svm-toy-gtk: ++ ${MAKE} -C svm-toy/gtk ++ ++svm-toy-qt: ++ ${MAKE} -C svm-toy/qt ++ ++install: all ++ mkdir -p ${BINDIR_INSTALL} ++ install -m 755 svm-train ${BINDIR_INSTALL} ++ install -m 755 svm-predict ${BINDIR_INSTALL} ++ install -m 755 svm-scale ${BINDIR_INSTALL} ++ mkdir -p ${LIBDIR_INSTALL} ++ install -m 755 libsvm.so.$(SHVER) ${LIBDIR_INSTALL} ++# install package libsvm-devel ++ mkdir -p ${INCLUDEDIR_INSTALL}/libsvm ++ install -m 644 svm.h ${INCLUDEDIR_INSTALL}/libsvm ++ mkdir -p ${DATADIR_INSTALL}/libsvm/src/java/libsvm ++ install -m 644 *.h ${DATADIR_INSTALL}/libsvm/src ++ install -m 644 *.c ${DATADIR_INSTALL}/libsvm/src ++ install -m 644 *.cpp ${DATADIR_INSTALL}/libsvm/src ++ install -m 644 Makefile ${DATADIR_INSTALL}/libsvm/src ++ifneq ("${NO_JAVA}","NO_JAVA") ++ install -m 644 java/*.java ${DATADIR_INSTALL}/libsvm/src/java ++ install -m 644 java/Makefile ${DATADIR_INSTALL}/libsvm/src/java ++ install -m 644 java/libsvm/*.java ${DATADIR_INSTALL}/libsvm/src/java/libsvm ++ install -m 644 java/libsvm/*.m4 ${DATADIR_INSTALL}/libsvm/src/java/libsvm ++# install package libsvm-java ++ ${MAKE} -C java install ++endif ++# install package libsvm-python ++ ${MAKE} -C python install ++# install package svm-toy ++ install -m 755 svm-toy/gtk/svm-toy-gtk ${BINDIR_INSTALL} ++ install -m 755 svm-toy/qt/svm-toy-qt ${BINDIR_INSTALL} ++# install examples ++ mkdir -p ${DATADIR_INSTALL}/libsvm/examples ++ install -m 644 heart_scale ${DATADIR_INSTALL}/libsvm/examples ++uninstall: ++ rm -f ${BINDIR_INSTALL}/svm-train ++ rm -f ${BINDIR_INSTALL}/svm-predict ++ rm -f ${BINDIR_INSTALL}/svm-scale ++ rm -fr ${DATADIR_INSTALL}/libsvm ++ rm -f ${INCLUDEDIR_INSTALL}/libsvm/svm.h ++ rm -f ${LIBDIR_INSTALL}/libsvm.so* ++ ${MAKE} -C python uninstall ++ifneq ("${NO_JAVA}","NO_JAVA") ++ ${MAKE} -C java uninstall ++endif ++ rm -f ${BINDIR_INSTALL}/svm-toy-gtk ++ rm -f ${BINDIR_INSTALL}/svm-toy-qt ++ diff --git a/libsvm-3.1.pythonDir.patch b/libsvm-3.1.pythonDir.patch new file mode 100644 index 0000000..8d8d7ec --- /dev/null +++ b/libsvm-3.1.pythonDir.patch @@ -0,0 +1,25 @@ +diff -up ./python/Makefile.pythonDir ./python/Makefile +--- ./python/Makefile.pythonDir 2010-06-16 14:04:46.000000000 +1000 ++++ ./python/Makefile 2011-06-14 16:53:39.365997401 +1000 +@@ -1,4 +1,19 @@ +-all = lib ++PYTHONDIR_NAME ?= python${PYTHON_VERSION}/site-packages/libsvm ++PYTHONDIR?=${LIBDIR}/${PYTHONDIR_NAME} ++PYTHONDIR_INSTALL=${DESTDIR}/${PYTHONDIR} ++SVM_TOOLS:= $(notdir $(wildcard ../tools/*.py)) + +-lib: ++all: lib ++ ++lib: ../svm.cpp ../svm.h + cd ..; make lib; cd - ++ ++install: all ++ mkdir -p ${PYTHONDIR_INSTALL} ++ install -m 755 *.py ${PYTHONDIR_INSTALL} ++ install -m 755 ../tools/*.py ${PYTHONDIR_INSTALL} ++ $(foreach toolPy,$(SVM_TOOLS),ln -s ${PYTHONDIR}/$(toolPy) ${BINDIR_INSTALL}/svm-$(toolPy);) ++ ++uninstall: ++ rm -fr ${LIBDIR}/${PYTHON_PATH} $(addprefix ${BINDIR_INSTALL}/svm-,$(SVM_TOOLS)) ++ diff --git a/libsvm-3.0.svm-toy.patch b/libsvm-3.1.svm-toy.patch similarity index 74% rename from libsvm-3.0.svm-toy.patch rename to libsvm-3.1.svm-toy.patch index 5faade5..baad72a 100644 --- a/libsvm-3.0.svm-toy.patch +++ b/libsvm-3.1.svm-toy.patch @@ -1,6 +1,6 @@ diff -up ./svm-toy/gtk/callbacks.cpp.svm-toy ./svm-toy/gtk/callbacks.cpp --- ./svm-toy/gtk/callbacks.cpp.svm-toy 2010-09-12 22:11:10.000000000 +1000 -+++ ./svm-toy/gtk/callbacks.cpp 2010-11-08 12:04:22.564509303 +1000 ++++ ./svm-toy/gtk/callbacks.cpp 2011-06-14 13:36:25.726748304 +1000 @@ -3,6 +3,7 @@ #include #include @@ -10,25 +10,25 @@ diff -up ./svm-toy/gtk/callbacks.cpp.svm-toy ./svm-toy/gtk/callbacks.cpp #include "interface.h" #include "../../svm.h" diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile ---- ./svm-toy/gtk/Makefile.svm-toy 2010-09-12 22:11:10.000000000 +1000 -+++ ./svm-toy/gtk/Makefile 2010-11-08 12:05:58.925509978 +1000 -@@ -1,10 +1,11 @@ +--- ./svm-toy/gtk/Makefile.svm-toy 2010-11-14 10:59:28.000000000 +1000 ++++ ./svm-toy/gtk/Makefile 2011-06-14 13:47:23.529749429 +1000 +@@ -1,10 +1,12 @@ CC? = gcc CXX? = g++ --CFLAGS = -Wall -O3 -g `pkg-config --libs gtk+-2.0` + CFLAGS = -Wall -O3 -g `pkg-config --cflags gtk+-2.0` -LIBS = `pkg-config --libs gtk+-2.0` -+CFLAGS = -Wall -O3 -g `pkg-config --cflags --libs gtk+-2.0` +LOCAL_LIBDIR=../../ +LIBS = `pkg-config --libs gtk+-2.0` -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) -+svm-toy-gtk: main.o interface.o callbacks.o -+ $(CXX) $(CFLAGS) main.o interface.o callbacks.o $(LIBS) -o $@ ++ ++svm-toy-gtk: main.o interface.o callbacks.o ++ $(CXX) $(CFLAGS) main.o interface.o callbacks.o $(LIBS) -o $@ main.o: main.c $(CC) $(CFLAGS) -c main.c -@@ -15,8 +16,5 @@ interface.o: interface.c interface.h +@@ -15,8 +17,5 @@ interface.o: interface.c interface.h callbacks.o: callbacks.cpp callbacks.h $(CXX) $(CFLAGS) -c callbacks.cpp @@ -40,7 +40,7 @@ diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile + rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile --- ./svm-toy/qt/Makefile.svm-toy 2008-12-19 16:42:05.000000000 +1000 -+++ ./svm-toy/qt/Makefile 2010-11-08 12:05:43.978510797 +1000 ++++ ./svm-toy/qt/Makefile 2011-06-14 13:50:02.634748539 +1000 @@ -1,17 +1,18 @@ CXX? = g++ -CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui @@ -49,7 +49,7 @@ diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile -MOC = /usr/bin/moc-qt4 +MOC=${MOC_PATH} +LOCAL_LIBDIR=../../ -+LIBS = `pkg-config --libs gtk+-2.0` -L${LOCAL_LIBDIR} -lsvm ++LIBS = `pkg-config --libs QtGui` -L${LOCAL_LIBDIR} -lsvm -svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o - $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy diff --git a/libsvm-3.1.toolsDir.patch b/libsvm-3.1.toolsDir.patch new file mode 100644 index 0000000..1f4c1d2 --- /dev/null +++ b/libsvm-3.1.toolsDir.patch @@ -0,0 +1,52 @@ +diff -up ./tools/easy.py.toolsDir ./tools/easy.py +--- ./tools/easy.py.toolsDir 2010-12-31 15:51:25.000000000 +1000 ++++ ./tools/easy.py 2011-06-14 15:15:06.611622820 +1000 +@@ -12,10 +12,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 = "/usr/bin/svm-grid.py" + gnuplot_exe = "/usr/bin/gnuplot" + else: + # example for windows +@@ -47,7 +47,7 @@ if len(sys.argv) > 2: + + cmd = '{0} -s "{1}" "{2}" > "{3}"'.format(svmscale_exe, range_file, train_pathname, scaled_file) + print('Scaling training data...') +-Popen(cmd, shell = True, stdout = PIPE).communicate() ++Popen(cmd, shell = True, stdout = PIPE).communicate() + + cmd = '{0} -svmtrain "{1}" -gnuplot "{2}" "{3}"'.format(grid_py, svmtrain_exe, gnuplot_exe, scaled_file) + print('Cross validation...') +@@ -70,10 +70,10 @@ print('Output model: {0}'.format(model_f + if len(sys.argv) > 2: + cmd = '{0} -r "{1}" "{2}" > "{3}"'.format(svmscale_exe, range_file, test_pathname, scaled_test_file) + print('Scaling testing data...') +- Popen(cmd, shell = True, stdout = PIPE).communicate() ++ Popen(cmd, shell = True, stdout = PIPE).communicate() + + cmd = '{0} "{1}" "{2}" "{3}"'.format(svmpredict_exe, scaled_test_file, model_file, predict_test_file) + print('Testing...') +- Popen(cmd, shell = True).communicate() ++ Popen(cmd, shell = True).communicate() + + print('Output prediction: {0}'.format(predict_test_file)) +diff -up ./tools/grid.py.toolsDir ./tools/grid.py +--- ./tools/grid.py.toolsDir 2011-02-03 01:55:20.000000000 +1000 ++++ ./tools/grid.py 2011-06-14 14:56:11.817748117 +1000 +@@ -17,7 +17,7 @@ else: + + 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 diff --git a/libsvm.spec b/libsvm.spec index 9c3dcf0..f81c408 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,7 +1,7 @@ %define shver 2 Name: libsvm -Version: 3.0 -Release: 3%{?dist} +Version: 3.1 +Release: 1%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -14,7 +14,7 @@ Source2: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf Source3: libsvm-svm-toy-gtk.desktop Source4: libsvm-svm-toy-qt.desktop Source5: LibSVM-svm-toy-48.png -Patch0: %{name}-%{version}-1.packageMain.patch +Patch0: %{name}-%{version}.packageMain.patch Patch1: %{name}-%{version}.pythonDir.patch Patch2: %{name}-%{version}.javaDir.patch Patch3: %{name}-%{version}.svm-toy.patch @@ -32,6 +32,10 @@ BuildRequires: grep %if 0%{?fedora} >= 9 %define moc_path %{_bindir}/moc-qt4 %else +%if 0%{?rhel} >= 6 +%define moc_path %{_bindir}/moc-qt4 +%endif +%else %define moc_path %{_libdir}/qt4/bin/moc %endif @@ -209,6 +213,7 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root,-) %doc python/README-Python tools/README-Tools %{libsvm_python_dir} +%{_bindir}/svm-*.py %ifnarch ppc ppc64 %files java @@ -234,6 +239,30 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Jun 14 2011 Ding-Yi Chen - 3.1-1 +- svm tools is now installed in /usr/bin as svm-*.py + i.e. tools/easy.py is linked as svm-easy.py. +- Upstream update: + + MATLAB interface: + + Merge matlab interface to core libsvm + + Using mexPrintf() when calling info() in MATLAB interface. + + Both 32- and 64-bit windows binary files are provided + + Java: + Math.random is replaced by Random in java interface + + Python interface: + subroutines to get SVs + relative path to load *.dll and *.so + + svm.cpp: + null pointer check before release memory in svm_free_model_content() + svm_destroy_model() no longer supported. + + svm-train.c and svm-predict.c + Better format check in reading data labels + + svm-toy: + fix the svm_toy dialog path + + tools: + Using new string formatting/encoding in tools/*.py + clearer png output, fix grid.py legend + * Tue Feb 08 2011 Fedora Release Engineering - 3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild diff --git a/log b/log index 9d41631..ede03f3 100644 --- a/log +++ b/log @@ -184,9 +184,31 @@ file updated. QD from Qfloat to double (better precision because SSE on 64-bit machines less accurate than i387 on 32-bit exit status for checkdata.py old python interface (swig) is removed + +3.1: 2011/04/01 + MATLAB interface: + Merge matlab interface to core libsvm + Using mexPrintf() when calling info() in MATLAB interface. + Both 32- and 64-bit windows binary files are provided + Java: + Math.random is replaced by Random in java interface + Python interface: + subroutines to get SVs + relative path to load *.dll and *.so + svm.cpp: + null pointer check before release memory in svm_free_model_content() + svm_destroy_model() no longer supported. + svm-train.c and svm-predict.c + Better format check in reading data labels + svm-toy: + fix the svm_toy dialog path + tools: + Using new string formatting/encoding in tools/*.py + clearer png output, fix grid.py legend + ------------------ Future plan: ?.?: - merge matlab interface to core libsvm + update make.m of matlab interface to use max(...) \ No newline at end of file diff --git a/sources b/sources index f04e60f..045b743 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ aae7a8f7e357e86e1c893b706bb02a63 guide.pdf -016e29668aae8aa6eaeb125c9e23d834 libsvm-3.0.tar.gz +a157c1edfdb290fe8081d6a011022055 libsvm-3.1.tar.gz