diff --git a/libsvm-2.84-6.patch b/libsvm-2.84-7.patch similarity index 73% rename from libsvm-2.84-6.patch rename to libsvm-2.84-7.patch index 5da7e64..ad974ff 100644 --- a/libsvm-2.84-6.patch +++ b/libsvm-2.84-7.patch @@ -1,6 +1,135 @@ +diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java +--- ./java/libsvm/svm_problem.java.orig 2007-12-03 09:36:06.000000000 +1000 ++++ ./java/libsvm/svm_problem.java 2007-12-03 10:00:40.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-12-03 09:35:56.000000000 +1000 ++++ ./java/libsvm/svm_node.java 2007-12-03 10:00:40.000000000 +1000 +@@ -1,6 +1,7 @@ + package libsvm; + public class svm_node implements java.io.Serializable + { ++ static final long serialVersionUID = 2709444323471798245L; + public int index; + public double value; + } +diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java +--- ./java/libsvm/svm_parameter.java.orig 2007-12-03 09:35:45.000000000 +1000 ++++ ./java/libsvm/svm_parameter.java 2007-12-03 10:00:40.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_model.java.orig ./java/libsvm/svm_model.java +--- ./java/libsvm/svm_model.java.orig 2007-12-03 09:35:34.000000000 +1000 ++++ ./java/libsvm/svm_model.java 2007-12-03 10:00:40.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/libsvm/svm.m4.orig ./java/libsvm/svm.m4 +diff -up ./java/svm_toy.java.orig ./java/svm_toy.java +--- ./java/svm_toy.java.orig 2007-12-03 09:34:36.000000000 +1000 ++++ ./java/svm_toy.java 2007-12-03 10:31:03.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 ./java/Makefile.orig ./java/Makefile +--- ./java/Makefile.orig 2007-12-03 09:33:44.000000000 +1000 ++++ ./java/Makefile 2007-12-04 09:38:06.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\ + svm_train.class svm_predict.class svm_toy.class + +-#JAVAC = jikes +-#JAVAC_FLAGS = -target 1.1 -source 1.3 +-JAVAC = javac +-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} + +-all: $(FILES) +- jar cvf libsvm.jar *.class libsvm/*.class ++all: $(FILES) ++ gjar cvf libsvm.jar *.class libsvm/*.class + + .java.class: + $(JAVAC) $(JAVAC_FLAGS) $< +@@ -17,8 +20,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/test_applet.html.orig ./java/test_applet.html +--- ./java/test_applet.html.orig 2007-12-03 09:35:06.000000000 +1000 ++++ ./java/test_applet.html 2007-12-03 10:00:40.000000000 +1000 +@@ -1 +1,3 @@ +- ++ ++ ++ +diff -up ./java/svm_train.java.orig ./java/svm_train.java diff -up ./Makefile.orig ./Makefile ---- ./Makefile.orig 2007-09-25 10:07:29.000000000 +1000 -+++ ./Makefile 2007-09-26 17:07:55.000000000 +1000 +--- ./Makefile.orig 2007-12-03 09:33:37.000000000 +1000 ++++ ./Makefile 2007-12-03 15:16:15.000000000 +1000 @@ -1,8 +1,39 @@ CXXC = g++ CFLAGS = -Wall -O3 @@ -35,14 +164,14 @@ diff -up ./Makefile.orig ./Makefile +all: svm-train svm-predict svm-scale svm-python svm-java svm-lib + +svm-lib: svm-share.o -+ $(CXXC) -shared -Wl,-soname,libsvm.so \ ++ $(CXXC) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER}\ \ + -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 svm-predict: svm-predict.c svm.o $(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm svm-train: svm-train.c svm.o -@@ -11,5 +42,57 @@ svm-scale: svm-scale.c +@@ -11,5 +42,56 @@ svm-scale: svm-scale.c $(CXXC) $(CFLAGS) svm-scale.c -o svm-scale svm.o: svm.cpp svm.h $(CXXC) $(CFLAGS) -c svm.cpp @@ -57,9 +186,8 @@ diff -up ./Makefile.orig ./Makefile + install -m 755 svm-predict ${INSTDIR}/bin + install -m 755 svm-scale ${INSTDIR}/bin + mkdir -p ${LIB_INSTDIR}/libsvm -+ install -m 644 libsvm.so.2.84 ${LIB_INSTDIR}/libsvm ++ install -m 755 libsvm.so.2.84 ${LIB_INSTDIR}/libsvm + cd ${LIB_INSTDIR}/libsvm; ln -s libsvm.so.${LIBSVM_VER} libsvm.so -+ ldconfig -n ${LIB_INSTDIR}/libsvm +# install package libsvm-devel + install -m 644 svm.o ${LIB_INSTDIR}/libsvm + mkdir -p ${INSTDIR}/include/libsvm @@ -100,111 +228,9 @@ diff -up ./Makefile.orig ./Makefile + ${MAKE} -C python clean + ${MAKE} -C java clean + -diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java ---- ./java/libsvm/svm_model.java.orig 2007-09-26 10:19:43.000000000 +1000 -+++ ./java/libsvm/svm_model.java 2007-09-26 10:27:36.000000000 +1000 -@@ -4,6 +4,7 @@ - package libsvm; - public class svm_model implements java.io.Serializable - { -+ static final long serialVersionUID = 2709444323471798245L; - svm_parameter param; // parameter - int nr_class; // number of classes, = 2 in regression/one class svm - int l; // total #SV -diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java ---- ./java/libsvm/svm_node.java.orig 2007-09-26 10:19:51.000000000 +1000 -+++ ./java/libsvm/svm_node.java 2007-09-26 10:27:25.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_problem.java.orig ./java/libsvm/svm_problem.java ---- ./java/libsvm/svm_problem.java.orig 2007-09-26 10:20:42.000000000 +1000 -+++ ./java/libsvm/svm_problem.java 2007-09-26 10:26:05.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_parameter.java.orig ./java/libsvm/svm_parameter.java ---- ./java/libsvm/svm_parameter.java.orig 2007-09-26 10:20:23.000000000 +1000 -+++ ./java/libsvm/svm_parameter.java 2007-09-26 10:25:14.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.m4.orig ./java/libsvm/svm.m4 -diff -up ./java/Makefile.orig ./java/Makefile ---- ./java/Makefile.orig 2007-09-25 11:10:21.000000000 +1000 -+++ ./java/Makefile 2007-09-26 12:42:50.000000000 +1000 -@@ -1,15 +1,17 @@ - .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\ - svm_train.class svm_predict.class svm_toy.class - --#JAVAC = jikes --#JAVAC_FLAGS = -target 1.1 -source 1.3 --JAVAC = javac --JAVAC_FLAGS = -+JAVA_TARGETDIR=${LIB_INSTDIR}/java/libsvm -+JAVAC = ecj -+#JAVAC_FLAGS = -target 1.3 -source 1.3 -+CLASSPATH = . -+#JAVAC_FLAGS = --classpath=${CLASSPATH} -+JAVAC_FLAGS = -classpath ${CLASSPATH} - - all: $(FILES) -- jar cvf libsvm.jar *.class libsvm/*.class -+ gjar cvf libsvm.jar *.class libsvm/*.class - - .java.class: - $(JAVAC) $(JAVAC_FLAGS) $< -@@ -17,8 +19,20 @@ 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} -+# cp -R docs ${JAVA_TARGETDIR} -+uninstall: -+ rm -fr ${JAVA_TARGETDIR} -+ - clean: - rm -f libsvm/*.class *.class *.jar libsvm/*~ *~ libsvm/svm.java -+ rm -rf docs - - dist: clean all - rm *.class libsvm/*.class -diff -up ./java/test_applet.html.orig ./java/test_applet.html ---- ./java/test_applet.html.orig 2007-09-25 11:08:29.000000000 +1000 -+++ ./java/test_applet.html 2007-09-25 11:42:29.000000000 +1000 -@@ -1 +1,3 @@ -- -+ -+ -+ diff -up ./python/Makefile.orig ./python/Makefile ---- ./python/Makefile.orig 2007-09-25 10:07:34.000000000 +1000 -+++ ./python/Makefile 2007-09-25 11:10:43.000000000 +1000 +--- ./python/Makefile.orig 2007-12-03 11:13:21.000000000 +1000 ++++ ./python/Makefile 2007-12-03 11:14:48.000000000 +1000 @@ -2,7 +2,14 @@ CC = g++ SWIG ?= swig @@ -241,3 +267,6 @@ diff -up ./python/Makefile.orig ./python/Makefile + + + +diff -up ./tools/easy.py.orig ./tools/easy.py +diff -up ./tools/grid.py.orig ./tools/grid.py +diff -up ./tools/subset.py.orig ./tools/subset.py diff --git a/libsvm.spec b/libsvm.spec index 322e89f..8f79940 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ Name: libsvm Version: 2.84 -Release: 6%{?dist} +Release: 7%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -10,12 +10,11 @@ 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 -Patch0: libsvm-2.84-6.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Patch0: libsvm-2.84-7.patch +#BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: glibc-devel dos2unix -Requires: glibc - %description LIBSVM is an integrated software for support vector classification, @@ -23,21 +22,20 @@ LIBSVM is an integrated software for support vector classification, estimation (one-class SVM ). It supports multi-class classification. %package devel -Summary: Header file, object file, and source files of libsvm in C and Java. +Summary: Header file, object file, and source files of libsvm in C, C++ and Java Group: Development/Libraries BuildRequires: glibc-devel -Requires: glibc Requires: %{name} = %{version}-%{release} %description devel -Header file, object file, and source files of libsvm in C and Java. +Header file, object file of libsvm in C, C++ and Java. Install this package if you want to develop programs with libsvm. + %package python -Summary: Python tools and interfaces for libsvm. +Summary: Python tools and interfaces for libsvm Group: Development/Libraries -BuildRequires: python >= 2.4 python-devel >= 2.4 gawk -Requires: python >= 2.4 +BuildRequires: python-devel >= 2.4 gawk Requires: %{name} = %{version}-%{release} %description python @@ -46,9 +44,9 @@ Install this package if you want to develop programs with libsvm in Python. %package java -Summary: Java tools and interfaces for libsvm. +Summary: Java tools and interfaces for libsvm Group: Development/Libraries -BuildRequires: eclipse-ecj >= 3, libgcj >= 4 +BuildRequires: eclipse-ecj >= 3 Requires: eclipse-ecj >= 3 Requires: %{name} = %{version}-%{release} @@ -77,6 +75,7 @@ cp %{_builddir}/%{name}-%{version}/README %{_builddir}/%{name}-%{version}/java/R %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} +ldconfig -n %{_libdir}/libsvm @@ -91,15 +90,14 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/svm-predict %{_bindir}/svm-scale %{_bindir}/svm-train +%dir %{_datadir}/libsvm %{_datadir}/libsvm/examples -%{_libdir}/libsvm/libsvm.so -%{_libdir}/libsvm/libsvm.so.2.84 +%{_libdir}/libsvm/ %files devel %defattr(-,root,root,-) %doc README -%{_libdir}/libsvm -%{_includedir}/libsvm +%{_includedir}/libsvm/ %{_datadir}/libsvm/src %files python @@ -110,11 +108,14 @@ rm -rf $RPM_BUILD_ROOT %files java %defattr(-,root,root,-) %doc java/README-Java -#%{_libdir}/java/libsvm/docs -%{_libdir}/java/libsvm/libsvm.jar -%{_libdir}/java/libsvm/test_applet.html +%{_datadir}/libsvm/java +#%{_datadir}/javadoc/%{name}-%{version} %changelog +* Mon Dec 03 2007 Ding-Yi Chen - 2.84-7 +- [Bug 254091] Review Request: libsvm - A Library for Support Vector Machines (Comment #12) +- Move javadoc to proper place + * Thu Sep 26 2007 Ding-Yi Chen - 2.84-6 - Add defattr to each subpackage - Move libsvm.so to libsvm