# ChangeLog for dev-python/pyusb
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/pyusb/ChangeLog,v 1.9 2011/03/05 21:30:55 josejx Exp $

*pyusb-1.0.0_alpha1 (05 Mar 2011)
*pyusb-0.4.3 (05 Mar 2011)

  05 Mar 2011; Joseph Jezak <josejx@gentoo.org> +pyusb-0.4.3.ebuild,
  +pyusb-1.0.0_alpha1.ebuild:
  Added latest versions.

  07 Jan 2010; Christian Faulhammer <fauli@gentoo.org> pyusb-0.4.2.ebuild:
  keyworded ~arch for x86, bug 298265

  04 Sep 2009; Patrick Lauer <patrick@gentoo.org> -pyusb-0.4.1-r1.ebuild:
  Remove old

  07 Aug 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  pyusb-0.4.2.ebuild:
  Add "examples" USE flag (bug #280585).

*pyusb-0.4.2 (05 Aug 2009)

  05 Aug 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  +pyusb-0.4.2.ebuild:
  Version bump. Set SUPPORT_PYTHON_ABIS.

  01 Jun 2009; Patrick Lauer <patrick@gentoo.org> pyusb-0.4.1-r1.ebuild:
  Adding ~amd64 keyword

  01 Jun 2009; Patrick Lauer <patrick@gentoo.org> pyusb-0.4.1-r1.ebuild:
  EAPI goes to the top

*pyusb-0.4.1-r1 (28 May 2009)

  28 May 2009; Joseph Jezak <josejx@gentoo.org> -pyusb-0.4.1.ebuild,
  +pyusb-0.4.1-r1.ebuild:
  Added dep on libusb-0.x.

*pyusb-0.4.1 (28 May 2009)

  28 May 2009; Joseph Jezak <josejx@gentoo.org> +metadata.xml,
  +pyusb-0.4.1.ebuild:
  Initial commit.

