# ChangeLog for dev-ruby/ruby-oci8
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/ruby-oci8/ChangeLog,v 1.14 2010/02/10 21:07:45 graaff Exp $

*ruby-oci8-2.0.3 (10 Feb 2010)

  10 Feb 2010; Hans de Graaff <graaff@gentoo.org> +ruby-oci8-2.0.3.ebuild:
  Version bump to the new feature branch thanks to Troy Bowman in #303415,
  with some minor edits.

*ruby-oci8-1.0.7-r1 (06 Feb 2010)

  06 Feb 2010; Hans de Graaff <graaff@gentoo.org> -ruby-oci8-1.0.6.ebuild,
  +ruby-oci8-1.0.7-r1.ebuild, metadata.xml:
  Fix build issues, #302418 by Troy Bowman. Update metadata.xml.

*ruby-oci8-1.0.7 (08 Jan 2010)

  08 Jan 2010; Hans de Graaff <graaff@gentoo.org> +ruby-oci8-1.0.7.ebuild:
  Version bump for Troy Bowman as per #299164.

  20 Dec 2009; Hans de Graaff <graaff@gentoo.org> ruby-oci8-1.0.3.ebuild,
  ruby-oci8-1.0.6.ebuild:
  Remove obsolete virtual/ruby dependency.

  02 Jul 2009; Markus Meier <maekke@gentoo.org> ruby-oci8-1.0.3.ebuild:
  amd64 stable, bug #273962

  16 Jun 2009; Christian Faulhammer <fauli@gentoo.org>
  ruby-oci8-1.0.3.ebuild:
  stable x86, bug 273962

*ruby-oci8-1.0.6 (13 Jun 2009)

  13 Jun 2009; Hans de Graaff <graaff@gentoo.org> +ruby-oci8-1.0.6.ebuild:
  Version bump from bug #271510, thanks to Troy Bowman.

  05 Jun 2009; Hans de Graaff <graaff@gentoo.org> -ruby-oci8-0.1.15.ebuild,
  -ruby-oci8-1.0.0.ebuild, -ruby-oci8-1.0.2.ebuild:
  Remove old versions.

*ruby-oci8-1.0.3 (18 Jan 2009)

  18 Jan 2009; Hans de Graaff <graaff@gentoo.org> +ruby-oci8-1.0.3.ebuild:
  Version bump by Troy Bowman in bug 249921.

  06 Oct 2008; Diego Pettenò <flameeyes@gentoo.org> ruby-oci8-1.0.2.ebuild:
  Fix build-time dependencies.

*ruby-oci8-1.0.2 (12 Jul 2008)

  12 Jul 2008; Hans de Graaff <graaff@gentoo.org> +ruby-oci8-1.0.2.ebuild:
  Version bump on behalf of Troy Bowman.

*ruby-oci8-1.0.0 (09 Dec 2007)

  09 Dec 2007; Hans de Graaff <graaff@gentoo.org> metadata.xml,
  +ruby-oci8-1.0.0.ebuild:
  Version bump. Adding Troy Bowman as proxy maintainer as per #183548.
  Thanks!

  17 Sep 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
  Removing mattm from metadata.xml (see #66633 for reference).

*ruby-oci8-0.1.15 (22 Jun 2006)

  22 Jun 2006; Matthew Marlowe <mattm@gentoo.org> +metadata.xml,
  +ruby-oci8-0.1.15.ebuild:
  initial commit and test

