# ChangeLog for net-irc/supybot-plugins
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-irc/supybot-plugins/ChangeLog,v 1.4 2009/09/22 00:02:21 neurogeek Exp $

*supybot-plugins-20060723-r2 (22 Sep 2009)

  22 Sep 2009; Jesus Rivero <neurogeek@gentoo.org>
  +supybot-plugins-20060723-r2.ebuild,
  +files/supybot-plugins_credentials.patch:
  Added twsited-web and twisted-conch as deps. Closes bugs #266340 and
  #266339.

*supybot-plugins-20060723-r1 (22 May 2009)

  22 May 2009; Jim Ramsay <lack@gentoo.org>
  +supybot-plugins-20060723-r1.ebuild:
  Fixed collision with supybot-0.83.4

  29 May 2008; Ali Polatel <hawking@gentoo.org>
  supybot-plugins-20060723.ebuild:
  python_mod_{cleanup,optimize} are ROOT aware. Inherit multilib.

*supybot-plugins-20060723 (26 Sep 2007)

  26 Sep 2007; Jim Ramsay <lack@gentoo.org> +metadata.xml,
  +supybot-plugins-20060723.ebuild:
  Adding new ebuild. This is the officially released set of extra plugins for
  Supybot.

