diff --git a/libsvm-2.84-7.patch b/libsvm-2.84-8.patch similarity index 79% rename from libsvm-2.84-7.patch rename to libsvm-2.84-8.patch index ad974ff..d63d686 100644 --- a/libsvm-2.84-7.patch +++ b/libsvm-2.84-8.patch @@ -1,6 +1,6 @@ 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 +--- ./java/libsvm/svm_problem.java.orig 2007-12-12 14:22:51.000000000 +1000 ++++ ./java/libsvm/svm_problem.java 2007-12-13 10:05:16.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_problem implements java.io.Serializable @@ -10,8 +10,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 2007-12-03 09:35:56.000000000 +1000 -+++ ./java/libsvm/svm_node.java 2007-12-03 10:00:40.000000000 +1000 +--- ./java/libsvm/svm_node.java.orig 2007-12-12 14:23:11.000000000 +1000 ++++ ./java/libsvm/svm_node.java 2007-12-13 10:05:16.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_node implements java.io.Serializable @@ -21,8 +21,8 @@ diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java 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 +--- ./java/libsvm/svm_parameter.java.orig 2007-12-12 14:25:43.000000000 +1000 ++++ ./java/libsvm/svm_parameter.java 2007-12-13 10:05:16.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_parameter implements Cloneable,java.io.Serializable @@ -32,8 +32,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_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 +--- ./java/libsvm/svm_model.java.orig 2007-12-12 14:27:38.000000000 +1000 ++++ ./java/libsvm/svm_model.java 2007-12-13 10:05:16.000000000 +1000 @@ -4,6 +4,7 @@ package libsvm; public class svm_model implements java.io.Serializable @@ -42,11 +42,9 @@ diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java 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 +--- ./java/svm_toy.java.orig 2007-12-12 14:28:14.000000000 +1000 ++++ ./java/svm_toy.java 2007-12-13 10:05:16.000000000 +1000 @@ -6,7 +6,7 @@ import java.awt.event.*; import java.io.*; @@ -66,8 +64,8 @@ diff -up ./java/svm_toy.java.orig ./java/svm_toy.java 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 +--- ./java/Makefile.orig 2007-12-12 15:03:30.000000000 +1000 ++++ ./java/Makefile 2007-12-13 10:05:16.000000000 +1000 @@ -1,15 +1,18 @@ .SUFFIXES: .class .java -FILES = libsvm/svm.class libsvm/svm_model.class libsvm/svm_node.class \ @@ -106,7 +104,7 @@ diff -up ./java/Makefile.orig ./java/Makefile + mkdir -p ${JAVA_TARGETDIR} + install -m 644 libsvm.jar ${JAVA_TARGETDIR} + install -m 644 test_applet.html ${JAVA_TARGETDIR} -+ mkdir -p ${JAVA_DOCDIR} ++# mkdir -p ${JAVA_DOCDIR} +# cd docs; cp -R * ${JAVA_DOCDIR} +uninstall: + rm -fr ${JAVA_TARGETDIR} @@ -119,8 +117,8 @@ diff -up ./java/Makefile.orig ./java/Makefile 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 +--- ./java/test_applet.html.orig 2007-12-12 14:49:48.000000000 +1000 ++++ ./java/test_applet.html 2007-12-13 10:05:16.000000000 +1000 @@ -1 +1,3 @@ - + @@ -128,13 +126,15 @@ diff -up ./java/test_applet.html.orig ./java/test_applet.html + diff -up ./java/svm_train.java.orig ./java/svm_train.java diff -up ./Makefile.orig ./Makefile ---- ./Makefile.orig 2007-12-03 09:33:37.000000000 +1000 -+++ ./Makefile 2007-12-03 15:16:15.000000000 +1000 -@@ -1,8 +1,39 @@ +--- ./Makefile.orig 2007-12-12 15:52:58.000000000 +1000 ++++ ./Makefile 2007-12-14 10:55:02.000000000 +1000 +@@ -1,8 +1,41 @@ CXXC = g++ CFLAGS = -Wall -O3 +MAKE = make -+LIBSVM_VER =2.84 ++LIBSVM_VER_MAJOR=2 ++LIBSVM_VER_MINOR=84 ++LIBSVM_VER =${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR} +export LIBSVM_VER -all: svm-train svm-predict svm-scale @@ -164,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.${LIBSVM_VER}\ \ ++ $(CXXC) -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 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,56 @@ svm-scale: svm-scale.c +@@ -11,5 +44,61 @@ svm-scale: svm-scale.c $(CXXC) $(CFLAGS) svm-scale.c -o svm-scale svm.o: svm.cpp svm.h $(CXXC) $(CFLAGS) -c svm.cpp @@ -185,11 +185,16 @@ diff -up ./Makefile.orig ./Makefile + 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 -+ install -m 755 libsvm.so.2.84 ${LIB_INSTDIR}/libsvm -+ cd ${LIB_INSTDIR}/libsvm; ln -s libsvm.so.${LIBSVM_VER} libsvm.so ++# 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} ++# 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 +# install package libsvm-devel -+ install -m 644 svm.o ${LIB_INSTDIR}/libsvm ++# 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 @@ -229,8 +234,8 @@ diff -up ./Makefile.orig ./Makefile + ${MAKE} -C java clean + diff -up ./python/Makefile.orig ./python/Makefile ---- ./python/Makefile.orig 2007-12-03 11:13:21.000000000 +1000 -+++ ./python/Makefile 2007-12-03 11:14:48.000000000 +1000 +--- ./python/Makefile.orig 2007-12-13 09:33:32.000000000 +1000 ++++ ./python/Makefile 2007-12-13 10:05:16.000000000 +1000 @@ -2,7 +2,14 @@ CC = g++ SWIG ?= swig @@ -269,4 +274,3 @@ 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 8f79940..dd12fcf 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ Name: libsvm Version: 2.84 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -10,11 +10,15 @@ 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-7.patch -#BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Patch0: libsvm-2.84-8.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: glibc-devel dos2unix +BuildRequires: glibc-devel +%define libsvm_ver_major 2 +%define temp_file /tmp/python.ver +%define python_version %(python -V 2> %{temp_file} ; cat %{temp_file} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$2,$3)}'; rm -f %{temp_file}) +%define libsvm_python_dir %{_libdir}/python%{python_version}/site-packages/libsvm + %description LIBSVM is an integrated software for support vector classification, @@ -35,7 +39,8 @@ Install this package if you want to develop programs with libsvm. %package python Summary: Python tools and interfaces for libsvm Group: Development/Libraries -BuildRequires: python-devel >= 2.4 gawk +BuildRequires: python-devel >= 2.4 gawk gnuplot +#gnuplot is required by easy.py Requires: %{name} = %{version}-%{release} %description python @@ -59,46 +64,57 @@ programs with libsvm in Java. %prep %setup -q %patch0 -p0 -b .bak -%define temp_file /tmp/python.ver -%define python_version %(python -V 2> %{temp_file} ; cat %{temp_file} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$2,$3)}'; rm -f %{temp_file}) -%define libsvm_python_dir %{_libdir}/python%{python_version}/site-packages/libsvm %build make all DESTDIR=%{_builddir} LIBDIR=%{_libdir} -dos2unix -o %{_builddir}/%{name}-%{version}/FAQ.html -mv %{_builddir}/%{name}-%{version}/python/README %{_builddir}/%{name}-%{version}/python/README-Python -mv %{_builddir}/%{name}-%{version}/tools/README %{_builddir}/%{name}-%{version}/tools/README-Tools -cp %{_builddir}/%{name}-%{version}/README %{_builddir}/%{name}-%{version}/java/README-Java +%{__sed} -i 's/\r//' FAQ.html +mv python/README python/README-Python +mv tools/README tools/README-Tools +cp README java/README-Java %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} -ldconfig -n %{_libdir}/libsvm - +#This is required for rpmbuild +#/sbin/ldconfig -n %{_libdir} +%post +/sbin/ldconfig -n %{_libdir} +%postun +if [ "$1" = "0" ]; then + /sbin/ldconfig +fi %clean rm -rf $RPM_BUILD_ROOT + %files %defattr(-,root,root,-) %doc COPYRIGHT FAQ.html %{_bindir}/svm-predict %{_bindir}/svm-scale %{_bindir}/svm-train -%dir %{_datadir}/libsvm -%{_datadir}/libsvm/examples -%{_libdir}/libsvm/ +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/examples +#%dir %{_libdir}/%{name} +#%{_libdir}/%{name}/%{name}.so.%{version} +%{_libdir}/%{name}.so.%{version} +%{_libdir}/%{name}.so.%{libsvm_ver_major} + %files devel %defattr(-,root,root,-) %doc README -%{_includedir}/libsvm/ -%{_datadir}/libsvm/src +%{_includedir}/%{name}/ +#including source for developeer +%{_datadir}/%{name}/src +#%{_libdir}/%{name}/%{name}.so +%{_libdir}/%{name}.so %files python %defattr(-,root,root,-) @@ -108,13 +124,17 @@ rm -rf $RPM_BUILD_ROOT %files java %defattr(-,root,root,-) %doc java/README-Java -%{_datadir}/libsvm/java +%{_datadir}/%{name}/java #%{_datadir}/javadoc/%{name}-%{version} %changelog +* Thu Dec 13 2007 Ding-Yi Chen - 2.84-8 +- Fix improper sed. +- Change ldconfig to /sbin/ldconfig +- Add gnuplot dependency for libsvm-python, as tools/easy.py needs it. + * 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