# ChangeLog for net-wireless/bluez-hcidump
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez-hcidump/ChangeLog,v 1.55 2011/11/04 20:43:01 ssuominen Exp $

*bluez-hcidump-2.1 (04 Nov 2011)

  04 Nov 2011; Samuli Suominen <ssuominen@gentoo.org>
  +bluez-hcidump-2.1.ebuild:
  Version bump wrt #389283 by "df"

  02 Nov 2011; Samuli Suominen <ssuominen@gentoo.org>
  -bluez-hcidump-1.42.ebuild:
  old

  26 Oct 2011; Kacper Kowalik <xarthisius@gentoo.org> bluez-hcidump-2.0.ebuild:
  ppc stable wrt #377029

  16 Sep 2011; Jeroen Roovers <jer@gentoo.org> bluez-hcidump-2.0.ebuild:
  Stable for HPPA (bug #377029).

  07 Aug 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  bluez-hcidump-2.0.ebuild:
  x86 stable wrt bug #377029

  02 Aug 2011; Markos Chandras <hwoarang@gentoo.org> bluez-hcidump-2.0.ebuild:
  Stable on amd64 wrt bug #377029

*bluez-hcidump-2.0 (15 May 2011)

  15 May 2011; Samuli Suominen <ssuominen@gentoo.org>
  +bluez-hcidump-2.0.ebuild, +files/bluez-hcidump-2.0-bluez-4.9x.patch:
  Version bump wrt #364707 with a upstream patch to fix building with recent
  bluez wrt #363945.

  11 Jun 2010; Samuli Suominen <ssuominen@gentoo.org>
  bluez-hcidump-1.42.ebuild:
  Drop bluez-libs support wrt #301630.

  21 Nov 2009; Raúl Porcel <armin76@gentoo.org> bluez-hcidump-1.30.ebuild,
  bluez-hcidump-1.40.ebuild, bluez-hcidump-1.41.ebuild,
  bluez-hcidump-1.42.ebuild:
  Drop sparc keyword

  12 May 2009; Peter Alfredsen <loki_val@gentoo.org>
  bluez-hcidump-1.42.ebuild:
  List net-wireless/bluez first in ( a b ) dependency w.r.t. bug 269519.

  08 Apr 2009; Friedrich Oslage <bluebird@gentoo.org>
  bluez-hcidump-1.42.ebuild:
  Stable on sparc, bug #207645

  24 Mar 2009; Joseph Jezak <josejx@gentoo.org> bluez-hcidump-1.42.ebuild:
  Marked ppc stable for bug #207645.

  08 Mar 2009; Markus Meier <maekke@gentoo.org> bluez-hcidump-1.42.ebuild:
  amd64/x86 stable, bug #207645

  06 Mar 2009; Jeroen Roovers <jer@gentoo.org> bluez-hcidump-1.42.ebuild:
  Stable for HPPA (bug #207645).

  01 Mar 2009; Tiziano Müller <dev-zero@gentoo.org>
  bluez-hcidump-1.42.ebuild:
  Added net-wireless/bluez as possible dep for bluetooth

*bluez-hcidump-1.42 (11 Aug 2008)

  11 Aug 2008; Tiziano Müller <dev-zero@gentoo.org>
  +bluez-hcidump-1.42.ebuild:
  Version bump.

  02 Jun 2008; Jeroen Roovers <jer@gentoo.org> bluez-hcidump-1.41.ebuild:
  Stable for HPPA (bug #224409).

  13 May 2008; Petteri Räty <betelgeuse@gentoo.org> metadata.xml:
  Remove proxy maintainer as he doesn't use Gentoo any more.

  17 Apr 2008; Jeroen Roovers <jer@gentoo.org> bluez-hcidump-1.41.ebuild:
  Marked ~hppa too.

  01 Feb 2008; Petteri Räty <betelgeuse@gentoo.org>
  -bluez-hcidump-1.35.ebuild, -bluez-hcidump-1.36.ebuild,
  -bluez-hcidump-1.37.ebuild:
  Remove old versions.

*bluez-hcidump-1.41 (01 Feb 2008)

  01 Feb 2008; Petteri Räty <betelgeuse@gentoo.org>
  +bluez-hcidump-1.41.ebuild:
  Version bump.

*bluez-hcidump-1.40 (12 Aug 2007)

  12 Aug 2007; Petteri Räty <betelgeuse@gentoo.org>
  +bluez-hcidump-1.40.ebuild:
  Version bump.

*bluez-hcidump-1.36 (20 Jun 2007)

  20 Jun 2007; Petteri Räty <betelgeuse@gentoo.org>
  +bluez-hcidump-1.36.ebuild:
  Version bump for bug #182653.

  20 Jun 2007; Petteri Räty <betelgeuse@gentoo.org>
  -bluez-hcidump-1.21.ebuild, -bluez-hcidump-1.29.ebuild:
  Remove old versions.

  17 Jun 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  bluez-hcidump-1.35.ebuild:
  Added ~ppc, bug #178071

  11 May 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  bluez-hcidump-1.35.ebuild:
  Keyworded ~sparc wrt #178071

  12 May 2007; Petteri Räty <betelgeuse@gentoo.org> metadata.xml:
  Add Dick Marinus <dm@chello.nl> as a proxy maintainer to metadata.xml.

*bluez-hcidump-1.35 (11 May 2007)

  11 May 2007; Petteri Räty <betelgeuse@gentoo.org> metadata.xml,
  +bluez-hcidump-1.35.ebuild:
  Version bump. Fixes bug #152207. Take maintainership.

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  26 Jun 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  bluez-hcidump-1.30.ebuild:
  Stable on sparc

  19 Apr 2006; <malc@gentoo.org> bluez-hcidump-1.30.ebuild:
  ~amd64 - closes bug #109279

  26 Feb 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  bluez-hcidump-1.30.ebuild:
  ppc stable, bug #122323

*bluez-hcidump-1.30 (21 Feb 2006)

  21 Feb 2006; Alastair Tse <liquidx@gentoo.org> +bluez-hcidump-1.30.ebuild:
  stable version bump. addresses potential DoS (#122323)

*bluez-hcidump-1.29 (17 Jan 2006)

  17 Jan 2006; Henrik Brix Andersen <brix@gentoo.org>
  +bluez-hcidump-1.29.ebuild:
  Version bump.

*bluez-hcidump-1.27 (03 Nov 2005)

  03 Nov 2005; Henrik Brix Andersen <brix@gentoo.org>
  +bluez-hcidump-1.27.ebuild:
  Version bump.

*bluez-hcidump-1.26 (23 Oct 2005)

  23 Oct 2005; Henrik Brix Andersen <brix@gentoo.org>
  +bluez-hcidump-1.26.ebuild:
  Version bump.

  17 Jul 2005; Tobias Scherbaum <dertobi123@gentoo.org>
  bluez-hcidump-1.21.ebuild:
  ppc stable

*bluez-hcidump-1.23 (06 Jul 2005)

  06 Jul 2005; Alastair Tse <liquidx@gentoo.org> -bluez-hcidump-1.18.ebuild,
  bluez-hcidump-1.21.ebuild, +bluez-hcidump-1.23.ebuild:
  version bump

  17 Jun 2005; Michael Hanselmann <hansmi@gentoo.org>
  bluez-hcidump-1.20.ebuild:
  Stable on ppc.

*bluez-hcidump-1.21 (25 May 2005)

  25 May 2005; Alastair Tse <liquidx@gentoo.org> +bluez-hcidump-1.21.ebuild:
  version bump

  12 May 2005; Tobias Scherbaum <dertobi123@gentoo.org>
  bluez-hcidump-1.18.ebuild:
  Stable on ppc.

*bluez-hcidump-1.20 (26 Apr 2005)

  26 Apr 2005; Alastair Tse <liquidx@gentoo.org> -bluez-hcidump-1.16.ebuild,
  bluez-hcidump-1.18.ebuild, +bluez-hcidump-1.20.ebuild:
  version bump

*bluez-hcidump-1.18 (08 Mar 2005)

  08 Mar 2005; Alastair Tse <liquidx@gentoo.org> +bluez-hcidump-1.18.ebuild:
  version bump

*bluez-hcidump-1.16 (20 Dec 2004)

  20 Dec 2004; Alastair Tse <liquidx@gentoo.org> +bluez-hcidump-1.16.ebuild,
  -bluez-hcidump-1.8.ebuild:
  verison bump

  31 Oct 2004; Lars Weiler <pylon@gentoo.org> bluez-hcidump-1.9.ebuild:
  Stable on ppc.

*bluez-hcidump-1.9 (26 Jun 2004)

  26 Jun 2004; Alastair Tse <liquidx@gentoo.org> +bluez-hcidump-1.9.ebuild:
  version bump

  26 Apr 2004; Aron Griffis <agriffis@gentoo.org> bluez-hcidump-1.5.ebuild,
  bluez-hcidump-1.8.ebuild:
  Add die following econf for bug 48950

*bluez-hcidump-1.8 (29 Mar 2004)

  29 Mar 2004; Alastair Tse <liquidx@gentoo.org> bluez-hcidump-1.8.ebuild:
  version bump

  12 Feb 2004; Ciaran McCreesh <ciaranm@gentoo.org> bluez-hcidump-1.5.ebuild:
  Adding ~sparc (works with some kernels, see bug #39710)

  30 Jan 2004; Peter Johanson <latexer@gentoo.org> bluez-hcidump-1.5.ebuild,
  metadata.xml:
  Fix for wireless->mobile herd name change and header date

  12 Oct 2003; Alastair Tse <liquidx@gentoo.org> bluez-hcidump-1.3.ebuild,
  bluez-hcidump-1.5.ebuild, metadata.xml:
  removing bluez-kernel dep and add docs

*bluez-hcidump-1.5 (20 Feb 2003)

  20 Feb 2003; Peter Johanson <latexer@gentoo.org> bluez-hcidump-1.5.ebuild files/digest-bluez-hcidump-1.5 :
  version bump. thanks to Patrik Kullman <patrik.kullman@netsafe.se>

*bluez-hcidump-1.3 (08 Nov 2002)

  08 Nov 2002; J Robert Ray <jrray@gentoo.org> :
  New ebuild.
