# ChangeLog for media-sound/guayadeque
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/guayadeque/ChangeLog,v 1.24 2014/02/24 08:24:40 jlec Exp $

*guayadeque-0.3.7 (24 Feb 2014)

  24 Feb 2014; Justin Lecher <jlec@gentoo.org> +guayadeque-0.3.7.ebuild:
  Version Bump, #502172

  29 Dec 2013; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.6_pre1887.ebuild:
  Fix USE=minimal, #496366

*guayadeque-0.3.6_pre1887 (28 Dec 2013)

  28 Dec 2013; Justin Lecher <jlec@gentoo.org>
  +guayadeque-0.3.6_pre1887.ebuild,
  +files/guayadeque-0.3.6_pre1887-underlinking.patch:
  Version Bump; unbundle wxsqlite; handle (optional) gstreamer support, #482012

  18 Jul 2013; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.5.ebuild,
  metadata.xml:
  Fix usage of cmake-utils.eclass, #477230

  02 Dec 2012; Gilles Dartiguelongue <eva@gentoo.org> guayadeque-0.3.5.ebuild:
  Pin gstreamer dependencies.

  18 Oct 2012; Justin Lecher <jlec@gentoo.org> -guayadeque-0.2.7.ebuild,
  -guayadeque-0.2.9.ebuild, -guayadeque-0.3.1.ebuild:
  Drop old

  17 Oct 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> guayadeque-0.3.5.ebuild:
  x86 stable wrt bug #433541

  14 Sep 2012; Agostino Sarubbo <ago@gentoo.org> guayadeque-0.3.5.ebuild:
  Stable for amd64, wrt bug #433541

  31 Aug 2012; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.5.ebuild:
  Drop Enconding from desktop file, #433034

  05 May 2012; Michał Górny <mgorny@gentoo.org> guayadeque-0.2.7.ebuild,
  guayadeque-0.2.9.ebuild, guayadeque-0.3.1.ebuild, guayadeque-0.3.5.ebuild:
  dev-util/pkgconfig -> virtual/pkgconfig

  14 Feb 2012; Markos Chandras <hwoarang@gentoo.org> metadata.xml:
  ayatana is now global per http://archives.gentoo.org/gentoo-
  dev/msg_f2eb26947d0c86020625a9aeca6f25e4.xml

*guayadeque-0.3.5 (08 Feb 2012)

  08 Feb 2012; Justin Lecher <jlec@gentoo.org> +guayadeque-0.3.5.ebuild:
  Version Bump, #402607

  04 Jan 2012; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.1.ebuild:
  Use esvn_clean from eutils

  05 Dec 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.1.ebuild:
  Add dep on media-plugins/gst-plugins-soup for shoutcast support, #393263

  20 Nov 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.3.1.ebuild:
  Build if svn-1.7 is installed, drop optimization

  19 Nov 2011; Samuli Suominen <ssuominen@gentoo.org> guayadeque-0.2.9.ebuild,
  guayadeque-0.3.1.ebuild, metadata.xml:
  Rename USE="indicate" to USE="ayatana" to get it covered by the current
  use.mask.

  07 Oct 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.2.7.ebuild,
  guayadeque-0.2.9.ebuild, guayadeque-0.3.1.ebuild:
  Remove USE=gstreamer requirement from wxGTK, #383671


  17 Jul 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.2.7.ebuild,
  guayadeque-0.2.9.ebuild, guayadeque-0.3.1.ebuild, metadata.xml:
  Fix for change in wxwidgets.eclass

*guayadeque-0.3.1 (04 Jun 2011)

  04 Jun 2011; Justin Lecher <jlec@gentoo.org> +guayadeque-0.3.1.ebuild:
  Version Bump, #369953

  23 Feb 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.2.9.ebuild:
  Depend on X support on wxGtk, #355953

*guayadeque-0.2.9 (22 Feb 2011)

  22 Feb 2011; Justin Lecher <jlec@gentoo.org> +guayadeque-0.2.9.ebuild,
  metadata.xml:
  Version Bumo, #355769

  20 Feb 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.2.7.ebuild,
  metadata.xml:
  Better handling of langs, corrected maintainer email

  20 Feb 2011; Justin Lecher <jlec@gentoo.org> guayadeque-0.2.7.ebuild:
  No tests available

*guayadeque-0.2.7 (20 Feb 2011)

  20 Feb 2011; Justin Lecher <jlec@gentoo.org> +guayadeque-0.2.7.ebuild,
  +metadata.xml:
  New addition, written by Lukas, enhanced by unknown contributor

