# ChangeLog for sys-process/acct
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-process/acct/ChangeLog,v 1.22 2010/02/15 22:11:04 jer Exp $

*acct-6.5.4 (15 Feb 2010)

  15 Feb 2010; Jeroen Roovers <jer@gentoo.org> +acct-6.5.4.ebuild:
  Version bump.

  13 Feb 2010; Raúl Porcel <armin76@gentoo.org> acct-6.5.1.ebuild:
  alpha stable wrt #302285

  04 Feb 2010; Jeroen Roovers <jer@gentoo.org> acct-6.5.1.ebuild:
  Stable for PPC (bug #302285).

  04 Feb 2010; Jeroen Roovers <jer@gentoo.org> acct-6.5.1.ebuild:
  Stable for HPPA (bug #302285).

  01 Feb 2010; Christian Faulhammer <fauli@gentoo.org> acct-6.5.1.ebuild:
  stable x86, bug 302285

  26 Jan 2010; Jeroen Roovers <jer@gentoo.org> acct-6.5.1.ebuild,
  acct-6.5.3.ebuild:
  Fix licenses.

*acct-6.5.3 (26 Jan 2010)

  26 Jan 2010; Jeroen Roovers <jer@gentoo.org> acct-6.5.1.ebuild,
  +acct-6.5.3.ebuild:
  Version bump. Use PN and P in SRC_URI.

*acct-6.5.1 (10 Oct 2009)

  10 Oct 2009; Mike Frysinger <vapier@gentoo.org> +acct-6.5.1.ebuild,
  files/acct.rc6:
  Version bump #288374 by Markus Gothe. Stop using full paths in init.d
  script.

*acct-6.3.5-r3 (06 Oct 2008)

  06 Oct 2008; Robin H. Johnson <robbat2@gentoo.org>
  +files/acct.rc6-6.3.5-r3, +acct-6.3.5-r3.ebuild:
  Lots of other distros have moved the accton binary over to /sbin, jump in
  the fire as well so that bootchart can be used when /usr is on a different
  partition, as reported in bug #239748.

  29 Nov 2007; Christian Faulhammer <opfer@gentoo.org> acct-6.3.5-r2.ebuild:
  stable x86

  13 Aug 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  acct-6.3.5-r2.ebuild:
  ppc. stable

  04 May 2007; Jeroen Roovers <jer@gentoo.org> acct-6.3.5-r2.ebuild:
  Stable for HPPA.

  12 Apr 2007; Jeroen Roovers <jer@gentoo.org> acct-6.3.5-r2.ebuild:
  Marked ~hppa too.

  09 Feb 2007; Diego Pettenò <flameeyes@gentoo.org> ChangeLog:
  Regenerate digest in Manifest2 format.

  10 Jan 2006; Mike Frysinger <vapier@gentoo.org> +files/acct.confd,
  files/acct.rc6, acct-6.3.5-r2.ebuild:
  Add some custom init.d options by Hubert MERCIER #118399.

*acct-6.3.5-r2 (04 Oct 2005)

  04 Oct 2005; Mike Frysinger <vapier@gentoo.org> +acct-6.3.5-r2.ebuild:
  Patchset version bump #108110 by Tim Schmielau.

  13 Aug 2005; Michael Hanselmann <hansmi@gentoo.org> acct-6.3.5-r1.ebuild:
  Stable on ppc.

  19 Jul 2005; Bryan Østergaard <kloeri@gentoo.org> acct-6.3.5-r1.ebuild:
  Stable on alpha.

*acct-6.3.5-r1 (20 Mar 2005)

  20 Mar 2005; Robin H. Johnson <robbat2@gentoo.org> files/acct.rc6,
  +acct-6.3.5-r1.ebuild:
  Bug #79665, provide a new acct build that works with v3 acct format and is
  also backwards compatible. Also do not provide the "last" binary anymore, as
  it is provided by sysvinit.

  03 Mar 2005; Mike Frysinger <vapier@gentoo.org> acct-6.3.5.ebuild:
  Dont install ansi2knr.1 since we dont install ansi2knr #83876 by Mike Nerone.

*acct-6.3.5 (03 Mar 2005)

  03 Mar 2005; Ciaran McCreesh <ciaranm@gentoo.org> +metadata.xml,
  +files/acct-6.3.5-gentoo.diff, +files/acct.rc6, +acct-6.3.5.ebuild:
  Moved from sys-apps/acct to sys-process/acct.

  02 Jan 2005; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  03 Sep 2004; Pieter Van den Abeele <pvdabeel@gentoo.org> acct-6.3.5.ebuild:
  Masked acct-6.3.5.ebuild stable for ppc

  24 Aug 2004; Sven Wegener <swegener@gentoo.org> acct-6.3.5.ebuild:
  Changed SRC_URI to use mirror:// syntax.

  14 Jun 2004; Michael Sterrett <mr_bones_@gentoo.org> acct-6.3.5.ebuild:
  inherit eutils; use epatch; error check; tidy

  11 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> acct-6.3.5.ebuild:
  Stable on alpha.

  14 Apr 2004; <kloeri@gentoo.org> acct-6.3.5.ebuild:
  Keyworded ~alpha.

*acct-6.3.5 (30 Oct 2002)

  30 Oct 2002; Daniel Ahlberg <aliz@gentoo.org> :
  Initial import. Ebuild submitted by Andrwe Minter <gm@masarand.com> 
  in 6385#.
