# ChangeLog for dev-util/xdelta
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/xdelta/ChangeLog,v 1.102 2014/08/10 21:30:09 slyfox Exp $

  10 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org> xdelta-3.0.5.ebuild,
  xdelta-3.0.6.ebuild, xdelta-3.0.8.ebuild:
  QA: drop trailing '.' from DESCRIPTION

  15 Apr 2014; Naohiro Aota <naota@gentoo.org> xdelta-3.0.8.ebuild:
  Add ~x86-fbsd. #507562

*xdelta-3.0.8 (28 Jan 2014)

  28 Jan 2014; Michał Górny <mgorny@gentoo.org> +xdelta-3.0.8.ebuild,
  metadata.xml:
  Version bump. Take over the maintainership.

  26 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for sparc, wrt bug #495678

  19 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for ppc64, wrt bug #495678

  18 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for alpha, wrt bug #495678

  15 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for ia64, wrt bug #495678

  14 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for ppc, wrt bug #495678

  14 Jan 2014; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for x86, wrt bug #495678

  12 Jan 2014; Pacho Ramos <pacho@gentoo.org> xdelta-3.0.6.ebuild:
  amd64 stable, bug #495678

  26 Dec 2013; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.6.ebuild:
  Stable for HPPA (bug #495678).

*xdelta-3.0.6 (17 Jun 2013)

  17 Jun 2013; Lars Wendler <polynomial-c@gentoo.org> +xdelta-3.0.6.ebuild:
  Non-maintainer commit: Version bump.

  13 Feb 2013; Michael Palimaka <kensington@gentoo.org> -xdelta-3.0.4.ebuild:
  Remove old.

  12 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for sparc, wrt bug #455876

  10 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for ppc, wrt bug #455876

  10 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for ppc64, wrt bug #455876

  09 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for ia64, wrt bug #455876

  08 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for alpha, wrt bug #455876

  08 Feb 2013; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for HPPA (bug #455876).

  08 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for x86, wrt bug #455876

  08 Feb 2013; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.5.ebuild:
  Stable for amd64, wrt bug #455876

*xdelta-3.0.5 (17 Dec 2012)

  17 Dec 2012; Samuli Suominen <ssuominen@gentoo.org> +xdelta-3.0.5.ebuild:
  Version bump wrt #447522 by Marcin Mirosław

  17 Dec 2012; Samuli Suominen <ssuominen@gentoo.org>
  -files/01_bigger_print_buffers.patch,
  -files/02_replace_sprintf_with_snprintf.patch,
  -files/03_fix_pipe_draining_and_closing.patch, -xdelta-3.0.0-r1.ebuild:
  old

  16 Dec 2012; Raúl Porcel <armin76@gentoo.org> xdelta-3.0.4.ebuild:
  alpha/ia64/sparc stable wrt #441318

  20 Nov 2012; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.4.ebuild:
  Stable for x86, wrt bug #441318

  16 Nov 2012; Anthony G. Basile <blueness@gentoo.org> xdelta-3.0.4.ebuild:
  stable ppc ppc64, bug #441318

  07 Nov 2012; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.4.ebuild:
  Stable for HPPA (bug #441318).

  04 Nov 2012; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.4.ebuild:
  Stable for amd64, wrt bug #441318

  05 Sep 2012; Samuli Suominen <ssuominen@gentoo.org> -xdelta-3.0.0.ebuild:
  old

  05 Sep 2012; Samuli Suominen <ssuominen@gentoo.org> xdelta-3.0.4.ebuild:
  Change noinst_PROGRAMS to check_PROGRAMS in top Makefile.am to build tests
  only when required.

*xdelta-3.0.4 (05 Sep 2012)

  05 Sep 2012; Samuli Suominen <ssuominen@gentoo.org> +xdelta-3.0.4.ebuild:
  Version bump.

  19 Aug 2012; Raúl Porcel <armin76@gentoo.org> xdelta-3.0.0-r1.ebuild:
  alpha/sparc stable wrt #418967

  10 Jul 2012; Akinori Hattori <hattya@gentoo.org> xdelta-3.0.0-r1.ebuild:
  ia64 stable wrt bug #418967

  29 Jun 2012; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.0-r1.ebuild:
  Stable for HPPA (bug #418967).

  07 Jun 2012; Brent Baude <ranger@gentoo.org> xdelta-3.0.0-r1.ebuild:
  Marking xdelta-3.0.0-r1 ppc for bug 418967

  06 Jun 2012; Jeff Horelick <jdhore@gentoo.org> xdelta-3.0.0-r1.ebuild:
  marked x86 per bug 418967

  05 Jun 2012; Brent Baude <ranger@gentoo.org> xdelta-3.0.0-r1.ebuild:
  Marking xdelta-3.0.0-r1 ppc64 for bug 418967

  01 Jun 2012; Agostino Sarubbo <ago@gentoo.org> xdelta-3.0.0-r1.ebuild:
  Stable for amd64, wrt bug #418967

  05 May 2012; Jeff Horelick <jdhore@gentoo.org> xdelta-1.1.4-r1.ebuild:
  dev-util/pkgconfig -> virtual/pkgconfig

*xdelta-3.0.0-r1 (02 Apr 2012)

  02 Apr 2012; Pacho Ramos <pacho@gentoo.org>
  +files/01_bigger_print_buffers.patch,
  +files/02_replace_sprintf_with_snprintf.patch,
  +files/03_fix_pipe_draining_and_closing.patch, +xdelta-3.0.0-r1.ebuild:
  Fix overflows with ThePythonicCow's patches, bug #380473 by Marcin Mirosław.

  05 Aug 2011; Markos Chandras <hwoarang@gentoo.org> -xdelta-3.0v.ebuild,
  -xdelta-3.0z.ebuild:
  Remove old ebuild. Requested by Arfrever

  15 Jul 2011; Kacper Kowalik <xarthisius@gentoo.org> xdelta-3.0.0.ebuild:
  ppc64 stable wrt #362969

  10 May 2011; Michael Weber <xmw@gentoo.org> xdelta-3.0.0.ebuild:
  ppc stable (bug 362969)

  23 Apr 2011; Raúl Porcel <armin76@gentoo.org> xdelta-3.0.0.ebuild:
  alpha/ia64/sparc stable wrt #362969

  15 Apr 2011; Christoph Mende <angelos@gentoo.org> xdelta-3.0.0.ebuild:
  Stable on amd64 wrt bug #362969

  12 Apr 2011; Thomas Kahle <tomka@gentoo.org> xdelta-3.0.0.ebuild:
  x86 stable per bug 362969

  11 Apr 2011; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.0.ebuild:
  Stable for HPPA (bug #362969).

  11 Apr 2011; Jeroen Roovers <jer@gentoo.org> xdelta-3.0.0.ebuild:
  Add app-arch/ncompress test dependency.

  10 Apr 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  xdelta-3.0v.ebuild:
  Fix deprecation warning.

*xdelta-3.0.0 (05 Mar 2011)

  05 Mar 2011; Michael Weber <xmw@gentoo.org> +xdelta-3.0.0.ebuild:
  version bump (bug 357233), thanks Anton Romanov <theli@ukr.net> for the hint.

  15 Sep 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  xdelta-3.0z.ebuild:
  Update EAPI. Delete dependency already present in @system set. Call
  python_pkg_setup().

*xdelta-3.0z (15 Sep 2010)

  15 Sep 2010; Michael Weber <xmw@gentoo.org> +xdelta-3.0z.ebuild:
  Version bump (bug #333521 by throw_away_2002@yahoo.com) with Python 2
  restriction (bug #326127, thanks David Abbott).

  28 Oct 2009; Raúl Porcel <armin76@gentoo.org> xdelta-1.1.4-r1.ebuild,
  xdelta-3.0v.ebuild:
  ia64/sparc stable wrt #286279

  13 Oct 2009; Jeroen Roovers <jer@gentoo.org> xdelta-1.1.4-r1.ebuild,
  xdelta-3.0v.ebuild:
  Stable for HPPA (bug #286279).

  04 Oct 2009; Tobias Klausmann <klausman@gentoo.org>
  xdelta-1.1.4-r1.ebuild:
  Stable on alpha, bug #286279

  27 Sep 2009; nixnut <nixnut@gentoo.org> xdelta-1.1.4-r1.ebuild,
  xdelta-3.0v.ebuild:
  ppc stable #286279

  27 Sep 2009; Brent Baude <ranger@gentoo.org> xdelta-3.0v.ebuild:
  Marking xdelta-3.0v ppc64 for bug 286279

  27 Sep 2009; Brent Baude <ranger@gentoo.org> xdelta-1.1.4-r1.ebuild:
  Marking xdelta-1.1.4-r1 ppc64 for bug 286279

  27 Sep 2009; Markus Meier <maekke@gentoo.org> xdelta-3.0v.ebuild:
  amd64/x86 stable, bug #286279

  27 Sep 2009; Markus Meier <maekke@gentoo.org> xdelta-1.1.4-r1.ebuild:
  amd64/x86 stable, bug #286279

  06 Jul 2009; Samuli Suominen <ssuominen@gentoo.org> xdelta-3.0v.ebuild:
  Respect CC and LDFLAGS wrt #244046

  29 Jun 2009; Jeroen Roovers <jer@gentoo.org> xdelta-3.0t.ebuild,
  xdelta-3.0v.ebuild:
  Marked ~hppa too.

*xdelta-3.0v (28 Jun 2009)

  28 Jun 2009; Patrick Lauer <patrick@gentoo.org> +xdelta-3.0v.ebuild:
  Bump to 3.0v (actually v2), small changes in emake call to fix tests
  failing #272775

*xdelta-1.1.4-r1 (04 Sep 2008)

  04 Sep 2008; Tristan Heaven <nyhm@gentoo.org>
  files/xdelta-1.1.4-pkgconfig.patch, -xdelta-1.1.4.ebuild,
  +xdelta-1.1.4-r1.ebuild:
  Add glib-2.0 dependency to pkgconfig file

*xdelta-1.1.4 (04 Sep 2008)

  04 Sep 2008; Jeroen Roovers <jer@gentoo.org>
  +files/xdelta-1.1.4-glib2.patch, +files/xdelta-1.1.4-m4.patch,
  +files/xdelta-1.1.4-pkgconfig.patch, xdelta-1.1.3-r3.ebuild,
  +xdelta-1.1.4.ebuild:
  Version bump thanks to Zeev Tarantov (bug #236639). Marked ~hppa too.

  20 Apr 2008; Samuli Suominen <drac@gentoo.org> xdelta-1.1.3-r3.ebuild:
  Move pkgconfig to DEPEND from RDEPEND.

  17 Jan 2008; Markus Meier <maekke@gentoo.org> xdelta-1.1.3-r3.ebuild:
  add pkgconfig dep, bug #206252

  16 Jan 2008; Samuli Suominen <drac@gentoo.org> -xdelta-1.1.3.ebuild,
  -xdelta-1.1.3-r1.ebuild, -xdelta-1.1.3-r2.ebuild, xdelta-1.1.3-r3.ebuild:
  amd64 stable wrt #206009 and remove unused versions.

  16 Jan 2008; Raúl Porcel <armin76@gentoo.org> xdelta-1.1.3-r3.ebuild:
  alpha/ia64/sparc stable wrt #206009

  16 Jan 2008; Christian Faulhammer <opfer@gentoo.org>
  xdelta-1.1.3-r3.ebuild:
  stable x86, bug 206009

  16 Jan 2008; Brent Baude <ranger@gentoo.org> xdelta-1.1.3-r3.ebuild:
  Marking xdelta-1.1.3-r3 ppc and ppc64 for bug 206009

*xdelta-3.0t (15 Jan 2008)

  15 Jan 2008; Samuli Suominen <drac@gentoo.org> +xdelta-3.0t.ebuild:
  Version bump wrt #169304, but use a new SLOT since it doesn't seem to
  provide libraries version 1 does. Thanks to Michael Schmid for reporting and
  ebuild.

  15 Oct 2007; Markus Rothe <corsair@gentoo.org> xdelta-1.1.3-r2.ebuild:
  Stable on ppc64

*xdelta-1.1.3-r3 (13 Oct 2007)

  13 Oct 2007; Samuli Suominen <drac@gentoo.org>
  +files/xdelta-1.1.3-glib2.patch, +xdelta-1.1.3-r3.ebuild:
  Upgrade from GLIB1 to 2.

  13 Aug 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  xdelta-1.1.3-r2.ebuild:
  ppc. stable

  25 Jul 2007; Raúl Porcel <armin76@gentoo.org> xdelta-1.1.3-r2.ebuild:
  alpha stable

  15 Jul 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
  Assigning dev-util/xdelta to m-needed, as beu is being retired (#66608).

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

  23 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  xdelta-1.1.3-r2.ebuild:
  Stable on sparc

  21 Apr 2007; Raúl Porcel <armin76@gentoo.org> xdelta-1.1.3-r2.ebuild:
  ia64 + x86 stable

  21 Nov 2006; Timothy Redaelli <drizzt@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Added tc-export CC.

  08 Aug 2006; Luis Medinas <metalgod@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Stable on amd64. Bug #141249.

  03 Aug 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  xdelta-1.1.3-r1.ebuild:
  Stable on sparc

  24 Jul 2006; Andrej Kacian <ticho@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Stable on x86, bug #141249.

  03 Jul 2006; Lars Weiler <pylon@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Stable on ppc; gcc-4 related; bug #138099.

  20 Feb 2006; Markus Rothe <corsair@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Stable on ppc64

  06 Feb 2006; Aron Griffis <agriffis@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Mark 1.1.3-r1 stable on alpha

  05 Feb 2006; Aron Griffis <agriffis@gentoo.org> xdelta-1.1.3-r1.ebuild:
  Mark 1.1.3-r1 stable on ia64

  25 Dec 2005; <bharring@gentoo.org> +files/xdelta-1.1.3-freegen.patch,
  +files/xdelta-1.1.3-gcc4.patch, +xdelta-1.1.3-r1.ebuild:
  collection of fixups raided from bug 91062, and from loki (work mainly via
  Ozkan Sezer).

*xdelta-1.1.3 (26 Dec 2005)

  11 Oct 2005; Aron Griffis <agriffis@gentoo.org> xdelta-1.1.3.ebuild:
  Mark 1.1.3 ~ia64

  10 Sep 2005; Aron Griffis <agriffis@gentoo.org> xdelta-1.1.3.ebuild:
  Mark 1.1.3 stable on alpha

  18 Jun 2005; Jose Luis Rivero <yoswink@gentoo.org> xdelta-1.1.3.ebuild:
  Keyworded ~alpha since is needed on #95128

  29 May 2005; Markus Rothe <corsair@gentoo.org> xdelta-1.1.3.ebuild:
  Stable on ppc64

  27 Apr 2005; Markus Rothe <corsair@gentoo.org> xdelta-1.1.3.ebuild:
  Added ~ppc64 to KEYWORDS

  11 Apr 2005; Chris Gianelloni <wolf31o2@gentoo.org> xdelta-1.1.3.ebuild:
  Marking stable on amd64 for loki_patch.

  18 Jul 2004; Daniel Ahlberg <aliz@gentoo.org> xdelta-1.1.3.ebuild:
  Added amd64 keyword, closing #56947.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 

*xdelta-1.1.3 (11 Apr 2002)
  11 Apr 2002; Spider <spider@gentoo.org>
  Update all glib dependencies to use glib-1.2*  in preparation of unmasking the glib-2.0.1 packages
    

*xdelta-1.1.3 (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.
