Date: Sun, 26 Oct 2003 12:06:47 +0900 (JST) From: Fumihiko Kimura <jfkimura@yahoo.co.jp> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/58549: Update port: www/tdiary by maintainer Message-ID: <200310260306.h9Q36lX3017043@sh0.radio.gr.jp> Resent-Message-ID: <200310260310.h9Q3AIRJ029557@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 58549 >Category: ports >Synopsis: Update port: www/tdiary by maintainer >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sat Oct 25 20:10:17 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Fumihiko Kimura >Release: FreeBSD 4.8-RELEASE-p4 i386 >Organization: >Environment: >Description: - Problem Report ports/58268 - Other revisions >How-To-Repeat: >Fix: diff -urN /usr/ports/www/tdiary/Makefile /usr/ports/www/tdiary-stable/Makefile --- /usr/ports/www/tdiary/Makefile Sun Aug 10 10:45:07 2003 +++ /usr/ports/www/tdiary-stable/Makefile Sun Oct 26 11:27:57 2003 @@ -2,13 +2,13 @@ # Date created: 21 May 2003 # Whom: Fumihiko Kimura <jfkimura@yahoo.co.jp> # -# $FreeBSD: ports/www/tdiary/Makefile,v 1.5 2003/08/10 01:45:07 leeym Exp $ +# $FreeBSD$ # PORTNAME= tdiary PORTVERSION= 1.5.5 -#PORTREVISION= 0 -CATEGORIES= www ruby +PORTREVISION= 1 +CATEGORIES?= www ruby MASTER_SITES= \ ${MASTER_SITE_SOURCEFORGE} \ http://www.tdiary.org/download/ @@ -18,39 +18,41 @@ MAINTAINER= jfkimura@yahoo.co.jp COMMENT= A Web-based diary system (like weblog) written in Ruby -.if defined(WITH_TDIARY_UCONV) -RUN_DEPENDS+= ${RUBY_SITEARCHLIBDIR}/uconv.so:${PORTSDIR}/japanese/ruby-uconv -.endif -.if defined(WITH_TDIARY_NORA) -RUN_DEPENDS+= ${RUBY_SITEARCHLIBDIR}/web/escape_ext.so:${PORTSDIR}/www/ruby-nora +NO_BUILD= yes +USE_RUBY= yes +.if !defined(WITHOUT_RUBY_FEATURES) +USE_RUBY_FEATURES= fileutils .endif -NO_BUILD= yes -USE_RUBY= yes RUBY_SHEBANG_FILES= index.rb update.rb misc/convert2.rb misc/posttdiary.rb misc/plugin/squeeze.rb misc/plugin/weather.rb \ misc/plugin/windex.rb misc/plugin/a/a_conf.rb misc/plugin/todo/todo.rb misc/plugin/trackback/tb.rb TDIARYDIR= ${EXAMPLESDIR} WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} - .if !defined(TDIARY_LANG) TDIARY_LANG= tdiary.conf-en .endif +.if defined(WITH_TDIARY_UCONV) +RUN_DEPENDS+= ${RUBY_SITEARCHLIBDIR}/uconv.so:${PORTSDIR}/japanese/ruby-uconv +.endif +.if defined(WITH_TDIARY_NORA) +RUN_DEPENDS+= ${RUBY_SITEARCHLIBDIR}/web/escape_ext.so:${PORTSDIR}/www/ruby-nora +.endif + pre-everything:: +.if ! ${TDIARY_LANG} == "tdiary.conf-en" @${ECHO_MSG} - @${ECHO_MSG} "=============================================================" + @${ECHO_MSG} "=============================================================================" @${ECHO_MSG} "You may use the following options:" + @${ECHO_MSG} " WITH_TDIARY_UCONV=yes (RDF file creates with UTF-8 : output_rdf.rb)" + @${ECHO_MSG} " WITH_TDIARY_NORA=yes (with Referer header support : disp_referrer.rb)" + @${ECHO_MSG} "=============================================================================" @${ECHO_MSG} - @${ECHO_MSG} "WITH_TDIARY_UCONV=yes (with UTF-8 support : output_rdf.rb)" - @${ECHO_MSG} "WITH_TDIARY_NORA=yes (with Referer header support : disp_referrer.rb)" - @${ECHO_MSG} - @${ECHO_MSG} "=============================================================" - @${ECHO_MSG} +.endif do-install: -# @if [ -d ${TDIARYDIR} ]; then ${RM} -rf ${TDIARYDIR}; fi - -${MKDIR} ${TDIARYDIR} + @-${MKDIR} ${TDIARYDIR} @${SED} -e 's,@@@@PREFIX@@@@,${PREFIX},g' \ -e 's,@@@@LANG@@@@,${TDIARY_LANG},g' \ ${FILESDIR}/tdiaryinst.rb.in > ${TDIARYDIR}/tdiaryinst.rb @@ -58,32 +60,38 @@ -e 's,@@@@LANG@@@@,${TDIARY_LANG},g' \ ${FILESDIR}/tdiary-FreeBSD.sh.in > ${TDIARYDIR}/tdiary-FreeBSD.sh @${CHMOD} ugo=rx ${TDIARYDIR}/tdiary-FreeBSD.sh - ${CP} -pR ${WRKSRC}/ ${TDIARYDIR} + @${CP} -pR ${WRKSRC}/ ${TDIARYDIR} .if defined(WITH_TDIARY_UCONV) - ${INSTALL_DATA} ${WRKSRC}/misc/plugin/output_rdf.rb ${TDIARYDIR}/plugin + @${ECHO_MSG} "===> Option : WITH_TDIARY_UCONV .. Done." + @${INSTALL_DATA} ${WRKSRC}/misc/plugin/output_rdf.rb ${TDIARYDIR}/plugin + @${TOUCH} ${TDIARYDIR}/t.rdf + @${CHMOD} 706 ${TDIARYDIR}/t.rdf + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/plugin/output_rdf.rb' >> ${TMPPLIST} + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/t.rdf' >> ${TMPPLIST} .endif .if defined(WITH_TDIARY_NORA) - ${INSTALL_DATA} ${WRKSRC}/misc/plugin/disp_referrer.rb ${TDIARYDIR}/plugin + @${ECHO_MSG} "===> Option : WITH_TDIARY_NORA .. Done." + @${INSTALL_DATA} ${WRKSRC}/misc/plugin/disp_referrer.rb ${TDIARYDIR}/plugin + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/plugin/disp_referrer.rb' >> ${TMPPLIST} .endif - ${INSTALL_DATA} ${WRKSRC}/misc/plugin/comment_mail-sendmail.rb ${TDIARYDIR}/plugin + @${INSTALL_DATA} ${WRKSRC}/misc/plugin/comment_mail-sendmail.rb ${TDIARYDIR}/plugin + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/plugin/comment_mail-sendmail.rb' >> ${TMPPLIST} .if ${TDIARY_LANG} == tdiary.conf-en - ${INSTALL_DATA} ${WRKSRC}/misc/i18n/00lang.en.rb ${TDIARYDIR}/plugin + @${ECHO_MSG} "===> TDIARY : English Language messages support" + @${INSTALL_DATA} ${WRKSRC}/misc/i18n/00lang.en.rb ${TDIARYDIR}/plugin + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/plugin/00lang.en.rb' >> ${TMPPLIST} + @${RUBY} -i -pe 'sub(/%Y-%m-%d/, "%Y-%m-%d [%a]")' ${TDIARYDIR}/misc/i18n/tdiary.conf.sample-en +.else + @${ECHO_MSG} "===> TDIARY : Japanese Language messages support" + @${INSTALL_DATA} ${WRKSRC}/misc/plugin/jdate.rb ${TDIARYDIR}/plugin + @${ECHO_CMD} '${TDIARYDIR:S|${LOCALBASE}/||}/plugin/jdate.rb' >> ${TMPPLIST} + @${RUBY} -i -pe 'sub(/%Y-%m-%d/, "%Y-%m-%d [%J]")' ${TDIARYDIR}/tdiary.conf.sample .endif @${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${TDIARYDIR} post-install: - @cd ${WRKSRC} && ${FIND} . -type f -o -type l | ${SED} -e 's,^\.,share/examples/${PORTNAME},' >> ${TMPPLIST} -.if defined(WITH_TDIARY_UCONV) - @${ECHO} 'share/examples/${PORTNAME}/plugin/output_rdf.rb' >> ${TMPPLIST} -.endif -.if defined(WITH_TDIARY_NORA) - @${ECHO} 'share/examples/${PORTNAME}/plugin/disp_referrer.rb' >> ${TMPPLIST} -.endif - @${ECHO} 'share/examples/${PORTNAME}/plugin/comment_mail-sendmail.rb' >> ${TMPPLIST} -.if ${TDIARY_LANG} == tdiary.conf-en - @${ECHO} 'share/examples/${PORTNAME}/plugin/00lang.en.rb' >> ${TMPPLIST} -.endif - @cd ${WRKSRC} && ${FIND} . -type d -depth | ${SED} -e 's,^\.,@dirrm share/examples/${PORTNAME},' >> ${TMPPLIST} - @${SED} -e "s,@@@@PREFIX@@@@,${PREFIX},g" ${PKGMESSAGE} + @cd ${WRKSRC} && ${FIND} . -type f -o -type l | ${SED} -e 's,^\.,${TDIARYDIR:S|${LOCALBASE}/||},' >> ${TMPPLIST} + @cd ${WRKSRC} && ${FIND} . -type d -depth | ${SED} -e 's,^\.,@dirrm ${TDIARYDIR:S|${LOCALBASE}/||},' >> ${TMPPLIST} + @${SED} -e "s,%%EXAMPLESDIR%%,${EXAMPLESDIR},g" ${PKGMESSAGE} .include <bsd.port.mk> diff -urN /usr/ports/www/tdiary/files/tdiary-FreeBSD.sh.in /usr/ports/www/tdiary-stable/files/tdiary-FreeBSD.sh.in --- /usr/ports/www/tdiary/files/tdiary-FreeBSD.sh.in Tue Jul 22 06:31:20 2003 +++ /usr/ports/www/tdiary-stable/files/tdiary-FreeBSD.sh.in Sun Oct 26 11:08:27 2003 @@ -54,9 +54,6 @@ HOMEOWN=`grep ^$USER: /etc/passwd | cut -f3 -d':'` HOMEGRP=`grep ^$USER: /etc/passwd | cut -f4 -d':'` HOMEDIR=`grep ^$USER: /etc/passwd | cut -f6 -d':'` -# HOMEOWN=$USER -# HOMEGRP=$GROUP -# HOMEDIR=$HOME echo "HOME Directory : " ${HOMEDIR} USERNAME=$USER ;; diff -urN /usr/ports/www/tdiary/files/tdiaryinst.rb.in /usr/ports/www/tdiary-stable/files/tdiaryinst.rb.in --- /usr/ports/www/tdiary/files/tdiaryinst.rb.in Tue Jul 29 14:53:24 2003 +++ /usr/ports/www/tdiary-stable/files/tdiaryinst.rb.in Sun Oct 26 11:23:32 2003 @@ -1,10 +1,10 @@ -#!/usr/local/bin/ruby +#!/usr/bin/env ruby # # tdiaryinstall.rb - tDiary user directory copy script -# Date created: 13 July 2003 -# Whom: KAMIYA Satosi <mimoriso@anet.ne.jp> +# Date created: 13 July 2003 +# Whom: KAMIYA Satosi <mimoriso@anet.ne.jp> # -# $FreeBSD: ports/www/tdiary/files/tdiaryinst.rb.in,v 1.1 2003/07/29 05:53:24 daichi Exp $ +# $FreeBSD$ # require 'getoptlong' @@ -17,6 +17,63 @@ $OPT_TDIARYMASTER = "@@@@PREFIX@@@@/share/examples/tdiary" $OPT_LANG = '@@@@LANG@@@@' +module FileUtils16 + def FileUtils16.mkdir_p(dir, *options) + begin + FileUtils.mkdir_p(dir, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.mkdir_p(dir, optionhash) + end + end + def FileUtils16.cp(src, dest, *options) + begin + FileUtils.cp(src, dest, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.cp(src, dest, optionhash) + end + end + def FileUtils16.cp_r(src, dest, *options) + begin + FileUtils.cp_r(src, dest, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.cp_r(src, dest, optionhash) + end + end + def FileUtils16.rm(list, *options) + begin + FileUtils.rm(list, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.rm(list, optionhash) + end + end + def FileUtils16.ln_s(list, destdir, *options) + begin + FileUtils.ln_s(list, destdir, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.ln_s(list, destdir, optionhash) + end + end + def FileUtils16.chmod(mode, list, *options) + begin + FileUtils.chmod(mode, list, *options) + rescue TypeError + optionhash = {} + options.each { |o| optionhash[o] = true } + FileUtils.chmod(mode, list, optionhash) + end + end +end + def usage STDERR.print "Usage: #{File.basename($0)} [options]\n" STDERR.print "Options:\n" @@ -73,17 +130,17 @@ attr_accessor :fileutilOptions attr_accessor :author_name attr_accessor :author_mail - attr_accessor :author_host + attr_reader :author_host #FK def initialize # 初期値の設定 @passwd = Etc.getpwuid() # 初期値はログインユーザ @euid = @passwd.uid - @username = (@passwd.name) # username=(value) メソッドで再定義している + @username =(@passwd.name) # username=(value) メソッドで再定義している #FK @diarydir = 'diary' @httpdir = 'public_html' @fileutilOptions = [] - @author_name = @passwd.gecos # F.Kimura - @author_host = "#{`hostname`.chomp}" # F.Kimura - @author_mail = "#{@username}@#{`hostname`.chomp}" + @author_name = @passwd.gecos #FK + @author_host = "#{`hostname`.chomp}" #FK + @author_mail = "#{@username}@#{`hostname`.chomp}" #FK end def username=(value) # username を代入する際に passwdメンバ変数も更新する @@ -135,31 +192,31 @@ def prepareDirs # インストール先ディレクトリの用意 if ! FileTest.exist?("#{@passwd.dir}/#{@diarydir}") - FileUtils.mkdir_p("#{@passwd.dir}/#{@diarydir}", *@fileutilOptions) + FileUtils16.mkdir_p("#{@passwd.dir}/#{@diarydir}", *@fileutilOptions) end if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}") - FileUtils.mkdir_p("#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) + FileUtils16.mkdir_p("#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) end end def linkBaseFile # tDiaryの配布ファイルはコピーしない - FileUtils.cp_r("#{@tdiarymaster}/plugin", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions) - FileUtils.ln_s("#{@tdiarymaster}/theme", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) - FileUtils.ln_s("#{@tdiarymaster}/doc", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) + FileUtils16.cp_r("#{@tdiarymaster}/plugin", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions) + FileUtils16.ln_s("#{@tdiarymaster}/theme", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) + FileUtils16.ln_s("#{@tdiarymaster}/doc", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) tempfile = Tempfile.new("index.rb") tempfile.write "#!/usr/local/bin/ruby\nrequire '#{@tdiarymaster}/index'\n" tempfile.close - FileUtils.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions) - FileUtils.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions) + FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions) + FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions) tempfile = Tempfile.new("update.rb") tempfile.write "#!/usr/local/bin/ruby\nrequire '#{@tdiarymaster}/update'\n" tempfile.close - FileUtils.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions) - FileUtils.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions) + FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions) + FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions) end def copyBaseFile # tDiaryの配布ファイルをすべてコピー - FileUtils.cp_r("#{@tdiarymaster}/", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions) + FileUtils16.cp_r("#{@tdiarymaster}/", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions) end def installConfig @@ -167,31 +224,31 @@ tempfile = Tempfile.new("tdiary.conf-ja") # 日本語環境サンプル tempfile.write tdiaryConfReplace("#{@tdiarymaster}/tdiary.conf.sample") tempfile.close - FileUtils.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-ja", *@fileutilOptions) + FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-ja", *@fileutilOptions) tempfile = Tempfile.new("tdiary.conf-en") # sample configuration for English Environment tempfile.write tdiaryConfReplace("#{@tdiarymaster}/misc/i18n/tdiary.conf.sample-en") tempfile.close - FileUtils.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-en", *@fileutilOptions) + FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-en", *@fileutilOptions) if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf") # tdiary.conf がなければ設置 - FileUtils.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/#{@tdconfig}", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf", *@fileutilOptions) + FileUtils16.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/#{@tdconfig}", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf", *@fileutilOptions) end # TODO: @langの値によって plugin/00lang.en.rb コピー/削除の制御もしたい tempfile = Tempfile.new("dot.htaccess") tempfile.write dothtaccessReplace("#{@tdiarymaster}/dot.htaccess") tempfile.close - FileUtils.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", *@fileutilOptions) + FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", *@fileutilOptions) if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/.htaccess") - FileUtils.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/.htaccess", *@fileutilOptions) + FileUtils16.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/.htaccess", *@fileutilOptions) end end def setPermissions # ファイルコピー・生成以外の処理 - FileUtils.chmod(0777, "#{@passwd.dir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC) - FileUtils.chmod(0777, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC) - FileUtils.rm("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary-FreeBSD.sh", :force, *@fileutilOptions) + FileUtils16.chmod(0777, "#{@passwd.dir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC) + FileUtils16.chmod(0777, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC) + FileUtils16.rm("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary-FreeBSD.sh", :force, *@fileutilOptions) if @euid == 0 then # superuser 権限でこのインストーラを実行している場合 # すべてのディレクトリ・ファイルに chown で所有者変更 @@ -216,7 +273,7 @@ line = "@author_name = '#{@author_name}'\n" if line =~ /^\@author_name\s/ line = "@author_mail = '#{@author_mail}'\n" if line =~ /^\@author_mail\s/ line = "@html_title = '#{@author_name} diary'\n" if line =~ /^\@html_title\s/ - line = "@index_page = 'http://#{@author_host}/~#{@username}\/'" if line =~ /^\@index_page\s/ # F.Kimura + line = "@index_page = 'http://#{@author_host}/~#{@username}\/'" if line =~ /^\@index_page\s/ #FK s += line } } diff -urN /usr/ports/www/tdiary/pkg-message /usr/ports/www/tdiary-stable/pkg-message --- /usr/ports/www/tdiary/pkg-message Sun Aug 10 10:45:07 2003 +++ /usr/ports/www/tdiary-stable/pkg-message Wed Aug 20 18:59:53 2003 @@ -3,16 +3,16 @@ There is a script to install tDiary in a user directory. This script should be run manually. - # ruby @@@@PREFIX@@@@/share/examples/tdiary/tdiaryinst.rb --user=hoge + # ruby %%EXAMPLESDIR%%/tdiaryinst.rb --user=hoge or - % ruby @@@@PREFIX@@@@/share/examples/tdiary/tdiaryinst.rb + % ruby %%EXAMPLESDIR%%/tdiaryinst.rb same as script : - @@@@PREFIX@@@@/share/examples/tdiary/tdiary-FreeBSD.sh + %%EXAMPLESDIR%%/tdiary-FreeBSD.sh There is a document by English in the following directories. See ... - @@@@PREFIX@@@@/share/examples/tdiary/misc/i18n/ + %%EXAMPLESDIR%%/misc/i18n/ and Explanation by English of a tDiary system can refer to the following page : >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310260306.h9Q36lX3017043>