From owner-svn-ports-head@FreeBSD.ORG Wed Apr 24 08:09:58 2013 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 7A704F70; Wed, 24 Apr 2013 08:09:58 +0000 (UTC) (envelope-from gahr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 6B2D51507; Wed, 24 Apr 2013 08:09:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r3O89vLm032916; Wed, 24 Apr 2013 08:09:57 GMT (envelope-from gahr@svn.freebsd.org) Received: (from gahr@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r3O89vdE032910; Wed, 24 Apr 2013 08:09:57 GMT (envelope-from gahr@svn.freebsd.org) Message-Id: <201304240809.r3O89vdE032910@svn.freebsd.org> From: Pietro Cerutti Date: Wed, 24 Apr 2013 08:09:57 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r316411 - in head/devel/tcl-mmap: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Apr 2013 08:09:58 -0000 Author: gahr Date: Wed Apr 24 08:09:56 2013 New Revision: 316411 URL: http://svnweb.freebsd.org/changeset/ports/316411 Log: - Use TEA configure script instead of our custom Makefile - Add regression-test target - Enhance pkg-descr Deleted: head/devel/tcl-mmap/files/Makefile.bsd Modified: head/devel/tcl-mmap/Makefile head/devel/tcl-mmap/files/patch-warnings head/devel/tcl-mmap/pkg-descr Modified: head/devel/tcl-mmap/Makefile ============================================================================== --- head/devel/tcl-mmap/Makefile Wed Apr 24 08:01:28 2013 (r316410) +++ head/devel/tcl-mmap/Makefile Wed Apr 24 08:09:56 2013 (r316411) @@ -3,25 +3,31 @@ PORTNAME= tcl-mmap PORTVERSION= 1.1 -CATEGORIES= devel tcl +CATEGORIES= devel MASTER_SITES= SF MAINTAINER= tcltk@FreeBSD.org COMMENT= New TCL channel type using mmap-ed files -MAKEFILE= ${FILESDIR}/Makefile.bsd +LICENSE= GPLv3 USE_TCL= 84+ - -MAKE_ENV+= TCL_VER=${TCL_VER} MKDIR="${MKDIR}" \ - PORTVERSION="${PORTVERSION}" \ - FILESDIR="${FILESDIR}" \ - TCLSH="${TCLSH}" \ - INSTALL_DATA="${INSTALL_DATA}" -PLIST_DIRS= lib/tcl${TCL_VER}/mmap -PLIST_FILES= ${PLIST_DIRS}/pkgIndex.tcl ${PLIST_DIRS}/libmmap${PORTVERSION}.so +GNU_CONFIGURE= yes +CONFIGURE_ARGS+=--with-tcl=${TCL_LIBDIR} \ + --prefix=${PREFIX} \ + --exec-prefix=${PREFIX} + +PLIST_DIRS= lib/mmap${PORTVERSION} +PLIST_FILES= lib/mmap${PORTVERSION}/pkgIndex.tcl \ + lib/mmap${PORTVERSION}/libmmap${PORTVERSION}.so MANN= tcl-mmap.n -MANCOMPRESSED= maybe + +regression-test: build + cd ${WRKSRC}/tests; \ + for t in *.tcl; \ + do \ + echo "load ../libmmap${PORTVERSION}.so; source $$t" | ${TCLSH}; \ + done; .include Modified: head/devel/tcl-mmap/files/patch-warnings ============================================================================== --- head/devel/tcl-mmap/files/patch-warnings Wed Apr 24 08:01:28 2013 (r316410) +++ head/devel/tcl-mmap/files/patch-warnings Wed Apr 24 08:09:56 2013 (r316411) @@ -1,148 +1,21 @@ -Submitted upstream as: - -https://sourceforge.net/tracker/?func=detail&aid=3603360&group_id=224597&atid=1062254 - ---- unix/mmap.c 2008-04-21 08:47:04.000000000 -0400 -+++ unix/mmap.c 2013-02-04 18:18:52.000000000 -0500 -@@ -37,23 +37,16 @@ - */ - --static int MmapCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]); -+Tcl_PackageInitProc Mmap_Init; - --void NewChannelName(char *name, CONST char* prefix); -+static Tcl_ObjCmdProc MmapCmd; - --static int Input(ClientData instanceData, char *buf, int bufSize, int *errorCodePtr); -+static void NewChannelName(char *name, const char* prefix); - --static int Output(ClientData instanceData, const char *buf, int bufSize, int *errorCodePtr); -- --static int Seek(ClientData instanceData, long offset, int seekMode, int *errorCodePtr); -- --static int Close(ClientData instanceData, Tcl_Interp *interp); -- --static void Watch(ClientData instanceData, int mask); -- --//static int BlockMode(ClientData instanceData, int mode); -- --static int GetHandle(ClientData instanceData, int direction, ClientData *handlePtr); -- --//static void catch_signal(int sig_num); -+static Tcl_DriverInputProc Input; -+static Tcl_DriverOutputProc Output; -+static Tcl_DriverSeekProc Seek; -+static Tcl_DriverCloseProc Close; -+static Tcl_DriverWatchProc Watch; -+static Tcl_DriverGetHandleProc GetHandle; - - /* -@@ -62,19 +55,12 @@ - - static Tcl_ChannelType channelType = { -- "mmap", /* Channel type name */ -- TCL_CHANNEL_VERSION_2, -- (Tcl_DriverCloseProc *) Close, -- (Tcl_DriverInputProc *) Input, -- (Tcl_DriverOutputProc *) Output, -- (Tcl_DriverSeekProc *) Seek, -- (Tcl_DriverSetOptionProc *) NULL, /* no channel type specific options */ -- (Tcl_DriverGetOptionProc *) NULL, /* no channel type specific options */ -- (Tcl_DriverWatchProc *) Watch, -- (Tcl_DriverGetHandleProc *) GetHandle, -- (Tcl_DriverClose2Proc *) NULL, /* no support for closing the read and write sides independently */ -- (Tcl_DriverBlockModeProc *) NULL, /* mmap channels are always in non-blocking mode */ -- //(Tcl_DriverBlockModeProc *) BlockMode, -- (Tcl_DriverFlushProc *) NULL, /* currently reserved for future use. It should be set to NULL */ -- (Tcl_DriverHandlerProc *) NULL /* this is not a stacked channel driver */ -+ .typeName = "mmap", /* Channel type name */ -+ .version = TCL_CHANNEL_VERSION_2, -+ .closeProc = Close, -+ .inputProc = Input, -+ .outputProc = Output, -+ .seekProc = Seek, -+ .watchProc = Watch, -+ .getHandleProc = GetHandle - }; - -@@ -129,9 +115,9 @@ - } - -- if (bufSize > data->length - data->seek) { -+ if (bufSize > (int)(data->length - data->seek)) { - bufSize = data->length - data->seek; - } - -- memcpy((char *)buf, (char *) (data->addr + data->seek), (size_t) bufSize); -+ memcpy(buf, data->addr + data->seek, (size_t)bufSize); - data->seek += bufSize; - -@@ -144,10 +130,10 @@ - int ret; - -- if (bufSize > data->length - data->seek) { -+ if (bufSize > (int)(data->length - data->seek)) { - bufSize = data->length - data->seek; -- memcpy((char *) (data->addr + data->seek), (char *) buf, (size_t) bufSize); -+ memcpy(data->addr + data->seek, buf, (size_t)bufSize); - data->seek = 0; - } else { -- memcpy((char *) (data->addr + data->seek), (char *) buf, (size_t) bufSize); -+ memcpy(data->addr + data->seek, buf, (size_t)bufSize); - data->seek += bufSize; - } -@@ -163,4 +149,5 @@ - static int Seek(ClientData instanceData, long offset, int seekMode, int *errorCodePtr) { - ChannelInstance* data; -+ off_t seek; - data = (ChannelInstance*) instanceData; - -@@ -178,21 +165,20 @@ - switch (seekMode) { - case SEEK_SET: -- data->seek = offset; -+ seek = offset; - break; - - case SEEK_CUR: -- data->seek += offset; -+ seek += offset; - break; - - case SEEK_END: -- data->seek = data->length + offset; -+ seek = data->length + offset; - break; +--- unix/mmap.c.orig 2013-04-24 09:59:16.000000000 +0200 ++++ unix/mmap.c 2013-04-24 10:00:30.000000000 +0200 +@@ -190,8 +190,7 @@ } /* We check if seek is within range, and fix */ - if (data->seek < 0) data->seek = 0; - if (data->seek > data->length) data->seek = data->length; -- -- return data->seek; -+ if (seek < 0) seek = 0; -+ if (seek > (off_t)data->length) seek = data->length; -+ return data->seek = seek; ++ if (data->seek > (unsigned long)data->length) data->seek = data->length; + + return data->seek; } +@@ -271,7 +270,7 @@ -@@ -255,5 +241,5 @@ - */ - static int MmapCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { -- static char* cmds[] = { "-shared", "-length", "-offset", NULL }; -+ static const char* cmds[] = { "-shared", "-length", "-offset", NULL }; - int index; - int ret; -@@ -329,5 +315,5 @@ - ClientData cd; - ret = Tcl_GetChannelHandle(chan, mode, (ClientData *) &cd); -- fd = (int) cd; // This should be ok because the pointer size in bytes is at least as may bytes as 'int' -+ fd = (intptr_t) cd; // This should be ok because the pointer size in bytes is at least as may bytes as 'int' - if (ret != TCL_OK) { - Tcl_SetResult(interp, "Could not get file handle", TCL_STATIC); -@@ -384,5 +370,5 @@ - } + int i; + for (i = 1; i < objc - 1; i++) { +- if (Tcl_GetIndexFromObj(interp, objv[i], cmds, "option", 0, &index) != TCL_OK) ++ if (Tcl_GetIndexFromObj(interp, objv[i], (const char **)cmds, "option", 0, &index) != TCL_OK) + return TCL_ERROR; --void NewChannelName(char *name, CONST char* prefix) { -+void NewChannelName(char *name, const char* prefix) { - TCL_DECLARE_MUTEX (mmapCounterMutex) - static unsigned long mmapCounter = 0; + switch (index) { Modified: head/devel/tcl-mmap/pkg-descr ============================================================================== --- head/devel/tcl-mmap/pkg-descr Wed Apr 24 08:01:28 2013 (r316410) +++ head/devel/tcl-mmap/pkg-descr Wed Apr 24 08:09:56 2013 (r316411) @@ -1,6 +1,11 @@ This extension provides a Tcl interface to the mmap(2) POSIX system call. +It provides a Tcl package that allows Tcl scripts to: +1) Memory map files for improved access efficiency; +2) Share memory between related processes; +3) Easily implement cyclic persistent log files. + The functionality of 'mmap' is exported from this extension in the form of a new Tcl channel type, named "mmap". A memory mapping is established with the 'mmap' command. Following 'mmap' execution, @@ -8,4 +13,4 @@ access to the memory mapped file is done commands: puts/gets/seek/flush/close/fconfigure, only that this time these commands operate on memory, rather than on a file. -WWW: http://tcl-mmap.sourceforge.net/ +WWW: http://tcl-mmap.sourceforge.net/