# ChangeLog for x11-libs/libXxf86dga
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/x11-libs/libXxf86dga/ChangeLog,v 1.45 2009/10/14 14:13:00 remi Exp $

*libXxf86dga-1.1.1 (14 Oct 2009)

  14 Oct 2009; Rémi Cardona <remi@gentoo.org> -libXxf86dga-1.1.ebuild,
  +libXxf86dga-1.1.1.ebuild:
  drop 1.1, bump to 1.1.1, sync with overlay

*libXxf86dga-1.1 (03 Oct 2009)

  03 Oct 2009; Tomáš Chvátal <scarabeus@gentoo.org>
  +libXxf86dga-1.1.ebuild:
  Version bump for xorg-server 1.7.

  23 Jun 2009; Tobias Klausmann <klausman@gentoo.org> ChangeLog:
  Stable on alpha for xorg-server-1.5/xorg-x11-7.4

  16 Apr 2009; Jeroen Roovers <jer@gentoo.org> libXxf86dga-1.0.2.ebuild:
  Stable for HPPA (bug #251832).

  15 Apr 2009; Raúl Porcel <armin76@gentoo.org> ChangeLog:
  ia64/sh stable wrt #251832

  03 Apr 2009; Brent Baude <ranger@gentoo.org> libXxf86dga-1.0.2.ebuild:
  Marking libXxf86dga-1.0.2 ppc stable for bug 251832

  05 Feb 2008; Markus Rothe <corsair@gentoo.org> libXxf86dga-1.0.2.ebuild:
  Stable on ppc64

  27 Jan 2008; Raúl Porcel <armin76@gentoo.org> libXxf86dga-1.0.2.ebuild:
  alpha/ia64/sparc stable

  21 Jan 2008; Samuli Suominen <drac@gentoo.org> libXxf86dga-1.0.2.ebuild:
  amd64 stable.

  19 Dec 2007; Dawid Węgliński <cla@gentoo.org> libXxf86dga-1.0.2.ebuild:
  Stable on x86 (bug #202087)

*libXxf86dga-1.0.2 (08 Sep 2007)

  08 Sep 2007; Donnie Berkholz <dberkholz@gentoo.org>;
  +libXxf86dga-1.0.2.ebuild:
  Bump for 7.3.

  04 Feb 2007; Joshua Baergen <joshuabaergen@gentoo.org>
  libXxf86dga-1.0.1.ebuild:
  Drop mirroring restriction.  Thanks to Zhang Le of bug #163088.

  01 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
  libXxf86dga-1.0.1.ebuild:
  libXext has a runtime dep on xextproto now, so we don't need to depend on it
  here.

  19 Jul 2006; Guy Martin <gmsoft@gentoo.org> libXxf86dga-1.0.1.ebuild:
  Stable on hppa.

  10 Jul 2006; Aron Griffis <agriffis@gentoo.org> libXxf86dga-1.0.1.ebuild:
  Mark 1.0.1 stable on ia64

  30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
  libXxf86dga-1.0.1.ebuild:
  ppc/sparc/mips/alpha/arm/sh stable

  30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
  -files/fix_shadow_manpages.patch:
  Pull orphaned patch.

  30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
  -libXxf86dga-1.0.0-r1.ebuild:
  Pull old ebuild.

  30 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
  libXxf86dga-1.0.1.ebuild:
  Stable on amd64.

  30 Jun 2006; Markus Rothe <corsair@gentoo.org> libXxf86dga-1.0.1.ebuild:
  Stable on ppc64

  30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
  libXxf86dga-1.0.1.ebuild:
  x86 stable.

*libXxf86dga-1.0.1 (29 Apr 2006)

  29 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
  +libXxf86dga-1.0.1.ebuild:
  Version bump.  Includes fix for shadow manpages.

  28 Apr 2006; Marien Zwart <marienz@gentoo.org>
  files/digest-libXxf86dga-1.0.0-r1, Manifest:
  Revert to working digest.

  28 Apr 2006; Alec Warner <antarus@gentoo.org>
  files/digest-libXxf86dga-1.0.0-r1, Manifest:
  Fixing SHA256 digest, pass four

  13 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  libXxf86dga-1.0.0-r1.ebuild:
  Add ~x86-fbsd keyword.

  24 Mar 2006; Donnie Berkholz <spyderous@gentoo.org>;
  libXxf86dga-1.0.0-r1.ebuild:
  (#127306) Digests changed between release candidates and final release for
  the same tarballs.

  06 Mar 2006; Stefaan De Roeck <stefaan@gentoo.org>
  libXxf86dga-1.0.0-r1.ebuild:
  Marked ~alpha (bug #122726)

*libXxf86dga-1.0.0-r1 (22 Feb 2006)

  22 Feb 2006; Joshua Baergen <joshuabaergen@gentoo.org>
  +files/fix_shadow_manpages.patch, -libXxf86dga-1.0.0.ebuild,
  +libXxf86dga-1.0.0-r1.ebuild:
  Fix shadow manpages.

  14 Feb 2006; Markus Rothe <corsair@gentoo.org> libXxf86dga-1.0.0.ebuild:
  Added ~ppc64

  31 Jan 2006; Rene Nussbaumer <killerfox@gentoo.org>
  libXxf86dga-1.0.0.ebuild:
  Unstable on hppa.

  26 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
  -libXxf86dga-0.99.3.ebuild:
  Pull old versions.

*libXxf86dga-1.0.0 (17 Dec 2005)

  17 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
  +libXxf86dga-1.0.0.ebuild:
  Bump for 7.0RC4.

  13 Dec 2005; Doug Goldstein <cardoe@gentoo.org> libXxf86dga-0.99.3.ebuild:
  Adding ~ppc

  09 Dec 2005; Donnie Berkholz <spyderous@gentoo.org>;
  -libXxf86dga-0.99.1.ebuild, -libXxf86dga-0.99.2.ebuild:
  Pull old versions.

*libXxf86dga-0.99.3 (04 Dec 2005)

  04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
  +libXxf86dga-0.99.3.ebuild:
  Bump for 7.0RC3.

*libXxf86dga-0.99.2 (11 Nov 2005)

  11 Nov 2005; Donnie Berkholz <spyderous@gentoo.org>;
  +libXxf86dga-0.99.2.ebuild:
  Bump for 7.0RC2.

  04 Nov 2005; Joshua Baergen <joshuabaergen@gentoo.org>
  -libXxf86dga-0.99.0.ebuild:
  Drop old version.

*libXxf86dga-0.99.1 (20 Oct 2005)

  20 Oct 2005; Donnie Berkholz <spyderous@gentoo.org>;
  +libXxf86dga-0.99.1.ebuild:
  Bump for 7.0 RC1.

  09 Sep 2005; Donnie Berkholz <spyderous@gentoo.org>; +metadata.xml:
  Add metadata.

  23 Aug 2005; Herbie Hopkins <herbs@gentoo.org> libXxf86dga-0.99.0.ebuild:
  Marked ~amd64.

  08 Aug 2005; Ferris McCormick <fmccor@gentoo.org>
  libXxf86dga-0.99.0.ebuild:
  Add ~sparc keyword (modular X testing).

*libXxf86dga-0.99.0 (08 Aug 2005)

  08 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>;
  +libXxf86dga-0.99.0.ebuild:
  Initial commit for modular X.

