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