# ChangeLog for media-libs/gupnp-dlna
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/gupnp-dlna/ChangeLog,v 1.31 2015/07/04 14:15:27 pacho Exp $

*gupnp-dlna-0.10.3 (04 Jul 2015)

  04 Jul 2015; Pacho Ramos <pacho@gentoo.org> +gupnp-dlna-0.10.3.ebuild:
  Version bump

  13 Nov 2014; Pacho Ramos <pacho@gentoo.org> -gupnp-dlna-0.6.6.ebuild:
  Drop old (#508854)

  08 Dec 2013; Pacho Ramos <pacho@gentoo.org> gupnp-dlna-0.10.2.ebuild:
  x86 stable, bug #478252

  08 Dec 2013; Pacho Ramos <pacho@gentoo.org> -gupnp-dlna-0.10.1.ebuild,
  gupnp-dlna-0.10.2.ebuild, metadata.xml:
  Parallel install fails, upstream bug #720053; drop old; this is only being
  maintained by gnome team for a long time.

  30 Nov 2013; Pacho Ramos <pacho@gentoo.org> gupnp-dlna-0.10.2.ebuild:
  amd64 stable, bug #478252

*gupnp-dlna-0.10.2 (30 May 2013)

  30 May 2013; Pacho Ramos <pacho@gentoo.org> +gupnp-dlna-0.10.2.ebuild,
  -gupnp-dlna-0.10.0.ebuild:
  Version bump, remove old

*gupnp-dlna-0.10.1 (14 Apr 2013)

  14 Apr 2013; Pacho Ramos <pacho@gentoo.org> +gupnp-dlna-0.10.1.ebuild:
  Version bump

  30 Mar 2013; Gilles Dartiguelongue <eva@gentoo.org> -gupnp-dlna-0.6.2.ebuild,
  -gupnp-dlna-0.6.4.ebuild, gupnp-dlna-0.6.6.ebuild, gupnp-dlna-0.10.0.ebuild:
  Clean up old revisions. Assign proper slot to ebuilds.

*gupnp-dlna-0.10.0 (28 Mar 2013)

  28 Mar 2013; Pacho Ramos <pacho@gentoo.org> +gupnp-dlna-0.10.0.ebuild:
  Version bump for Gnome 3.8

  25 Mar 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Stable for x86, wrt bug #458984

  25 Mar 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Stable for amd64, wrt bug #458984

  05 Feb 2013; Pacho Ramos <pacho@gentoo.org> metadata.xml:
  Cleanup after talking with Ford_Prefect

  02 Feb 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~arm, wrt bug #449220

  06 Jan 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~sparc, wrt bug #449220

  01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~alpha, wrt bug #449220

  01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~ia64, wrt bug #449220

  31 Dec 2012; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~ppc64, wrt bug #449220

  31 Dec 2012; Agostino Sarubbo <ago@gentoo.org> gupnp-dlna-0.6.6.ebuild:
  Add ~ppc, wrt bug #449220

*gupnp-dlna-0.6.6 (22 Jul 2012)

  22 Jul 2012; Gilles Dartiguelongue <eva@gentoo.org +gupnp-dlna-0.6.6.ebuild:
  Version bump. Fixes, MKV and AVC_MP4_*_EAC3 profiles.

  05 May 2012; Jeff Horelick <jdhore@gentoo.org> gupnp-dlna-0.6.2.ebuild,
  gupnp-dlna-0.6.4.ebuild:
  dev-util/pkgconfig -> virtual/pkgconfig

  14 Jan 2012; Markus Meier <maekke@gentoo.org> gupnp-dlna-0.6.4.ebuild:
  x86 stable, bug #393007

  29 Dec 2011; Pacho Ramos <pacho@gentoo.org> gupnp-dlna-0.6.4.ebuild:
  amd64 stable, bug 393007

*gupnp-dlna-0.6.4 (15 Nov 2011)

  15 Nov 2011; Gilles Dartiguelongue <eva@gentoo.org> +gupnp-dlna-0.6.4.ebuild,
  metadata.xml:
  Version bump. Add gnome to herd list.

  14 Aug 2011; Nirbheek Chauhan <nirbheek@gentoo.org> -gupnp-dlna-0.4.0.ebuild,
  -gupnp-dlna-0.4.2.ebuild, -gupnp-dlna-0.5.0.ebuild, -gupnp-dlna-0.5.1.ebuild,
  gupnp-dlna-0.6.2.ebuild:
  Remove old, fix introspection deps

*gupnp-dlna-0.6.2 (24 Jul 2011)

  24 Jul 2011; Gilles Dartiguelongue <eva@gentoo.org> +gupnp-dlna-0.6.2.ebuild,
  metadata.xml:
  Version bump.

*gupnp-dlna-0.5.1 (21 Feb 2011)
*gupnp-dlna-0.5.0 (21 Feb 2011)

  21 Feb 2011; Gilles Dartiguelongue <eva@gentoo.org> +gupnp-dlna-0.5.0.ebuild,
  +gupnp-dlna-0.5.1.ebuild:
  Version bump. Needed for latest rygel releases, with permission from
  maintainer.

  14 Oct 2010; Arun Raghavan <ford_prefect@gentoo.org>
  -gupnp-dlna-0.2.1.ebuild, -gupnp-dlna-0.3.0.ebuild:
  Prune old versions.

*gupnp-dlna-0.4.2 (14 Oct 2010)

  14 Oct 2010; Arun Raghavan <ford_prefect@gentoo.org>
  +gupnp-dlna-0.4.2.ebuild:
  Bump to 0.4.2. Mostly build fixes.

*gupnp-dlna-0.4.0 (01 Oct 2010)

  01 Oct 2010; Arun Raghavan <ford_prefect@gentoo.org>
  +gupnp-dlna-0.4.0.ebuild:
  Bump to 0.4.0. Stable release - minor build fixes since 0.3.1.

*gupnp-dlna-0.3.0 (17 Aug 2010)

  17 Aug 2010; Arun Raghavan <ford_prefect@gentoo.org>
  +gupnp-dlna-0.3.0.ebuild:
  Bump to 0.3.0. Some API updates, new tool to list profiles, more supported
  profiles, and bug fixes.

*gupnp-dlna-0.2.1 (21 Jul 2010)

  21 Jul 2010; Arun Raghavan <ford_prefect@gentoo.org>
  +gupnp-dlna-0.2.1.ebuild, +metadata.xml:
  Add first release.
