# ChangeLog for x11-apps/xwud
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/x11-apps/xwud/ChangeLog,v 1.26 2010/01/19 18:56:56 armin76 Exp $

  19 Jan 2010; Raúl Porcel <armin76@gentoo.org> xwud-1.0.2.ebuild:
  s390 stable wrt #294958

  18 Jan 2010; Raúl Porcel <armin76@gentoo.org> xwud-1.0.2.ebuild:
  alpha/ia64/sh/sparc stable wrt #294958

  17 Jan 2010; Jeroen Roovers <jer@gentoo.org> xwud-1.0.2.ebuild:
  Stable for HPPA (bug #294958).

  14 Jan 2010; Markus Meier <maekke@gentoo.org> xwud-1.0.2.ebuild:
  arm stable, bug #294958

  27 Dec 2009; Joseph Jezak <josejx@gentoo.org> xwud-1.0.2.ebuild:
  Marked ppc stable for bug #294958.

  15 Dec 2009; Brent Baude <ranger@gentoo.org> xwud-1.0.2.ebuild:
  Marking xwud-1.0.2 ppc64 stable for bug 294958

  10 Dec 2009; Christian Faulhammer <fauli@gentoo.org> xwud-1.0.2.ebuild:
  x86 stable, bug 294958

  10 Dec 2009; Samuli Suominen <ssuominen@gentoo.org> xwud-1.0.2.ebuild:
  amd64 stable wrt #294958

*xwud-1.0.2 (14 Oct 2009)

  14 Oct 2009; Rémi Cardona <remi@gentoo.org> +xwud-1.0.2.ebuild:
  bump to 1.0.2, fix indent

  05 May 2009; Christian Faulhammer <fauli@gentoo.org> xwud-1.0.1.ebuild:
  fix repoman warnings

  24 Sep 2008; Alexis Ballier <aballier@gentoo.org> xwud-1.0.1.ebuild:
  keyword ~x86-fbsd

  22 Feb 2007; Markus Ullmann <jokey@gentoo.org> ChangeLog:
  Redigest for Manifest2

  10 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>; xwud-1.0.1.ebuild:
  Update description to be less generic.

  12 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>; xwud-1.0.1.ebuild:
  (#143668) Stable on: alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86.

  20 May 2006; Robin H. Johnson <robbat2@gentoo.org> xwud-1.0.1.ebuild:
  Added ~ppc after testing.

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

  26 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
  -xwud-0.99.2.ebuild, -xwud-1.0.0.ebuild:
  Pull old versions.

*xwud-1.0.1 (23 Dec 2005)

  23 Dec 2005; Donnie Berkholz <spyderous@gentoo.org>; +xwud-1.0.1.ebuild:
  Bump for 7.0.

*xwud-1.0.0 (18 Dec 2005)

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

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

*xwud-0.99.2 (04 Dec 2005)

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

  17 Nov 2005; Herbie Hopkins <herbs@gentoo.org> xwud-0.99.1.ebuild:
  Marked ~amd64.

*xwud-0.99.1 (20 Oct 2005)

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

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

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

*xwud-0.99.0 (08 Aug 2005)

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

