# ChangeLog for net-dns/maradns
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/maradns/ChangeLog,v 1.26 2008/12/28 07:32:09 matsuu Exp $

*maradns-1.3.07.09-r1 (28 Dec 2008)

  28 Dec 2008; MATSUU Takuto <matsuu@gentoo.org> metadata.xml,
  +maradns-1.3.07.09-r1.ebuild:
  Added authonly to IUSE, bug #252376. Added enewgroup maradns.

*maradns-1.3.07.09 (15 Sep 2008)
*maradns-1.2.12.10 (15 Sep 2008)

  15 Sep 2008; MATSUU Takuto <matsuu@gentoo.org> -maradns-1.2.12.04.ebuild,
  -maradns-1.2.12.05.ebuild, -maradns-1.2.12.06.ebuild,
  +maradns-1.2.12.10.ebuild, +maradns-1.3.07.09.ebuild:
  Version bumped, bug #237609. Removed old versions.

  16 Jan 2008; Peter Weller <welp@gentoo.org> maradns-1.2.12.09.ebuild:
  Stable on amd64; bug 204351

  06 Jan 2008; Raúl Porcel <armin76@gentoo.org> maradns-1.2.12.09.ebuild:
  sparc stable wrt security #204351

  06 Jan 2008; Christian Faulhammer <opfer@gentoo.org>
  maradns-1.2.12.09.ebuild:
  stable x86, security bug 204351

  06 Jan 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  maradns-1.2.12.09.ebuild:
  ppc stable, bug #204351

*maradns-1.3.07.08 (06 Jan 2008)
*maradns-1.2.12.09 (06 Jan 2008)

  06 Jan 2008; MATSUU Takuto <matsuu@gentoo.org> files/maradns.rc6,
  files/zoneserver.rc6, +maradns-1.2.12.09.ebuild,
  +maradns-1.3.07.08.ebuild:
  Version bumped. bug #204351.
  Fixed init.d/*, bug #192328.

  09 Jun 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  maradns-1.2.12.06.ebuild:
  ppc stable, bug #181128

  07 Jun 2007; Christoph Mende <angelos@gentoo.org>
  maradns-1.2.12.06.ebuild:
  Stable on amd64 wrt security bug 181128

  07 Jun 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  maradns-1.2.12.06.ebuild:
  Stable on sparc wrt security #181128

  07 Jun 2007; Christian Faulhammer <opfer@gentoo.org>
  maradns-1.2.12.06.ebuild:
  stable x86, security bug 181128

*maradns-1.2.12.06 (06 Jun 2007)

  06 Jun 2007; MATSUU Takuto <matsuu@gentoo.org> +maradns-1.2.12.06.ebuild:
  Version bumped, bug #181128.

  07 Apr 2007; Christian Faulhammer <opfer@gentoo.org>
  maradns-1.2.12.04.ebuild:
  stable amd64, bug 168034

  06 Apr 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  maradns-1.2.12.04.ebuild:
  ppc stable, bug #168034

  12 Mar 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  maradns-1.2.12.04.ebuild:
  Stable on sparc wrt #168034

  23 Feb 2007; Christian Faulhammer <opfer@gentoo.org>
  maradns-1.2.12.04.ebuild:
  stable x86; bug 168034

*maradns-1.2.12.05 (22 Feb 2007)

  22 Feb 2007; MATSUU Takuto <matsuu@gentoo.org> -maradns-1.2.03.3.ebuild,
  -maradns-1.2.07.8.ebuild, +maradns-1.2.12.05.ebuild:
  Version bumped, bug #168034.

*maradns-1.2.12.04 (03 Dec 2006)

  03 Dec 2006; MATSUU Takuto <matsuu@gentoo.org> files/maradns.rc6,
  files/zoneserver.rc6, +maradns-1.2.12.04.ebuild:
  Version bumped. Support syslog, bug #156564.

*maradns-1.2.07.8 (13 Aug 2006)

  13 Aug 2006; MATSUU Takuto <matsuu@gentoo.org> -maradns-1.0.27.ebuild,
  -maradns-1.0.32.ebuild, maradns-1.2.03.3.ebuild, +maradns-1.2.07.8.ebuild:
  Version bumped, bug 143443.
  Removed old versions.
  Fixed LICENSE.

*maradns-1.2.03.3 (25 Feb 2006)

  25 Feb 2006; MATSUU Takuto <matsuu@gentoo.org> +files/zoneserver.rc6,
  +maradns-1.2.03.3.ebuild:
  Version bumped, Bug 117107

*maradns-1.0.32 (27 Aug 2005)

  27 Aug 2005; MATSUU Takuto <matsuu@gentoo.org> maradns-1.0.27.ebuild,
  +maradns-1.0.32.ebuild:
  Version bumped. QA #103421.

*maradns-1.0.27 (05 May 2005)

  05 May 2005; MATSUU Takuto <matsuu@gentoo.org> +maradns-1.0.27.ebuild:
  Version bump. this release fixes Unspecified Random Number Generator
  Vulnerability, Bug 91422.

  01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
  maradns-1.0.23.ebuild:
  virtual/glibc -> virtual/libc

  23 Jun 2004; David Holm <dholm@gentoo.org> maradns-1.0.23.ebuild:
  Added to ~ppc.

*maradns-1.0.23 (23 Jun 2004)

  23 Jun 2004; <matsuu@gentoo.org> +maradns-1.0.23.ebuild:
  Initial import. Bug #54559.

