# ChangeLog for gnome-extra/music-applet
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/gnome-extra/music-applet/ChangeLog,v 1.24 2009/05/29 06:51:56 ssuominen Exp $

  29 May 2009; Samuli Suominen <ssuominen@gentoo.org>
  music-applet-2.5.1.ebuild, metadata.xml:
  Introduce USE mpd with python-mpd python bindings wrt #248707, thanks to
  Vaclav Adamik.

  20 Apr 2009; Gilles Dartiguelongue <eva@gentoo.org>
  -music-applet-2.3.1.ebuild, -music-applet-2.4.2.ebuild,
  -music-applet-2.5.0.ebuild:
  Clean up old revisions.

  19 Apr 2009; Markus Meier <maekke@gentoo.org> music-applet-2.5.1:
  amd64/x86 stable, bug #266711

*music-applet-2.5.1 (18 Jan 2009)

  18 Jan 2009; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.5.1.ebuild:
  Bump to 2.5.1. Minor bug fixes.

*music-applet-2.5.0 (03 Jan 2009)

  03 Jan 2009; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.5.0.ebuild:
  Bump to 2.5.0. Leaks less, encoding fixes and bug fixes.
  Uses split gnome python bindings, bug #242640.

  16 Nov 2008; Gilles Dartiguelongue <eva@gentoo.org>
  music-applet-2.3.1.ebuild, -music-applet-2.4.1.ebuild,
  music-applet-2.4.2.ebuild:
  Remove unused RDEPEND Numeric, bug #246624.

*music-applet-2.4.2 (17 Aug 2008)

  17 Aug 2008; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.4.2.ebuild:
  bump to 2.4.2. Fixed gradual increase in CPU usage after each song change.

  09 Aug 2008; Gilles Dartiguelongue <eva@gentoo.org>
  -files/music-applet-2.3.0-pyexecdir.patch, -music-applet-2.3.0.ebuild,
  -music-applet-2.3.0-r1.ebuild, music-applet-2.3.1.ebuild:
  clean up old revisions. Fixing QA warning.

  08 Aug 2008; Markus Meier <maekke@gentoo.org> music-applet-2.3.1.ebuild:
  amd64/x86 stable, bug #215385

*music-applet-2.4.1 (28 Jul 2008)

  28 Jul 2008; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.4.1.ebuild:
  bump to 2.4.1 and fix changelog

  29 May 2008; Ali Polatel <hawking@gentoo.org> music-applet-2.3.0.ebuild,
  music-applet-2.3.0-r1.ebuild, music-applet-2.3.1.ebuild:
  python_mod_optimize is ROOT aware. Fixed python_mod_cleanup.

*music-applet-2.3.0-r1 (05 May 2008)

  05 May 2008; Olivier Crete <tester@gentoo.org>
  +music-applet-2.3.0-r1.ebuild:
  Add patch to install the .so files in the proper directly in
  multilib systems

*music-applet-2.3.1 (17 Apr 2008)

  17 Apr 2008; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.3.1.ebuild:
  bump to 2.3.1.

  02 Apr 2008; Christian Faulhammer <opfer@gentoo.org>
  music-applet-2.3.0.ebuild:
  stable x86, bug 215385

*music-applet-2.3.0 (24 Feb 2008)

  24 Feb 2008; Gilles Dartiguelongue <eva@gentoo.org>
  +music-applet-2.3.0.ebuild:
  bump to 2.3.0, change RDEPEND to DEPEND and vice-versa. Add libnotify USE flag

  24 Feb 2008; Gilles Dartiguelongue <eva@gentoo.org>
  music-applet-2.2.1.ebuild, metadata.xml:
  fix python eclass use, bug #207667
  adding gnome to metadata.xml

  25 Dec 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
  Removing metalgod from metadata.xml as per #99350.

*music-applet-2.2.1 (21 Nov 2007)

  21 Nov 2007; Samuli Suominen <drac@gentoo.org> +music-applet-2.2.1.ebuild:
  Version bump.

*music-applet-2.2.0 (28 Jul 2007)

  28 Jul 2007; Samuli Suominen <drac@gentoo.org> +music-applet-2.2.0.ebuild:
  Version bump for bug 182053, thanks to Auke Booij for reporting.

  07 Apr 2007; Stefan Schweizer <genstef@gentoo.org>
  music-applet-0.9.2.ebuild, music-applet-2.1.0.ebuild:
  Add depend on dbus-python thanks to Douglas Hitchcock
  <dhitchcock.gentoobugs@mailnull.com> in bug 173620 and gentoofan23 on bugday

*music-applet-2.1.0 (15 Feb 2007)

  15 Feb 2007; Luis Medinas <metalgod@gentoo.org>
  -music-applet-2.0.0.ebuild, +music-applet-2.1.0.ebuild:
  Version Bump. Closes bug #166840. Remove older version.

  07 Feb 2007; Luis Medinas <metalgod@gentoo.org> music-applet-2.0.0.ebuild:
  Fix dependencies thanks to Luca Marturana <lucamarturana@gmail.com> on bug
  #164714.

*music-applet-2.0.0 (31 Jan 2007)

  31 Jan 2007; Luis Medinas <metalgod@gentoo.org> music-applet-0.9.2.ebuild,
  +music-applet-2.0.0.ebuild:
  Version Bump. Fix Homepage thanks to Chris <elfan@db-forge.com>

  04 Dec 2006; Luis Medinas <metalgod@gentoo.org> music-applet-0.9.2.ebuild:
  D-Bus 1.0 love to dependencies. Bug #154521.

*music-applet-0.9.2 (11 Jul 2006)

  11 Jul 2006; Luis Medinas <metalgod@gentoo.org> +metadata.xml,
  +music-applet-0.9.2.ebuild:
  Initial import. Thanks Luca Marturana <lucamarturana@gmail.com> on bug #131075.

