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