# ChangeLog for sci-biology/blat
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-biology/blat/ChangeLog,v 1.5 2013/03/11 14:53:02 jlec Exp $

  11 Mar 2013; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Drop Andrey as maintainer so that bugs get assigned to sci-biology directly

  04 Aug 2011; Fabian Groffen <grobian@gentoo.org> blat-34-r1.ebuild:
  Marked ~x64-macos, bug #375521

*blat-34-r1 (20 Jun 2011)

  20 Jun 2011; Justin Lecher <jlec@gentoo.org> +files/34-gentoo.patch,
  +blat-34-r1.ebuild:
  Respect LDFLAGS, #337438

  22 Mar 2009; Markus Meier <maekke@gentoo.org> blat-34.ebuild:
  amd64/x86 stable, bug #263045

*blat-34 (23 May 2008)

  23 May 2008; weaver <weaver@gentoo.org> +blat-34.ebuild:
  Initial commit. New package from sunrise, bug 135307

