# ChangeLog for media-libs/libdvdread
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libdvdread/ChangeLog,v 1.62 2010/01/15 09:30:47 fauli Exp $

  15 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  libdvdread-4.1.3_p1168.ebuild:
  Transfer Prefix keywords

  28 Dec 2009; Fabio Erculiani <lxnay@gentoo.org> libdvdread-0.9.6.ebuild,
  libdvdread-0.9.7.ebuild:
  Fix media-libs/libdvdcss dependency, close bug #286543

  09 Mar 2009; Steve Dibb <beandog@gentoo.org>
  libdvdread-4.1.3_p1168.ebuild, libdvdread-9999.ebuild:
  Switch to autotools, bug 249638

*libdvdread-9999 (09 Mar 2009)
*libdvdread-4.1.3_p1168 (09 Mar 2009)

  09 Mar 2009; Steve Dibb <beandog@gentoo.org>
  +libdvdread-4.1.3_p1168.ebuild, +libdvdread-9999.ebuild:
  Add SVN snaphot; SVN ebuild

*libdvdread-4.1.3-r1 (03 Dec 2008)

  03 Dec 2008; Steve Dibb <beandog@gentoo.org> +libdvdread-4.1.3-r1.ebuild:
  Add css use flag, libdvdcss runtime dep for playback of encrypted DVDs

*libdvdread-4.1.3 (23 Sep 2008)

  23 Sep 2008; Ben de Groot <yngwin@gentoo.org> +libdvdread-4.1.3.ebuild:
  Version bump from MPlayer project

  27 Aug 2007; Steve Dibb <beandog@gentoo.org> libdvdread-0.9.7.ebuild:
  amd64 stable

  10 Jul 2007; Jeroen Roovers <jer@gentoo.org> libdvdread-0.9.7.ebuild:
  Stable for HPPA (bug #179072).

  08 Jul 2007; Markus Rothe <corsair@gentoo.org> libdvdread-0.9.7.ebuild:
  Stable on ppc64; bug #179072

  07 Jul 2007; Lars Weiler <pylon@gentoo.org> libdvdread-0.9.7.ebuild:
  Stable on ppc; bug #179072.

  07 Jul 2007; Raúl Porcel <armin76@gentoo.org> libdvdread-0.9.7.ebuild:
  alpha stable wrt #179072

  25 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  libdvdread-0.9.7.ebuild:
  Stable on sparc

  24 Apr 2007; Raúl Porcel <armin76@gentoo.org> libdvdread-0.9.7.ebuild:
  ia64 + x86 stable

  04 Jan 2007; Timothy Redaelli <drizzt@gentoo.org> libdvdread-0.9.7.ebuild:
  Add ~x86-fbsd keyword

  14 Nov 2006; Matthias Schwarzott <zzam@gentoo.org>
  -libdvdread-0.9.4-r1.ebuild:
  Removed buggy version, Bug #140872.

  09 Nov 2006; Matthias Schwarzott <zzam@gentoo.org>
  libdvdread-0.9.6.ebuild, libdvdread-0.9.7.ebuild:
  Changed automake-dependency to latest, suggested by SpanKY, Bug #154524.

  02 Nov 2006; Matthias Schwarzott <zzam@gentoo.org>
  libdvdread-0.9.6.ebuild, libdvdread-0.9.7.ebuild:
  Added correct automake-dependency.

  20 Oct 2006; Bryan Østergaard <kloeri@gentoo.org>
  libdvdread-0.9.6.ebuild:
  Stable on Alpha.

  15 Oct 2006; Aron Griffis <agriffis@gentoo.org> libdvdread-0.9.6.ebuild:
  Mark 0.9.6 stable on ia64. #147456

*libdvdread-0.9.7 (07 Oct 2006)

  07 Oct 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/libdvdread-0.9.7-udfsymbols.patch, +libdvdread-0.9.7.ebuild:
  Version bump, thanks to Olivier Rolland in bug #150245.

  23 Sep 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  libdvdread-0.9.6.ebuild:
  hppa stable, bug #147456

  18 Sep 2006; Joseph Jezak <josejx@gentoo.org> libdvdread-0.9.6.ebuild:
  Marked ppc stable for bug #147456.

  15 Sep 2006; Fabian Groffen <grobian@gentoo.org> libdvdread-0.9.6.ebuild:
  Marked ppc-macos stable (bug #147456)

  14 Sep 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  libdvdread-0.9.6.ebuild:
  Stable on sparc wrt #147456

  13 Sep 2006; Danny van Dyk <kugelfang@gentoo.org> libdvdread-0.9.6.ebuild:
  Marked stable on amd64 wrt bug #147456.

  13 Sep 2006; <ticho@gentoo.org> libdvdread-0.9.6.ebuild:
  Stable on x86, bug #147456.

  13 Sep 2006; Markus Rothe <corsair@gentoo.org> libdvdread-0.9.6.ebuild:
  Stable on ppc64; bug #147456

  05 Sep 2006; Diego Pettenò <flameeyes@gentoo.org>
  -files/libdvdread-0.9.5-udfsymbols.patch, -libdvdread-0.9.5-r1.ebuild:
  Drop old version.

  09 Jun 2006; Emanuele Giaquinta <exg@gentoo.org> -libdvdread-0.9.4.ebuild,
  libdvdread-0.9.4-r1.ebuild:
  Stable on ppc-macos. Remove old ebuild.

*libdvdread-0.9.6 (09 May 2006)

  09 May 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/libdvdread-0.9.6-udfsymbols.patch, +libdvdread-0.9.6.ebuild:
  Vesion bump, thanks to henry in bug #132808.

*libdvdread-0.9.5-r1 (28 Mar 2006)

  28 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/libdvdread-0.9.5-udfsymbols.patch, -libdvdread-0.9.5.ebuild,
  +libdvdread-0.9.5-r1.ebuild:
  Restart exporting UDF symbols as 0.9.4 series.

*libdvdread-0.9.5 (27 Mar 2006)

  27 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  +libdvdread-0.9.5.ebuild:
  Version bump, thanks to Jeremy Sermersheim in bug #127771.

  07 Feb 2006; Aron Griffis <agriffis@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  Mark 0.9.4-r1 stable on alpha

  14 Dec 2005; Rene Nussbaumer <killerfox@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  Stable on hppa.

  19 Nov 2005; Markus Rothe <corsair@gentoo.org> libdvdread-0.9.4-r1.ebuild:
  Stable on ppc64; bug #111134

  11 Nov 2005; Michael Hanselmann <hansmi@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  Stable on ppc.

  09 Nov 2005; Luis Medinas <metalgod@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  Marked Stable on amd64. Bug #111134.

  05 Nov 2005; Mark Loeser <halcy0n@gentoo.org> libdvdread-0.9.4-r1.ebuild:
  Stable on x86; bug #111134

  04 Nov 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  Stable on sparc wrt #111134

  01 Nov 2005; Diego Pettenò <flameeyes@gentoo.org>
  -libdvdread-0.9.3.ebuild:
  Remove old ebuilds.

  03 Sep 2005; Diego Pettenò <flameeyes@gentoo.org>
  libdvdread-0.9.3.ebuild, libdvdread-0.9.4.ebuild,
  libdvdread-0.9.4-r1.ebuild:
  Don't install COPYING and INSTALL files.

  28 Feb 2005; Kito <kito@gentoo.org> libdvdread-0.9.4-r1.ebuild,
  libdvdread-0.9.4.ebuild:
  0.9.4 stable on ppc-macos. 0.9.4-r1 add --with-libdvdcss=/usr to fix linking
  on darwin

  07 Feb 2005; Jan Brinkmann <luckyduck@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  now the dodoc call works again. fixes #81150

  05 Feb 2005; Jan Brinkmann <luckyduck@gentoo.org>
  libdvdread-0.9.4-r1.ebuild:
  renamed ifo_dump binary to ifo_dump_dvdread to avoid collision with the ogle
  one. see #80837

*libdvdread-0.9.4-r1 (28 Jan 2005)

  28 Jan 2005; Jan Brinkmann <luckyduck@gentoo.org>
  +libdvdread-0.9.4-r1.ebuild:
  made changes which were suggested by Stefan Briesenick <sbriesen@gmx.de>.
  fixes bug #52498. applied a patch, therefor going back to ~arch and revision
  bump.

  17 Dec 2004; Markus Rothe <corsair@gentoo.org> libdvdread-0.9.4.ebuild:
  Stable on ppc64

  24 Sep 2004; kito@gentoo.org libdvdread-0.9.4.ebuild:
  added ~ppc-macos keyword. closes bug 59636

  29 Aug 2004; Tom Gall <tgall@gentoo.org> libdvdread-0.9.4.ebuild:
  added ~ppc64, bug #60786

  23 Aug 2004; Michael Sterrett <mr_bones_@gentoo.org>
  libdvdread-0.9.4.ebuild:
  gnuconfig_update in src_unpack; use emake; tidy

  21 Aug 2004; Hardave Riar <hardave@gentoo.org> libdvdread-0.9.4.ebuild:
  Added ~mips keyword and gnuconfig_update fix

  14 Apr 2004; Jason Wever <weeve@gentoo.org> libdvdread-0.9.4.ebuild:
  Stable on sparc.

  09 Apr 2004; Luca Barbato <lu_zero@gentoo.org> libdvdread-0.9.4.ebuild:
  Marked ppc

  17 Feb 2004; Aron Griffis <agriffis@gentoo.org> libdvdread-0.9.4.ebuild:
  stable on alpha and ia64

*libdvdread-0.9.4 (24 Feb 2003)

  15 Apr 2003; Arcady Genkin <agenkin@gentoo.org> :
  Marking stable on x86.

  24 Feb 2003; Arcady Genkin <agenkin@gentoo.org> :
  Version bump.
 
*libdvdread-0.9.3 (26 May 2002)

  12 Aug 2002; Mark Guertin <gerk@gentoo.org> :
  Added ppc to keywords

  26 May 2002; Martin Schlemmer <azarah@gentoo.org> :
  Update to latest version.

*libdvdread-0.9.2 (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.
