# ChangeLog for dev-python/pudge
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/pudge/ChangeLog,v 1.11 2015/04/08 08:05:20 mgorny Exp $

  08 Apr 2015; Michał Górny <mgorny@gentoo.org> pudge-0.1.3-r1.ebuild:
  Drop old Python implementations

  08 Mar 2015; Pacho Ramos <pacho@gentoo.org> pudge-0.1.3-r1.ebuild:
  x86 stable, bug 540290

  06 Mar 2015; Pacho Ramos <pacho@gentoo.org> pudge-0.1.3-r1.ebuild:
  amd64 stable, bug 540290

*pudge-0.1.3-r1 (05 Jun 2013)

  05 Jun 2013; Ian Delaney <idella4@gentoo.org> +pudge-0.1.3-r1.ebuild,
  -pudge-0.1.3.ebuild:
  revbump, migrate -> distutils-r1, remove old

  02 Jan 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  pudge-0.1.3.ebuild:
  Fix dependencies (bug #297810).

  02 Oct 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  pudge-0.1.3.ebuild:
  Set SUPPORT_PYTHON_ABIS.

  04 Jul 2007; Lukasz Strzygowski <lucass@gentoo.org> -pudge-0.1.2.ebuild,
  pudge-0.1.3.ebuild:
  Removed use_setuptools sed. Dropped old version.

  04 Jul 2007; Rob Cakebread <pythonhead@gentoo.org> pudge-0.1.2.ebuild,
  pudge-0.1.3.ebuild:
  Removed setuptools sed. bug# 184039

*pudge-0.1.3 (13 Apr 2007)

  13 Apr 2007; Rob Cakebread <pythonhead@gentoo.org> +pudge-0.1.3.ebuild:
  Version bump.

  03 Feb 2007; Tiziano Müller <dev-zero@gentoo.org> pudge-0.1.2.ebuild:
  Changed kid dependency. Small corrections.

*pudge-0.1.2 (07 Jan 2007)

  07 Jan 2007; Tiziano Müller <dev-zero@gentoo.org> +pudge-0.1.2.ebuild:
  New ebuild for bug #155364
