# ChangeLog for dev-libs/libelf
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/libelf/ChangeLog,v 1.28 2009/11/21 09:24:32 patrick Exp $

*libelf-0.8.12 (21 Nov 2009)

  21 Nov 2009; Patrick Lauer <patrick@gentoo.org> +libelf-0.8.12.ebuild:
  Bump, fixes #293915

  22 May 2009; Alexis Ballier <aballier@gentoo.org> libelf-0.8.10.ebuild:
  keyword ~sparc-fbsd

  16 Nov 2008; Diego E. Pettenò <flameeyes@gentoo.org>
  libelf-0.8.10.ebuild:
  Workaround parallel install failures (use -j1 for install).

  07 Jun 2008; Jeroen Roovers <jer@gentoo.org> libelf-0.8.4.ebuild:
  Fix SRC_URI and HOMEPAGE 404s.

*libelf-0.8.10 (07 Jun 2008)

  07 Jun 2008; Jeroen Roovers <jer@gentoo.org> +libelf-0.8.10.ebuild:
  Version bump.

  19 Oct 2007; Roy Marples <uberlord@gentoo.org> libelf-0.8.9.ebuild:
  Keyword ~x86-fbsd.

  29 Jun 2007; Joel Martin <kanaka@gentoo.org>
  files/libelf-0.8.9-parallelmakefix.patch:
  After discussion with maintainer, change mkinstalldirs to be
  more parallel safe.

  29 Jun 2007; Joel Martin <kanaka@gentoo.org>
  files/libelf-0.8.9-parallelmakefix.patch:
  Update parallel make patch to only mkinstalldirs if not already there.

  20 Jun 2007; Joel Martin <kanaka@gentoo.org>
  +files/libelf-0.8.9-parallelmakefix.patch, libelf-0.8.9.ebuild:
  Apply new parallel patch to 0.8.9

*libelf-0.8.9 (17 Jun 2007)

  17 Jun 2007; Tiziano Müller <dev-zero@gentoo.org> +libelf-0.8.9.ebuild:
  Version bump.

  14 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
  add <herd>no-herd</herd>

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  06 Jan 2007; Danny van Dyk <kugelfang@gentoo.org> -libelf-0.8.5.ebuild:
  QA: Removed unused versions.

*libelf-0.8.6 (03 Sep 2005)

  03 Sep 2005; Daniel Black <dragonheart@gentoo.org>
  +files/libelf-0.8.6-parallelmakefix.patch, +libelf-0.8.6.ebuild:
  version bump. homepage/src_uri change

  29 Aug 2005; Danny van Dyk <kugelfang@gentoo.org> libelf-0.8.4.ebuild,
  libelf-0.8.5.ebuild:
  Fixed multilib-strict BUG #104171.

*libelf-0.8.5 (09 Feb 2005)

  09 Feb 2005; Mike Frysinger <vapier@gentoo.org> +libelf-0.8.5.ebuild:
  Version bump.

  14 Nov 2003; Brad House <brad_mssw@gentoo.org> libelf-0.8.4.ebuild:
  add ~amd64 flag

*libelf-0.8.4 (11 Nov 2003)

  11 Nov 2003; Mike Frysinger <vapier@gentoo.org> :
  Version bump.

*libelf-0.8.2 (29 Sep 2002)

  08 Feb 2003; Guy Martin <gmsoft@gentoo.org> libelf-0.8.2.ebuild :
  Added hppa to keywords.

  02 Jan 2003; Martin Schlemmer <azarah@gentoo.org> :
  Add "!dev-libs/elfutils" to DEPEND, as elfutils replaces libelf ...

  18 Dec 2002; Mark Guertin <gerk@gentoo.org> libelf-0.8.2.ebuild :
  set ppc in keywords

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  29 Sep 2002; Martin Schlemmer <azarah@gentoo.org> :

  Bump version to fully fix bug #4540.  Also fix the docs being installed,
  and compat headers not installed when package was already merged.

*libelf-0.7.0 (1 Feb 2002)

  1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
  
  Added initial ChangeLog which should be updated whenever the package is
  updated in any way. This changelog is targetted to users. This means that the
  comments should well explained and written in clean English. The details about
  writing correct changelogs are explained in the skel.ChangeLog file which you
  can find in the root directory of the portage repository.
