# ChangeLog for net-analyzer/xnetload
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/xnetload/ChangeLog,v 1.16 2009/10/16 16:35:12 tcunha Exp $

  16 Oct 2009; Tiago Cunha <tcunha@gentoo.org> xnetload-1.11.3-r1.ebuild:
  stable amd64/sparc, bug 288947

  22 Jul 2007; <pva@gentoo.org> xnetload-1.11.3-r1.ebuild:
  Removed virtual/x11 dependency.

  28 Aug 2006; Michael Sterrett <mr_bones_@gentoo.org>
  -xnetload-1.11.3.ebuild:
  clean out old, non-modX ebuild

  11 Aug 2006; Markus Rothe <corsair@gentoo.org> xnetload-1.11.3-r1.ebuild:
  Stable on ppc64; bug #140645

  28 Jul 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  xnetload-1.11.3-r1.ebuild:
  ppc stable, bug #140645

  27 Jul 2006; Marcelo Goes <vanquirius@gentoo.org>
  xnetload-1.11.3-r1.ebuild:
  Mark 1.11.3-r1 x86 stable, add QA fixes for bug 140645. Thanks to Jakub Moc
  <jakub at gentoo dot org>.

*xnetload-1.11.3-r1 (19 Jan 2006)

  19 Jan 2006; Marcelo Goes <vanquirius@gentoo.org>
  +xnetload-1.11.3-r1.ebuild:
  Make modular X friendly.

  07 Aug 2005; Michael Hanselmann <hansmi@gentoo.org>
  xnetload-1.11.3.ebuild:
  Stable on ppc.

  03 Mar 2005; Jan Brinkmann <luckyduck@gentoo.org> xnetload-1.11.3.ebuild:
  added ~amd64 to KEYWORDS. fixes #59348

  27 Aug 2004; Tom Gall <tgall@gentoo.org> xnetload-1.11.3.ebuild:
  stable on ppc64, bug #59348

  03 Aug 2004; David Holm <dholm@gentoo.org> xnetload-1.11.3.ebuild:
  Added to ~ppc.

  10 Jul 2004; Eldad Zack <eldad@gentoo.org> +metadata.xml,
  xnetload-1.11.3.ebuild:
  Added missing IUSE. Added metadata.

*xnetload-1.11.3 (06 Nov 2002)

  17 Mar 2003; Jason Wever <weeve@gentoo.org> xnetload-1.11.3.ebuild:
  Added ~sparc to keywords.

  06 Nov 2002; Seemant Kulleen <seemant@gentoo.org> xnetload-1.11.3.ebuild
  ChangeLog files/digest-xnetload-1.11.3 :

  New package which graphically shows the network load on a specified
  network connection. Ebuild (kinda) submitted by: sh@sourcecode.de (Stephan
  Hermann) in bug #9015.
