ports/82098: new ports: www/tdiary-devel

Fumihiko Kimura jfkimura at yahoo.co.jp
Fri Jun 10 07:30:11 UTC 2005


>Number:         82098
>Category:       ports
>Synopsis:       new ports: www/tdiary-devel
>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:   Fri Jun 10 07:30:09 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Fumihiko Kimura
>Release:        FreeBSD 4.11-RELEASE i386
>Organization:
>Environment:
>Description:

www/tdiary-devel is www/tdiary 's devel version.
www/tdiary is stable version.
I divide it into two ports in future and make ports.

>How-To-Repeat:
>Fix:

=== begin  cut here ===
# 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:
#
#	./tdiary-devel/
#	./tdiary-devel/files
#	./tdiary-devel/files/pkg-message.in
#	./tdiary-devel/files/tdiaryinst.rb.in
#	./tdiary-devel/Makefile
#	./tdiary-devel/distinfo
#	./tdiary-devel/pkg-descr
#
echo c - ./tdiary-devel/
mkdir -p ./tdiary-devel/ > /dev/null 2>&1
echo c - ./tdiary-devel/files
mkdir -p ./tdiary-devel/files > /dev/null 2>&1
echo x - ./tdiary-devel/files/pkg-message.in
sed 's/^X//' >./tdiary-devel/files/pkg-message.in << 'END-of-./tdiary-devel/files/pkg-message.in'
X
X=============================================================================
XThere is a script to install tDiary in a user directory.
XThis script should be run manually.
X
X  # ruby %%EXAMPLESDIR%%/tdiaryinst.rb --user=User
X   or
X  % ruby %%EXAMPLESDIR%%/tdiaryinst.rb
X
X * Option: --suexec Use suExec for CGI execution
X	   --help   Display Help information
X
X---
XThere is a document by English in the following directories.
X  See ...
X  %%EXAMPLESDIR%%/misc/i18n/
X   and
X  Explanation by English of a tDiary system can refer to the following page :
X
X  http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?FrontPage_en
X=============================================================================
END-of-./tdiary-devel/files/pkg-message.in
echo x - ./tdiary-devel/files/tdiaryinst.rb.in
sed 's/^X//' >./tdiary-devel/files/tdiaryinst.rb.in << 'END-of-./tdiary-devel/files/tdiaryinst.rb.in'
X#!/usr/bin/env ruby
X#
X# tdiaryinstall.rb - tDiary user directory copy script
X# Date created:                        13 July 2003
X# Whom:                                KAMIYA Satosi  <mimoriso at gmail.com>
X#
X# $FreeBSD$
X#
X
Xrequire 'getoptlong'
Xrequire 'etc.so'
Xrequire 'fileutils'
Xrequire 'find'
Xrequire 'tempfile'
X
X# 
X$OPT_TDIARYMASTER = "@@@@PREFIX@@@@/share/examples/@@@@TDIARY@@@@"
X$OPT_LANG         = '@@@@LANG@@@@'
X
Xmodule FileUtils16
X  def FileUtils16.mkdir_p(dir, *options)
X    begin
X      FileUtils.mkdir_p(dir, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.mkdir_p(dir, optionhash)
X    end
X  end
X  def FileUtils16.cp(src, dest, *options)
X    begin
X      FileUtils.cp(src, dest, *options)
X      FileUtils.chmod(0644, dest, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.cp(src, dest, optionhash)
X    end
X  end
X  def FileUtils16.cp_r(src, dest, *options)
X    begin
X      FileUtils.cp_r(src, dest, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.cp_r(src, dest, optionhash)
X    end
X  end
X  def FileUtils16.rm(list, *options)
X    begin
X      FileUtils.rm(list, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.rm(list, optionhash)
X    end
X  end
X  def FileUtils16.ln_s(list, destdir, *options)
X    begin
X      FileUtils.ln_s(list, destdir, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.ln_s(list, destdir, optionhash)
X    end
X  end
X  def FileUtils16.chmod(mode, list, *options)
X    begin
X      FileUtils.chmod(mode, list, *options)
X    rescue TypeError
X      optionhash = {}
X      options.each { |o| optionhash[o] = true }
X      FileUtils.chmod(mode, list, optionhash)
X    end
X  end
Xend
X
Xdef usage
X  STDERR.print "Usage: #{File.basename($0)} [options]\n"
X  STDERR.print "Options:\n"
X  STDERR.print "    --help                    Display this information\n"
X  STDERR.print "    --user=<username>         Specify user's login name\n"
X  STDERR.print "    --diarydir=<diarydir>     Specify tDiary data directory default: diary\n"
X  STDERR.print "    --httpdir=<httpdir>       Specify apache UserDirectory  default: public_html\n"
X  STDERR.print "    --name=<author_name>      Specify author name\n"
X  STDERR.print "    --mail=<author_mail>      Specify author mail address\n"
X  STDERR.print "    --tdiarymaster=<dir>      Specify tDiary master directory default: @@@@PREFIX@@@@/share/examples/tdiary\n"
X  STDERR.print "    --lang=<language>         Specify your language ('en' or 'ja') default: @@@@LANG@@@@\n"
X  STDERR.print "    --suexec                  Use suExec for CGI execution\n"
X  STDERR.print "    --symlink                 Use symbolic link for tDiary master files\n"
X  STDERR.print "    --quiet                   Do not display any information\n"
X  STDERR.print "    --noop                    Do not install any file. Use this option with --verbose\n"
X  STDERR.print "    --verbose                 Verbose; display verbose debugging messages.\n"
X  exit 1
Xend
X
Xparser = GetoptLong.new
Xparser.set_options(
X  ['--user',    '-u', GetoptLong::REQUIRED_ARGUMENT],
X  ['--diarydir','-d', GetoptLong::REQUIRED_ARGUMENT],
X  ['--httpdir' ,'-h', GetoptLong::REQUIRED_ARGUMENT],
X  ['--name',    '-n', GetoptLong::REQUIRED_ARGUMENT],
X  ['--mail',    '-m', GetoptLong::REQUIRED_ARGUMENT],
X  ['--tdiarymaster' , GetoptLong::REQUIRED_ARGUMENT],
X  ['--lang'         , GetoptLong::REQUIRED_ARGUMENT],
X  ['--suexec'       , GetoptLong::NO_ARGUMENT],
X  ['--symlink', '-l', GetoptLong::NO_ARGUMENT],
X  ['--quiet',   '-q', GetoptLong::NO_ARGUMENT],
X  ['--noop'         , GetoptLong::NO_ARGUMENT],
X  ['--verbose'      , GetoptLong::NO_ARGUMENT],
X  ['--help'         , GetoptLong::NO_ARGUMENT])
Xbegin
X  parser.each_option do |name, arg|
X    eval "$OPT_#{name.sub(/^--/, '').gsub(/-/, '_').upcase} = '#{arg}'"
X  end
Xrescue
X  raise "getoptlong"
Xend
Xusage() if defined?($OPT_HELP)
X
Xclass TdiaryInstall
X  attr_accessor :tdiarymaster
X  attr_accessor :tdconfig
X  attr_accessor :lang
X  attr_reader   :euid
X  attr_accessor :username
X  attr_accessor :diarydir
X  attr_accessor :httpdir
X  attr_reader   :passwd
X  attr_accessor :fileutilOptions
X  attr_accessor :author_name
X  attr_accessor :author_mail
X  attr_reader   :author_host
X  def initialize
X    @passwd   = Etc.getpwuid()
X    @euid     = @passwd.uid
X    @username =(@passwd.name)
X    @diarydir = 'diary'
X    @httpdir  = 'public_html'
X    @fileutilOptions = []
X    @author_name = @passwd.gecos
X    @author_host = "#{`hostname`.chomp}"
X    @author_mail = "#{@username}@#{`hostname`.chomp}"
X  end
X
X  def username=(value)
X    @username = value
X    @passwd = Etc.getpwnam(@username)
X    @author_name = @passwd.gecos
X    @author_mail = "#{@username}@#{`hostname`.chomp}"
X  end
X
X  def lang=(value)
X    case value
X    when 'tdiary.conf-en' , 'en'
X      @lang = 'en'
X      @tdconfig = 'tdiary.conf-en'
X    when 'tdiary.conf-ja' , 'ja'
X      @lang = 'ja'
X      @tdconfig = 'tdiary.conf-ja'
X    else
X      raise "Unknown Language : #{value}"
X    end
X  end
X
X  def installAll
X    raise "You can not use tDiary for superuser." if @passwd.uid == 0
X
X    echo "************************************************************\n"
X    echo "Starting tDiary for FreeBSD  user directory installation ...\n"
X    prepareDirs()
X
X    echo "Copy tDiary ...\n"
X    if $OPT_SYMLINK then
X      linkBaseFile()
X    else
X      copyBaseFile()
X    end
X
X    installConfig()
X    setPermissions() if ! defined?($OPT_NOOP)
X
X    echo "***\n"
X    echo "You have to execute the following commands:\n"
X    echo "    % /usr/local/sbin/htpasswd -c #{@passwd.dir}/.htpasswd #{@username}\n\n"
X    echo "Please read #{@tdiarymaster}/README\n"
X    echo "    for additional information.\n"
X    echo "************************************************************\n"
X  end
X
X  def prepareDirs
X    if ! FileTest.exist?("#{@passwd.dir}/#{@diarydir}")
X      FileUtils16.mkdir_p("#{@passwd.dir}/#{@diarydir}", *@fileutilOptions)
X    end
X    if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}")
X      FileUtils16.mkdir_p("#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    end
X  end
X
X  def linkBaseFile
X    FileUtils16.cp_r("#{@tdiarymaster}/plugin", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.ln_s("#{@tdiarymaster}/theme", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    FileUtils16.ln_s("#{@tdiarymaster}/doc", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    tempfile = Tempfile.new("index.rb")
X    tempfile.write "#!/usr/local/bin/ruby\nrequire '#{@tdiarymaster}/index'\n"
X    tempfile.close
X    FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions)
X    FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions)
X    tempfile = Tempfile.new("update.rb")
X    tempfile.write "#!/usr/local/bin/ruby\nrequire '#{@tdiarymaster}/update'\n"
X    tempfile.close
X    FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions)
X    FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions)
X  end
X
X  def copyBaseFile
X    FileUtils16.cp_r("#{@tdiarymaster}/doc", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X#   FileUtils16.cp_r("#{@tdiarymaster}/erb", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp_r("#{@tdiarymaster}/misc", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp_r("#{@tdiarymaster}/plugin", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp_r("#{@tdiarymaster}/skel", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp_r("#{@tdiarymaster}/tdiary", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp_r("#{@tdiarymaster}/theme", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", :preserve, *@fileutilOptions)
X    FileUtils16.cp("#{@tdiarymaster}/index.rb", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/index.rb", *@fileutilOptions)
X    FileUtils16.cp("#{@tdiarymaster}/update.rb", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    FileUtils16.chmod(0755, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/update.rb", *@fileutilOptions)
X    FileUtils16.cp("#{@tdiarymaster}/tdiary.rb", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X    FileUtils16.cp("#{@tdiarymaster}/README", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions)
X  end
X
X  def installConfig
X    tempfile = Tempfile.new("tdiary.conf-ja")
X    tempfile.write tdiaryConfReplace("#{@tdiarymaster}/tdiary.conf.sample")
X    tempfile.close
X    FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-ja", *@fileutilOptions)
X
X    tempfile = Tempfile.new("tdiary.conf-en") # sample configuration for English Environment
X    tempfile.write tdiaryConfReplace("#{@tdiarymaster}/misc/i18n/tdiary.conf.sample-en")
X    tempfile.close
X    FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf-en", *@fileutilOptions)
X
X    if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf")
X      FileUtils16.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/#{@tdconfig}", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary.conf", *@fileutilOptions)
X    end
X
X    tempfile = Tempfile.new("dot.htaccess")
X    tempfile.write dothtaccessReplace("#{@tdiarymaster}/dot.htaccess")
X    tempfile.close
X    FileUtils16.cp(tempfile.path, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", *@fileutilOptions)
X    if ! FileTest.exist?("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/.htaccess")
X      FileUtils16.cp("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/dot.htaccess", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}/.htaccess", *@fileutilOptions)
X    end
X  end
X
X  def setPermissions
X    FileUtils16.chmod(0777, "#{@passwd.dir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC)
X    FileUtils16.chmod(0777, "#{@passwd.dir}/#{@httpdir}/#{@diarydir}", *@fileutilOptions) if ! defined?($OPT_SUEXEC)
X    FileUtils16.rm("#{@passwd.dir}/#{@httpdir}/#{@diarydir}/tdiary-FreeBSD.sh", :force, *@fileutilOptions)
X
X    if @euid == 0 then
X      Find.find("#{@passwd.dir}/#{@diarydir}", "#{@passwd.dir}/#{@httpdir}/#{@diarydir}") do |f|
X        File.chown(@passwd.uid, @passwd.gid, f)
X      end
X      if File::Stat.new("#{@passwd.dir}/#{@httpdir}").uid == 0
X        File.chown(@passwd.uid, @passwd.gid, "#{@passwd.dir}/#{@httpdir}")
X      end
X    end
X  end
X
X  def echo(s)
X    STDOUT.print s if ! defined?($OPT_QUIET)
X  end
X
X  def tdiaryConfReplace(filename)
X    s = ''
X    File.open(filename) { |fp|
X      fp.each { |line|
X        line = "@data_path = '#{@passwd.dir}/#{@diarydir}'\n" if line =~ /^\@data_path\s/
X        line = "@author_name = '#{@author_name}'\n" if line =~ /^\@author_name\s/
X        line = "@author_mail = '#{@author_mail}'\n" if line =~ /^\@author_mail\s/
X        line = "@html_title = '#{@author_name} diary'\n" if line =~ /^\@html_title\s/
X        line = "@index_page = 'http://#{@author_host}/~#{@username}\/'" if line =~ /^\@index_page\s/
X        s += line
X      }
X    }
X    s
X  end
X
X  def dothtaccessReplace(filename)
X    s = ''
X    File.open(filename) { |fp|
X      fp.each { |line|
X        line = "\tAuthUserFile  #{@passwd.dir}/.htpasswd\n" if line =~ /^\s*AuthUserFile\s/
X        line = "\tRequire user  #{@username}\n" if line =~ /^\s*Require user\s/
X        line = "Options +FollowSymLinks\n" if line =~ /^\#Options \+FollowSymLinks/ && $OPT_SYMLINK
X        s += line
X      }
X    }
X    s
X  end
Xend
X
Xtdiaryinst = TdiaryInstall.new
Xtdiaryinst.tdiarymaster = $OPT_TDIARYMASTER
Xtdiaryinst.lang = $OPT_LANG
Xtdiaryinst.username = $OPT_USER if defined?($OPT_USER)
Xtdiaryinst.diarydir = $OPT_DIARYDIR if defined?($OPT_DIARYDIR)
Xtdiaryinst.httpdir = $OPT_HTTPDIR if defined?($OPT_HTTPDIR)
Xtdiaryinst.author_name = $OPT_NAME if defined?($OPT_NAME)
Xtdiaryinst.author_mail = $OPT_MAIL if defined?($OPT_MAIL)
Xtdiaryinst.fileutilOptions.push(:noop) if defined?($OPT_NOOP)
Xtdiaryinst.fileutilOptions.push(:verbose) if defined?($OPT_VERBOSE)
X
Xtdiaryinst.installAll
X
Xexit 0
END-of-./tdiary-devel/files/tdiaryinst.rb.in
echo x - ./tdiary-devel/Makefile
sed 's/^X//' >./tdiary-devel/Makefile << 'END-of-./tdiary-devel/Makefile'
X# New ports collection makefile for:    tdiary-devel
X# Date created:                 9 June 2005
X# Whom:                         Fumihiko Kimura <jfkimura at yahoo.co.jp>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	tdiary
XPORTVERSION=	2.1.1
XCATEGORIES?=	www ruby
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE} \
X		http://www.tdiary.org/download/
XMASTER_SITE_SUBDIR=	${PORTNAME}
XPKGNAMESUFFIX=	-devel
XDISTNAME=	${PORTNAME}-full-${PORTVERSION}
X
XMAINTAINER=	jfkimura at yahoo.co.jp
XCOMMENT=	A Web-based diary system (like weblog) written in Ruby
X
XNO_BUILD=	yes
XCONFLICTS?=	ja-devel-tdiary-[0-9]*
XPKGMESSAGE=	${WRKDIR}/pkg-message
XUSE_RUBY=	yes
XRUBY_VER=	1.8
X
XRUBY_SHEBANG_FILES=	index.rb update.rb misc/convert2.rb misc/plugin/squeeze.rb \
X			misc/plugin/windex.rb misc/plugin/rast-register.rb \
X			misc/plugin/trackback/tb.rb misc/style/etdiary/etdiary_test.rb \
X			misc/plugin/pingback/pb.rb misc/plugin/xmlrpc/xmlrpc.rb
X
XPLIST_FILES=	${TDIARYDIR:S|${LOCALBASE}/||}/tdiaryinst.rb
XTDIARYDIR=	${EXAMPLESDIR}${PKGNAMESUFFIX}
XWRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
X
X.if  !defined(TDIARY_LANG)
XTDIARY_LANG=	tdiary.conf-en
X.endif
X.if defined(WITH_TDIARY_UCONV)
XRUN_DEPENDS+=	${RUBY_SITEARCHLIBDIR}/uconv.so:${PORTSDIR}/japanese/ruby-uconv
X.endif
X.if defined(WITH_TDIARY_NORA)
XRUN_DEPENDS+=	${RUBY_SITEARCHLIBDIR}/web/escape_ext.so:${PORTSDIR}/www/ruby-nora
X.endif
X.include <bsd.port.pre.mk>
X
X.if ${RUBY_VERSION_CODE} < 182
XIGNORE=		Needs ruby 1.8.2 or higher, install lang/ruby18 and try again
X.endif
X
Xdo-install:
X	@-${MKDIR} ${TDIARYDIR}
X	@${SED} -e 's,@@@@PREFIX@@@@,${PREFIX},g' \
X		-e 's,@@@@TDIARY@@@@,${PORTNAME}${PKGNAMESUFFIX},g' \
X		-e 's,@@@@LANG@@@@,${TDIARY_LANG},g' \
X		${FILESDIR}/tdiaryinst.rb.in > ${TDIARYDIR}/tdiaryinst.rb
X	@${CP} -pR ${WRKSRC}/ ${TDIARYDIR}
X.if ${TDIARY_LANG} == tdiary.conf-en
X	@${ECHO_MSG} "===>  TDIARY : English Language messages support"
X	@${RUBY} -i -pe 'sub(/%Y-%m-%d/, "%Y-%m-%d [%a]")' ${TDIARYDIR}/misc/i18n/tdiary.conf.sample-en
X.else
X	@${ECHO_MSG} "===>  TDIARY : Japanese Language messages support"
X	@${RUBY} -i -pe 'sub(/%Y-%m-%d/, "%Y-%m-%d [%J]")' ${TDIARYDIR}/tdiary.conf.sample
X	@${ECHO_MSG}
X	@${ECHO_MSG} "===>  When you install in home directory, let's choose plugin of 'jdate.rb' to just display 'YOUBI'."
X.endif
X	@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${TDIARYDIR}
X
Xpost-install:
X	@cd ${WRKSRC} && ${FIND} . -type f -o -type l | ${SED} -e 's,^\.,${TDIARYDIR:S|${LOCALBASE}/||},' >> ${TMPPLIST}
X	@cd ${WRKSRC} && ${FIND} . -type d -depth  | ${SED} -e 's,^\., at dirrm ${TDIARYDIR:S|${LOCALBASE}/||},' >> ${TMPPLIST}
X	@${SED}	-e 's|%%EXAMPLESDIR%%|${TDIARYDIR}|' < ${FILESDIR}/pkg-message.in > ${PKGMESSAGE}
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.post.mk>
END-of-./tdiary-devel/Makefile
echo x - ./tdiary-devel/distinfo
sed 's/^X//' >./tdiary-devel/distinfo << 'END-of-./tdiary-devel/distinfo'
XMD5 (tdiary-full-2.1.1.tar.gz) = 74bf1819643c512c6f0af1bc6599c1c5
XSIZE (tdiary-full-2.1.1.tar.gz) = 2138225
END-of-./tdiary-devel/distinfo
echo x - ./tdiary-devel/pkg-descr
sed 's/^X//' >./tdiary-devel/pkg-descr << 'END-of-./tdiary-devel/pkg-descr'
XtDiary is a Web-based interface system that works as a personal diary. 
XIt is possible for diary readers to add comments to your diary.
X
X     -  require Ruby 1.8.2 or later
X     -  currently supported: Japanese, English
X    tDiary is developed on http://sourceforge.net/projects/tdiary/ .
X    See URL for more information.
X
XWWW: http://www.tdiary.org/
END-of-./tdiary-devel/pkg-descr
exit
=== ended  cut here ===

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



More information about the freebsd-ports-bugs mailing list