ports/73981: [PATCH] science/libsvm: update to 2.7, python iface to slave port
rafan
rafan at infor.org
Mon Nov 15 19:00:55 UTC 2004
>Number: 73981
>Category: ports
>Synopsis: [PATCH] science/libsvm: update to 2.7, python iface to slave port
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon Nov 15 19:00:54 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: rafan
>Release: FreeBSD 5.3-BETA5 i386
>Organization:
NTU CSIE
>Environment:
System: FreeBSD svm.csie.ntu.edu.tw 5.3-BETA5 FreeBSD 5.3-BETA5 #13: Mon Sep 20 02:31:32 CST 2004 root at svm.csie.ntu.edu.tw:/usr/obj/usr/src/sys/SVM i386
>Description:
LIBSVM 2.7 has been released this month. Update ports
and make changes:
1. install tools
2. make python interface to a slave port, like subverion
3. respect to CXX and CFLAGS in python/Makefile
4. take maintainship, I'm much more fimilar with libsvm
than David Yu does and David told me he is happy
that I can take over.
I don't know how to make libsvm-python pass `port test'
since I install python packages to ${PYTHON_SITELIBDIR}
which is ${LOCALBASE}/..., not prefix with ${PREFIX}...
On the other hand, libsvm does pass `port test'
>How-To-Repeat:
>Fix:
===> Generating patch
===> Viewing diff with less
diff -ruN --exclude=CVS /usr/ports/science/libsvm/Makefile /home/rafan/tmp/ports/libsvm/Makefile
--- /usr/ports/science/libsvm/Makefile Sun Jun 6 21:27:56 2004
+++ /home/rafan/tmp/ports/libsvm/Makefile Tue Nov 16 02:44:15 2004
@@ -6,25 +6,49 @@
#
PORTNAME= libsvm
-PORTVERSION= 2.5
+PORTVERSION= 2.7
CATEGORIES= science math
MASTER_SITES= http://www.csie.ntu.edu.tw/~cjlin/libsvm/
-MAINTAINER= me at davidyu.org
+MAINTAINER= rafan at infor.org
COMMENT= A library for Support Vector Machines
.if defined(WITH_PYTHON)
USE_PYTHON= yes
-ALL_TARGET= all py
-MAKE_ARGS+= PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR}
+USE_REINPLACE= yes
PLIST_SUB+= LIBSVM_PYTHON=""
.else
PLIST_SUB+= LIBSVM_PYTHON="@comment "
+PYEXAMPLES= python/cross_validation.py \
+ python/svm_test.py \
+ python/test_cross_validation.py
.endif
+TXT_DOCS= COPYRIGHT README FAQ.html python/README.python
+.if !defined(NOPORTDOCS)
+PORTDOCS= ${TXT_DOCS}
+.endif
+TOOLS= python/grid.py python/easy.py
+
+MSG_FILE= ${PKGDIR}/pkg-message
+PKGMESSAGE= ${WRKSRC}/pkg-message
+
pre-everything::
-.if !defined(WITH_PYTHON)
- @${ECHO_MSG} "You can install python interface by defining WITH_PYTHON=yes"
+.if defined(WITH_PYTHON)
+ @${ECHO_MSG} "Build with Python interface."
+.else
+ @${ECHO_MSG} "You can enable Python interface by defining WITH_PYTHON."
+.endif
+
+post-patch:
+.if defined(WITH_PYTHON)
+ @${REINPLACE_CMD} -e "s,%%PYTHON_INCLUDEDIR%%,${PYTHON_INCLUDEDIR}," ${WRKSRC}/python/Makefile
+.endif
+ @${SED} 's|%%DATADIR%%|${DATADIR}|g' ${MSG_FILE} > ${PKGMESSAGE}
+
+post-build:
+.if defined(WITH_PYTHON)
+ cd ${WRKSRC}/python; ${MAKE}
.endif
do-install:
@@ -34,11 +58,24 @@
.if defined(WITH_PYTHON)
${INSTALL_SCRIPT} ${WRKSRC}/python/svm.py ${PYTHON_SITELIBDIR}/
${INSTALL_PROGRAM} ${WRKSRC}/python/svmc.so ${PYTHON_SITELIBDIR}/
+ ${MKDIR} ${EXAMPLESDIR}
+ for f in ${PYEXAMPLES}; do \
+ ${INSTALL_DATA} ${WRKSRC}/$$f ${EXAMPLESDIR}; \
+ done
.endif
+ ${MKDIR} ${DATADIR}
+ for f in ${TOOLS}; do \
+ ${INSTALL_DATA} ${WRKSRC}/$$f ${DATADIR}; \
+ done
.if !defined(NOPORTDOCS)
- @${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/COPYRIGHT ${DOCSDIR}
+ ${MKDIR} ${DOCSDIR}
+ ${CP} ${WRKSRC}/python/README ${WRKSRC}/python/README.python
+ for f in ${TXT_DOCS}; do \
+ ${INSTALL_DATA} ${WRKSRC}/$$f ${DOCSDIR}; \
+ done
.endif
+ @${ECHO} ""
+ @${CAT} ${PKGMESSAGE}
+ @${ECHO} ""
.include <bsd.port.mk>
diff -ruN --exclude=CVS /usr/ports/science/libsvm/distinfo /home/rafan/tmp/ports/libsvm/distinfo
--- /usr/ports/science/libsvm/distinfo Wed Mar 31 11:10:54 2004
+++ /home/rafan/tmp/ports/libsvm/distinfo Tue Nov 16 00:40:26 2004
@@ -1,2 +1,2 @@
-MD5 (libsvm-2.5.tar.gz) = 5973401a9b5d9fdd65fc46bdc61a5f9e
-SIZE (libsvm-2.5.tar.gz) = 320549
+MD5 (libsvm-2.7.tar.gz) = b09a9fc273a85ffbfcf25abec16b5ce8
+SIZE (libsvm-2.7.tar.gz) = 437233
diff -ruN --exclude=CVS /usr/ports/science/libsvm/files/patch-Makefile /home/rafan/tmp/ports/libsvm/files/patch-Makefile
--- /usr/ports/science/libsvm/files/patch-Makefile Tue May 21 23:26:21 2002
+++ /home/rafan/tmp/ports/libsvm/files/patch-Makefile Tue Nov 16 01:13:55 2004
@@ -1,16 +1,9 @@
---- Makefile.orig Sat Sep 22 23:04:16 2001
-+++ Makefile Fri May 10 14:40:09 2002
-@@ -1,5 +1,5 @@
+--- Makefile.orig Tue Nov 16 00:45:06 2004
++++ Makefile Tue Nov 16 00:46:01 2004
+@@ -1,5 +1,4 @@
-CXXC = g++
--CFLAGS = -Wall -O3 -g
-+CXXC = ${CXX}
-+CFLAGS += -g
+-CFLAGS = -Wall -O3
++CXXC = $(CXX)
all: svm-train svm-predict svm-scale
-@@ -13,3 +13,5 @@
- $(CXXC) $(CFLAGS) -c svm.cpp
- clean:
- rm -f *~ svm.o svm-train svm-predict svm-scale
-+py:
-+ cd python; $(MAKE) PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR}
diff -ruN --exclude=CVS /usr/ports/science/libsvm/files/patch-python-Makefile /home/rafan/tmp/ports/libsvm/files/patch-python-Makefile
--- /usr/ports/science/libsvm/files/patch-python-Makefile Thu Jan 1 08:00:00 1970
+++ /home/rafan/tmp/ports/libsvm/files/patch-python-Makefile Tue Nov 16 01:14:45 2004
@@ -0,0 +1,18 @@
+--- python/Makefile.orig Wed Mar 24 19:33:46 2004
++++ python/Makefile Tue Nov 16 01:14:32 2004
+@@ -1,11 +1,11 @@
+-CC = g++
++CC = $(CXX)
+ SWIG ?= swig
+
+ #Windows: see ../README ../Makefile.win
+-PYTHON_INCLUDEDIR ?= /usr/include/python2.3
++PYTHON_INCLUDEDIR ?= %%PYTHON_INCLUDEDIR%%
+
+-CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I..
+-LDFLAGS = -shared
++CFLAGS += -I$(PYTHON_INCLUDEDIR) -I..
++LDFLAGS += -shared
+
+ all: svmc.so
+
diff -ruN --exclude=CVS /usr/ports/science/libsvm/libsvm.diff /home/rafan/tmp/ports/libsvm/libsvm.diff
--- /usr/ports/science/libsvm/libsvm.diff Thu Jan 1 08:00:00 1970
+++ /home/rafan/tmp/ports/libsvm/libsvm.diff Tue Nov 16 02:47:38 2004
@@ -0,0 +1 @@
+===> Generating patch
diff -ruN --exclude=CVS /usr/ports/science/libsvm/pkg-message /home/rafan/tmp/ports/libsvm/pkg-message
--- /usr/ports/science/libsvm/pkg-message Thu Jan 1 08:00:00 1970
+++ /home/rafan/tmp/ports/libsvm/pkg-message Tue Nov 16 02:47:12 2004
@@ -0,0 +1,5 @@
+
+Some useful tools are installed to %%DATADIR%%.
+Most of them are written in Python, please install
+lang/python before trying them.
+
diff -ruN --exclude=CVS /usr/ports/science/libsvm/pkg-plist /home/rafan/tmp/ports/libsvm/pkg-plist
--- /usr/ports/science/libsvm/pkg-plist Sun Jun 6 21:27:56 2004
+++ /home/rafan/tmp/ports/libsvm/pkg-plist Tue Nov 16 02:11:08 2004
@@ -1,8 +1,7 @@
bin/svm-predict
bin/svm-scale
bin/svm-train
+%%DATADIR%%/grid.py
+%%DATADIR%%/easy.py
%%LIBSVM_PYTHON%%%%PYTHON_SITELIBDIR%%/svm.py
%%LIBSVM_PYTHON%%%%PYTHON_SITELIBDIR%%/svmc.so
-%%PORTDOCS%%%%DOCSDIR%%/README
-%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
===> Done
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# libsvm-python
# libsvm-python/pkg-descr
# libsvm-python/Makefile
#
echo c - libsvm-python
mkdir -p libsvm-python > /dev/null 2>&1
echo x - libsvm-python/pkg-descr
sed 's/^X//' >libsvm-python/pkg-descr << 'END-of-libsvm-python/pkg-descr'
XThis slave port adds Python interface to LIBSVM.
X
XWWW: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
XAuthor: Chih-Chung Chang and Chih-Jen Lin <cjlin at csie.ntu.edu.tw>
END-of-libsvm-python/pkg-descr
echo x - libsvm-python/Makefile
sed 's/^X//' >libsvm-python/Makefile << 'END-of-libsvm-python/Makefile'
X# New ports collection makefile for: libsvm-python
X# Date Created: Nov 16 2004
X# Whom: rafan at infor.org
X#
X# $FreeBSD$
X#
X
XPKGNAMESUFFIX= -python
X
XMAINTAINER= rafan at infor.org
X
XMASTERDIR= ${.CURDIR}/../../science/libsvm
X
XWITH_PYTHON= yes
X
X.include "${MASTERDIR}/Makefile"
END-of-libsvm-python/Makefile
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list