# ChangeLog for media-libs/libsndfile
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libsndfile/ChangeLog,v 1.130 2011/09/27 19:39:02 ssuominen Exp $

  27 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> libsndfile-1.0.25.ebuild:
  Use largefile flags when building emul-linux- pkgs wrt #313259 by Marc Joliet
  and Pacho Ramos

  12 Sep 2011; Alexis Ballier <aballier@gentoo.org> -libsndfile-1.0.23.ebuild,
  -libsndfile-1.0.24.ebuild:
  remove old

  12 Sep 2011; Kacper Kowalik <xarthisius@gentoo.org> libsndfile-1.0.25.ebuild:
  ppc/ppc64 stable wrt #375125

  11 Sep 2011; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.25.ebuild:
  alpha/ia64/sh/sparc stable wrt #375125

  11 Sep 2011; Markus Meier <maekke@gentoo.org> libsndfile-1.0.25.ebuild:
  arm/x86 stable, bug #375125

  09 Sep 2011; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.25.ebuild:
  Stable for HPPA (bug #375125).

  07 Sep 2011; Tony Vroon <chainsaw@gentoo.org> libsndfile-1.0.25.ebuild:
  Marked stable on AMD64 based on arch testing by Agostino "ago" Sarubbo in
  security bug #375125 filed by Alexis Ballier.

*libsndfile-1.0.25 (13 Jul 2011)

  13 Jul 2011; Alexis Ballier <aballier@gentoo.org> +libsndfile-1.0.25.ebuild:
  version bump

*libsndfile-1.0.24 (24 Mar 2011)

  24 Mar 2011; Tim Harder <radhermit@gentoo.org> -libsndfile-1.0.21.ebuild,
  -libsndfile-1.0.21-r1.ebuild, -libsndfile-1.0.22.ebuild,
  +libsndfile-1.0.24.ebuild:
  Version bump and remove old. Update to EAPI 4, add static-libs USE flag, and
  remove unneeded m4 script removal line.

  23 Mar 2011; Kacper Kowalik <xarthisius@gentoo.org> libsndfile-1.0.23.ebuild:
  ppc/ppc64 stable wrt #355361

  26 Feb 2011; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.23.ebuild:
  alpha/arm/ia64/sh/sparc stable wrt #355361

  26 Feb 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  libsndfile-1.0.23.ebuild:
  x86 stable wrt bug #355361

  25 Feb 2011; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.23.ebuild:
  Stable for HPPA (bug #355361).

  17 Feb 2011; Markos Chandras <hwoarang@gentoo.org> libsndfile-1.0.23.ebuild:
  Stable on amd64 wrt bug #355361

*libsndfile-1.0.23 (10 Oct 2010)

  10 Oct 2010; Alexis Ballier <aballier@gentoo.org>
  +libsndfile-1.0.23.ebuild:
  version bump

*libsndfile-1.0.22 (05 Oct 2010)

  05 Oct 2010; Tim Harder <radhermit@gentoo.org> +libsndfile-1.0.22.ebuild:
  Version bump, minor bug fixes. Bump libvorbis dependency, remove unused
  libtool eclass, update to EAPI=3, use src_prepare instead of src_unpack,
  and use src_configure instead of src_compile.

*libsndfile-1.0.21-r1 (05 Sep 2010)

  05 Sep 2010; Samuli Suominen <ssuominen@gentoo.org>
  +libsndfile-1.0.21-r1.ebuild:
  Remove append-lfs-flags (#313259) again wrt #335728.

  25 Jun 2010; Alexis Ballier <aballier@gentoo.org>
  -libsndfile-1.0.17-r1.ebuild, -files/libsndfile-1.0.17-autotools.patch,
  -files/libsndfile-1.0.17-dontbuild-tests-examples.patch,
  -files/libsndfile-1.0.17-flac-buffer-overflow.patch,
  -files/libsndfile-1.0.17-ogg.patch, -libsndfile-1.0.18.ebuild,
  -libsndfile-1.0.18-r1.ebuild,
  -files/libsndfile-1.0.18-less_strict_tests.patch,
  -files/libsndfile-1.0.18-m4macro.patch, -libsndfile-1.0.19.ebuild,
  -files/libsndfile-1.0.19-automagic_jack.patch, -libsndfile-1.0.20.ebuild:
  remove old

  12 Jun 2010; Samuli Suominen <ssuominen@gentoo.org>
  libsndfile-1.0.21.ebuild:
  append-lfs-flags wrt #313259 by Marc Joliet.

  07 Jan 2010; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.21.ebuild:
  alpha/arm/ia64/sh/sparc stable wrt #297631

  07 Jan 2010; Joseph Jezak <josejx@gentoo.org> libsndfile-1.0.21.ebuild:
  Marked ppc stable for bug #297631.

  06 Jan 2010; Brent Baude <ranger@gentoo.org> libsndfile-1.0.21.ebuild:
  Marking libsndfile-1.0.21 ppc64 for bug 297631

  29 Dec 2009; Christian Faulhammer <fauli@gentoo.org>
  libsndfile-1.0.21.ebuild:
  stable x86, bug 297631

  24 Dec 2009; Pacho Ramos <pacho@gentoo.org> libsndfile-1.0.21.ebuild:
  amd64 stable, bug 297631

  23 Dec 2009; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.21.ebuild:
  Stable for HPPA (bug #297631).

*libsndfile-1.0.21 (14 Dec 2009)

  14 Dec 2009; Alexis Ballier <aballier@gentoo.org>
  +libsndfile-1.0.21.ebuild:
  version bump

  20 May 2009; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.20.ebuild:
  arm/ia64/sh/sparc stable wrt #269863

  18 May 2009; Brent Baude <ranger@gentoo.org> libsndfile-1.0.20.ebuild:
  Marking libsndfile-1.0.20 ppc64 and ppc for bug 269863

  16 May 2009; <chainsaw@gentoo.org> libsndfile-1.0.20.ebuild:
  There is no TODO file in this version, stop trying to install it.

  15 May 2009; Markus Meier <maekke@gentoo.org> libsndfile-1.0.20.ebuild:
  amd64/x86 stable, bug #269863

  15 May 2009; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.20.ebuild:
  Stable for HPPA (bug #269863).

  15 May 2009; Tobias Klausmann <klausman@gentoo.org>
  libsndfile-1.0.20.ebuild:
  Stable on alpha, bug #269863

*libsndfile-1.0.20 (14 May 2009)

  14 May 2009; Alexis Ballier <aballier@gentoo.org>
  +libsndfile-1.0.20.ebuild:
  version bump

  08 May 2009; Samuli Suominen <ssuominen@gentoo.org>
  libsndfile-1.0.19.ebuild, +files/libsndfile-1.0.19-automagic_jack.patch:
  Fix automagic jack-audio-connection-kit depend wrt #266346, thanks to
  Paolo Pedroni for reporting.

  15 Apr 2009; Markus Meier <maekke@gentoo.org> libsndfile-1.0.19.ebuild:
  amd64 stable, bug #261173

  14 Apr 2009; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.19.ebuild:
  x86 stable wrt #261173

  25 Mar 2009; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.19.ebuild:
  arm/ia64/sh/sparc stable wrt #261173

  18 Mar 2009; Brent Baude <ranger@gentoo.org> libsndfile-1.0.19.ebuild:
  Marking libsndfile-1.0.19 ppc for bug 261173

  15 Mar 2009; Tobias Klausmann <klausman@gentoo.org>
  libsndfile-1.0.19.ebuild:
  Stable on alpha, bug #261173

  13 Mar 2009; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.19.ebuild:
  Stable for HPPA (bug #261173).

  10 Mar 2009; Brent Baude <ranger@gentoo.org> libsndfile-1.0.19.ebuild:
  Marking libsndfile-1.0.19 ppc64 for bug 261173

*libsndfile-1.0.19 (08 Mar 2009)

  08 Mar 2009; Alexis Ballier <aballier@gentoo.org>
  +libsndfile-1.0.19.ebuild:
  version bump by Richard Ash, bug #261173

  04 Mar 2009; Peter Alfredsen <loki_val@gentoo.org>
  libsndfile-1.0.18-r1.ebuild:
  Fix bug 261073, libtool incompatibility. Thanks to Gürkan Gür
  <seqizz@gmail.com> for reporting.

*libsndfile-1.0.18-r1 (03 Mar 2009)

  03 Mar 2009; Alexis Ballier <aballier@gentoo.org>
  +libsndfile-1.0.18-r1.ebuild:
  force disabling octave module which was automagic because it seems it
  installs files at bad locations (bug #260769), may fail to build (bug
  #260853) and to link (bug #260835).

  28 Feb 2009; Alexis Ballier <aballier@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  fixup invalid configure argument (werror -> gcc-werror), bug #256882

*libsndfile-1.0.18 (28 Feb 2009)

  28 Feb 2009; Alexis Ballier <aballier@gentoo.org>
  +files/libsndfile-1.0.18-less_strict_tests.patch,
  +files/libsndfile-1.0.18-m4macro.patch, +libsndfile-1.0.18.ebuild:
  version bump

  21 Apr 2008; Mike Frysinger <vapier@gentoo.org>
  +files/libsndfile-1.0.17-autotools.patch, libsndfile-1.0.17-r1.ebuild:
  Fixup errors in autotool code caught by libtool-2.2 #218666 by Lars
  (Polynomial-C).

  14 Apr 2008; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  Fix building with autoconf 2.62.

  17 Mar 2008; <ricmm@gentoo.org> libsndfile-1.0.17.ebuild:
  Drop to ~mips due to unstable deps

  22 Feb 2008; Diego Pettenò <flameeyes@gentoo.org>
  +files/libsndfile-1.0.17-dontbuild-tests-examples.patch,
  +files/libsndfile-1.0.17-regtests-need-sqlite.patch,
  libsndfile-1.0.17-r1.ebuild:
  Don't build tests and examples during standard make, this saves a few gcc/ld
  calls for most users. Don't build regtest if sqlite is disabled, rather than
  just removing it after the fact. Don't request old version of automake, as
  full eautoreconf is called.

  15 Feb 2008; Samuli Suominen <ssuominen@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  If built with USE -sqlite don't install sndfile-regtest command wrt #210216
  by Matthias B.

  29 Sep 2007; Raúl Porcel <armin76@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  sparc stable wrt security #192834

  20 Sep 2007; Brent Baude <ranger@gentoo.org> libsndfile-1.0.17-r1.ebuild:
  Marking libsndfile-1.0.17-r1 ppc64 stable for bug 192834

  20 Sep 2007; Robert Buchholz <rbu@gentoo.org> libsndfile-1.0.17-r1.ebuild:
  amd64 stable (bug #192834)

  20 Sep 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  ppc stable, bug #192834

  20 Sep 2007; Raúl Porcel <armin76@gentoo.org>
  libsndfile-1.0.17-r1.ebuild:
  alpha/ia64 stable wrt security #192834

  19 Sep 2007; Markus Meier <maekke@gentoo.org> libsndfile-1.0.17-r1.ebuild:
  x86 stable, security bug #192834

  19 Sep 2007; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.17-r1.ebuild:
  Stable for HPPA (bug #192834).

*libsndfile-1.0.17-r1 (19 Sep 2007)

  19 Sep 2007; Alexis Ballier <aballier@gentoo.org>
  +files/libsndfile-1.0.17-flac-buffer-overflow.patch,
  +libsndfile-1.0.17-r1.ebuild:
  add a patch wrt to buffer overflow possibility, bug #192834

  06 Aug 2007; Samuli Suominen <ssuominen@gentoo.org> libsndfile-1.0.17.ebuild:
  Install pkgconfig for bug 187856.

  21 Jun 2007; Joshua Kinard <kumba@gentoo.org> libsndfile-1.0.17.ebuild:
  Stable on mips, per #165776.

  21 May 2007; Raúl Porcel <armin76@gentoo.org> libsndfile-1.0.17.ebuild:
  alpha stable wrt #165776

  13 Feb 2007; Markus Rothe <corsair@gentoo.org> libsndfile-1.0.17.ebuild:
  Stable on ppc64; bug #165776

  12 Feb 2007; Simon Stelling <blubb@gentoo.org> libsndfile-1.0.17.ebuild:
  stable on amd64; bug 165776

  10 Feb 2007; nixnut <nixnut@gentoo.org> libsndfile-1.0.17.ebuild:
  Stable on ppc wrt bug 165776

  10 Feb 2007; Jeroen Roovers <jer@gentoo.org> libsndfile-1.0.17.ebuild:
  Stable for HPPA (bug #165776).

  08 Feb 2007; Fabian Groffen <grobian@gentoo.org> libsndfile-1.0.11.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  08 Feb 2007; Christian Faulhammer <opfer@gentoo.org>
  libsndfile-1.0.17.ebuild:
  stable x86; bug #165776

  07 Feb 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  libsndfile-1.0.17.ebuild:
  Stable on sparc wrt #165776

  20 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.11.ebuild:
  Add missing libtool inherit.

  16 Dec 2006; Alexis Ballier <aballier@gentoo.org>
  +files/libsndfile-1.0.17-ogg.patch, libsndfile-1.0.17.ebuild:
  Removing forced linking to ogg since that's not needed, bug #158212

  17 Nov 2006; Alexis Ballier <aballier@gentoo.org>
  libsndfile-1.0.17.ebuild:
  Add patch from Josh Coalson to be able to build with flac 1.1.3

  19 Oct 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.17.ebuild:
  Depend on 1.1.2 version of flac, as the 1.1.3 version changes API.

  02 Sep 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.17.ebuild:
  Don't use parallel make for install, as it fails. Also don't use sed and
  change htmldocdir path on the make command line.

  31 Aug 2006; Diego Pettenò <flameeyes@gentoo.org>
  -files/libsndfile-1.0.12-flac.patch,
  -files/libsndfile-1.0.15-ac-arg-fixes.patch, -libsndfile-1.0.5.ebuild,
  -libsndfile-1.0.9.ebuild, -libsndfile-1.0.10.ebuild,
  -libsndfile-1.0.12-r1.ebuild, -libsndfile-1.0.15-r2.ebuild,
  -libsndfile-1.0.16.ebuild:
  Drop old versions.

*libsndfile-1.0.17 (31 Aug 2006)

  31 Aug 2006; Diego Pettenò <flameeyes@gentoo.org>
  +libsndfile-1.0.17.ebuild:
  Version bump.

  25 May 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.16.ebuild:
  Add ~x86-fbsd keyword.

  24 May 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.16.ebuild:
  Add elibtoolize call.

  30 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.11.ebuild, libsndfile-1.0.16.ebuild:
  Add missing elibtoolize, drop autotools eclass and its deps.

*libsndfile-1.0.16 (30 Apr 2006)

  30 Apr 2006; Tony Vroon <chainsaw@gentoo.org> +libsndfile-1.0.16.ebuild:
  Version bump. Patch from Flameeyes has been merged upstream.

*libsndfile-1.0.15-r2 (25 Mar 2006)

  25 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  -libsndfile-1.0.15-r1.ebuild, +libsndfile-1.0.15-r2.ebuild:
  This time actually fix it.

*libsndfile-1.0.15-r1 (25 Mar 2006)

  25 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  -libsndfile-1.0.15.ebuild, +libsndfile-1.0.15-r1.ebuild:
  Revision bump to avoid filtering -O2 and replacing it with -O0 during
  configure run, or stuff breaks. See bug #127518.

*libsndfile-1.0.15 (25 Mar 2006)

  25 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/libsndfile-1.0.15-ac-arg-fixes.patch, +libsndfile-1.0.15.ebuild:
  Version bump with path to fix configure's AC_ARG_ENABLE handling. Thanks to
  Richard Ash for reporting in bug #127307.

  07 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.5.ebuild, libsndfile-1.0.9.ebuild,
  libsndfile-1.0.10.ebuild, libsndfile-1.0.11.ebuild,
  libsndfile-1.0.12-r1.ebuild:
  Drop virtual/libc dependency.

  17 Feb 2006; Fabian Groffen <grobian@gentoo.org>
  libsndfile-1.0.12-r1.ebuild:
  Drop ~ppc-macos keyword as we don't have the sqlite dependency.

*libsndfile-1.0.12-r1 (02 Dec 2005)

  02 Dec 2005; Diego Pettenò <flameeyes@gentoo.org>
  +files/libsndfile-1.0.12-flac.patch, -libsndfile-1.0.12.ebuild,
  +libsndfile-1.0.12-r1.ebuild:
  Added patch to make flac dependency optional. See bug #114228.

  30 Oct 2005; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.12.ebuild:
  Added missing libtool inherit (for elibtoolize requested by FreeBSD).

  30 Oct 2005; Diego Pettenò <flameeyes@gentoo.org>
  libsndfile-1.0.12.ebuild:
  Fixed missing sqlite useflag in IUSE.

*libsndfile-1.0.12 (30 Oct 2005)

  30 Oct 2005; Diego Pettenò <flameeyes@gentoo.org>
  +libsndfile-1.0.12.ebuild:
  Updated to latest upstream version following bug #110286.

  12 Jul 2005; Stephen P. Becker <geoman@gentoo.org>
  libsndfile-1.0.11.ebuild:
  stable on mips

  17 Jun 2005; Michael Hanselmann <hansmi@gentoo.org>
  libsndfile-1.0.11.ebuild:
  Stable on ppc.

  08 Apr 2005; Markus Rothe <corsair@gentoo.org> libsndfile-1.0.11.ebuild:
  Stable on ppc64

  21 Mar 2005; Lina Pezzella <j4rg0n@gentoo.org> libsndfile-1.0.11.ebuild:
  Stable ppc-macos

  19 Mar 2005; Bryan Østergaard <kloeri@gentoo.org>
  libsndfile-1.0.11.ebuild:
  Stable on alpha.

  02 Mar 2005; Jan Brinkmann <luckyduck@gentoo.org> libsndfile-1.0.10.ebuild,
  libsndfile-1.0.11.ebuild, libsndfile-1.0.5.ebuild, libsndfile-1.0.9.ebuild:
  added dummy src_test to avoid compile errors with the maketest feature. fixes
  #82805

  11 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.10.ebuild, libsndfile-1.0.11.ebuild,
  libsndfile-1.0.5.ebuild, libsndfile-1.0.9.ebuild:
  epunt_cxx fixes bug #76746.

  18 Dec 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.11.ebuild:
  Stable amd64, sparc, x86.

*libsndfile-1.0.11 (17 Nov 2004)

  17 Nov 2004; Jeremy Huddleston <eradicator@gentoo.org>
  -libsndfile-0.0.28.ebuild, libsndfile-1.0.10.ebuild,
  +libsndfile-1.0.11.ebuild, -libsndfile-1.0.4.ebuild,
  -libsndfile-1.0.6.ebuild:
  Version bump and cleanup.

  03 Nov 2004; Stephen P. Becker <geoman@gentoo.org>
  libsndfile-1.0.10.ebuild:
  added ~mips keyword

  22 Sep 2004; kito@gentoo.org libsndfile-1.0.10.ebuild:
  ~ppc-macos keyword

  02 Sep 2004; Tom Gall <tgall@gentoo.org> libsndfile-1.0.10.ebuild,
  libsndfile-1.0.9.ebuild:
  added ~ppc64 and stable on 9

  01 Sep 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.10.ebuild:
  Stable amd64, sparc, x86.

  01 Aug 2004; Chris White <chriswhite@gentoo.org> libsndfile-1.0.10.ebuild:
  Fixed some doc weirdness and corrected some strange use_* logic.

  19 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.10.ebuild:
  force --with-pic for amd64.

  17 Jul 2004; Chris White <chriswhite@gentoo.org> libsndfile-1.0.10.ebuild:
  Fixed and doc issues in the ebuild. Thanks to Stefan Briesenick
  <sbriesen@gmx.de> for the assitance.

*libsndfile-1.0.10 (16 Jul 2004)

  16 Jul 2004; Chris White <chriswhite@gentoo.org> +libsndfile-1.0.10.ebuild:
  Bumped to 1.0.10. Fixes bug #57242. Thanks to Stefan Briesenick
  <sbriesen@gmx.de> for reporting.

  01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-0.0.28.ebuild, libsndfile-1.0.4.ebuild, libsndfile-1.0.5.ebuild,
  libsndfile-1.0.6.ebuild, libsndfile-1.0.9.ebuild:
  virtual/glibc -> virtual/libc

  30 Jun 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.9.ebuild:
  Stable sparc.

  30 May 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.9.ebuild:
  Stable x86.

  23 May 2004; Danny van Dyk <kugelfang@gentoo.org> libsndfile-1.0.9.ebuild:
  Marked ~amd64.

  06 May 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.4.ebuild:
  IUSE added.  Removed explicit S=.

*libsndfile-1.0.9 (02 May 2004)

  02 May 2004; Jeremy Huddleston <eradicator@gentoo.org>
  libsndfile-1.0.1.ebuild, libsndfile-1.0.3.ebuild, libsndfile-1.0.9.ebuild,
  metadata.xml:
  Version bump.  Closes bug #49417.  Added to ~sparc

  07 Mar 2004; Gustavo Zacarias <gustavoz@gentoo.org> libsndfile-1.0.5.ebuild:
  stable on sparc

  17 Feb 2004; Aron Griffis <agriffis@gentoo.org> libsndfile-1.0.6.ebuild:
  add ~alpha and ~ia64

*libsndfile-1.0.6 (13 Feb 2004)

  13 Feb 2004; Michael Sterrett <mr_bones_@gentoo.org>
  libsndfile-1.0.6.ebuild:
  version bump

  13 Feb 2004; Michael Sterrett <mr_bones_@gentoo.org>
  libsndfile-1.0.5.ebuild:
  HOMEPAGE and SRC_URI update for bug #41392; header fix; tidy

  29 Sep 2003; Luca Barbato <lu_zero@gentoo.org> libsndfile-1.0.5.ebuild:
  Marked ppc.

*libsndfile-1.0.5 (08 May 2003)

  08 May 2003; jje <jje@gentoo.org> libsndfile-1.0.5.ebuild:
  Version bump.

*libsndfile-1.0.4 (04 Feb 2003)

  03 Apr 2003; Graham Forest <vladimir@gentoo.org> libsndfile-1.0.4.ebuild:
  set ~ppc in keywords

  04 Feb 2003; Nick Hadaway <raker@gentoo.org> libsndfile-1.0.4.ebuild,
  files/digest-libsndfile-1.0.4 :
  Version bump.  Adds XI and PVM support and some minor bug fixes.

*libsndfile-1.0.3 (30 Jan 2003)

  30 Jan 2003; Nick Hadaway <raker@gentoo.org> libsndfile-1.0.3.ebuild,
  files/digest-libsndfile-1.0.3 :
  Version bump.  SLOTing this is incorrect, changed back to 0.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*libsndfile-0.0.28 (23 Nov 2002)

  23 Nov 2002; Sascha Schwabbauer <cybersystem@gentoo.org> libsndfile-0.0.28.ebuild :

  Added ~ppc to keywords.

*libsndfile-1.0.1 (18 Sep 2002)

  29 Oct 2002; Seemant Kulleen <seemant@gentoo.org> libsndfile-1.0.1.ebuild :

  SLOT'd


  18 Sep 2002; Nick Hadaway <raker@gentoo.org> libsndfile-1.0.1.ebuild,
  files/digest-libsndfile-1.0.1 :
  Version bump.  API changes from version 0 to version 1 are available
  at http://www.zipworld.com.au/~erikd/libsndfile/version-1.html

*libsndfile-0.0.28 (24 May 2002)

  24 May 2002; Arcady Genkin <agenkin@thpoon.com> libsndfile-0.0.28.ebuild :
  Initial version of the package, created by
  ryan.shaw@stanfordalumni.org (Ryan Shaw).
