Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Oct 2002 13:14:30 -0700 (PDT)
From:      KATO Tsuguru <tkato@prontomail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/44106: Update port: cad/magic to 7.1
Message-ID:  <200210152014.g9FKEUhq067614@www.freebsd.org>

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

>Number:         44106
>Category:       ports
>Synopsis:       Update port: cad/magic to 7.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 15 13:20:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     KATO Tsuguru
>Release:        4.7-RELEASE i386
>Organization:
>Environment:
>Description:
- Update to version 7.1

New file:
files/defs.mak
files/patch-ext2spice::spice2sim
files/patch-misc::magic.h
files/patch-misc::nicebort.c
files/patch-resis::ResRex.c

Remove file:
files/patch-aa
files/patch-ab
files/patch-ac
files/patch-ad
files/patch-ae
files/patch-b
files/post-configure

>How-To-Repeat:

>Fix:
diff -urN /usr/ports/cad/magic/Makefile cad/magic/Makefile
--- /usr/ports/cad/magic/Makefile	Mon Oct  7 20:19:53 2002
+++ cad/magic/Makefile	Mon Oct 14 21:25:17 2002
@@ -6,50 +6,57 @@
 #
 
 PORTNAME=	magic
-PORTVERSION=	6.5.1
+PORTVERSION=	7.1
 CATEGORIES=	cad
-MASTER_SITES=	http://mos.stanford.edu/group/magic/
-EXTRACT_SUFX=	.tar.Z
+MASTER_SITES=	http://vlsi.cornell.edu/magic/
 
 MAINTAINER=	ports@FreeBSD.org
 
-BROKEN=		"Does not compile"
-
 USE_XLIB=	yes
+USE_REINPLACE=	yes
 USE_GMAKE=	yes
+MAKE_ENV=	CADDIR="${PREFIX}" X11BASE="${X11BASE}"
+ALL_TARGET=	mains
 
-BINS=	magic ext2sim magicusage net2ir extcheck X11Helper ext2spice
-MAN1=	ext2spice.1 extcheck.1 magic.1 magicusage.1		\
-	ext2sim.1 net2ir.1 rsleeper.1 sleeper.1 fsleeper.1
-MAN3=	mpack.3 dqueue.3 extflat.3 geometry.3 hash.3 heap.3 libmalloc.3	\
-	list.3 magicutils.3 malloc.3 path.3 runstats.3 set.3 show.3	\
-	stack.3 string.3
-MAN5=	cmap.5 displays.5 dlys.5 sim.5 dstyle.5 ext.5 glyphs.5 magic.5 net.5
+BINS=	XHelper7 ext2sim ext2spice extcheck magic magicusage net2ir 
+MAN1=	ext2sim.1 ext2spice.1 extcheck.1 magic.1 magicusage.1
+MAN3=	dqueue.3 extflat.3 geometry.3 hash.3 heap.3 libmalloc.3 list.3 \
+	magicutils.3 malloc.3 path.3 runstats.3 set.3 show.3 stack.3 string.3
+MAN5=	cmap.5 displays.5 dlys.5 dstyle.5 ext.5 glyphs.5 magic.5 net.5 sim.5
 MAN8=	prleak.8
 
+post-patch:
+	@${FIND} ${WRKSRC} -name "Makefile" | ${XARGS} ${REINPLACE_CMD} -e \
+		's|make |\$$\{MAKE\} |g'
+
+do-configure:
+	@cd ${WRKSRC} && ${WRKSRC}/scripts/makedbh \
+		database/database.h.in database/database.h
+	@${CP} ${FILESDIR}/defs.mak ${WRKSRC}/defs.mak
+
 post-install:
 	@${CHMOD} ${BINMODE} ${PREFIX}/bin/spice2sim
 	@${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/bin/spice2sim
 .for f in ${BINS}
-	@${CHMOD} ${BINMODE} ${PREFIX}/bin/$f
-	@${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/bin/$f
-	@strip ${PREFIX}/bin/$f
+	@${CHMOD} ${BINMODE} ${PREFIX}/bin/${f}
+	@${CHOWN} ${BINOWN}:${BINGRP} ${PREFIX}/bin/${f}
+	@strip ${PREFIX}/bin/${f}
 .endfor
 .for f in ${MAN1}
-	@${CHMOD} ${MANMODE} ${PREFIX}/man/man1/$f
-	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man1/$f
+	@${CHMOD} ${MANMODE} ${PREFIX}/man/man1/${f}
+	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man1/${f}
 .endfor
 .for f in ${MAN3}
-	@${CHMOD} ${MANMODE} ${PREFIX}/man/man3/$f
-	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man3/$f
+	@${CHMOD} ${MANMODE} ${PREFIX}/man/man3/${f}
+	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man3/${f}
 .endfor
 .for f in ${MAN5}
-	@${CHMOD} ${MANMODE} ${PREFIX}/man/man5/$f
-	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man5/$f
+	@${CHMOD} ${MANMODE} ${PREFIX}/man/man5/${f}
+	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man5/${f}
 .endfor
 .for f in ${MAN8}
-	@${CHMOD} ${MANMODE} ${PREFIX}/man/man8/$f
-	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man8/$f
+	@${CHMOD} ${MANMODE} ${PREFIX}/man/man8/${f}
+	@${CHOWN} ${MANOWN}:${MANGRP} ${PREFIX}/man/man8/${f}
 .endfor
 	@${CHMOD} -R a+rX,go-w ${PREFIX}/lib/magic
 	@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/lib/magic
diff -urN /usr/ports/cad/magic/distinfo cad/magic/distinfo
--- /usr/ports/cad/magic/distinfo	Tue Feb 13 22:25:25 2001
+++ cad/magic/distinfo	Fri Oct 11 04:40:45 2002
@@ -1 +1 @@
-MD5 (magic-6.5.1.tar.Z) = 02e700f4b719e01dcea010a3a3c10045
+MD5 (magic-7.1.tar.gz) = 13364b77566f5b47fd3f2783e188d3df
diff -urN /usr/ports/cad/magic/files/defs.mak cad/magic/files/defs.mak
--- /usr/ports/cad/magic/files/defs.mak	Thu Jan  1 09:00:00 1970
+++ cad/magic/files/defs.mak	Mon Oct 14 21:55:21 2002
@@ -0,0 +1,38 @@
+SHELL                  = /bin/sh
+
+CADDIR                 = ${PREFIX}
+BINDIR                 = ${CADDIR}/bin
+LIBDIR                 = ${CADDIR}/lib
+MANDIR                 = ${CADDIR}/man
+SYSDIR                 = ${CADDIR}/lib/magic/sys
+SCMDIR                 = ${CADDIR}/lib/magic/scm
+
+SCRIPTS                = ${MAGICDIR}/scripts
+
+RM                     = rm -f
+CP                     = cp
+AR                     = ar
+ARFLAGS                = crv
+LD                     = ld -r
+RANLIB                 = ranlib
+
+CPP                    = /usr/libexec/cpp -P -traditional
+CPPFLAGS               = -I. -I${MAGICDIR}
+DFLAGS                 =  -DFILE_LOCKS -DHAVE_READLINE -DNONMANHATTAN -DUSE_NEW_MACROS
+
+READLINE_DEFS          = 
+READLINE_LIBS          =  -lreadline -ltermcap
+
+DEPEND_FLAG            = -MM
+DEPEND_FILE            = Depend
+
+GR_CFLAGS              =  -I${X11BASE}/include
+GR_DFLAGS              = -DX11 -DXLIB -DX11HELP_PROG=\"${X11HELP_PROG}\"
+GR_LIBS                = -L${X11BASE}/lib  -lX11
+GR_SRCS                =  ${X11_SRCS}
+GR_HELPER_SRCS         =  ${X11HELPER_SRCS}
+GR_HELPER_PROG         =  ${X11HELP_PROG}
+
+OBJS      = ${SRCS:.c=.o}
+LIB_OBJS  = ${LIB_SRCS:.c=.o}
+CLEANS    = ${OBJS} ${LIB_OBJS} lib${MODULE}.a lib${MODULE}.o ${MODULE}
diff -urN /usr/ports/cad/magic/files/patch-aa cad/magic/files/patch-aa
--- /usr/ports/cad/magic/files/patch-aa	Tue Feb 13 22:25:26 2001
+++ cad/magic/files/patch-aa	Thu Jan  1 09:00:00 1970
@@ -1,30 +0,0 @@
---- Makefile.orig	Tue Jul 23 16:39:34 1996
-+++ Makefile	Sat Nov 29 11:18:28 1997
-@@ -39,8 +39,8 @@
- 		  :status Makefile READ_ME
- DIRS		= include cadlib
- CMD		= echo Need to define your command via 'make cmd CMD=command'
--CADDIR		= `./:findcad`
--CADDIR_SUB	= `../:findcad`
-+CADDIR		= `/bin/csh ./:findcad`
-+CADDIR_SUB	= `/bin/csh ../:findcad`
- 
- everything: ${MODULES} .config
- 	/bin/csh :makeall installhdrs ${MODULES}
-@@ -57,11 +57,11 @@
- 
- 
- directories:
--	./:mkdir ${CADDIR}/bin
--	./:mkdir ${CADDIR}/lib
--	./:mkdir ${CADDIR}/lib/magic
--	./:mkdir ${CADDIR}/lib/magic/sys
--	./:mkdir ${CADDIR}/man
-+	/bin/csh ./:mkdir ${CADDIR}/bin
-+	/bin/csh ./:mkdir ${CADDIR}/lib
-+	/bin/csh ./:mkdir ${CADDIR}/lib/magic
-+	/bin/csh ./:mkdir ${CADDIR}/lib/magic/sys
-+	/bin/csh ./:mkdir ${CADDIR}/man
- 
- # Remakes the binary in 'lib', if needed.  Used for recompiling on 
- # a remote machine.
diff -urN /usr/ports/cad/magic/files/patch-ab cad/magic/files/patch-ab
--- /usr/ports/cad/magic/files/patch-ab	Sun Sep 27 17:19:34 1998
+++ cad/magic/files/patch-ab	Thu Jan  1 09:00:00 1970
@@ -1,11 +0,0 @@
---- utils/Makefile.orig	Sun Sep 27 01:46:16 1998
-+++ utils/Makefile	Sun Sep 27 01:46:39 1998
-@@ -100,7 +100,7 @@
- utils.o: $(OBJS)
- 	rm -f utils.o
- 	rm -f LIBmain.o LIBtextio.o
--	./:ld -r ${OBJS} -lm -o utils.o
-+	./:ld -r ${OBJS} -L/usr/lib -lm -o utils.o
- 
- utils.po: ${POBJS}
- 	rm -f utils.po
diff -urN /usr/ports/cad/magic/files/patch-ac cad/magic/files/patch-ac
--- /usr/ports/cad/magic/files/patch-ac	Mon May 24 11:18:54 1999
+++ cad/magic/files/patch-ac	Thu Jan  1 09:00:00 1970
@@ -1,20 +0,0 @@
---- misc/magic.h.orig	Wed Sep 11 15:23:25 1996
-+++ misc/magic.h	Sun Apr 25 22:32:12 1999
-@@ -166,7 +166,7 @@
-  *
-  */
- 
--#ifdef        i386
-+#if defined(i386) || (defined(__alpha__) && defined(__FreeBSD__))
- #define       IS_LITTLE_ENDIAN        /* Intel x86 processors. */
- #endif
- 
-@@ -244,7 +244,7 @@
- #if defined(sun) && !defined(sparc)
- # define NEED_MONCNTL
- #endif  
--#ifdef	ALPHA
-+#if defined(ALPHA) || (defined(__alpha__) && defined(__FreeBSD__))
- # define NEED_MONCNTL
- #endif  
- 
diff -urN /usr/ports/cad/magic/files/patch-ad cad/magic/files/patch-ad
--- /usr/ports/cad/magic/files/patch-ad	Sat Jan 29 02:23:26 2000
+++ cad/magic/files/patch-ad	Thu Jan  1 09:00:00 1970
@@ -1,11 +0,0 @@
---- misc/niceabort.c.orig	Thu Jan 27 21:59:20 2000
-+++ misc/niceabort.c	Thu Jan 27 21:59:33 2000
-@@ -52,7 +52,7 @@
- bool AbortFatal = FALSE;
- 
- /* For lint */
--long time();
-+time_t time();
- char *ctime();
- 
- void
diff -urN /usr/ports/cad/magic/files/patch-ae cad/magic/files/patch-ae
--- /usr/ports/cad/magic/files/patch-ae	Sun Sep 29 15:08:08 2002
+++ cad/magic/files/patch-ae	Thu Jan  1 09:00:00 1970
@@ -1,29 +0,0 @@
---- resis/ResRex.c.orig	Tue Aug  2 15:40:24 1994
-+++ resis/ResRex.c	Sat Sep 28 22:51:44 2002
-@@ -11,7 +11,7 @@
- #ifdef	ibm032
- #define MAXFLOAT        ((float)3.40282346638528860e+38)
- #else
--#include <values.h>
-+#include <limits.h>
- #endif
- 
- #undef	MAXINT
-@@ -447,7 +447,7 @@
-      	  ResSortByGate(&node->firstTran);
- 	  /* Find largest SD transistor connected to node.	*/
- 	  
--	  minRes = MAXFLOAT;
-+	  minRes = FLOAT_MAX;
- 	  gparams.rg_tranloc = (Point *) NULL;
- 	  gparams.rg_status = FALSE;
- 	  gparams.rg_nodecap = node->capacitance;
-@@ -523,7 +523,7 @@
- 	  {
-     	       TxError("Node %s has force label but no drive point or driving transistor\n",node->name);
- 	  }
--	  if (minRes == MAXFLOAT || gparams.rg_tranloc == NULL)
-+	  if (minRes == FLOAT_MAX || gparams.rg_tranloc == NULL)
- 	  {
- 	       continue;
- 	  }
diff -urN /usr/ports/cad/magic/files/patch-b cad/magic/files/patch-b
--- /usr/ports/cad/magic/files/patch-b	Fri Dec  6 17:24:05 1996
+++ cad/magic/files/patch-b	Thu Jan  1 09:00:00 1970
@@ -1,13 +0,0 @@
-*** ext2spice/spice2sim.orig	Wed May 22 19:14:08 1996
---- ext2spice/spice2sim	Thu Dec  5 23:19:48 1996
-***************
-*** 1,4 ****
-! #!/bin/awk -f
-  # convert an ext2spice produced file to a .sim file for debugging
-  #
-  BEGIN {
---- 1,4 ----
-! #!/usr/bin/awk -f
-  # convert an ext2spice produced file to a .sim file for debugging
-  #
-  BEGIN {
diff -urN /usr/ports/cad/magic/files/patch-ext2spice::spice2sim cad/magic/files/patch-ext2spice::spice2sim
--- /usr/ports/cad/magic/files/patch-ext2spice::spice2sim	Thu Jan  1 09:00:00 1970
+++ cad/magic/files/patch-ext2spice::spice2sim	Fri Oct 11 23:39:28 2002
@@ -0,0 +1,8 @@
+--- ext2spice/spice2sim.orig	Thu Mar 30 03:34:59 2000
++++ ext2spice/spice2sim	Fri Oct 11 23:38:53 2002
+@@ -1,4 +1,4 @@
+-#!/bin/awk -f
++#!/usr/bin/awk -f
+ # convert an ext2spice produced file to a .sim file for debugging
+ #
+ BEGIN {
diff -urN /usr/ports/cad/magic/files/patch-misc::magic.h cad/magic/files/patch-misc::magic.h
--- /usr/ports/cad/magic/files/patch-misc::magic.h	Thu Jan  1 09:00:00 1970
+++ cad/magic/files/patch-misc::magic.h	Fri Oct 11 23:39:43 2002
@@ -0,0 +1,20 @@
+--- misc/magic.h.orig	Sat Sep 22 00:15:45 2001
++++ misc/magic.h	Fri Oct 11 23:38:53 2002
+@@ -146,7 +146,7 @@
+  *
+  */
+ 
+-#ifdef        i386
++#if defined(i386) || (defined(__alpha__) && defined(__FreeBSD__))
+ #define       IS_LITTLE_ENDIAN        /* Intel x86 processors. */
+ #endif
+ 
+@@ -224,7 +224,7 @@
+ #if defined(sun) && !defined(sparc)
+ # define NEED_MONCNTL
+ #endif  
+-#ifdef	ALPHA
++#if defined(ALPHA) || (defined(__alpha__) && defined(__FreeBSD__))
+ # define NEED_MONCNTL
+ #endif  
+ 
diff -urN /usr/ports/cad/magic/files/patch-misc::nicebort.c cad/magic/files/patch-misc::nicebort.c
--- /usr/ports/cad/magic/files/patch-misc::nicebort.c	Thu Jan  1 09:00:00 1970
+++ cad/magic/files/patch-misc::nicebort.c	Fri Oct 11 23:39:58 2002
@@ -0,0 +1,11 @@
+--- misc/niceabort.c.orig	Sat Jan 13 07:13:00 2001
++++ misc/niceabort.c	Fri Oct 11 23:38:53 2002
+@@ -52,7 +52,7 @@
+ bool AbortFatal = FALSE;
+ 
+ /* For lint */
+-long time();
++time_t time();
+ char *ctime();
+ 
+ void
diff -urN /usr/ports/cad/magic/files/patch-resis::ResRex.c cad/magic/files/patch-resis::ResRex.c
--- /usr/ports/cad/magic/files/patch-resis::ResRex.c	Thu Jan  1 09:00:00 1970
+++ cad/magic/files/patch-resis::ResRex.c	Mon Oct 14 20:53:39 2002
@@ -0,0 +1,11 @@
+--- resis/ResRex.c.orig	Sat Sep 22 00:15:50 2001
++++ resis/ResRex.c	Mon Oct 14 20:50:32 2002
+@@ -10,7 +10,7 @@
+ /* It is hard to get the value of MAXFLOAT in a portable manner. */
+ #if defined(ibm032) || defined(CYGWIN) 
+ #define MAXFLOAT        ((float)3.40282346638528860e+38)
+-#elif !defined(__NetBSD__)
++#elif !defined(__NetBSD__) && !defined(__FreeBSD__)
+ #include <values.h>
+ #endif
+ 
diff -urN /usr/ports/cad/magic/pkg-descr cad/magic/pkg-descr
--- /usr/ports/cad/magic/pkg-descr	Fri Dec  6 17:19:03 1996
+++ cad/magic/pkg-descr	Fri Oct 11 04:40:06 2002
@@ -5,4 +5,6 @@
 administrator can create a dummy user named 'cad' with its home
 directory set to the installation directory.
 
+WWW: http://vlsi.cornell.edu/magic/
+
 Ported to FreeBSD by Steven Wallace, swallace@freebsd.org
diff -urN /usr/ports/cad/magic/pkg-plist cad/magic/pkg-plist
--- /usr/ports/cad/magic/pkg-plist	Sun Mar 11 11:06:19 2001
+++ cad/magic/pkg-plist	Mon Oct 14 02:28:51 2002
@@ -1,4 +1,4 @@
-bin/X11Helper
+bin/XHelper7
 bin/ext2sim
 bin/ext2spice
 bin/extcheck
@@ -7,23 +7,60 @@
 bin/net2ir
 bin/spice2sim
 lib/libmpack.a
+lib/magic/doc/addendum6_5.ps
+lib/magic/doc/copyright.ps
+lib/magic/doc/introduction.ps
+lib/magic/doc/maint1.ps
+lib/magic/doc/maint2.ps
+lib/magic/doc/maint3.ps
+lib/magic/doc/maint4.ps
+lib/magic/doc/tut1.ps
+lib/magic/doc/tut10.ps
+lib/magic/doc/tut11.ps
+lib/magic/doc/tut2.ps
+lib/magic/doc/tut3.ps
+lib/magic/doc/tut4.ps
+lib/magic/doc/tut5.ps
+lib/magic/doc/tut6.ps
+lib/magic/doc/tut7.ps
+lib/magic/doc/tut8.ps
+lib/magic/doc/tut9.ps
+lib/magic/doc/tutscm1.ps
+lib/magic/doc/tutscm2.ps
+lib/magic/doc/tutscm3.ps
+lib/magic/doc/tutscm4.ps
+lib/magic/doc/tutwrl1.ps
+lib/magic/scm/box.scm
+lib/magic/scm/default.scm
+lib/magic/scm/draw.scm
+lib/magic/scm/drc.scm
+lib/magic/scm/gate.scm
+lib/magic/scm/help.scm
+lib/magic/scm/label.scm
+lib/magic/scm/layout.scm
+lib/magic/scm/prs.scm
+lib/magic/scm/sel.scm
+lib/magic/scm/stack.scm
 lib/magic/sys/.magic
 lib/magic/sys/bw.glyphs
 lib/magic/sys/color.glyphs
+lib/magic/sys/magicps.pro
 lib/magic/sys/mos.24bit.dstyle5
 lib/magic/sys/mos.7bit.dstyle5
+lib/magic/sys/mos.7bit.mraster.cmap1
+lib/magic/sys/mos.7bit.mraster_dstyle5
 lib/magic/sys/mos.7bit.std.cmap1
+lib/magic/sys/mos.OpenGL.dstyle5
+lib/magic/sys/mos.OpenGL.std.cmap1
 lib/magic/sys/scmos-sub.tech26
 lib/magic/sys/scmos-sub.tech27
 lib/magic/sys/scmos-tm.tech26
 lib/magic/sys/scmos-tm.tech27
+lib/magic/sys/scmos.tech
 lib/magic/sys/scmos.tech26
 lib/magic/sys/scmos.tech27
 lib/magic/sys/scmosWR.tech26
 lib/magic/sys/scmosWR.tech27
-lib/magic/sys/vfont.B.12
-lib/magic/sys/vfont.I.12
-lib/magic/sys/vfont.R.8
 lib/magic/sys/windows11.glyphs
 lib/magic/sys/windows14.glyphs
 lib/magic/sys/windows22.glyphs
@@ -95,4 +132,6 @@
 lib/mpack.h
 @dirrm lib/magic/tutorial
 @dirrm lib/magic/sys
+@dirrm lib/magic/scm
+@dirrm lib/magic/doc
 @dirrm lib/magic
diff -urN /usr/ports/cad/magic/scripts/post-configure cad/magic/scripts/post-configure
--- /usr/ports/cad/magic/scripts/post-configure	Sun Aug 29 19:58:06 1999
+++ cad/magic/scripts/post-configure	Thu Jan  1 09:00:00 1970
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: ports/cad/magic/scripts/post-configure,v 1.4 1999/08/29 10:58:06 peter Exp $
-#
-
-echo -DX11 -DPARANOID		>${WRKSRC}/misc/DFLAGS
-echo -I${X11BASE}/include -O2	>${WRKSRC}/misc/CFLAGS
-echo -L${X11BASE}/lib -lX11 -lm >${WRKSRC}/magic/LIBS
-echo -x				>${WRKSRC}/magic/:ldx
-echo /usr/libexec/cpp -P -traditional >${WRKSRC}/scmos/:cpp
-echo echo $PREFIX 		>${WRKSRC}/:findcad
-echo echo ranlib		>${WRKSRC}/:ranlib
-echo "all:  everything" 	>>${WRKSRC}/Makefile
-date 				>${WRKSRC}/.config

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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