# ChangeLog for sys-apps/findutils
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/ChangeLog,v 1.181 2009/12/11 20:38:57 vapier Exp $

*findutils-4.4.2 (11 Dec 2009)

  11 Dec 2009; Mike Frysinger <vapier@gentoo.org> +findutils-4.4.2.ebuild:
  Version bump.

*findutils-4.5.5 (14 Aug 2009)

  14 Aug 2009; Mike Frysinger <vapier@gentoo.org> +findutils-4.5.5.ebuild:
  Version bump #279673 by Lars Wendler.

*findutils-4.5.4 (15 Mar 2009)

  15 Mar 2009; Mike Frysinger <vapier@gentoo.org> +findutils-4.5.4.ebuild:
  Version bump #262569 by Nick Fortino.

*findutils-4.5.3-r1 (04 Mar 2009)

  04 Mar 2009; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.5.3-curdepth.patch,
  +files/findutils-4.5.3-fts-assert.patch, +findutils-4.5.3-r1.ebuild:
  Add fix from upstream for #253119 by Gilles Dartiguelongue and a change to
  hopefully fix #253570 by Barbu Eros Iulian.

*findutils-4.5.3 (25 Dec 2008)

  25 Dec 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.5.3.ebuild:
  Version bump #251548 by Lars (Polynomial-C).

  30 Nov 2008; Markus Meier <maekke@gentoo.org> findutils-4.2.33.ebuild:
  amd64 stable, bug #249136

*findutils-4.5.2 (27 Nov 2008)

  27 Nov 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.5.2.ebuild:
  Version bump #249128 by Raúl Porcel.

  29 Oct 2008; Richard Freeman <rich0@gentoo.org> findutils-4.4.0.ebuild:
  amd64 stable - 244415

  28 Oct 2008; Raúl Porcel <armin76@gentoo.org> findutils-4.4.0.ebuild:
  alpha/ia64 stable #244415

  28 Oct 2008; Brent Baude <ranger@gentoo.org> findutils-4.4.0.ebuild:
  stable ppc64, bug 244415

  28 Oct 2008; Brent Baude <ranger@gentoo.org> findutils-4.2.33.ebuild:
  stable ppc64, bug 244412

  26 Oct 2008; Jeroen Roovers <jer@gentoo.org> findutils-4.2.33.ebuild,
  findutils-4.3.13.ebuild, findutils-4.4.0.ebuild:
  Stable for HPPA (bug #244412, #244414 and #244415).

  26 Oct 2008; Ferris McCormick <fmccor@gentoo.org> findutils-4.4.0.ebuild:
  Sparc stable --- Bug #244415 --- everything checks out.

  26 Oct 2008; nixnut <nixnut@gentoo.org> findutils-4.2.33.ebuild,
  findutils-4.4.0.ebuild:
  Stable on ppc wrt bug 244412

  26 Oct 2008; Torsten Veller <tove@gentoo.org> findutils-4.4.0.ebuild:
  Stable on x86 (#244415)

*findutils-4.5.1 (26 Oct 2008)

  26 Oct 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.5.1.ebuild:
  Version bump #235928 by Raúl Porcel.

  16 Jun 2008; Joseph Jezak <josejx@gentoo.org> findutils-4.3.13.ebuild:
  Marked ppc/ppc64 stable.

  12 Jun 2008; Jeroen Roovers <jer@gentoo.org> ChangeLog:
  Stable for HPPA too.

  12 May 2008; Markus Rothe <corsair@gentoo.org> findutils-4.3.13.ebuild:
  Stable on ppc64

  01 Apr 2008; Chris PeBenito <pebenito@gentoo.org>
  files/findutils-4.3.12-selinux.diff:
  Remove cruft from selinux patch.

  29 Mar 2008; Santiago M. Mola <coldwind@gentoo.org>
  findutils-4.3.13.ebuild:
  amd64 stable

  27 Mar 2008; Raúl Porcel <armin76@gentoo.org> findutils-4.2.33.ebuild,
  findutils-4.3.13.ebuild:
  alpha/ia64/sparc/x86 stable

*findutils-4.4.0 (24 Mar 2008)

  24 Mar 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.4.0.ebuild:
  Version bump.

  18 Mar 2008; Mike Frysinger <vapier@gentoo.org> findutils-4.2.33.ebuild:
  Drop USE=build and use emake in src_install.

*findutils-4.3.13 (19 Feb 2008)

  19 Feb 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.13.ebuild:
  Version bump #210727.

*findutils-4.2.33 (19 Feb 2008)

  19 Feb 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.33.ebuild:
  Version bump #210727.

  30 Jan 2008; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.12-selinux.diff, findutils-4.3.12.ebuild:
  Update SELinux patch.

  29 Jan 2008; Jeroen Roovers <jer@gentoo.org> findutils-4.3.11.ebuild:
  Stable for HPPA (bug #207518).

  26 Jan 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  findutils-4.3.11.ebuild:
  ppc stable, bug #207518

  26 Jan 2008; Brent Baude <ranger@gentoo.org> findutils-4.3.11.ebuild:
  Marking findutils-4.3.11 ppc64 for bug 207518

  26 Jan 2008; Christian Faulhammer <opfer@gentoo.org>
  findutils-4.3.11.ebuild:
  stable x86, bug 207518

  26 Jan 2008; Raúl Porcel <armin76@gentoo.org> findutils-4.3.11.ebuild:
  alpha/ia64/sparc stable wrt #207518

  26 Jan 2008; Samuli Suominen <drac@gentoo.org> findutils-4.3.11.ebuild:
  amd64 stable wrt #207518

*findutils-4.3.12 (26 Jan 2008)
*findutils-4.2.32 (26 Jan 2008)

  26 Jan 2008; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.32.ebuild,
  +findutils-4.3.12.ebuild:
  Version bump.

  18 Dec 2007; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.11-selinux.diff, findutils-4.3.11.ebuild:
  Update SELinux patch for 4.3.11.

*findutils-4.3.11 (16 Dec 2007)

  16 Dec 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.11.ebuild:
  Version bump #202407 by Benno Schulenberg.

  28 Oct 2007; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.3.8-gnulib-stddef.patch, findutils-4.3.8-r1.ebuild:
  Fix from upstream for building with newer toolchain packages #197326 by
  Peter Alfredsen.

  28 Sep 2007; nixnut <nixnut@gentoo.org> findutils-4.3.8-r1.ebuild:
  Stable on ppc wrt bug 194010

  28 Sep 2007; Raúl Porcel <armin76@gentoo.org> findutils-4.3.8-r1.ebuild:
  alpha/ia64/x86 stable wrt #194010

  28 Sep 2007; Jeroen Roovers <jer@gentoo.org> findutils-4.3.8-r1.ebuild:
  Stable for HPPA (bug #194010).

  28 Sep 2007; Ferris McCormick <fmccor@gentoo.org>
  findutils-4.3.8-r1.ebuild:
  Sparc stable --- Bug #194010 --- all tests pass.

  28 Sep 2007; Christoph Mende <angelos@gentoo.org>
  findutils-4.3.8-r1.ebuild:
  Stable on amd64 wrt bug #194010

  28 Sep 2007; Joshua Kinard <kumba@gentoo.org> findutils-4.3.8-r1.ebuild:
  Stable on mips, per #194010.

  27 Sep 2007; Brent Baude <ranger@gentoo.org> findutils-4.3.8-r1.ebuild:
  Marking findutils-4.3.8-r1 ppc64 stable for bug #194010

  01 Sep 2007; Christoph Mende <angelos@gentoo.org> findutils-4.3.8.ebuild:
  Stable on amd64

*findutils-4.3.8-r1 (25 Aug 2007)

  25 Aug 2007; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.3.8-listfile-segv.patch, +findutils-4.3.8-r1.ebuild:
  Fix from upstream for segfault with -ls #188249 by Martin von Gagern.

  13 Aug 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  findutils-4.3.8.ebuild:
  ppc. stable

  12 Aug 2007; Tom Gall <tgall@gentoo.org> findutils-4.3.8.ebuild:
  stable on ppc64

  02 Aug 2007; Christian Birchinger <joker@gentoo.org>
  findutils-4.3.8.ebuild:
  Added sparc stable keyword

  01 Aug 2007; Raúl Porcel <armin76@gentoo.org> findutils-4.3.8.ebuild:
  alpha/ia64/x86 stable

*findutils-4.3.8 (30 Jun 2007)

  30 Jun 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.8.ebuild:
  Version bump.

  28 Jun 2007; Joshua Kinard <kumba@gentoo.org> findutils-4.3.7.ebuild:
  Stable on mips, per #180617.

  27 Jun 2007; Markus Rothe <corsair@gentoo.org> findutils-4.3.7.ebuild:
  Stable on ppc64; bug #180617

  26 Jun 2007; Lars Weiler <pylon@gentoo.org> findutils-4.3.7.ebuild:
  Stable on ppc; bug #180617.

  26 Jun 2007; Jeroen Roovers <jer@gentoo.org> findutils-4.3.7.ebuild:
  Stable for HPPA (bug #180617).

  26 Jun 2007; Raúl Porcel <armin76@gentoo.org> findutils-4.3.7.ebuild:
  alpha/ia64/x86 stable wrt #180617

  26 Jun 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.3.7.ebuild:
  Stable on sparc wrt #180617

  26 Jun 2007; Christoph Mende <angelos@gentoo.org> findutils-4.3.7.ebuild:
  Stable on amd64 wrt bug 180617

  11 Jun 2007; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.7-selinux.diff, findutils-4.3.7.ebuild:
  Update SELinux patch for 4.3.7.

  11 Jun 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.2.31.ebuild:
  Stable on sparc wrt #181625

  11 Jun 2007; Joshua Kinard <kumba@gentoo.org> findutils-4.2.31.ebuild:
  Stable on mips, per #181625.

*findutils-4.3.7 (11 Jun 2007)

  11 Jun 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.7.ebuild:
  Version bump.

  11 Jun 2007; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.3.6-fprint-unwritable.patch, findutils-4.3.6-r1.ebuild:
  Skip fprint-unwritable.exp test when run as root #180412 by Steffen Bergner.

  10 Jun 2007; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.6-selinux.diff, findutils-4.3.6-r1.ebuild:
  Update SELinux patch.

  02 Jun 2007; Luca Barbato <lu_zero@gentoo.org> findutils-4.2.31.ebuild:
  Marked ppc and ppc64

  02 Jun 2007; Jeroen Roovers <jer@gentoo.org> findutils-4.2.31.ebuild:
  Stable for HPPA (bug #180538).

  02 Jun 2007; Raúl Porcel <armin76@gentoo.org> findutils-4.2.31.ebuild:
  alpha/ia64/x86 stable wrt #180538

  02 Jun 2007; Christoph Mende <angelos@gentoo.org> findutils-4.2.31.ebuild:
  Stable on amd64 wrt security bug 180538

*findutils-4.3.6-r1 (02 Jun 2007)

  02 Jun 2007; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.3.6-sv-bug-20005.patch, +findutils-4.3.6-r1.ebuild:
  Fix from upstream for #180334 by Randy B.

*findutils-4.2.31 (01 Jun 2007)

  01 Jun 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.31.ebuild:
  Version bump #180538.

  01 Jun 2007; Joshua Kinard <kumba@gentoo.org> findutils-4.2.30.ebuild,
  findutils-4.3.4.ebuild:
  Stable on mips, per #180031.

  31 May 2007; Daniel Gryniewicz <dang@gentoo.org> findutils-4.2.30.ebuild,
  findutils-4.3.4.ebuild:
  Marked stable on amd64 for bug #180031

  28 May 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.2.30.ebuild, findutils-4.3.4.ebuild:
  Stable on sparc wrt #180031

  28 May 2007; Brent Baude <ranger@gentoo.org> findutils-4.2.30.ebuild,
  findutils-4.3.4.ebuild:
  Marking findutils-4.2.30 and -4.3.4 stable for bug 180031

  28 May 2007; Raúl Porcel <armin76@gentoo.org> findutils-4.2.30.ebuild,
  findutils-4.3.4.ebuild:
  alpha/ia64/x86 stable wrt #180031

  28 May 2007; nixnut <nixnut@gentoo.org> findutils-4.2.30.ebuild,
  findutils-4.3.4.ebuild:
  Stable on ppc wrt bug 180031

  28 May 2007; Jeroen Roovers <jer@gentoo.org> findutils-4.2.30.ebuild:
  Stable for HPPA (bug #180031).

  28 May 2007; Jeroen Roovers <jer@gentoo.org> findutils-4.3.4.ebuild:
  Stable for HPPA (bug #180031).

*findutils-4.3.6 (27 May 2007)

  27 May 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.6.ebuild:
  Version bump #179987 by Benno Schulenberg.

  13 May 2007; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.4-selinux.diff, findutils-4.3.4.ebuild:
  Update SELinux patch for 4.3.4.

  12 May 2007; Timothy Redaelli <drizzt@gentoo.org>
  findutils-4.3.2-r1.ebuild, findutils-4.3.4.ebuild:
  Remove x86-fbsd keyword wrt bug #178051.

*findutils-4.3.4 (06 May 2007)

  06 May 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.4.ebuild:
  Version bump #177148.

*findutils-4.3.3 (05 May 2007)
*findutils-4.2.30 (05 May 2007)

  05 May 2007; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.30.ebuild,
  +findutils-4.3.3.ebuild:
  Version bump #175708 by Raul Porcel.

*findutils-4.3.2-r1 (10 Feb 2007)

  10 Feb 2007; Mike Frysinger <vapier@gentoo.org>
  +files/findutils-4.3.2-check-insert-num-ret.patch,
  +findutils-4.3.2-r1.ebuild:
  Fix segfault when given a non-numeric value to some options #166233 by Rafal
  Wijata.

  05 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
  findutils-4.1.20-r2.ebuild:
  Remove gnuconfig_update usage, leave it to econf.

  02 Jan 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.2.29.ebuild, findutils-4.3.2.ebuild:
  Stable on sparc wrt #159437

  30 Dec 2006; Tom Gall <tgall@gentoo.org> findutils-4.2.29.ebuild,
  findutils-4.3.2.ebuild:
  stable on ppc64, bug #159437

  30 Dec 2006; Olivier Crête <tester@gentoo.org> findutils-4.2.29.ebuild,
  findutils-4.3.2.ebuild:
  Stable on amd64 per bug #159437

  30 Dec 2006; Timothy Redaelli <drizzt@gentoo.org> findutils-4.2.29.ebuild,
  findutils-4.3.2.ebuild:
  ppc stable wrt bug #159437

  30 Dec 2006; Andrej Kacian <ticho@gentoo.org> findutils-4.2.29.ebuild,
  findutils-4.3.2.ebuild:
  Stable on x86, bug #159437.

  30 Dec 2006; Bryan Østergaard <kloeri@gentoo.org>
  findutils-4.2.29.ebuild, findutils-4.3.2.ebuild:
  Stable on Alpha, bug 159437.

  30 Dec 2006; Jeroen Roovers <jer@gentoo.org> findutils-4.3.2.ebuild:
  Stable for HPPA (bug #159437).

  30 Dec 2006; Fabian Groffen <grobian@gentoo.org> findutils-4.2.27.ebuild,
  findutils-4.2.28.ebuild, findutils-4.2.29.ebuild, findutils-4.3.0.ebuild,
  findutils-4.3.1.ebuild, findutils-4.3.1-r1.ebuild, findutils-4.3.2.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  24 Dec 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  findutils-4.3.1-r1.ebuild:
  Stable on ppc.

*findutils-4.2.29 (07 Dec 2006)

  07 Dec 2006; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.29.ebuild:
  Version bump #157352 by Benno Schulenberg.

*findutils-4.3.2 (07 Dec 2006)

  07 Dec 2006; Mike Frysinger <vapier@gentoo.org> +findutils-4.3.2.ebuild:
  Version bump #157352 by Benno Schulenberg.

  07 Nov 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.3.1-r1.ebuild:
  Stable on sparc

*findutils-4.3.1-r1 (27 Sep 2006)

  27 Sep 2006; Roy Marples <uberlord@gentoo.org>
  +files/findutils-4.3.1-sv-bug-17490.patch, +findutils-4.3.1-r1.ebuild:
  Fix segfaults when -regex foo is the last argument, #149309.
  Thanks to Michal Januszewski.

  19 Sep 2006; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.1-selinux.diff, findutils-4.3.1.ebuild:
  Update SELinux patch for 4.3.1.

*findutils-4.3.1 (17 Sep 2006)
*findutils-4.2.28 (17 Sep 2006)

  17 Sep 2006; Mike Frysinger <vapier@gentoo.org> +findutils-4.2.28.ebuild,
  +findutils-4.3.1.ebuild:
  Version bump #147541 by Raul Porcel.

  09 Sep 2006; Christel Dahlskjaer <christel@gentoo.org>
  findutils-4.3.0.ebuild:
  Alpha stable for bug #136401

  04 Sep 2006; Joshua Kinard <kumba@gentoo.org> findutils-4.3.0.ebuild:
  Marked stable on mips.

  06 Aug 2006; Guy Martin <gmsoft@gentoo.org> findutils-4.3.0.ebuild:
  Stable on hppa.

  05 Aug 2006; Michael Hanselmann <hansmi@gentoo.org>
  findutils-4.3.0.ebuild:
  Stable on ppc.

  04 Aug 2006; Yuta SATOH <nigoro@gentoo.org> findutils-4.3.0.ebuild:
  Stable on ppc64, bug #136401

  04 Aug 2006; Simon Stelling <blubb@gentoo.org> findutils-4.3.0.ebuild:
  stable on amd64

  02 Aug 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.3.0.ebuild:
  Stable on sparc wrt #136401

  01 Aug 2006; Fabian Groffen <grobian@gentoo.org> findutils-4.3.0.ebuild:
  Marked ppc-macos stable (bug #136401)

  01 Aug 2006; Andrej Kacian <ticho@gentoo.org> findutils-4.3.0.ebuild:
  Stable on x86, bug #136401.

  27 Apr 2006; Alec Warner <antarus@gentoo.org>
  files/digest-findutils-4.1.20-r1, files/digest-findutils-4.1.20-r2,
  files/digest-findutils-4.2.24, files/digest-findutils-4.2.25,
  files/digest-findutils-4.2.27, files/digest-findutils-4.3.0, Manifest:
  Fixing SHA256 digest, pass four

  18 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/findutils-4.3.0-nbsd.patch, +files/gnulib-openat-mode_t.patch,
  findutils-4.2.27.ebuild, findutils-4.3.0.ebuild:
  Add workaround for the glibc 'fix' that breaks Gentoo/FreeBSD, keyword also
  4.3 version. Add workaround for NetBSD systems. Bug #123253.

  07 Apr 2006; Bryan Østergaard <kloeri@gentoo.org metadata.xml:
  Remove ciaranm from metadata.xml.

  31 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
  findutils-4.2.27.ebuild:
  Add ~x86-fbsd keyword.

  19 Feb 2006; Joshua Kinard <kumba@gentoo.org> findutils-4.1.20-r2.ebuild:
  Marked stable on mips.

  19 Jan 2006; Marcus D. Hanwell <cryos@gentoo.org>
  findutils-4.1.20-r2.ebuild:
  Stable on amd64.

  30 Dec 2005; Markus Rothe <corsair@gentoo.org> findutils-4.1.20-r2.ebuild:
  Stable on ppc64

  27 Dec 2005; Bryan Østergaard <kloeri@gentoo.org
  findutils-4.1.20-r2.ebuild:
  Stable on alpha.

  24 Dec 2005; Michael Hanselmann <hansmi@gentoo.org>
  findutils-4.1.20-r2.ebuild:
  Stable on ppc.

  24 Dec 2005; Rene Nussbaumer <killerfox@gentoo.org>
  findutils-4.1.20-r2.ebuild:
  Stable on hppa.

  24 Dec 2005; Chris PeBenito <pebenito@gentoo.org>
  +files/findutils-4.3.0-selinux.diff, findutils-4.3.0.ebuild:
  Update SELinux patch.

  23 Dec 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  findutils-4.1.20-r2.ebuild:
  Stable on sparc

  23 Dec 2005; Mark Loeser <halcy0n@gentoo.org> findutils-4.1.20-r2.ebuild:
  Stable on x86; bug #116424

*findutils-4.1.20-r2 (22 Dec 2005)

  22 Dec 2005; Stefaan De Roeck <stefaan@gentoo.org>
  +findutils-4.1.20-r2.ebuild:
  Remove afs support, as it doesn't do anything useful, and just leaves people
  who want to use newer openafs ebuilds with broken library dependencies (bug
  #116222)

  19 Dec 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.3.0.ebuild:
  Switch to #include_next rather than copying for regex.h

  15 Dec 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.3.0.ebuild:
  4.3.0 is only on alpha

*findutils-4.3.0 (15 Dec 2005)

  15 Dec 2005; Ciaran McCreesh <ciaranm@gentoo.org> +findutils-4.3.0.ebuild:
  New upstream version. Hopefully fixes bug #114747.

*findutils-4.2.27 (07 Dec 2005)

  07 Dec 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  +findutils-4.2.27.ebuild:
  New version.

  05 Nov 2005; Fabian Groffen <grobian@gentoo.org> findutils-4.2.25.ebuild:
  Marked ~ppc-macos (bug #58089)

  10 Oct 2005; Chris PeBenito <pebenito@gentoo.org>
  -files/findutils-4.2.18-selinux.diff,
  -files/findutils-4.2.20-selinux.diff,
  -files/findutils-4.2.23-selinux.patch,
  +files/findutils-4.2.24-selinux.diff, findutils-4.2.24.ebuild,
  findutils-4.2.25.ebuild:
  Clean up SELinux patches.

*findutils-4.2.25 (07 Oct 2005)

  07 Oct 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  -findutils-4.2.18.ebuild, -findutils-4.2.20.ebuild,
  -findutils-4.2.23.ebuild, +findutils-4.2.25.ebuild:
  New version, tidy up older versions

  01 Oct 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.2.24.ebuild:
  Add --without-included-regex, bug #107638

  29 Sep 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.2.24.ebuild:
  Comment out selinux patch stuff until the selinux people get their act
  together. Bug #106908.

  26 Sep 2005; Mike Frysinger <vapier@gentoo.org> findutils-4.2.23.ebuild,
  findutils-4.2.24.ebuild:
  Punt CPPFLAGS hack since it only existed for the purpose of afs which too
  has been punted.

*findutils-4.2.24 (22 Sep 2005)

  22 Sep 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  +findutils-4.2.24.ebuild:
  Version bump

  30 Aug 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.2.23.ebuild:
  Remove AFS support, bug #104132. Remove from package.mask.

*findutils-4.2.23 (30 Aug 2005)

  30 Aug 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  +files/findutils-4.2.23-selinux.patch, +findutils-4.2.23.ebuild:
  Version bump, bug #104132. Initially in package.mask, needs testing on AFS
  and SELinux systems.

  22 May 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  +files/findutils-4.2.20-man.patch, findutils-4.2.20.ebuild:
  Clarify the man page wording, thanks to Jason Bucata in bug #93294

  14 May 2005; Ciaran McCreesh <ciaranm@gentoo.org> findutils-4.2.20.ebuild:
  Add in *bsd things, bug #92588. Change to not use einstall.

*findutils-4.2.20 (17 Mar 2005)

  17 Mar 2005; Ciaran McCreesh <ciaranm@gentoo.org>
  +files/findutils-4.2.20-selinux.diff, +findutils-4.2.20.ebuild:
  Version bump

  20 Feb 2005; Martin Schlemmer <azarah@gentoo.org>
  +files/findutils-4.2.18-gcc295.patch, findutils-4.2.18.ebuild:
  Fix variable definition to be gcc-2.95.3 compatible.

*findutils-4.2.18 (19 Feb 2005)

  19 Feb 2005; Ciaran McCreesh <ciaranm@gentoo.org> metadata.xml,
  +files/findutils-4.2.18-selinux.diff, +findutils-4.2.18.ebuild:
  Version bump, bug #82581. Thanks to spb for testing the updated selinux patch

  01 Jul 2004; <solar@gentoo.org> findutils-4.1.20-r1.ebuild:
  added support for static linking of find/xargs

  10 Jun 2004; Jeremy Huddleston <eradicator@gentoo.org>
  findutils-4.1.20-r1.ebuild:
  Added 'use x86' for matching use afs to fix bug #53599.

  15 May 2004; Joshua Kinard <kumba@gentoo.org> findutils-4.1.20-r1.ebuild:
  Marked stable on mips.

  29 Apr 2004; Ryan Phillips <rphillips@gentoo.org> findutils-4.1.20-r1.ebuild,
  findutils-4.1.20.ebuild, findutils-4.1.7-r2.ebuild,
  findutils-4.1.7-r3.ebuild, findutils-4.1.7-r4.ebuild,
  findutils-4.1.7-r5.ebuild:
  Added a fix for openafs. Fixes #19994

  09 Apr 2004; Brian Jackson <iggy@gentoo.org> findutils-4.1.20-r1.ebuild:
  add s390 keywords

  23 Mar 2004; Joshua Kinard <kumba@gentoo.org> findutils-4.1.20-r1.ebuild:
  Added gnuconfig support for mips.

  23 Mar 2004; Joshua Kinard <kumba@gentoo.org> findutils-4.1.20-r1.ebuild:
  Added ~mips to KEYWORDS.

  09 Mar 2004; <agriffis@gentoo.org> findutils-4.1.20-r1.ebuild:
  stable on alpha and ia64

  10 Feb 2004; Brad House <brad_mssw@gentoo.org> findutils-4.1.20-r1.ebuild:
  ppc64 fix

  07 Feb 2004; <gustavoz@gentoo.org> findutils-4.1.20-r1.ebuild:
  Stable on hppa and sparc

  06 Feb 2004; Martin Schlemmer <azarah@gentoo.org>
  findutils-4.1.20-r1.ebuild:
  Bump to stable for x86.

  17 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org> :
  manifest fix

  16 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org>
  findutils-4.1.20-r1.ebuild:
  set ppc in keywords

  29 Dec 2003; Joshua Kinard <kumba@gentoo.org> findutils-4.1.7-r5.ebuild:
  Added gnuconfig support to detect mips machines properly

  28 Dec 2003; Joshua Kinard <kumba@gentoo.org> findutils-4.1.7-r5.ebuild:
  Move to mips stable (~mips -> mips)

  28 Oct 2003; Chris PeBenito <pebenito@gentoo.org>
  findutils-4.1.20-r1.ebuild, findutils-4.1.20.ebuild,
  findutils-4.1.7-r3.ebuild, findutils-4.1.7-r4.ebuild,
  findutils-4.1.7-r5.ebuild, files/findutils-4.1.20-selinux.diff.bz2:
  Switch SELinux patch from old API to new API.

*findutils-4.1.7-r5 (23 Oct 2003)

  23 Oct 2003; Paul de Vrieze <pauldv@gentoo.org> findutils-4.1.7-r5.ebuild:
  Adding the environment size fix to the stable version too

*findutils-4.1.20-r1 (23 Oct 2003)

  23 Oct 2003; Paul de Vrieze <pauldv@gentoo.org> findutils-4.1.20-r1.ebuild,
  files/findutils-env-size.patch:
  Enlarge the xargs acceptable environment to 50k as 20k is reached with big
  ebuilds as ebuild.sh is "too" large

*findutils-4.1.20 (28 Sep 2003)

  28 Sep 2003; Martin Schlemmer <azarah@gentoo.org> findutils-4.1.20.ebuild:
  Update veersion.

  16 Apr 2003; Patrick Kursawe <phosphan@gentoo.org>
  digest-findutils-4.1.7-r4 :
  digest for selinux patch was missing

*findutils-4.1.7-r4 (11 Apr 2003)

  16 Apr 2003; Christian Birchinger <joker@gentoo.org>
  findutils-4.1.7-r4.ebuild:
  Added stable sparc keyword

  13 Apr 2003; Guy Martin <gmsoft@gentoo.org> findutils-4.1.7-r4.ebuild :
  Added hppa to KEYWORDS.

  12 Apr 2003; Seemant Kulleen <seemant@gentoo.org> findutils-4.1.7-r4.ebuild:
  added ewarns to pkg_postinst to inform of locate and updatedb removal

  12 Apr 2003; Seemant Kulleen <seemant@gentoo.org> findutils-4.1.7-r4.ebuild:
  added ewarns to pkg_postinst to inform of locate and updatedb removal

  11 Apr 2003; Aron Griffis <agriffis@gentoo.org> findutils-4.1.7-r4.ebuild:
  Mark stable on x86 and alpha

  11 Apr 2003; Aron Griffis <agriffis@gentoo.org> findutils-4.1.7-r4.ebuild:
  Point SRC_URI to mirror://gentoo since alpha.gnu.org is no longer supplying
  findutils-4.1.x versions.  See bug 18926.

  11 Apr 2003; Aron Griffis <agriffis@gentoo.org> findutils-4.1.7-r4.ebuild:
  Don't install locate/updatedb because they conflict with slocate, which is a
  better solution. See bug 18729.  Thanks to Michael Sterrett for the concepts
  in the patch.

*findutils-4.1.7-r3 (19 Mar 2003)

  20 Mar 2003; Joshua Brindle <method@gentoo.org> findutils-4.1.7-r3.ebuild:
  fixed selinux dependancy

  19 Mar 2003; Joshua Brindle <method@gentoo.org> findutils-4.1.7-r3.ebuild:
  Added selinux use flag

*findutils-4.1.7-r2 (29 Nov 2002)

  20 Feb 2003; Zach Welch <zwelch@gentoo.org> findutils-4.1.7-r2.ebuild:
  Added arm to keywords.

  09 Feb 2003; Guy Martin <gmsoft@gentoo.org> :
  Added hppa to keywords.

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

  29 Nov 2002; Brad Cowan <bcowan@gentoo.org> findutils-4.1.7-r2.ebuild,
  files/digest-findutils-4.1.7-r2:
  
  Added some library dependencies if use afs, temp fix for bug #260.

*findutils-4.1-r7.ebuild (14 July 2002)

  14 Jul 2002; phoen][x <phoenix@gentoo.org> findutils-4.1-r7.ebuild :
  Added KEYWORDS, SLOT.

*findutils-4.1.7-r1 (12 Mar 2002)

  18 Jan 2003; Jan Seidel <tuxus@gentoo.org> :
  Added mips to keywords

  14 Jul 2002; phoen][x <phoenix@gentoo.org> findutils-4.1.7.ebuild :
  Added KEYWORDS, SLOT.

  14 Jul 2002; phoen][x <phoenix@gentoo.org> findutils-4.1.7-r1.ebuild :
  Added KEYWORDS, SLOT.

  12 Mar 2002; Seemant Kulleen <seemant@gentoo.org> ChangeLog :

  Added USE dependent nls compilation

*findutils-4.1.7 (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.
