# ChangeLog for dev-embedded/bitbake
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-embedded/bitbake/ChangeLog,v 1.22 2010/02/09 17:27:18 vapier Exp $

*bitbake-1.8.18 (09 Feb 2010)

  09 Feb 2010; Mike Frysinger <vapier@gentoo.org> +bitbake-1.8.18.ebuild:
  Version bump #302451 by Christian Gmeiner.

  09 Feb 2010; Mike Frysinger <vapier@gentoo.org> bitbake-1.8.12.ebuild:
  Stabilize for everyone.

  02 Jan 2009; Mike Frysinger <vapier@gentoo.org> bitbake-9999.ebuild:
  Unify svn version with releases.

*bitbake-1.8.12 (02 Jan 2009)

  02 Jan 2009; Mike Frysinger <vapier@gentoo.org> +bitbake-1.8.12.ebuild:
  Version bump #253329 by Anatoly Shipitsin.

*bitbake-1.8.10 (10 Oct 2008)

  10 Oct 2008; <solar@gentoo.org> +bitbake-1.8.10.ebuild:
  - Version bump. Bug #241116

  02 May 2008; Denis Dupeyron <calchan@gentoo.org> bitbake-1.8.4.ebuild,
  bitbake-1.8.6.ebuild, bitbake-1.8.8.ebuild:
  Fixed SRC_URI, see bug #218657.

  25 Aug 2007; Mike Frysinger <vapier@gentoo.org> bitbake-1.8.8.ebuild,
  bitbake-9999.ebuild:
  Pull in dev-python/pysqlite as we need it.

*bitbake-1.8.8 (19 Aug 2007)

  19 Aug 2007; Mike Frysinger <vapier@gentoo.org> +bitbake-1.8.8.ebuild:
  Version bump #189421 by Luis Vitorio Crgnini.

*bitbake-1.8.6 (09 Jul 2007)

  09 Jul 2007; Mike Frysinger <vapier@gentoo.org> +bitbake-1.8.6.ebuild:
  Version bump #184707 by Claes Mogren.

  24 Jun 2007; Piotr Jaroszyński <peper@gentoo.org> bitbake-9999.ebuild:
  (QA) Don't use KEYWORDS="-*". bug #160519.

*bitbake-1.8.4 (11 Jun 2007)

  11 Jun 2007; Mike Frysinger <vapier@gentoo.org> +bitbake-1.8.4.ebuild:
  Version bump #181034 by Luis Vitorio Cargnini.

*bitbake-1.6.6 (17 Feb 2007)

  17 Feb 2007; Mike Frysinger <vapier@gentoo.org> +bitbake-1.6.6.ebuild:
  Version bump #167168 by Claes Mogren.

*bitbake-1.6.2 (22 Dec 2006)

  22 Dec 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.6.2.ebuild:
  Version bump #158650 by Radek Podgorny.

*bitbake-1.6.0 (06 Sep 2006)

  06 Sep 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.6.0.ebuild:
  Version bump #146399 by pavlix.

*bitbake-1.4.2 (07 Jun 2006)

  07 Jun 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.4.2.ebuild:
  Version bump #135122 by Jan Boysen.

*bitbake-1.4.0 (23 Apr 2006)

  23 Apr 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.4.0.ebuild:
  Version bump #130905 by Bryan Jacobs.

*bitbake-1.3.3 (29 Mar 2006)

  29 Mar 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.3.3.ebuild:
  Version bump #127384 by Richard Kung.

*bitbake-1.3.2 (02 Feb 2006)

  02 Feb 2006; Mike Frysinger <vapier@gentoo.org> +bitbake-1.3.2.ebuild:
  Version bump #121037 by Radek Podgorny.

*bitbake-9999 (02 Feb 2006)

  02 Feb 2006; Mike Frysinger <vapier@gentoo.org> -bitbake-0.ebuild,
  +bitbake-9999.ebuild:
  Rename version since we have real releases now.

  08 Mar 2005; Mike Frysinger <vapier@gentoo.org> bitbake-0.ebuild:
  Add memory patch #84402 by David Anes.

*bitbake-0 (20 Jan 2004)

  20 Jan 2004; Mike Frysinger <vapier@gentoo.org> :
  Initial import.  Ebuild submitted by me.
