# ChangeLog for sci-chemistry/massxpert
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/massxpert/ChangeLog,v 1.9 2009/10/04 15:14:58 ssuominen Exp $

  04 Oct 2009; Samuli Suominen <ssuominen@gentoo.org>
  massxpert-2.0.5.ebuild:
  Replace filtering of -Wl,--as-needed with function from flag-o-matic
  eclass.

*massxpert-2.0.5 (19 Sep 2009)

  19 Sep 2009; Dominik Kapusta <ayoy@gentoo.org> -massxpert-2.0.4.ebuild,
  -files/massxpert-2.0.4-gentoo.patch, +massxpert-2.0.5.ebuild,
  +files/massxpert-2.0.5-gentoo.patch:
  Version bump - 2.0.5 bugfix release, remove 2.0.4

*massxpert-2.0.4 (19 Sep 2009)

  19 Sep 2009; Alex Alexander <wired@gentoo.org> +massxpert-2.0.4.ebuild,
  +files/massxpert-2.0.4-gentoo.patch:
  version bump, bug 284344

  18 Sep 2009; Alex Alexander <wired@gentoo.org> massxpert-1.7.6.ebuild:
  updated Qt deps, switched to EAPI 2

  20 Jul 2008; Peter Alfredsen <loki_val@gentoo.org> massxpert-1.7.6.ebuild:
  Keyword x86, fix to build with gcc-4.3 and fixup build-deps.

  08 Jun 2008; Jeff Gardner <je_fro@gentoo.org> massxpert-1.7.6.ebuild:
  Change LICENSE to GPL-3

*massxpert-1.7.6 (08 Jun 2008)

  08 Jun 2008; Jeff Gardner <je_fro@gentoo.org> +massxpert-1.7.6.ebuild:
  New version replaces old broken one.

  31 Dec 2007; Jeff Gardner <je_fro@gentoo.org>
  +files/digest-massxpert-1.6.8, ChangeLog, Manifest:
  Fixing my email address.

*massxpert-1.6.7 (30 Dec 2007)

  30 Dec 2007; <je_fro@gentoo.org> +metadata.xml, +massxpert-1.6.7.ebuild:
  Initial import from the science overlay.

