rpms/libsvm/F-8 libsvm-2.85.patch, NONE, 1.1 log, NONE, 1.1 .cvsignore, 1.2, 1.3 libsvm.spec, 1.10, 1.11 sources, 1.2, 1.3 ChangeLog, 1.1, NONE libsvm-2.84.patch, 1.1, NONE

Ding-Yi Chen (dchen) fedora-extras-commits at redhat.com
Mon Feb 4 08:18:20 UTC 2008


Author: dchen

Update of /cvs/pkgs/rpms/libsvm/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31368/F-8

Modified Files:
	.cvsignore libsvm.spec sources 
Added Files:
	libsvm-2.85.patch log 
Removed Files:
	ChangeLog libsvm-2.84.patch 
Log Message:
Upgrade to 2.85, add svm-toy-gtk, svm-toy-qt

libsvm-2.85.patch:

--- NEW FILE libsvm-2.85.patch ---
diff -up ./java/test_applet.html.orig ./java/test_applet.html
--- ./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 @@
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
+<html>
+<applet code="svm_toy.class" archive="libsvm.jar" width=300 height=350></applet>
+</html>
diff -up ./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	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
 {
+	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	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
 {
+	static final long serialVersionUID = -4451389443706847272L;
 	public int l;
 	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	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
 {
+	static final long serialVersionUID = 2709444323471798245L;
 	public int index;
 	public double value;
 }
diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
--- ./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
 {
+	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.java.orig ./java/libsvm/svm.java
diff -up ./java/Makefile.orig ./java/Makefile
--- ./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.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_toy.java.orig ./java/svm_toy.java
--- ./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.*;
 
 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_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	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
-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/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	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:
@@ -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	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:
-       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 ./Makefile.orig ./Makefile
--- ./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=85
+LIBSVM_VER=${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR}
+export LIBSVM_VER 
 
-all: svm-train svm-predict svm-scale
+ifndef DESTDIR
+INSTDIR=/usr
+else
+INSTDIR=${DESTDIR}/usr
+endif
 
+export INSTDIR
+
+PROCESSOR=$(shell /bin/uname -p)
+ifeq "${PROCESSOR}" "x86_64"
+X86_64=64
+else
+X86_64=
+endif
+
+ifndef LIBDIR
+LIB_INSTDIR=${INSTDIR}/lib${X86_64}
+else
+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 svm-toy-gtk svm-toy-qt
+
+svm-lib: svm-share.o
+	$(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
+	$(CXX) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o
 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
@@ -12,4 +50,61 @@ 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}/libsvm
+	mkdir -p ${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
+	/sbin/ldconfig -n ${LIB_INSTDIR}/libsvm/
+# 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 ./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


--- NEW FILE log ---
1.04: 2000/6/17, add "load" button to svm-toy. README 
file updated.

2.0: 2000/8, major updates. Include nu-svm, one-class svm, and svr

2.01: 2000/9/22, correct the calculation of obj value and number of bounded support vectors

2.02: 2000/9/29, replace b^2/2 newsvm to regular nu svm.

2.03: 2000/10/24 some improvements on the computational speed

2.1: 2000/12/19 Java version included, regression demonstrated in svm-toy

2.2: 2001/1/16 multi-class classification, nu-SVR, remove epsilon_a

2.3: 2001/3/15 c+-, cross validation, fix some minor bugs

2.31: 2001/4/12 fix one bug on one-class SVM, use float for Cache

2.32: 2001/9/23 
	1. max line number of svm-scale now dynamic
	2. gcc 3.0 problem: now g++ always used
	3. java code in a "libsvm" package
	4. avoid a problem when compiled with Borland C++ builder

2.33: 2001/12/1
	Python interface added

2.34: 2002/6/15
	Add the subroutine svm_check_parameter in svm.cpp
	--> better error handling
	fix bug of python interface for handling different weights
	fix bug of cross validation in svm-train.c

2.35: 2002/6/16
	libsvm.jar was not compiled correctly in 2.34

2.36: 2002/8/4
	grid.py added: contour plot of CV accuracy
	fix several bugs

2.4:  2003/4/1
	svm.cpp
		non-psd kernel using max(...,0) in svm.cpp
	python interface
		python interface bug (nu-svm)
	grid.py
		-log2c and -log2c for grid.py
	        output current best
		coarse grid as default (2)
		ssh for grid.py 
	improvements of scaling 

2.5: 2003/11/13
	subroutines for accessing decision values and number of labels. 
		for svm.cpp, java, and  python interface
	fix bug of svm-scale.c (about -r and -s factors)
	use fscanf but not sscanf in svm-predict.c (faster)
	makefile for windows
	add "using namespace std;" in some .java files
	improve easy.py: output cv rate, error messages printed
		better checking
	better python interface example svm_test.py
	and some minor updates

2.6: 2004/04/01
	Probability estimates for classification/regression 
	Python interface: use swig 1.3 instead of 1.1
	Cross validation becomes a library subroutine
	A few minor corrections: (not completely listed)
		more interface functions such as getting svm_type
		print nu only when Cp=Cn
		floor division in python interface

2.7: 2004/11/10
	Stratified cross validation
	Better faq
	Scaling: support storing the factor of y
	A few minor updates:
		class QMatrix added
		improve the use of easy.py and grid.py on windows 
		grid.py: same CV and same g: use smaller C
		sparse input for python interface
		working set selection: < to <=

2.71: 2004/11/20
	fix a java bug introduced from 2.6 to 2.7

2.8: 2005/04/01
	new working set selection via second order information
	fix minor changes/corrections:
		problem when cache size less than two kernel columns
		-v #data -> stratified CV is not loo -> ensure loo is done
		problem of typing "svm-train -c" only
		problem of "svm-train -n 1 -s 3 ..."
		python interface makefile: -fPIC for 32/64bit
		color change in svmtoy
		makefile in building QT svmtoy

2.81: 2005/11/20
	add a python script subset.py for subsampling
	slightly modify the working set so it's exact the same as the paper
	default cache size to 100 MB

2.82: 2006/04/01
	precomputed kernel
	directly implement a fast powi() function
	poly degree double to int
	minor corrections:
		java code for CV
2.83: 2006/11/17
	Fix the bug of -t 3
	better checking load/save in svm-train.c/svm-predict.c/svm.cpp
	remove redundant var pos in svm_predict_values (thanks to Albert Strasheim)
	Better descriptions in README for the precomputed kernel

2.84: 2007/04/01
	Improve the shrinking code: faster for some cases
	Code more 64-bit friendly: allow large -m
	In Solver, b is replaced by p
	Subroutine max_violating_pair removed. Things are directly
	written in do_shrinking().
	Modify do_shrinking() so variable names are the same as libsvm
	document

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

Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/libsvm/F-8/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- .cvsignore	29 Aug 2007 06:47:34 -0000	1.2
+++ .cvsignore	4 Feb 2008 08:17:45 -0000	1.3
@@ -1 +1,2 @@
-libsvm-2.84.tar.gz
+guide.pdf
+libsvm-2.85.tar.gz


Index: libsvm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libsvm/F-8/libsvm.spec,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- libsvm.spec	3 Jan 2008 23:27:52 -0000	1.10
+++ libsvm.spec	4 Feb 2008 08:17:45 -0000	1.11
@@ -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 @@
 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 @@
 %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 @@
 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 @@
 
 %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 @@
 %{_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 <dchen at redhat.com> - 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 <dchen at redhat.com> - 2.84-9
 - [Bug 254091] Comment 19
 - Fix python/Makefile


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/libsvm/F-8/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sources	29 Aug 2007 06:47:34 -0000	1.2
+++ sources	4 Feb 2008 08:17:45 -0000	1.3
@@ -1 +1,2 @@
-a7bd21b21510e9634950715c2b4a4ce9  libsvm-2.84.tar.gz
+aae7a8f7e357e86e1c893b706bb02a63  guide.pdf
+c839d919cc6fa7b5ad86ea37b7cebcc3  libsvm-2.85.tar.gz


--- ChangeLog DELETED ---


--- libsvm-2.84.patch DELETED ---




More information about the fedora-extras-commits mailing list