From e191ea07088d562eb4fe6c6b3d2e412c0e55ea23 Mon Sep 17 00:00:00 2001 From: Ding-Yi Chen Date: Apr 22 2014 02:21:59 +0000 Subject: Merge branch 'master' into el6 --- diff --git a/.gitignore b/.gitignore index aa1a6ec..77e536b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,8 @@ libsvm-2.91.tar.gz /libsvm-3.11.tar.gz /libsvm-3.12.tar.gz /libsvm-3.17.tar.gz +/libsvm-3.18.tar.gz +/log +/LibSVM-svm-toy-48.png +/libsvm-svm-toy-gtk.desktop +/libsvm-svm-toy-qt.desktop diff --git a/libsvm-3.17.javaDir.patch b/libsvm-3.17.javaDir.patch deleted file mode 100644 index ed7cf4b..0000000 --- a/libsvm-3.17.javaDir.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff -up ./java/Makefile.javaDir ./java/Makefile ---- ./java/Makefile.javaDir 2009-02-18 10:41:04.000000000 +1000 -+++ ./java/Makefile 2010-11-08 10:59:11.229518442 +1000 -@@ -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 --JAVAC_FLAGS = -target 1.5 -source 1.5 -+JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH} -+ifndef JAVAC - JAVAC = javac -+endif - # JAVAC_FLAGS = - -+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) $< -@@ -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: -+ mkdir -p ${JAVA_TARGET_DIR} -+ install -m 644 libsvm.jar ${JAVA_TARGET_DIR} -+# mkdir -p ${JAVA_DOC_DIR} -+# cd docs; cp -R * ${JAVA_DOC_DIR} -+uninstall: -+ rm -fr ${JAVA_TARGETDIR} -+# rm -fr ${JAVA_DOC_DIR} -+ - 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 ---- ./java/test_applet.html.javaDir 2003-07-12 14:07:32.000000000 +1000 -+++ ./java/test_applet.html 2010-11-08 10:59:11.229518442 +1000 -@@ -1 +1,3 @@ -- -+ -+ -+ diff --git a/libsvm-3.17.packageMain.patch b/libsvm-3.17.packageMain.patch deleted file mode 100644 index dee23cd..0000000 --- a/libsvm-3.17.packageMain.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff -up ./Makefile.packageMain ./Makefile ---- ./Makefile.packageMain 2013-03-31 17:06:44.000000000 +1000 -+++ ./Makefile 2013-04-13 22:59:43.796601417 +1000 -@@ -1,11 +1,45 @@ - CXX ?= g++ --CFLAGS = -Wall -Wconversion -O3 -fPIC -+CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC - SHVER = 2 -+export SHVER - OS = $(shell uname) -+MAKE = make -+DOT_LIBS=. -+LIBS= -L${DOT_LIBS} -lsvm -+export LIBSVM_VER -+IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}') -+PREFIXDIR?= /usr -+export PREFIXDIR - --all: svm-train svm-predict svm-scale -+LIBDIR?=${PREFIXDIR}/lib${IS_64} -+export LIBDIR - --lib: svm.o -+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 -+ -+lib: libsvm.so.$(SHVER) libsvm.so -+ -+libsvm.so: libsvm.so.$(SHVER) -+ ln -sf libsvm.so.$(SHVER) libsvm.so -+ -+libsvm.so.$(SHVER): svm.o - if [ "$(OS)" = "Darwin" ]; then \ - SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)"; \ - else \ -@@ -14,12 +48,72 @@ lib: svm.o - $(CXX) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) - - svm-predict: svm-predict.c svm.o -- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm -+ $(CXX) $(CFLAGS) svm-predict.c $(LIBS) -o svm-predict -lm - svm-train: svm-train.c svm.o -- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm -+ $(CXX) $(CFLAGS) svm-train.c $(LIBS) -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 - 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.17.pythonDir.patch b/libsvm-3.17.pythonDir.patch deleted file mode 100644 index ff0991d..0000000 --- a/libsvm-3.17.pythonDir.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up ./python/Makefile.pythonDir ./python/Makefile ---- ./python/Makefile.pythonDir 2011-05-10 09:35:15.000000000 +1000 -+++ ./python/Makefile 2011-11-08 09:49:54.280501207 +1000 -@@ -1,4 +1,20 @@ -+PYTHONDIR_NAME ?= python${PYTHON_VERSION}/site-packages/libsvm -+PYTHONDIR?=${LIBDIR}/${PYTHONDIR_NAME} -+PYTHONDIR_INSTALL=${DESTDIR}/${PYTHONDIR} -+SVM_TOOLS:= $(notdir $(wildcard ../tools/*.py)) -+ - all = lib - --lib: -+all: lib -+ -+lib: ../svm.cpp ../svm.h - make -C .. lib -+ -+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.17.svm-toy.patch b/libsvm-3.17.svm-toy.patch deleted file mode 100644 index d2a9274..0000000 --- a/libsvm-3.17.svm-toy.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile ---- ./svm-toy/gtk/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000 -+++ ./svm-toy/gtk/Makefile 2012-04-04 17:02:28.366615284 +1000 -@@ -1,10 +1,12 @@ - CC? = gcc - CXX? = g++ --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 = -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 ${LOCAL_LIBDIR}/svm.o -+ $(CXX) $(CFLAGS) main.o interface.o callbacks.o $(LIBS) -o $@ - - main.o: main.c - $(CC) $(CFLAGS) -c main.c -@@ -15,8 +17,8 @@ interface.o: interface.c interface.h - callbacks.o: callbacks.cpp callbacks.h - $(CXX) $(CFLAGS) -c callbacks.cpp - --../../svm.o: ../../svm.cpp ../../svm.h -- make -C ../.. svm.o -+${LOCAL_LIBDIR}/svm.o: ${LOCAL_LIBDIR}/svm.cpp ${LOCAL_LIBDIR}/svm.h -+ make -C ${LOCAL_LIBDIR} 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 ${LOCAL_LIBDIR}/svm.o -diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile ---- ./svm-toy/qt/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000 -+++ ./svm-toy/qt/Makefile 2012-04-04 17:02:28.366615284 +1000 -@@ -1,17 +1,22 @@ - CXX? = g++ --CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui --INCLUDE = /usr/include/qt4 --MOC = /usr/bin/moc-qt4 -+SHVER?=2 -+CFLAGS = -Wall -O3 `pkg-config --cflags --libs QtGui` -+MOC=${MOC_PATH} -+LOCAL_LIBDIR=../.. -+LIBS = -L${LOCAL_LIBDIR} -lsvm -+LIBSVM_SO_SHVER=${LOCAL_LIBDIR}/libsvm.so.$(SHVER) - --svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o -- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy -+all: svm-toy-qt -+ -+svm-toy-qt: svm-toy.cpp svm-toy.moc $(LIBSVM_SO_SHVER) -+ $(CXX) $(CFLAGS) svm-toy.cpp ${LIBS} -o $@ - - svm-toy.moc: svm-toy.cpp - $(MOC) svm-toy.cpp -o svm-toy.moc - --../../svm.o: ../../svm.cpp ../../svm.h -- make -C ../.. svm.o -+$(LIBSVM_SO_SHVER): ${LOCAL_LIBDIR}/svm.cpp ${LOCAL_LIBDIR}/svm.h -+ make -C ${LOCAL_LIBDIR} lib - - clean: -- rm -f *~ svm-toy svm-toy.moc ../../svm.o -+ rm -f *~ svm-toy svm-toy.moc $(LIBSVM_SO_SHVER) - diff --git a/libsvm-3.17.toolsDir.patch b/libsvm-3.17.toolsDir.patch deleted file mode 100644 index a303895..0000000 --- a/libsvm-3.17.toolsDir.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -up ./tools/easy.py.toolsDir ./tools/easy.py ---- ./tools/easy.py.toolsDir 2013-03-31 17:06:49.000000000 +1000 -+++ ./tools/easy.py 2013-04-13 23:17:53.399526910 +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 2013-03-31 17:06:50.000000000 +1000 -+++ ./tools/grid.py 2013-04-13 23:18:53.964522769 +1000 -@@ -18,7 +18,7 @@ class GridOption: - def __init__(self, dataset_pathname, options): - dirname = os.path.dirname(__file__) - if sys.platform != 'win32': -- self.svmtrain_pathname = os.path.join(dirname, '../svm-train') -+ self.svmtrain_pathname = '/usr/bin/svm-train' - self.gnuplot_pathname = '/usr/bin/gnuplot' - else: - # example for windows diff --git a/libsvm-3.18.javaDir.patch b/libsvm-3.18.javaDir.patch new file mode 100644 index 0000000..ed7cf4b --- /dev/null +++ b/libsvm-3.18.javaDir.patch @@ -0,0 +1,59 @@ +diff -up ./java/Makefile.javaDir ./java/Makefile +--- ./java/Makefile.javaDir 2009-02-18 10:41:04.000000000 +1000 ++++ ./java/Makefile 2010-11-08 10:59:11.229518442 +1000 +@@ -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 +-JAVAC_FLAGS = -target 1.5 -source 1.5 ++JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH} ++ifndef JAVAC + JAVAC = javac ++endif + # JAVAC_FLAGS = + ++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) $< +@@ -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: ++ mkdir -p ${JAVA_TARGET_DIR} ++ install -m 644 libsvm.jar ${JAVA_TARGET_DIR} ++# mkdir -p ${JAVA_DOC_DIR} ++# cd docs; cp -R * ${JAVA_DOC_DIR} ++uninstall: ++ rm -fr ${JAVA_TARGETDIR} ++# rm -fr ${JAVA_DOC_DIR} ++ + 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 +--- ./java/test_applet.html.javaDir 2003-07-12 14:07:32.000000000 +1000 ++++ ./java/test_applet.html 2010-11-08 10:59:11.229518442 +1000 +@@ -1 +1,3 @@ +- ++ ++ ++ diff --git a/libsvm-3.18.packageMain.patch b/libsvm-3.18.packageMain.patch new file mode 100644 index 0000000..dee23cd --- /dev/null +++ b/libsvm-3.18.packageMain.patch @@ -0,0 +1,128 @@ +diff -up ./Makefile.packageMain ./Makefile +--- ./Makefile.packageMain 2013-03-31 17:06:44.000000000 +1000 ++++ ./Makefile 2013-04-13 22:59:43.796601417 +1000 +@@ -1,11 +1,45 @@ + CXX ?= g++ +-CFLAGS = -Wall -Wconversion -O3 -fPIC ++CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC + SHVER = 2 ++export SHVER + OS = $(shell uname) ++MAKE = make ++DOT_LIBS=. ++LIBS= -L${DOT_LIBS} -lsvm ++export LIBSVM_VER ++IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}') ++PREFIXDIR?= /usr ++export PREFIXDIR + +-all: svm-train svm-predict svm-scale ++LIBDIR?=${PREFIXDIR}/lib${IS_64} ++export LIBDIR + +-lib: svm.o ++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 ++ ++lib: libsvm.so.$(SHVER) libsvm.so ++ ++libsvm.so: libsvm.so.$(SHVER) ++ ln -sf libsvm.so.$(SHVER) libsvm.so ++ ++libsvm.so.$(SHVER): svm.o + if [ "$(OS)" = "Darwin" ]; then \ + SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)"; \ + else \ +@@ -14,12 +48,72 @@ lib: svm.o + $(CXX) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) + + svm-predict: svm-predict.c svm.o +- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm ++ $(CXX) $(CFLAGS) svm-predict.c $(LIBS) -o svm-predict -lm + svm-train: svm-train.c svm.o +- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm ++ $(CXX) $(CFLAGS) svm-train.c $(LIBS) -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 + 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.18.pythonDir.patch b/libsvm-3.18.pythonDir.patch new file mode 100644 index 0000000..ff0991d --- /dev/null +++ b/libsvm-3.18.pythonDir.patch @@ -0,0 +1,25 @@ +diff -up ./python/Makefile.pythonDir ./python/Makefile +--- ./python/Makefile.pythonDir 2011-05-10 09:35:15.000000000 +1000 ++++ ./python/Makefile 2011-11-08 09:49:54.280501207 +1000 +@@ -1,4 +1,20 @@ ++PYTHONDIR_NAME ?= python${PYTHON_VERSION}/site-packages/libsvm ++PYTHONDIR?=${LIBDIR}/${PYTHONDIR_NAME} ++PYTHONDIR_INSTALL=${DESTDIR}/${PYTHONDIR} ++SVM_TOOLS:= $(notdir $(wildcard ../tools/*.py)) ++ + all = lib + +-lib: ++all: lib ++ ++lib: ../svm.cpp ../svm.h + make -C .. lib ++ ++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.18.svm-toy.patch b/libsvm-3.18.svm-toy.patch new file mode 100644 index 0000000..d2a9274 --- /dev/null +++ b/libsvm-3.18.svm-toy.patch @@ -0,0 +1,66 @@ +diff -up ./svm-toy/gtk/Makefile.svm-toy ./svm-toy/gtk/Makefile +--- ./svm-toy/gtk/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000 ++++ ./svm-toy/gtk/Makefile 2012-04-04 17:02:28.366615284 +1000 +@@ -1,10 +1,12 @@ + CC? = gcc + CXX? = g++ +-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 = -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 ${LOCAL_LIBDIR}/svm.o ++ $(CXX) $(CFLAGS) main.o interface.o callbacks.o $(LIBS) -o $@ + + main.o: main.c + $(CC) $(CFLAGS) -c main.c +@@ -15,8 +17,8 @@ interface.o: interface.c interface.h + callbacks.o: callbacks.cpp callbacks.h + $(CXX) $(CFLAGS) -c callbacks.cpp + +-../../svm.o: ../../svm.cpp ../../svm.h +- make -C ../.. svm.o ++${LOCAL_LIBDIR}/svm.o: ${LOCAL_LIBDIR}/svm.cpp ${LOCAL_LIBDIR}/svm.h ++ make -C ${LOCAL_LIBDIR} 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 ${LOCAL_LIBDIR}/svm.o +diff -up ./svm-toy/qt/Makefile.svm-toy ./svm-toy/qt/Makefile +--- ./svm-toy/qt/Makefile.svm-toy 2011-05-11 12:15:45.000000000 +1000 ++++ ./svm-toy/qt/Makefile 2012-04-04 17:02:28.366615284 +1000 +@@ -1,17 +1,22 @@ + CXX? = g++ +-CFLAGS = -Wall -O3 -I$(INCLUDE) -I$(INCLUDE)/QtGui -lQtGui +-INCLUDE = /usr/include/qt4 +-MOC = /usr/bin/moc-qt4 ++SHVER?=2 ++CFLAGS = -Wall -O3 `pkg-config --cflags --libs QtGui` ++MOC=${MOC_PATH} ++LOCAL_LIBDIR=../.. ++LIBS = -L${LOCAL_LIBDIR} -lsvm ++LIBSVM_SO_SHVER=${LOCAL_LIBDIR}/libsvm.so.$(SHVER) + +-svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o +- $(CXX) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy ++all: svm-toy-qt ++ ++svm-toy-qt: svm-toy.cpp svm-toy.moc $(LIBSVM_SO_SHVER) ++ $(CXX) $(CFLAGS) svm-toy.cpp ${LIBS} -o $@ + + svm-toy.moc: svm-toy.cpp + $(MOC) svm-toy.cpp -o svm-toy.moc + +-../../svm.o: ../../svm.cpp ../../svm.h +- make -C ../.. svm.o ++$(LIBSVM_SO_SHVER): ${LOCAL_LIBDIR}/svm.cpp ${LOCAL_LIBDIR}/svm.h ++ make -C ${LOCAL_LIBDIR} lib + + clean: +- rm -f *~ svm-toy svm-toy.moc ../../svm.o ++ rm -f *~ svm-toy svm-toy.moc $(LIBSVM_SO_SHVER) + diff --git a/libsvm-3.18.toolsDir.patch b/libsvm-3.18.toolsDir.patch new file mode 100644 index 0000000..a303895 --- /dev/null +++ b/libsvm-3.18.toolsDir.patch @@ -0,0 +1,52 @@ +diff -up ./tools/easy.py.toolsDir ./tools/easy.py +--- ./tools/easy.py.toolsDir 2013-03-31 17:06:49.000000000 +1000 ++++ ./tools/easy.py 2013-04-13 23:17:53.399526910 +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 2013-03-31 17:06:50.000000000 +1000 ++++ ./tools/grid.py 2013-04-13 23:18:53.964522769 +1000 +@@ -18,7 +18,7 @@ class GridOption: + def __init__(self, dataset_pathname, options): + dirname = os.path.dirname(__file__) + if sys.platform != 'win32': +- self.svmtrain_pathname = os.path.join(dirname, '../svm-train') ++ self.svmtrain_pathname = '/usr/bin/svm-train' + self.gnuplot_pathname = '/usr/bin/gnuplot' + else: + # example for windows diff --git a/libsvm.spec b/libsvm.spec index bba690b..fb2dd6b 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ %define shver 2 Name: libsvm -Version: 3.17 +Version: 3.18 Release: 1%{?dist} Summary: A Library for Support Vector Machines @@ -81,7 +81,7 @@ Group: Development/Libraries BuildRequires: java-devel >= 1.5.0 BuildRequires: jpackage-utils -Requires: java >= 1.5.0 +Requires: java-headless >= 1.5.0 Requires: jpackage-utils Requires: %{name} = %{version}-%{release} @@ -162,7 +162,7 @@ echo -e "# This file is not in the original libsvm tarball, but added for conven # This file is released under BSD license, just like the rest of the package.\n"\ > $RPM_BUILD_ROOT/%{libsvm_python_dir}/__init__.py -desktop-file-install --delete-original --vendor=fedora \ +desktop-file-install --delete-original \ --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \ ${RPM_BUILD_ROOT}/%{_datadir}/applications/%{name}-svm-toy-gtk.desktop \ ${RPM_BUILD_ROOT}/%{_datadir}/applications/%{name}-svm-toy-qt.desktop \ @@ -227,17 +227,32 @@ rm -rf $RPM_BUILD_ROOT %doc svm-toy/gtk/README %{_bindir}/svm-toy-gtk %{_datadir}/icons/hicolor/48x48/apps/%{name}-svm-toy-gtk-48.png -%{_datadir}/applications/fedora-%{name}-svm-toy-gtk.desktop +%{_datadir}/applications/*%{name}-svm-toy-gtk.desktop %files svm-toy-qt %defattr(-,root,root,-) %doc svm-toy/qt/README %{_bindir}/svm-toy-qt %{_datadir}/icons/hicolor/48x48/apps/%{name}-svm-toy-qt-48.png -%{_datadir}/applications/fedora-%{name}-svm-toy-qt.desktop +%{_datadir}/applications/*%{name}-svm-toy-qt.desktop %changelog +* Tue Apr 22 2014 Ding-Yi Chen - 3.18-1 +- Upstream update to 3.18 +- svm.cpp and svm-scale.c: check return values of fscanf +- matlab interface: Makefile no longer handles octave + because make.m should be used + +* Fri Mar 28 2014 Michael Simacek - 3.17-4 +- Use Requires: java-headless rebuild (#1067528) + +* Sat Aug 03 2013 Fedora Release Engineering - 3.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Apr 25 2013 Jon Ciesla - 3.17-2 +- Drop desktop vendor tag. + * Sat Apr 13 2013 Ding-Yi Chen - 3.17-1 - Upstream update from 3.13 to 3.17 svm.c and svm.h: @@ -343,10 +358,10 @@ rm -rf $RPM_BUILD_ROOT * Wed Apr 07 2010 Ding-Yi Chen - 2.91-1 - Fixed Bug 564887 - FTBFS libsvm-2.90-3.fc13 - Upstream update: - * completely new python interface using ctype - * new way to set the print_string function - * Java: able to load model from a BufferedReader directly - * fix grid.py so -log2c can be run under python 2.6 or after + * completely new python interface using ctype + * new way to set the print_string function + * Java: able to load model from a BufferedReader directly + * fix grid.py so -log2c can be run under python 2.6 or after * Thu Nov 05 2009 Ding-Yi Chen - 2.90-2 - Obsoletes libsvm-java for ppc and ppc64. @@ -416,7 +431,7 @@ rm -rf $RPM_BUILD_ROOT * better gradient reconstructions * issue a warning when -h 0 may be faster -* Thu Apr 29 2008 Ding-Yi Chen - 2.86-13 +* Tue 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) @@ -446,7 +461,7 @@ rm -rf $RPM_BUILD_ROOT - [Bug 436392]: Fix by copy from right place. - Add desktop files and icons for svm-toy-gtk and svm-toy-qt -* Tue Feb 11 2008 Ding-Yi Chen - 2.85-4 +* Mon Feb 11 2008 Ding-Yi Chen - 2.85-4 - Move gnuplot from BuildRequires to Requires * Thu Feb 07 2008 Ding-Yi Chen - 2.85-3 @@ -466,7 +481,7 @@ rm -rf $RPM_BUILD_ROOT - Add svm-toy-gtk - Add svm-toy-qt -* Wed Dec 20 2007 Ding-Yi Chen - 2.84-9 +* Thu Dec 20 2007 Ding-Yi Chen - 2.84-9 - [Bug 254091] Comment 19 - Fix python/Makefile @@ -478,11 +493,11 @@ rm -rf $RPM_BUILD_ROOT * Mon Dec 03 2007 Ding-Yi Chen - 2.84-7 - [Bug 254091] Review Request: libsvm - A Library for Support Vector Machines (Comment #12) -* Thu Sep 26 2007 Ding-Yi Chen - 2.84-6 +* Wed Sep 26 2007 Ding-Yi Chen - 2.84-6 - Add defattr to each subpackage - Move libsvm.so to libsvm -* Thu Sep 24 2007 Ding-Yi Chen - 2.84-5 +* Mon Sep 24 2007 Ding-Yi Chen - 2.84-5 - Split out libsvm-java - Add libsvm.so diff --git a/sources b/sources index 5984ec3..4a9b52a 100644 --- a/sources +++ b/sources @@ -1,2 +1,6 @@ b1543809993e2653dd2787f62c3c390a guide.pdf -67f8b597ce85c1f5288d7838e57ea28a libsvm-3.17.tar.gz +bba35e2cf9d14e158009ef8b90fd840a libsvm-3.18.tar.gz +95918671ee5435803a1646e1ad2f3317 log +0bc4868057a7c1c422f91a798f14a562 LibSVM-svm-toy-48.png +398721fc66bb0903d46c685e9a3cba27 libsvm-svm-toy-gtk.desktop +9a518db15afe9224e3a04695c82d7142 libsvm-svm-toy-qt.desktop