Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Mar 2012 14:14:13 +0400 (MSK)
From:      Pavel I Volkov <pavelivolkov@googlemail.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/166292: [PATCH] lang/ficl: update to 4.1.0
Message-ID:  <201203211014.q2LAED3u011303@pol.adm.ru>
Resent-Message-ID: <201203211020.q2LAKAFC028643@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         166292
>Category:       ports
>Synopsis:       [PATCH] lang/ficl: update to 4.1.0
>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:   Wed Mar 21 10:20:10 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Pavel I Volkov
>Release:        FreeBSD 9.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD pol.adm.ru 9.0-STABLE FreeBSD 9.0-STABLE #3: Mon Mar 19 14:31:39 MSK 2012
>Description:
- Update to 4.1.0

Added file(s):
- files/patch-dictionary.c
- files/patch-float.c
- files/patch-tools.c

Removed file(s):
- files/patch-Makefile
- pkg-plist

Generated with FreeBSD Port Tools 0.99_4 (mode: update, diff: suffix)
>How-To-Repeat:
>Fix:

--- ficl-4.1.0.patch begins here ---
diff -ruN --exclude=CVS ../ficl.orig/Makefile ./Makefile
--- ../ficl.orig/Makefile	2010-09-07 17:53:58.000000000 +0400
+++ ./Makefile	2012-03-21 11:36:07.000000000 +0400
@@ -6,54 +6,41 @@
 #
 
 PORTNAME=	ficl
-PORTVERSION=	4.0.31
-PORTREVISION=	1
-CATEGORIES=	lang devel
-MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}-all/${PORTNAME}${PORTVERSION}
-DISTNAME=	${PORTNAME}${PORTVERSION}
+PORTVERSION=	4.1.0
+CATEGORIES=	lang
+MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}-all/${PORTNAME}${PORTVERSION:C/([[:digit:]]+\.[[:digit:]]+)\.0/\1/}
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Forth Inspired Command Language
 
-NO_WRKSUBDIR=	defined
-NOMAN=		defined
+LICENSE=	unknown
+LICENSE_NAME=	BSD-style
+LICENSE_TEXT=	Description of the license can be obtained from the following URL: http://ficl.sourceforge.net/license.html
+LICENSE_PERMS=	${_LICENSE_PERMS_DEFAULT}
 
-ONLY_FOR_ARCHS=	i386
+MAKE_JOBS_UNSAFE=	YES
 
-USE_GMAKE=	yes
+ONLY_FOR_ARCHS=	i386 amd64
+ONLY_FOR_ARCHS_REASON=	this port is not tested to anything other than i386 and amd64
 
-ALL_TARGET=	everything
+USE_LDCONFIG=	YES
 
-DOCS=	releases.html parsesteps.html oop.html locals.html links.html \
-	license.html index.html api.html ficl.html favicon.ico dpans.html \
-	debugger.html upgrading.html
+ALL_TARGET=	lib ${PORTNAME}
 
-DOCS_ARTICLES=	sigplan9906.doc oo_in_c.html jwsforml.pdf ficlddj.pdf
-DOCS_GRAPHICS=	sourceforge.jpg ficl_top.jpg ficl_oop.jpg ficl.4.96.jpg \
-		ficl.4.64.jpg ficl.4.128.jpg 4ring.gif
-DOCS_SOURCE=	upgrading.ht releases.ht parsesteps.ht oop.ht locals.ht \
-		links.ht license.ht index.ht generate.py ficl.ht dpans.ht \
-		debugger.ht api.ht
+PLIST_FILES=	bin/${PORTNAME} lib/lib${PORTNAME}.so lib/lib${PORTNAME}.so.${PORTVERSION} lib/lib${PORTNAME}.a
+
+PORTDOCS=	*
 
 do-install:
-	${INSTALL_PROGRAM} ${WRKSRC}/ficl ${PREFIX}/bin
-	${INSTALL_PROGRAM} ${WRKSRC}/libficl.so.4 ${PREFIX}/lib
-	${INSTALL_DATA} ${WRKSRC}/libficl.a ${PREFIX}/lib
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+	${INSTALL_LIB} ${WRKSRC}/lib${PORTNAME}.a ${PREFIX}/lib
+	${INSTALL_LIB} ${WRKSRC}/lib${PORTNAME}.so.${PORTVERSION} ${PREFIX}/lib
+	cd ${PREFIX}/lib && ${LN} -sf lib${PORTNAME}.so.${PORTVERSION} lib${PORTNAME}.so
 .if !defined(NOPORTDOCS)
-	${MKDIR} ${DOCSDIR}
-	${MKDIR} ${DOCSDIR}/source ${DOCSDIR}/articles ${DOCSDIR}/graphics
-.for doc in ${DOCS}
-	${INSTALL_MAN} ${WRKSRC}/doc/${doc} ${DOCSDIR}
-.endfor
-.for doc in ${DOCS_ARTICLES}
-	${INSTALL_MAN} ${WRKSRC}/doc/articles/${doc} ${DOCSDIR}/articles
-.endfor
-.for doc in ${DOCS_GRAPHICS}
-	${INSTALL_MAN} ${WRKSRC}/doc/graphics/${doc} ${DOCSDIR}/graphics
-.endfor
-.for doc in ${DOCS_SOURCE}
-	${INSTALL_MAN} ${WRKSRC}/doc/source/${doc} ${DOCSDIR}/source
-.endfor
+	${INSTALL_DATA} -d -m 0755 ${DOCSDIR} ${DOCSDIR}/articles ${DOCSDIR}/graphics
+	${INSTALL_DATA} ${WRKSRC}/doc/*.html ${WRKSRC}/doc/*.ico ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/articles/* ${DOCSDIR}/articles
+	${INSTALL_DATA} ${WRKSRC}/doc/graphics/* ${DOCSDIR}/graphics
 .endif
 
 .include <bsd.port.mk>
diff -ruN --exclude=CVS ../ficl.orig/distinfo ./distinfo
--- ../ficl.orig/distinfo	2011-07-18 15:52:43.000000000 +0400
+++ ./distinfo	2012-03-21 11:36:07.000000000 +0400
@@ -1,2 +1,2 @@
-SHA256 (ficl4.0.31.tar.gz) = 386f642e5a945ddccc02997a59d0519055d6b9d6dbb8a6a2484884774dab3487
-SIZE (ficl4.0.31.tar.gz) = 571596
+SHA256 (ficl-4.1.0.tar.gz) = 4daf74f3d3d6f8b86ea7cb47bc24931d50b4809b50ba34ca32e0ca1e972bd3a3
+SIZE (ficl-4.1.0.tar.gz) = 538807
diff -ruN --exclude=CVS ../ficl.orig/files/patch-Makefile ./files/patch-Makefile
--- ../ficl.orig/files/patch-Makefile	2003-12-08 22:00:36.000000000 +0300
+++ ./files/patch-Makefile	1970-01-01 03:00:00.000000000 +0300
@@ -1,59 +0,0 @@
---- Makefile.orig	Mon Dec  8 18:32:26 2003
-+++ Makefile	Mon Dec  8 18:46:08 2003
-@@ -0,0 +1,56 @@
-+OBJECTS= dictionary.o system.o fileaccess.o float.o double.o prefix.o search.o softcore.o stack.o tools.o vm.o primitives.o bit.o lzuncompress.o unix.o utility.o hash.o callback.o word.o extras.o
-+HEADERS= ficl.h ficlplatform/unix.h
-+#
-+# Flags for shared library
-+TARGET= -DFREEBSD
-+SHFLAGS = -fPIC
-+CFLAGS= -O -c $(SHFLAGS) $(TARGET)
-+CC=gcc
-+LIB = ar cr
-+RANLIB = ranlib
-+
-+MAJOR = 4
-+
-+everything:	ficl lib
-+
-+ficl: main.o $(HEADERS) libficl.a
-+	$(CC) main.o -o ficl -L. -lficl -lm
-+
-+lib: libficl.so.$(MAJOR)
-+
-+# static library build
-+libficl.a: $(OBJECTS)
-+	$(LIB) libficl.a $(OBJECTS)
-+	$(RANLIB) libficl.a
-+
-+# shared library build
-+libficl.so.$(MAJOR): $(OBJECTS)
-+	$(CC) -shared -Wl,-soname,libficl.so.$(MAJOR) \
-+	-o libficl.so.$(MAJOR) $(OBJECTS)
-+	ln -sf libficl.so.$(MAJOR) libficl.so
-+
-+main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR)
-+	$(CC) main.o -o main -L. -lficl -lm
-+	ln -sf libficl.so.$(MAJOR) libficl.so
-+
-+unix.o: ficlplatform/unix.c $(HEADERS)
-+	$(CC) $(CFLAGS) -c ficlplatform/unix.c
-+
-+#
-+#       generic object code
-+#
-+.SUFFIXES: .cxx .cc .c .o
-+
-+.c.o:
-+	$(CC) $(CFLAGS) -c $*.c
-+
-+.cxx.o:
-+	$(CPP) $(CPFLAGS) -c $*.cxx
-+
-+.cc.o:
-+	$(CPP) $(CPFLAGS) -c $*.cc
-+#
-+#       generic cleanup code
-+#
-+clean:
-+	rm -f *.o *.a libficl.*
diff -ruN --exclude=CVS ../ficl.orig/files/patch-dictionary.c ./files/patch-dictionary.c
--- ../ficl.orig/files/patch-dictionary.c	1970-01-01 03:00:00.000000000 +0300
+++ ./files/patch-dictionary.c	2012-03-21 11:36:07.000000000 +0400
@@ -0,0 +1,94 @@
+--- dictionary.c.orig	2010-09-12 19:14:52.000000000 +0400
++++ dictionary.c	2012-03-20 19:19:53.000000000 +0400
+@@ -662,7 +662,7 @@
+             *trace++ = '>';
+         else
+             *trace++ = ' ';
+-        trace += sprintf(trace, "%3d   ", cell - param0);
++        trace += sprintf(trace, "%3ld   ", (long)(cell - param0));
+         
+         if (ficlDictionaryIsAWord(dictionary, word))
+         {
+@@ -676,7 +676,7 @@
+                 break;
+             case FICL_WORDKIND_INSTRUCTION_WITH_ARGUMENT:
+                 c = *++cell;
+-                sprintf(trace, "%s (instruction %ld), with argument %ld (%#lx)", ficlDictionaryInstructionNames[(long)word], (long)word, c.i, c.u);
++                sprintf(trace, "%s (instruction %ld), with argument %ld (%#lx)", ficlDictionaryInstructionNames[(long)word], (long)word, (long)c.i, (long unsigned)c.u);
+                 break;
+             case FICL_WORDKIND_INSTRUCTION_WORD:
+                 sprintf(trace, "%s :: executes %s (instruction word %ld)", word->name, ficlDictionaryInstructionNames[(long)word->code], (long)word->code);
+@@ -687,20 +687,20 @@
+                 {
+                     ficlWord *word = (ficlWord *)c.p;
+                     sprintf(trace, "%.*s ( %#lx literal )", 
+-                        word->length, word->name, c.u);
++                        word->length, word->name, (long unsigned)c.u);
+                 }
+                 else
+-                    sprintf(trace, "literal %ld (%#lx)", c.i, c.u);
++                    sprintf(trace, "literal %ld (%#lx)", (long)c.i, (long unsigned)c.u);
+                 break;
+             case FICL_WORDKIND_2LITERAL:
+                 c = *++cell;
+                 c2 = *++cell;
+-                sprintf(trace, "2literal %d %d (%#lx %#lx)", c2.i, c.i, c2.u, c.u);
++                sprintf(trace, "2literal %ld %ld (%#lx %#lx)", (long)c2.i, (long)c.i, (long unsigned)c2.u, (long unsigned)c.u);
+                 break;
+ #if FICL_WANT_FLOAT
+             case FICL_WORDKIND_FLITERAL:
+                 c = *++cell;
+-                sprintf(trace, "fliteral %f (%#lx)", c.f, c.u);
++                sprintf(trace, "fliteral %f (%#lx)", (double)c.f, (long unsigned)c.u);
+                 break;
+ #endif /* FICL_WANT_FLOAT */
+             case FICL_WORDKIND_STRING_LITERAL:
+@@ -719,32 +719,32 @@
+                 break;
+             case FICL_WORDKIND_BRANCH0:
+                 c = *++cell;
+-                sprintf(trace, "branch0 %d", cell + c.i - param0);
++                sprintf(trace, "branch0 %ld", (long)(cell + c.i - param0));
+                 break;                                                           
+             case FICL_WORDKIND_BRANCH:
+                 c = *++cell;
+-                sprintf(trace, "branch %d",     cell + c.i - param0);
++                sprintf(trace, "branch %ld", (long)(cell + c.i - param0));
+                 break;
+ 
+             case FICL_WORDKIND_QDO:
+                 c = *++cell;
+-                sprintf(trace, "?do (leave %d)",  (ficlCell *)c.p - param0);
++                sprintf(trace, "?do (leave %ld)", (long)((ficlCell *)c.p - param0));
+                 break;
+             case FICL_WORDKIND_DO:
+                 c = *++cell;
+-                sprintf(trace, "do (leave %d)", (ficlCell *)c.p - param0);
++                sprintf(trace, "do (leave %ld)", (long)((ficlCell *)c.p - param0));
+                 break;
+             case FICL_WORDKIND_LOOP:
+                 c = *++cell;
+-                sprintf(trace, "loop (branch %d)", cell + c.i - param0);
++                sprintf(trace, "loop (branch %ld)", (long)(cell + c.i - param0));
+                 break;
+             case FICL_WORDKIND_OF:
+                 c = *++cell;
+-                sprintf(trace, "of (branch %d)",      cell + c.i - param0);
++                sprintf(trace, "of (branch %ld)", (long)(cell + c.i - param0));
+                 break;
+             case FICL_WORDKIND_PLOOP:
+                 c = *++cell;
+-                sprintf(trace, "+loop (branch %d)", cell + c.i - param0);
++                sprintf(trace, "+loop (branch %ld)", (long)(cell + c.i - param0));
+                 break;
+             default:
+                 sprintf(trace, "%.*s", word->length, word->name);
+@@ -754,7 +754,7 @@
+         }
+         else /* probably not a word - punt and print value */
+         {
+-            sprintf(trace, "%ld ( %#lx )", cell->i, cell->u);
++            sprintf(trace, "%ld ( %#lx )", (long)cell->i, (long unsigned)cell->u);
+         }
+ 
+         ficlCallbackTextOut(callback, buffer);
diff -ruN --exclude=CVS ../ficl.orig/files/patch-float.c ./files/patch-float.c
--- ../ficl.orig/files/patch-float.c	1970-01-01 03:00:00.000000000 +0300
+++ ./files/patch-float.c	2012-03-21 11:36:07.000000000 +0400
@@ -0,0 +1,11 @@
+--- float.c.orig	2010-09-13 22:43:04.000000000 +0400
++++ float.c	2012-03-20 19:09:18.000000000 +0400
+@@ -159,7 +159,7 @@
+ {
+     struct stackContext *context = (struct stackContext *)c;
+     char buffer[64];
+-    sprintf(buffer, "[0x%08x %3d] %16f (0x%08x)\n", cell, context->count++, (double)(cell->f), cell->i);
++    sprintf(buffer, "[0x%08lx %3d] %16f (0x%08lx)\n", (long unsigned)cell, context->count++, (double)(cell->f), (long)cell->i);
+     ficlVmTextOut(context->vm, buffer);
+ 	return FICL_TRUE;
+ }
diff -ruN --exclude=CVS ../ficl.orig/files/patch-tools.c ./files/patch-tools.c
--- ../ficl.orig/files/patch-tools.c	1970-01-01 03:00:00.000000000 +0300
+++ ./files/patch-tools.c	2012-03-21 11:36:07.000000000 +0400
@@ -0,0 +1,76 @@
+--- tools.c.orig	2010-08-12 17:57:22.000000000 +0400
++++ tools.c	2012-03-20 19:08:11.000000000 +0400
+@@ -236,24 +236,24 @@
+         break;
+ 
+     case FICL_WORDKIND_VARIABLE:
+-        sprintf(vm->pad, "variable = %ld (%#lx)\n", word->param->i, word->param->u);
++        sprintf(vm->pad, "variable = %ld (%#lx)\n", (long)word->param->i, (long unsigned)word->param->u);
+         ficlVmTextOut(vm, vm->pad);
+         break;
+ 
+ #if FICL_WANT_USER
+     case FICL_WORDKIND_USER:
+-        sprintf(vm->pad, "user variable %ld (%#lx)\n", word->param->i, word->param->u);
++        sprintf(vm->pad, "user variable %ld (%#lx)\n", (long)word->param->i, (long unsigned)word->param->u);
+         ficlVmTextOut(vm, vm->pad);
+         break;
+ #endif
+ 
+     case FICL_WORDKIND_CONSTANT:
+-        sprintf(vm->pad, "constant = %ld (%#lx)\n", word->param->i, word->param->u);
++        sprintf(vm->pad, "constant = %ld (%#lx)\n", (long)word->param->i, (long unsigned)word->param->u);
+         ficlVmTextOut(vm, vm->pad);
+ 		break;
+ 
+     case FICL_WORDKIND_2CONSTANT:
+-        sprintf(vm->pad, "constant = %ld %ld (%#lx %#lx)\n", word->param[1].i, word->param->i, word->param[1].u, word->param->u);
++        sprintf(vm->pad, "constant = %ld %ld (%#lx %#lx)\n", (long)word->param[1].i, (long)word->param->i, (long unsigned)word->param[1].u, (long unsigned)word->param->u);
+         ficlVmTextOut(vm, vm->pad);
+ 		break;
+ 
+@@ -567,7 +567,7 @@
+ {
+     struct stackContext *context = (struct stackContext *)c;
+     char buffer[64];
+-    sprintf(buffer, "[0x%08x %3d]: %12d (0x%08x)\n", cell, context->count++, cell->i, cell->i);
++    sprintf(buffer, "[0x%08lx %3d]: %12ld (0x%08lx)\n", (long unsigned)cell, context->count++, (long)cell->i, (long unsigned)cell->u); /* Did it should be cell->i, not cell->u? */
+ 	ficlVmTextOut(context->vm, buffer);
+ 	return FICL_TRUE;
+ }
+@@ -580,7 +580,7 @@
+ 
+     FICL_STACK_CHECK(stack, 0, 0);
+ 
+-	sprintf(buffer, "[%s stack has %d entries, top at 0x%08x]\n", stack->name, ficlStackDepth(stack), stack->top);
++	sprintf(buffer, "[%s stack has %d entries, top at 0x%08lx]\n", stack->name, ficlStackDepth(stack), (long unsigned)stack->top);
+ 	ficlVmTextOut(vm, buffer);
+ 
+     if (callback == NULL)
+@@ -592,7 +592,7 @@
+     }
+ 	ficlStackWalk(stack, callback, context, FICL_FALSE);
+ 
+-	sprintf(buffer, "[%s stack base at 0x%08x]\n", stack->name, stack->base);
++	sprintf(buffer, "[%s stack base at 0x%08lx]\n", stack->name, (long unsigned)stack->base);
+ 	ficlVmTextOut(vm, buffer);
+ 
+     return;
+@@ -612,7 +612,7 @@
+ {
+     struct stackContext *context = (struct stackContext *)c;
+     char buffer[32];
+-    sprintf(buffer, "%s%d", context->count ? " " : "", cell->i);
++    sprintf(buffer, "%s%ld", context->count ? " " : "", (long)cell->i);
+     context->count++;
+     ficlVmTextOut(context->vm, buffer);
+ 	return FICL_TRUE;
+@@ -644,7 +644,7 @@
+     struct stackContext *context = (struct stackContext *)c;
+     char buffer[128];
+ 
+-    sprintf(buffer, "[0x%08x %3d] %12d (0x%08x)", cell, context->count++, cell->i, cell->i);
++    sprintf(buffer, "[0x%08lx %3d] %12ld (0x%08lx)", (long unsigned)cell, context->count++, (long)cell->i, (long unsigned)cell->u); /* Did it should be cell->i, not cell->u? */
+ 
+     /*
+     ** Attempt to find the word that contains the return
diff -ruN --exclude=CVS ../ficl.orig/pkg-plist ./pkg-plist
--- ../ficl.orig/pkg-plist	2010-09-07 17:53:58.000000000 +0400
+++ ./pkg-plist	1970-01-01 03:00:00.000000000 +0300
@@ -1,44 +0,0 @@
-lib/libficl.a
-lib/libficl.so.4
-bin/ficl
-%%PORTDOCS%%%%DOCSDIR%%/upgrading.html
-%%PORTDOCS%%%%DOCSDIR%%/source/upgrading.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/releases.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/parsesteps.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/oop.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/locals.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/links.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/license.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/index.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/generate.py
-%%PORTDOCS%%%%DOCSDIR%%/source/ficl.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/dpans.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/debugger.ht
-%%PORTDOCS%%%%DOCSDIR%%/source/api.ht
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/source
-%%PORTDOCS%%%%DOCSDIR%%/releases.html
-%%PORTDOCS%%%%DOCSDIR%%/parsesteps.html
-%%PORTDOCS%%%%DOCSDIR%%/oop.html
-%%PORTDOCS%%%%DOCSDIR%%/locals.html
-%%PORTDOCS%%%%DOCSDIR%%/links.html
-%%PORTDOCS%%%%DOCSDIR%%/license.html
-%%PORTDOCS%%%%DOCSDIR%%/index.html
-%%PORTDOCS%%%%DOCSDIR%%/graphics/sourceforge.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/ficl_top.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/ficl_oop.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/ficl.4.96.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/ficl.4.64.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/ficl.4.128.jpg
-%%PORTDOCS%%%%DOCSDIR%%/graphics/4ring.gif
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/graphics
-%%PORTDOCS%%%%DOCSDIR%%/ficl.html
-%%PORTDOCS%%%%DOCSDIR%%/favicon.ico
-%%PORTDOCS%%%%DOCSDIR%%/dpans.html
-%%PORTDOCS%%%%DOCSDIR%%/debugger.html
-%%PORTDOCS%%%%DOCSDIR%%/articles/sigplan9906.doc
-%%PORTDOCS%%%%DOCSDIR%%/articles/oo_in_c.html
-%%PORTDOCS%%%%DOCSDIR%%/articles/jwsforml.pdf
-%%PORTDOCS%%%%DOCSDIR%%/articles/ficlddj.pdf
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/articles
-%%PORTDOCS%%%%DOCSDIR%%/api.html
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
--- ficl-4.1.0.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203211014.q2LAED3u011303>