ports/64782: misc fixes to irc/rbot port for ruby 1.8
David Bushong
david+ports at bushong.net
Fri Mar 26 20:10:19 UTC 2004
>Number: 64782
>Category: ports
>Synopsis: misc fixes to irc/rbot port for ruby 1.8
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Fri Mar 26 12:10:18 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: David Bushong
>Release: FreeBSD 4.8-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD firebat.bushong.net 4.8-PRERELEASE FreeBSD 4.8-PRERELEASE #5: Sun Mar 2 11:58:22 PST 2003 dbushong at firebat.bushong.net:/stripe/obj/usr/src/sys/FIREBAT i386
>Description:
There are a number of errors and warnings in rbot under ruby v1.8.x;
this addresses many, hopefully backward compatibly
>How-To-Repeat:
apply patch
>Fix:
diff -ruN rbot.bak/Makefile rbot/Makefile
--- rbot.bak/Makefile Fri Mar 26 11:59:40 2004
+++ rbot/Makefile Fri Mar 26 12:07:10 2004
@@ -7,6 +7,7 @@
PORTNAME= rbot
PORTVERSION= 0.9.6
+PORTREVISION= 1
CATEGORIES= irc ruby
MASTER_SITES= http://linuxbrit.co.uk/downloads/
@@ -22,6 +23,8 @@
post-patch:
@${RUBY} -pi -e 'sub /rbotconf/, "${PREFIX}/etc/rbot"' ${WRKSRC}/rbot.rb
+ @rm ${WRKSRC}/rbot/*.orig
+ @rm ${WRKSRC}/rbot/plugins/*.orig
do-install:
${INSTALL_SCRIPT} ${WRKSRC}/rbot.rb ${PREFIX}/bin/rbot
diff -ruN rbot.bak/files/patch-18-syntax rbot/files/patch-18-syntax
--- rbot.bak/files/patch-18-syntax Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-18-syntax Thu Mar 25 18:53:08 2004
@@ -0,0 +1,101 @@
+--- rbot/ircbot.rb.orig Thu Mar 25 17:25:59 2004
++++ rbot/ircbot.rb Thu Mar 25 17:26:12 2004
+@@ -604,7 +604,7 @@
+ when (/^(version)|(introduce yourself)$/)
+ say m.replyto, "I'm a v. #{$version} rubybot, (c) Tom Gilbert - http://linuxbrit.co.uk/rbot/"
+ when (/^help(?:\s+(.*))?$/)
+- say m.replyto, help $1
++ say m.replyto, help($1)
+ when (/^(botsnack|ciggie)$/)
+ say m.replyto, @lang.get("thanks_X") % m.sourcenick if(m.public?)
+ say m.replyto, @lang.get("thanks") if(m.private?)
+--- rbot/dbhash.rb.orig Thu Mar 25 18:00:33 2004
++++ rbot/dbhash.rb Thu Mar 25 18:03:58 2004
+@@ -63,17 +63,17 @@
+
+ def DBHash.create_db(name)
+ debug "DBHash: creating empty db #{name}"
+- return BDB::Hash.open name, nil,
++ return BDB::Hash.open(name, nil,
+ BDB::CREATE | BDB::EXCL | BDB::TRUNCATE,
+ 0600, "set_pagesize" => 1024,
+- "set_cachesize" => [0, 32 * 1024, 0]
++ "set_cachesize" => [0, 32 * 1024, 0])
+ end
+
+ def DBHash.open_db(name)
+ debug "DBHash: opening existing db #{name}"
+- return BDB::Hash.open name, nil,
++ return BDB::Hash.open(name, nil,
+ "r+", 0600, "set_pagesize" => 1024,
+- "set_cachesize" => [0, 32 * 1024, 0]
++ "set_cachesize" => [0, 32 * 1024, 0])
+ end
+
+ end
+@@ -108,17 +108,17 @@
+
+ def DBTree.create_db(name)
+ debug "DBTree: creating empty db #{name}"
+- return BDB::CIBtree.open name, nil,
++ return BDB::CIBtree.open(name, nil,
+ BDB::CREATE | BDB::EXCL | BDB::TRUNCATE,
+ 0600, "set_pagesize" => 1024,
+- "set_cachesize" => [0, 32 * 1024, 0]
++ "set_cachesize" => [0, 32 * 1024, 0])
+ end
+
+ def DBTree.open_db(name)
+ debug "DBTree: opening existing db #{name}"
+- return BDB::CIBtree.open name, nil,
++ return BDB::CIBtree.open(name, nil,
+ "r+", 0600, "set_pagesize" => 1024,
+- "set_cachesize" => [0, 32 * 1024, 0]
++ "set_cachesize" => [0, 32 * 1024, 0])
+ end
+
+ end
+--- rbot/keywords.rb.orig Thu Mar 25 17:56:45 2004
++++ rbot/keywords.rb Thu Mar 25 17:59:31 2004
+@@ -22,7 +22,7 @@
+ # pick a random value for this keyword and return it
+ def to_s
+ if(@values.length > 1)
+- Keyword.unescape @values[rand @values.length]
++ Keyword.unescape @values[rand(@values.length)]
+ else
+ Keyword.unescape @values[0]
+ end
+--- rbot/language.rb.orig Thu Mar 25 17:59:39 2004
++++ rbot/language.rb Thu Mar 25 18:00:05 2004
+@@ -34,7 +34,7 @@
+
+ def get(key)
+ if(@strings.has_key?(key))
+- return @strings[key][rand @strings[key].length]
++ return @strings[key][rand(@strings[key].length)]
+ else
+ raise "undefined language key"
+ end
+--- rbot/plugins.rb.orig Thu Mar 25 18:07:07 2004
++++ rbot/plugins.rb Thu Mar 25 18:08:05 2004
+@@ -48,7 +48,7 @@
+ def initialize
+ @bot = Plugins.bot
+ @names = Array.new
+- @registry = BotRegistryAccessor.new(@bot, self.type.to_s.gsub(/^.*::/, ""))
++ @registry = BotRegistryAccessor.new(@bot, self.class.to_s.gsub(/^.*::/, ""))
+ end
+
+ # return an identifier for this plugin, defaults to a list of the message
+--- rbot/registry.rb.orig Thu Mar 25 18:04:02 2004
++++ rbot/registry.rb Thu Mar 25 18:04:16 2004
+@@ -149,7 +149,7 @@
+ if @registry.has_key?(@prefix + key)
+ return restore(@registry[@prefix + key])
+ elsif @default != nil
+- return restore @default
++ return restore(@default)
+ else
+ return nil
+ end
diff -ruN rbot.bak/files/patch-dice-roll rbot/files/patch-dice-roll
--- rbot.bak/files/patch-dice-roll Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-dice-roll Thu Mar 25 17:35:31 2004
@@ -0,0 +1,18 @@
+--- rbot/plugins/dice.rb.orig Thu Mar 25 17:33:36 2004
++++ rbot/plugins/dice.rb Mon Aug 5 14:58:04 2002
+@@ -30,7 +30,7 @@
+
+ class DicePlugin < Plugin
+ def help(plugin, topic="")
+- "dice <string> (where <string> is something like: d6 or 2d6 or 2d6+4 or 2d6+1d20 or 2d6+1d5+4d7-3d4-6) => Rolls that set of virtual dice"
++ "#{plugin} <string> (where <string> is something like: d6 or 2d6 or 2d6+4 or 2d6+1d20 or 2d6+1d5+4d7-3d4-6) => Rolls that set of virtual dice"
+ end
+
+ def rolldice(d)
+@@ -77,5 +77,6 @@
+ end
+ plugin = DicePlugin.new
+ plugin.register("dice")
++plugin.register("roll")
+ ##############################################
+ #fin
diff -ruN rbot.bak/files/patch-karma rbot/files/patch-karma
--- rbot.bak/files/patch-karma Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-karma Thu Mar 25 18:11:53 2004
@@ -0,0 +1,14 @@
+--- rbot/plugins/karma.rb.orig Thu Mar 25 18:09:37 2004
++++ rbot/plugins/karma.rb Thu Mar 25 18:11:01 2004
+@@ -34,9 +34,9 @@
+ if(m.kind_of?(PrivMessage) && m.public?)
+ # in channel message, the kind we are interested in
+ if(m.message =~ /(\+\+|--)/)
+- string = m.message.sub(/\W(--|\+\+)(\(.*?\)|[^(++)(--)\s]+)/, "\2\1")
++ string = m.message.sub(/\W(--|\+\+)(\(.*?\)|[^-+\s]+)/, "\2\1")
+ seen = Hash.new
+- while(string.sub!(/(\(.*?\)|[^(++)(--)\s]+)(\+\+|--)/, ""))
++ while(string.sub!(/(\(.*?\)|[^-+\s]+)(\+\+|--)/, ""))
+ key = $1
+ change = $2
+ next if seen[key]
diff -ruN rbot.bak/files/patch-lart-suth rbot/files/patch-lart-suth
--- rbot.bak/files/patch-lart-suth Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-lart-suth Thu Mar 25 17:36:44 2004
@@ -0,0 +1,18 @@
+--- rbot/plugins/lart.rb.orig Thu Mar 25 17:33:36 2004
++++ rbot/plugins/lart.rb Wed Aug 7 12:59:24 2002
+@@ -21,6 +21,7 @@
+ # Keep a 1:1 relation between commands and handlers
+ @@handlers = {
+ "lart" => "handle_lart",
++ "suth" => "handle_lart",
+ "praise" => "handle_praise",
+ "addlart" => "handle_addlart",
+ "rmlart" => "handle_rmlart",
+@@ -152,6 +153,7 @@
+ end
+ plugin = LartPlugin.new
+ plugin.register("lart")
++plugin.register("suth")
+ plugin.register("praise")
+
+ plugin.register("addlart")
diff -ruN rbot.bak/files/patch-math rbot/files/patch-math
--- rbot.bak/files/patch-math Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-math Thu Mar 25 17:37:34 2004
@@ -0,0 +1,28 @@
+--- rbot/plugins/math.rb.orig Thu Mar 25 17:33:36 2004
++++ rbot/plugins/math.rb Mon Jan 27 11:52:37 2003
+@@ -77,13 +77,13 @@
+ expr.gsub!(/\bover /, "/ ")
+ expr.gsub!(/\bsquared/, "**2 ")
+ expr.gsub!(/\bcubed/, "**3 ")
+- expr.gsub!(/\bto\s+(\d+)(r?st|nd|rd|th)?( power)?/, "**#$1 ")
++ expr.gsub!(/\bto\s+(\d+)(r?st|nd|rd|th)?( power)?/, '**\1 ')
+ expr.gsub!(/\bpercent of/, "*0.01*")
+ expr.gsub!(/\bpercent/, "*0.01")
+ expr.gsub!(/\% of\b/, "*0.01*")
+ expr.gsub!(/\%/, "*0.01")
+- expr.gsub!(/\bsquare root of (\d+)/, "#$1 ** 0.5 ")
+- expr.gsub!(/\bcubed? root of (\d+)/, "#$1 **(1.0/3.0) ")
++ expr.gsub!(/\bsquare root of (\d+)/, '\1 ** 0.5 ')
++ expr.gsub!(/\bcubed? root of (\d+)/, '\1 **(1.0/3.0) ')
+ expr.gsub!(/ of /, " * ")
+ expr.gsub!(/(bit(-| )?)?xor(\'?e?d( with))?/, "^")
+ expr.gsub!(/(bit(-| )?)?or(\'?e?d( with))?/, "|")
+@@ -101,7 +101,7 @@
+ if answer =~ /^[-+\de\.]+$/
+ answer = sprintf("%1.12f", answer)
+ answer.gsub!(/\.?0+$/, "")
+- answer.gsub!(/(\.\d+)000\d+/, $1)
++ answer.gsub!(/(\.\d+)000\d+/, '\1')
+ if (answer.length > 30)
+ answer = "a number with >30 digits..."
+ end
diff -ruN rbot.bak/files/patch-url rbot/files/patch-url
--- rbot.bak/files/patch-url Wed Dec 31 16:00:00 1969
+++ rbot/files/patch-url Thu Mar 25 17:38:31 2004
@@ -0,0 +1,11 @@
+--- rbot/plugins/url.rb.orig Thu Mar 25 17:33:36 2004
++++ rbot/plugins/url.rb Wed Aug 21 11:58:41 2002
+@@ -42,7 +42,7 @@
+ else
+ m.reply "in a private message, you need to specify a channel name for urls"
+ end
+- when (/^(#.*?)\s+\d+$/)
++ when (/^(#.*?)\s+(\d+)$/)
+ channel = $1
+ max = $2.to_i
+ urls m, channel, max
diff -ruN rbot.bak/pkg-descr rbot/pkg-descr
--- rbot.bak/pkg-descr Wed Jul 31 16:52:42 2002
+++ rbot/pkg-descr Fri Mar 26 12:06:37 2004
@@ -6,26 +6,7 @@
* Built in infobot-style keywords. See example session below.
* Support for underlying fact database (infobot fact files), which can be
overridden or supplemented by runtime keyword controls
- * Powerful plugin architecture, comes with plugins for:
- o DNS queries
- o Babelfish translation
- o Google searching
- o Excuse generation
- o Insult generation
- o Karma
- o Checking the weather
- o Querying slashdot
- o Doing Math
- o Per-channel quote storage, searching and retrieval
- o Reminders
- o rot13 translation
- o Check the spelling of a word
- o Webserver Server: header examination
- o RPG dice rolling (thanks to David Dorward)
- o Slapping people :)
- o larting people
- o conversation stats
- o more...
+ * Powerful plugin architecture, comes with plugins for many functions.
* Multi-language support - comes with english definition only so far -
translations welcome
diff -ruN rbot.bak/pkg-message rbot/pkg-message
--- rbot.bak/pkg-message Wed Dec 31 16:00:00 1969
+++ rbot/pkg-message Fri Mar 26 12:01:31 2004
@@ -0,0 +1,4 @@
+NOTE! If you are upgrading from Ruby 1.6.x to 1.8.x, the Marshal serialization
+format has changed, and your plugin_registry.db will BREAK! I fixed this by
+compiling marshal.c from the Ruby 1.6 distribution into a module for Ruby 1.8,
+then writing a converter. YMMV.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list