# ChangeLog for media-sound/aseqview
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/aseqview/ChangeLog,v 1.22 2014/08/10 21:03:53 slyfox Exp $

  10 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org> aseqview-0.2.8.ebuild:
  QA: drop trailing '.' from DESCRIPTION

  05 May 2012; Michał Górny <mgorny@gentoo.org> aseqview-0.2.8.ebuild:
  dev-util/pkgconfig -> virtual/pkgconfig

  12 Mar 2011; Tim Harder <radhermit@gentoo.org> aseqview-0.2.8.ebuild:
  Update to EAPI 2 and add slot dep for gtk+.

  25 Aug 2007; Steve Dibb <beandog@gentoo.org> aseqview-0.2.8.ebuild:
  amd64 stable, bug 189137

  22 Aug 2007; Jurek Bartuszek <jurek@gentoo.org> aseqview-0.2.8.ebuild:
  x86 stable (bug #189137)

  16 Aug 2007; Gustavo Zacarias <gustavoz@gentoo.org> aseqview-0.2.8.ebuild:
  Stable on sparc wrt #189137

*aseqview-0.2.8 (25 Jul 2007)

  25 Jul 2007; Samuli Suominen <drac@gentoo.org> +aseqview-0.2.8.ebuild:
  Version bump.

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

  28 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> aseqview-0.1.4.ebuild,
  aseqview-0.2.1.ebuild:
  Fix missing dependency on 1.2 version of GTK+. Thanks to Patrick Lauer in
  bug #153085.

  04 Sep 2005; Diego Pettenò <flameeyes@gentoo.org> aseqview-0.1.4.ebuild,
  aseqview-0.2.1.ebuild:
  Don't install COPYING file.

  25 Jul 2005; David Holm <dholm@gentoo.org> aseqview-0.2.1.ebuild:
  Added to ~ppc.

  18 Dec 2004; Jeremy Huddleston <eradicator@gentoo.org>
  aseqview-0.2.1.ebuild:
  Stable sparc.

  22 Nov 2004; Jeremy Huddleston <eradicator@gentoo.org>
  aseqview-0.2.1.ebuild:
  Added to ~sparc.

  14 Sep 2004; Jeremy Huddleston <eradicator@gentoo.org>
  aseqview-0.2.1.ebuild:
  Stable amd64.

  24 Apr 2004; Danny van Dyk <kugelfang@gentoo.org> aseqview-0.2.1.ebuild:
  marked ~amd64

  20 Apr 2004; Jeremy Huddleston <eradicator@gentoo.org>
  aseqview-0.1.4.ebuild:
  Added IUSE.

  20 Apr 2004; Jeremy Huddleston <eradicator@gentoo.org>
  aseqview-0.2.1.ebuild:
  QA fix.

*aseqview-0.2.1 (23 Jan 2004)

*aseqview-0.1.4 (20 Dec 2002)

  20 Dec 2002; Arcady Genkin <agenkin@gentoo.org> :
  Initial version by Rene Wagner <reenoo@gmx.de>.  Closes #12198.
