# ChangeLog for www-apps/horde-groupware
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/www-apps/horde-groupware/ChangeLog,v 1.9 2009/09/16 14:38:43 a3li Exp $

*horde-groupware-1.2.4 (16 Sep 2009)

  16 Sep 2009; Alex Legler <a3li@gentoo.org> -horde-groupware-1.2.3.ebuild,
  +horde-groupware-1.2.4.ebuild:
  Non-maintainer commit: Version bump for security bug 285052. Removing
  vulnerable version.

*horde-groupware-1.2.3 (24 Aug 2009)

  24 Aug 2009; Alex Legler <a3li@gentoo.org> -horde-groupware-1.0.7.ebuild,
  -horde-groupware-1.1.3.ebuild, -horde-groupware-1.2.ebuild,
  +horde-groupware-1.2.3.ebuild:
  Non-maintainer commit: Version bump for security bug 262978. Removing
  vulnerable versions.

*horde-groupware-1.2 (27 Oct 2008)

  27 Oct 2008; Gunnar Wrobel <wrobel@gentoo.org>
  +horde-groupware-1.2.ebuild:
  Added horde-groupware-1.2.

*horde-groupware-1.1.3 (15 Sep 2008)
*horde-groupware-1.0.7 (15 Sep 2008)

  15 Sep 2008; wrobel@gentoo.org -horde-groupware-1.0.6.ebuild,
  +horde-groupware-1.0.7.ebuild, -horde-groupware-1.1.1.ebuild,
  +horde-groupware-1.1.3.ebuild:
  Removed horde-groupware-1.0.6, -1.1.1, added horde-groupware-1.0.7, -.1.1.3
  in response to sec issue #237362.

  07 Aug 2008; wrobel@gentoo.org horde-groupware-1.0.6.ebuild,
  horde-groupware-1.1.1.ebuild:
  Add the horde applications combined within this meta package.

*horde-groupware-1.1.1 (24 Jun 2008)
*horde-groupware-1.0.6 (24 Jun 2008)

  24 Jun 2008; wrobel@gentoo.org metadata.xml,
  -horde-groupware-1.0.5.ebuild, +horde-groupware-1.0.6.ebuild,
  -horde-groupware-1.1.ebuild, +horde-groupware-1.1.1.ebuild:
  Added horde-groupware-{1.0.6,1.1.1}, removed horde-groupware-{1.0.5,1.1}
  (sec issue #228509).

*horde-groupware-1.1 (01 Jun 2008)

  01 Jun 2008; Mike Frysinger <vapier@gentoo.org>
  +horde-groupware-1.1.ebuild:
  Version bump #224333 by Arfrever Frehtes Taifersar Arahesis.

*horde-groupware-1.0.5 (09 Mar 2008)

  09 Mar 2008; Mike Frysinger <vapier@gentoo.org>
  +horde-groupware-1.0.5.ebuild:
  Version bump.

*horde-groupware-1.0.4 (20 Feb 2008)

  20 Feb 2008; Mike Frysinger <vapier@gentoo.org> +metadata.xml,
  +horde-groupware-1.0.4.ebuild:
  Initial package #187384 by Toffanin [WiredTEK].

