From 278c449214dc68bbe5635f91a5bd16d39dc1e4f8 Mon Sep 17 00:00:00 2001 From: Ding-Yi Chen Date: Thu, 3 Jan 2008 04:46:43 +0000 Subject: [PATCH] Bug 254091: Comment 19 --- libsvm-2.84-8.patch => libsvm-2.84.patch | 256 +++++++++++++++-------- libsvm.spec | 36 ++-- 2 files changed, 179 insertions(+), 113 deletions(-) rename libsvm-2.84-8.patch => libsvm-2.84.patch (66%) diff --git a/libsvm-2.84-8.patch b/libsvm-2.84.patch similarity index 66% rename from libsvm-2.84-8.patch rename to libsvm-2.84.patch index d63d686..8347e43 100644 --- a/libsvm-2.84-8.patch +++ b/libsvm-2.84.patch @@ -1,6 +1,26 @@ +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 +@@ -1 +1,3 @@ +- ++ ++ ++ +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 +@@ -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-12-12 14:22:51.000000000 +1000 -+++ ./java/libsvm/svm_problem.java 2007-12-13 10:05:16.000000000 +1000 +--- ./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 @@ -1,6 +1,7 @@ package libsvm; public class svm_problem implements java.io.Serializable @@ -10,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 2007-12-12 14:23:11.000000000 +1000 -+++ ./java/libsvm/svm_node.java 2007-12-13 10:05:16.000000000 +1000 +--- ./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 @@ -1,6 +1,7 @@ package libsvm; public class svm_node implements java.io.Serializable @@ -20,20 +40,9 @@ diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java 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-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 - { -+ 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-12 14:27:38.000000000 +1000 -+++ ./java/libsvm/svm_model.java 2007-12-13 10:05:16.000000000 +1000 +--- ./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 @@ -4,6 +4,7 @@ package libsvm; public class svm_model implements java.io.Serializable @@ -42,30 +51,10 @@ 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/svm_toy.java.orig ./java/svm_toy.java ---- ./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.*; - - 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/libsvm/svm.java.orig ./java/libsvm/svm.java diff -up ./java/Makefile.orig ./java/Makefile ---- ./java/Makefile.orig 2007-12-12 15:03:30.000000000 +1000 -+++ ./java/Makefile 2007-12-13 10:05:16.000000000 +1000 +--- ./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 \ @@ -116,18 +105,141 @@ 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-12 14:49:48.000000000 +1000 -+++ ./java/test_applet.html 2007-12-13 10:05:16.000000000 +1000 -@@ -1 +1,3 @@ -- -+ -+ -+ -diff -up ./java/svm_train.java.orig ./java/svm_train.java +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 +@@ -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 2008-01-02 09:38:18.000000000 +1000 ++++ ./python/Makefile 2008-01-02 11:26:08.000000000 +1000 +@@ -2,9 +2,16 @@ CC = 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,35 @@ svmc.so: svmc_wrap.o svm.o + $(CC) $(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 + + 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 + + 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/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 +@@ -2,6 +2,7 @@ + + import sys + import os ++from distutils.sysconfig import get_python_lib + + if len(sys.argv) <= 1: + print 'Usage: %s training_file [testing_file]' % sys.argv[0] +@@ -11,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 = 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 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 + + 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-12-12 15:52:58.000000000 +1000 -+++ ./Makefile 2007-12-14 10:55:02.000000000 +1000 +--- ./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++ CFLAGS = -Wall -O3 @@ -233,44 +345,4 @@ diff -up ./Makefile.orig ./Makefile + ${MAKE} -C python clean + ${MAKE} -C java clean + -diff -up ./python/Makefile.orig ./python/Makefile ---- ./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 - - #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 -+ -+PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION} -+ -+endif -+PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm - - CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I.. - LDFLAGS = -shared -@@ -28,3 +35,19 @@ clean: - - 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 ./tools/easy.py.orig ./tools/easy.py -diff -up ./tools/grid.py.orig ./tools/grid.py +diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile diff --git a/libsvm.spec b/libsvm.spec index dd12fcf..b79a093 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ Name: libsvm Version: 2.84 -Release: 8%{?dist} +Release: 9%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -10,14 +10,14 @@ 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-8.patch +Patch0: %{name}-%{version}.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: glibc-devel +#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 +%{!?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 %description @@ -67,7 +67,7 @@ programs with libsvm in Java. %build -make all DESTDIR=%{_builddir} LIBDIR=%{_libdir} +make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" %{__sed} -i 's/\r//' FAQ.html mv python/README python/README-Python mv tools/README tools/README-Tools @@ -76,18 +76,13 @@ cp README java/README-Java %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} -#This is required for rpmbuild -#/sbin/ldconfig -n %{_libdir} +make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" +rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src -%post -/sbin/ldconfig -n %{_libdir} +%post -p /sbin/ldconfig -%postun -if [ "$1" = "0" ]; then - /sbin/ldconfig -fi +%postun -p /sbin/ldconfig %clean rm -rf $RPM_BUILD_ROOT @@ -101,8 +96,6 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/svm-train %dir %{_datadir}/%{name} %{_datadir}/%{name}/examples -#%dir %{_libdir}/%{name} -#%{_libdir}/%{name}/%{name}.so.%{version} %{_libdir}/%{name}.so.%{version} %{_libdir}/%{name}.so.%{libsvm_ver_major} @@ -111,9 +104,6 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root,-) %doc README %{_includedir}/%{name}/ -#including source for developeer -%{_datadir}/%{name}/src -#%{_libdir}/%{name}/%{name}.so %{_libdir}/%{name}.so %files python @@ -128,6 +118,10 @@ rm -rf $RPM_BUILD_ROOT #%{_datadir}/javadoc/%{name}-%{version} %changelog +* Wed Dec 20 2007 Ding-Yi Chen - 2.84-9 +- [Bug 254091] Comment 19 +- Fix python/Makefile + * Thu Dec 13 2007 Ding-Yi Chen - 2.84-8 - Fix improper sed. - Change ldconfig to /sbin/ldconfig