diff --git a/.cvsignore b/.cvsignore index 9161481..9708a72 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ -libsvm-2.84.tar.gz +guide.pdf +libsvm-2.85.tar.gz diff --git a/libsvm-2.84.patch b/libsvm-2.85.patch similarity index 60% rename from libsvm-2.84.patch rename to libsvm-2.85.patch index 8347e43..351f2ee 100644 --- a/libsvm-2.84.patch +++ b/libsvm-2.85.patch @@ -1,6 +1,6 @@ diff -up ./java/test_applet.html.orig ./java/test_applet.html ---- ./java/test_applet.html.orig 2008-01-02 09:37:14.000000000 +1000 -+++ ./java/test_applet.html 2008-01-02 09:43:19.000000000 +1000 +--- ./java/test_applet.html.orig 2008-02-04 10:11:00.000000000 +1000 ++++ ./java/test_applet.html 2008-02-04 10:13:02.000000000 +1000 @@ -1 +1,3 @@ - + @@ -8,8 +8,8 @@ diff -up ./java/test_applet.html.orig ./java/test_applet.html + diff -up ./java/svm_train.java.orig ./java/svm_train.java 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-01-02 09:43:19.000000000 +1000 +--- ./java/libsvm/svm_parameter.java.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/libsvm/svm_parameter.java 2008-02-04 10:13:02.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_parameter implements Cloneable,java.io.Serializable @@ -19,8 +19,8 @@ diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java 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-01-02 09:43:19.000000000 +1000 +--- ./java/libsvm/svm_problem.java.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/libsvm/svm_problem.java 2008-02-04 10:13:02.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_problem implements java.io.Serializable @@ -30,8 +30,8 @@ diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java public double[] y; public svm_node[][] x; 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-01-02 09:43:19.000000000 +1000 +--- ./java/libsvm/svm_node.java.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/libsvm/svm_node.java 2008-02-04 10:13:02.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_node implements java.io.Serializable @@ -41,8 +41,8 @@ diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java public double value; } 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-01-02 09:43:19.000000000 +1000 +--- ./java/libsvm/svm_model.java.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/libsvm/svm_model.java 2008-02-04 10:13:02.000000000 +1000 @@ -4,6 +4,7 @@ package libsvm; public class svm_model implements java.io.Serializable @@ -53,36 +53,37 @@ diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java int l; // total #SV diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java diff -up ./java/Makefile.orig ./java/Makefile ---- ./java/Makefile.orig 2008-01-02 09:32:55.000000000 +1000 -+++ ./java/Makefile 2008-01-02 09:43:19.000000000 +1000 -@@ -1,15 +1,18 @@ - .SUFFIXES: .class .java --FILES = libsvm/svm.class libsvm/svm_model.class libsvm/svm_node.class \ -- libsvm/svm_parameter.class libsvm/svm_problem.class \ -+FILES = libsvm/svm_node.class libsvm/svm_parameter.class \ -+ libsvm/svm_model.class libsvm/svm_problem.class libsvm/svm.class\ +--- ./java/Makefile.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/Makefile 2008-02-04 14:26:38.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 -#JAVAC = jikes --#JAVAC_FLAGS = -target 1.1 -source 1.3 +-JAVAC_FLAGS = -target 1.5 -source 1.5 -JAVAC = javac --JAVAC_FLAGS = +-# JAVAC_FLAGS = +JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java +JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER} -+JAVAC = ecj -+#JAVAC_FLAGS = -target 1.3 -source 1.3 +CLASSPATH = . -+#JAVAC_FLAGS = --classpath=${CLASSPATH} -+JAVAC_FLAGS = -classpath ${CLASSPATH} ++JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH} ++ ++ifndef JAVAC ++JAVAC=javac ++endif ++ ++ifndef JAR ++JAR=jar ++endif ++ --all: $(FILES) + all: $(FILES) - jar cvf libsvm.jar *.class libsvm/*.class -+all: $(FILES) -+ gjar cvf libsvm.jar *.class libsvm/*.class ++ ${JAR} cvf libsvm.jar *.class libsvm/*.class .java.class: $(JAVAC) $(JAVAC_FLAGS) $< -@@ -17,8 +20,22 @@ all: $(FILES) +@@ -17,8 +26,22 @@ all: $(FILES) libsvm/svm.java: libsvm/svm.m4 m4 libsvm/svm.m4 > libsvm/svm.java @@ -106,8 +107,8 @@ diff -up ./java/Makefile.orig ./java/Makefile dist: clean all rm *.class libsvm/*.class diff -up ./java/svm_toy.java.orig ./java/svm_toy.java ---- ./java/svm_toy.java.orig 2006-03-04 17:40:11.000000000 +1000 -+++ ./java/svm_toy.java 2008-01-02 09:43:19.000000000 +1000 +--- ./java/svm_toy.java.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./java/svm_toy.java 2008-02-04 10:13:02.000000000 +1000 @@ -6,7 +6,7 @@ import java.awt.event.*; import java.io.*; @@ -129,9 +130,9 @@ diff -up ./java/svm_predict.java.orig ./java/svm_predict.java diff -up ./python/cross_validation.py.orig ./python/cross_validation.py diff -up ./python/svm_test.py.orig ./python/svm_test.py diff -up ./python/Makefile.orig ./python/Makefile ---- ./python/Makefile.orig 2008-01-02 09:38:18.000000000 +1000 -+++ ./python/Makefile 2008-01-02 11:26:08.000000000 +1000 -@@ -2,9 +2,16 @@ CC = g++ +--- ./python/Makefile.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./python/Makefile 2008-02-04 16:49:05.000000000 +1000 +@@ -2,9 +2,16 @@ CXX? = g++ SWIG ?= swig #Windows: see ../README ../Makefile.win @@ -150,22 +151,22 @@ diff -up ./python/Makefile.orig ./python/Makefile LDFLAGS = -shared # Mac OS # LDFLAGS = -framework Python -bundle -@@ -15,16 +22,35 @@ svmc.so: svmc_wrap.o svm.o - $(CC) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o +@@ -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 -- $(CC) $(CFLAGS) -fPIC -c svmc_wrap.c -+ echo "PYTHON_VERSION=${PYTHON_VERSION}" -+ echo "CFLAGS=${CFLAGS}" -+ echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}" -+ $(CC) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c +- $(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 -- $(CC) $(CFLAGS) -fPIC -c ../svm.cpp -+ $(CC) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp +- $(CXX) $(CFLAGS) -fPIC -c ../svm.cpp ++ $(CXX) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp clean: rm -f *~ *.o *.so *.pyc *.pyo svm.o @@ -173,6 +174,7 @@ diff -up ./python/Makefile.orig ./python/Makefile moreclean: clean rm -f svmc_wrap.c + ++ +install: all + mkdir -p ${PYTHON_TARGETDIR} + install -m 755 cross_validation.py ${PYTHON_TARGETDIR} @@ -186,23 +188,22 @@ diff -up ./python/Makefile.orig ./python/Makefile +uninstall: + rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm + -+ -+ diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py diff -up ./python/svm.py.orig ./python/svm.py diff -up ./tools/subset.py.orig ./tools/subset.py +diff -up ./tools/checkdata.py.orig ./tools/checkdata.py diff -up ./tools/easy.py.orig ./tools/easy.py ---- ./tools/easy.py.orig 2004-06-26 23:42:52.000000000 +1000 -+++ ./tools/easy.py 2008-01-03 11:31:31.000000000 +1000 +--- ./tools/easy.py.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./tools/easy.py 2008-02-04 10:23:49.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: - print 'Usage: %s training_file [testing_file]' % sys.argv[0] -@@ -11,10 +12,10 @@ if len(sys.argv) <= 1: +@@ -12,10 +13,10 @@ if len(sys.argv) <= 1: is_win32 = (sys.platform == 'win32') if not is_win32: @@ -218,9 +219,9 @@ diff -up ./tools/easy.py.orig ./tools/easy.py else: # example for windows diff -up ./tools/grid.py.orig ./tools/grid.py ---- ./tools/grid.py.orig 2006-11-30 03:24:59.000000000 +1000 -+++ ./tools/grid.py 2008-01-03 13:03:06.000000000 +1000 -@@ -11,7 +11,7 @@ from string import find, split, join, at +--- ./tools/grid.py.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./tools/grid.py 2008-02-04 10:13:02.000000000 +1000 +@@ -11,7 +11,7 @@ from subprocess import * is_win32 = (sys.platform == 'win32') if not is_win32: @@ -238,15 +239,15 @@ diff -up ./tools/grid.py.orig ./tools/grid.py assert os.path.exists(gnuplot_exe),"gnuplot executable not found" assert os.path.exists(dataset_pathname),"dataset not found" diff -up ./Makefile.orig ./Makefile ---- ./Makefile.orig 2008-01-02 09:36:22.000000000 +1000 -+++ ./Makefile 2008-01-02 09:43:19.000000000 +1000 -@@ -1,8 +1,41 @@ - CXXC = g++ +--- ./Makefile.orig 2007-11-06 23:32:49.000000000 +1000 ++++ ./Makefile 2008-02-04 17:22:47.000000000 +1000 +@@ -1,8 +1,46 @@ + CXX? = g++ CFLAGS = -Wall -O3 +MAKE = make +LIBSVM_VER_MAJOR=2 -+LIBSVM_VER_MINOR=84 -+LIBSVM_VER =${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR} ++LIBSVM_VER_MINOR=85 ++LIBSVM_VER=${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR} +export LIBSVM_VER -all: svm-train svm-predict svm-scale @@ -271,42 +272,51 @@ diff -up ./Makefile.orig ./Makefile +LIB_INSTDIR=${INSTDIR}/..${LIBDIR} +endif + ++ifndef LIBDIR ++LIBDIR=/usr/lib${X86_64} ++endif ++ ++export LIBDIR +export LIB_INSTDIR + -+all: svm-train svm-predict svm-scale svm-python svm-java svm-lib ++all: svm-train svm-predict svm-scale svm-python svm-java svm-lib svm-toy-gtk svm-toy-qt + +svm-lib: svm-share.o -+ $(CXXC) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\ ++ $(CXX) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\ + -o libsvm.so.${LIBSVM_VER} svm-share.o -lm +svm-share.o: svm.cpp svm.h -+ $(CXXC) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o ++ $(CXX) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o svm-predict: svm-predict.c svm.o - $(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm + $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm svm-train: svm-train.c svm.o -@@ -11,5 +44,61 @@ svm-scale: svm-scale.c - $(CXXC) $(CFLAGS) svm-scale.c -o svm-scale +@@ -12,4 +50,61 @@ svm-scale: svm-scale.c svm.o: svm.cpp svm.h - $(CXXC) $(CFLAGS) -c svm.cpp + $(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}/libsvm ++ mkdir -p ${LIB_INSTDIR}/libsvm + mkdir -p ${LIB_INSTDIR} -+# install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}/libsvm -+ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR} ++ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}/libsvm +# cd ${LIB_INSTDIR}/libsvm; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so -+# cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER} libsvm.so.${LIBSVM_VER_MAJOR} ;ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so -+ /sbin/ldconfig -n ${LIB_INSTDIR} -+ cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so ++ /sbin/ldconfig -n ${LIB_INSTDIR}/libsvm/ +# install package libsvm-devel -+# install -m 644 svm.o ${LIB_INSTDIR}/libsvm + mkdir -p ${INSTDIR}/include/libsvm + install -m 644 svm.h ${INSTDIR}/include/libsvm + mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm @@ -318,16 +328,16 @@ diff -up ./Makefile.orig ./Makefile + 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 -+# cp -R java ${INSTDIR}/share/libsvm/src -+# cp -R svm-toy ${INSTDIR}/share/libsvm/src -+# cp -R tools ${INSTDIR}/share/libsvm/src -+# cp -R windows ${INSTDIR}/share/libsvm/src -+ mkdir -p ${INSTDIR}/share/libsvm/examples -+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples +# 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 @@ -339,10 +349,77 @@ diff -up ./Makefile.orig ./Makefile + 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 + - clean: - rm -f *~ svm.o svm-train svm-predict svm-scale -+ ${MAKE} -C python clean -+ ${MAKE} -C java clean +diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile +--- ./svm-toy/qt/Makefile.orig 2008-02-04 15:59:51.000000000 +1000 ++++ ./svm-toy/qt/Makefile 2008-02-04 17:19:43.000000000 +1000 +@@ -1,5 +1,6 @@ + CXX? = g++ + CFLAGS = -Wall -O3 -DQT_THREAD_SUPPORT ++QTDIR = $(LIBDIR)/qt-3.3 + BIN = $(QTDIR)/bin + INCLUDE = $(QTDIR)/include + LIB = $(QTDIR)/lib +@@ -7,13 +8,17 @@ LIB = $(QTDIR)/lib + #INCLUDE = /usr/include/qt3 + #LIB = /usr/lib/qt3 + +-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 ++all: svm-toy-qt + ++svm-toy-qt: svm-toy.cpp svm-toy.moc ../../svm.o ++ $(CXX) -I$(INCLUDE) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy-qt -L$(LIB) -lqt-mt + # add -pthread for bsd + + svm-toy.moc: svm-toy.cpp ++ echo "LIBDIR=${LIBDIR}" ++ echo "QTDIR=${QTDIR}" + $(BIN)/moc svm-toy.cpp -o svm-toy.moc +-../../svm.o: +- cd ../..; make svm.o ++#../../svm.o: ++# cd ../..; make svm.o + clean: + rm -f *~ svm-toy svm-toy.moc ../../svm.o diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile +--- ./svm-toy/gtk/Makefile.orig 2008-02-04 15:44:19.000000000 +1000 ++++ ./svm-toy/gtk/Makefile 2008-02-04 17:19:37.000000000 +1000 +@@ -1,22 +1,25 @@ + 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` + +-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 ../../svm.o ++ $(CXX) $(COPT) main.o interface.o callbacks.o ../../svm.o -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 --git a/libsvm.spec b/libsvm.spec index b79a093..1bd43d4 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ Name: libsvm -Version: 2.84 -Release: 9%{?dist} +Version: 2.85 +Release: 0%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -8,17 +8,20 @@ License: BSD URL: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Source0: %{name}-%{version}.tar.gz #Source0: http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/%{name}+tar.gz -Source1: ChangeLog -#Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log +Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log +Source2: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf Patch0: %{name}-%{version}.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -#BuildRequires: glibc-devel %define libsvm_ver_major 2 -%{!?pyver: %define pyver %(python -c 'import sys; print(sys.version[0:3])')}%{!?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)")} %define libsvm_python_dir %{python_sitearch}/libsvm +%define javac javac +%define jar jar +%define libdir_libsvm %{_libdir}/libsvm + %description LIBSVM is an integrated software for support vector classification, @@ -51,8 +54,9 @@ programs with libsvm in Python. %package java Summary: Java tools and interfaces for libsvm Group: Development/Libraries -BuildRequires: eclipse-ecj >= 3 -Requires: eclipse-ecj >= 3 +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 Requires: %{name} = %{version}-%{release} %description java @@ -60,29 +64,58 @@ Java tools and interfaces for libsvm. Install this package if you want to develop programs with libsvm in Java. +%package svm-toy-gtk +Summary: GTK version of svm-toy (libsvm demostration program) +Group: Development/Libraries +BuildRequires: gtk2-devel +BuildRequires: gtk2 +Requires: %{name} = %{version}-%{release} + +%description svm-toy-gtk +svm-toy is a libsvm demostration program which has a gtk-GUI to +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: qt +Requires: %{name} = %{version}-%{release} + +%description svm-toy-qt +svm-toy is a libsvm demostration program which has a qt-GUI to +display the derived separating hyperplane. %prep -%setup -q +%setup -q %patch0 -p0 -b .bak +cp ../../SOURCES/log ChangeLog +cp ../../SOURCES/guide.pdf . %build -make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" +make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" JAVAC="%{javac}" JAR="%{jar}" %{__sed} -i 's/\r//' FAQ.html +%{__sed} -i 's/\r//' ChangeLog mv python/README python/README-Python mv tools/README tools/README-Tools cp README java/README-Java +cp README svm-toy/gtk +cp README svm-toy/qt %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" +#cd ${RPM_BUILD_ROOT}%{libdir_libsvm}; ln -sf %{name}.so.%{version} %{name}.so rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src -%post -p /sbin/ldconfig +%post +/sbin/ldconfig %{libdir_libsvm} -%postun -p /sbin/ldconfig +%postun +/sbin/ldconfig %{libdir_libsvm} %clean rm -rf $RPM_BUILD_ROOT @@ -90,21 +123,22 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) -%doc COPYRIGHT FAQ.html +%doc COPYRIGHT FAQ.html ChangeLog guide.pdf %{_bindir}/svm-predict %{_bindir}/svm-scale %{_bindir}/svm-train %dir %{_datadir}/%{name} %{_datadir}/%{name}/examples -%{_libdir}/%{name}.so.%{version} -%{_libdir}/%{name}.so.%{libsvm_ver_major} +%dir %{libdir_libsvm} +%{libdir_libsvm}/%{name}.so.%{version} +%{libdir_libsvm}/%{name}.so.%{libsvm_ver_major} %files devel %defattr(-,root,root,-) %doc README %{_includedir}/%{name}/ -%{_libdir}/%{name}.so +#%{libdir_libsvm}/%{name}.so %files python %defattr(-,root,root,-) @@ -117,7 +151,25 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/%{name}/java #%{_datadir}/javadoc/%{name}-%{version} +%files svm-toy-gtk +%defattr(-,root,root,-) +%doc svm-toy/gtk/README +%{_bindir}/svm-toy-gtk + +%files svm-toy-qt +%defattr(-,root,root,-) +%doc svm-toy/qt/README +%{_bindir}/svm-toy-qt + + %changelog +* Mon Feb 04 2008 Ding-Yi Chen - 2.85-0 +- Upgrade to 2.85 +- Include guide.pdf in main package +- Change the dependent from eclipse-ecj to java-1.5.0-gcj +- Add svm-toy-gtk +- Add svm-toy-qt + * Wed Dec 20 2007 Ding-Yi Chen - 2.84-9 - [Bug 254091] Comment 19 - Fix python/Makefile diff --git a/ChangeLog b/log similarity index 89% rename from ChangeLog rename to log index d0f9c71..75df634 100644 --- a/ChangeLog +++ b/log @@ -123,5 +123,13 @@ file updated. Modify do_shrinking() so variable names are the same as libsvm document -2.85: 2007/11/? - fix minor memory leak in svm-predict.c \ No newline at end of file +2.85: 2007/11/6 + fix minor memory leak in svm-predict.c + add tools/checkdata.py + java to 1.5 + Makefile: CXX? + Makefile.win: avoid warning from .net 2005 + avoid warning of gcc 4.2 + sigma 0.001 to 1e-12; in Newton direction of prob output + 2 * (long int) l avoid warning of old Visual C++ + grid.py: avoid gnuplot problem \ No newline at end of file diff --git a/sources b/sources index 502194e..03692b7 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -a7bd21b21510e9634950715c2b4a4ce9 libsvm-2.84.tar.gz +aae7a8f7e357e86e1c893b706bb02a63 guide.pdf +c839d919cc6fa7b5ad86ea37b7cebcc3 libsvm-2.85.tar.gz