# ChangeLog for dev-cpp/eigen
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-cpp/eigen/ChangeLog,v 1.31 2010/01/20 23:45:12 abcd Exp $

  20 Jan 2010; Jonathan Callen <abcd@gentoo.org> eigen-2.0.10.ebuild:
  Keyword ~amd64-linux/~x86-linux; move blocker out of DEPEND; utilize the
  fact that cmake caches -D arguments

  14 Jan 2010; Jeroen Roovers <jer@gentoo.org> eigen-2.0.5.ebuild:
  Stable for HPPA (bug #295884).

  28 Dec 2009; Tomáš Chvátal <scarabeus@gentoo.org> eigen-2.0.5.ebuild,
  eigen-2.0.10.ebuild:
  Reorder the deps to not rdepend on doxygen.

  28 Dec 2009; Tomáš Chvátal <scarabeus@gentoo.org> eigen-2.0.5.ebuild,
  eigen-2.0.10.ebuild:
  Doc useflag require doxygen. Per bug #298074.

  27 Dec 2009; Raúl Porcel <armin76@gentoo.org> eigen-2.0.5.ebuild:
  alpha/ia64/sparc stable

*eigen-2.0.10 (10 Dec 2009)

  10 Dec 2009; Dror Levin <spatz@gentoo.org> -eigen-2.0.9.ebuild,
  +eigen-2.0.10.ebuild:
  Version bump and remove old, bug 296461.

  10 Dec 2009; Jonathan Callen <abcd@gentoo.org> eigen-2.0.5.ebuild,
  eigen-2.0.9.ebuild:
  Convert mycmakeargs to an array (required due to usage in src_test)

  05 Dec 2009; Jonathan Callen <abcd@gentoo.org> -eigen-2.0.4.ebuild,
  -eigen-2.0.4-r1.ebuild, -files/eigen-2.0.4-gcc-4-1.patch,
  -files/eigen-2.0.4-qt-test.patch, -eigen-2.0.6.ebuild:
  Drop old ebuilds, patches

  30 Nov 2009; Joseph Jezak <josejx@gentoo.org> Manifest:
  Marked ppc/ppc64 stable.

  29 Nov 2009; Raúl Porcel <armin76@gentoo.org> eigen-2.0.9.ebuild:
  Add ~sparc

*eigen-2.0.9 (01 Nov 2009)

  01 Nov 2009; Dror Levin <spatz@gentoo.org> +eigen-2.0.9.ebuild:
  Version bump.

  17 Oct 2009; Markus Meier <maekke@gentoo.org> eigen-2.0.5.ebuild:
  x86 stable, bug #287955

  09 Oct 2009; Samuli Suominen <ssuominen@gentoo.org> eigen-2.0.5.ebuild:
  amd64 stable wrt #287955

*eigen-2.0.6 (26 Sep 2009)

  26 Sep 2009; Patrick Lauer <patrick@gentoo.org> +eigen-2.0.6.ebuild:
  Bump to 2.0.6, fixes #286462

  22 Aug 2009; Marcus D. Hanwell <cryos@gentoo.org> -eigen-2.0.2.ebuild,
  -eigen-2.0.3.ebuild:
  Pruned old versions.

*eigen-2.0.5 (22 Aug 2009)

  22 Aug 2009; Marcus D. Hanwell <cryos@gentoo.org> +eigen-2.0.5.ebuild:
  Version bump.

  21 Aug 2009; Marcus D. Hanwell <cryos@gentoo.org>
  files/eigen-2.0.4-qt-test.patch:
  This should really fix bug 279824, all tests passed here.

*eigen-2.0.4-r1 (21 Aug 2009)

  21 Aug 2009; Marcus D. Hanwell <cryos@gentoo.org> +eigen-2.0.4-r1.ebuild,
  +files/eigen-2.0.4-gcc-4-1.patch:
  Patch applied by Benoit Jacob upstream, fixes compilation issue with GCC
  4.1. Closes bug 280588.

*eigen-2.0.4 (01 Aug 2009)

  01 Aug 2009; Marcus D. Hanwell <cryos@gentoo.org> +eigen-2.0.4.ebuild,
  +files/eigen-2.0.4-qt-test.patch:
  Version bump, disabled fortran in testing for now - bug 279824.

*eigen-2.0.3 (30 Jul 2009)

  30 Jul 2009; Tomáš Chvátal <scarabeus@gentoo.org> +eigen-2.0.3.ebuild,
  +files/eigen-ppc-define.patch:
  Version bump.

  04 Jun 2009; Tomas Chvatal <scarabeus@gentoo.org> -eigen-1.0.5.ebuild:
  Drop old 1.0 series eigen. By rdep scans not needed anywhere.

*eigen-2.0.2 (04 Jun 2009)

  04 Jun 2009; Tomas Chvatal <scarabeus@gentoo.org> eigen-1.0.5.ebuild,
  -eigen-2.0.0.ebuild, -eigen-2.0.1.ebuild, +eigen-2.0.2.ebuild:
  Version bump. Remove old. Fix repoman warning. Per bug #272491.

  18 Apr 2009; Jeroen Roovers <jer@gentoo.org> eigen-2.0.1:
  Marked ~hppa (bug #260777).

*eigen-2.0.1 (14 Apr 2009)

  14 Apr 2009; Tomas Chvatal <scarabeus@gentoo.org> +eigen-2.0.1.ebuild:
  Version bump.

  11 Apr 2009; Raúl Porcel <armin76@gentoo.org> eigen-2.0.0.ebuild:
  Add ~alpha/~ia64 wrt #260777

  09 Mar 2009; Brent Baude <ranger@gentoo.org> eigen-2.0.0.ebuild:
  Marking eigen-2 ~ppc and ~ppc64 for bug 261754

*eigen-2.0.0 (17 Feb 2009)

  17 Feb 2009; Tomas Chvatal <scarabeus@gentoo.org> metadata.xml,
  +eigen-2.0.0.ebuild:
  Version bump. Add kde to maintainers, since we will use it for koffice2
  and other kde packages in future.

  02 Nov 2008; Mike Frysinger <vapier@gentoo.org> eigen-1.0.5.ebuild:
  Add ppc/ppc64 love for KDE 4.

  27 Jun 2007; Christian Faulhammer <opfer@gentoo.org> eigen-1.0.5.ebuild:
  keyworded ~x86, bug 182985

  23 Jun 2007; Marcus D. Hanwell <cryos@gentoo.org> eigen-1.0.5.ebuild:
  Marked stable on amd64.

*eigen-1.0.5 (15 May 2007)

  15 May 2007; Marcus D. Hanwell <cryos@gentoo.org> +metadata.xml,
  +eigen-1.0.5.ebuild:
  Initial import.

