# ChangeLog for net-misc/iputils
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/iputils/ChangeLog,v 1.87 2010/09/14 01:58:24 vapier Exp $

*iputils-20100418-r1 (14 Sep 2010)

  14 Sep 2010; Mike Frysinger <vapier@gentoo.org> +iputils-20100418-r1.ebuild,
  +files/iputils-20100418-arping-broadcast.patch:
  Add fix for arping broadcast handling #337049 by Aleksander Machniak.

  06 Sep 2010; Brent Baude <ranger@gentoo.org> iputils-20100418.ebuild:
  Marking iputils-20100418 ppc64 for bug 332527

  04 Sep 2010; Raúl Porcel <armin76@gentoo.org> iputils-20100418.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc stable wrt #332527

  31 Aug 2010; Mike Frysinger <vapier@gentoo.org> iputils-20100418.ebuild,
  +files/iputils-20100418-openssl.patch, +files/iputils-20100418-so_mark.patch:
  Make openssl support optional #335436 by Jorge Manuel B. S. Vicetto. Fix
  building with older linux headers #335347 by Mark Wagner.

  30 Aug 2010; Jeroen Roovers <jer@gentoo.org> iputils-20100418.ebuild:
  Stable for HPPA PPC (bug #332527).

  29 Aug 2010; Markos Chandras <hwoarang@gentoo.org>
  iputils-20100418.ebuild:
  Stable on amd64 wrt bug #332527

  28 Aug 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  iputils-20100418.ebuild:
  x86 stable wrt security bug #332527

  22 Aug 2010; Luca Barbato <lu_zero@gentoo.org>
  +files/iputils-20100418-proper-libs.patch, iputils-20100418.ebuild:
  Fix cross compilation

  14 Aug 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  iputils-20100418.ebuild:
  Add missing dependency over sysfsutils (bug #332703, reported by Ryan
  Hill, diagnosed by Lars Wendler).

*iputils-20100418 (14 Aug 2010)

  14 Aug 2010; Mike Frysinger <vapier@gentoo.org> +iputils-20100418.ebuild,
  +files/iputils-20100418-aliasing.patch,
  +files/iputils-20100418-makefile.patch,
  +files/iputils-20100418-ping-CVE-2010-2529.patch,
  +files/iputils-20100418-printf-size.patch:
  Version bump #306101 by Andrew Brouwers. Add fix for ping CVE-2010-2529
  #332527 by Tim Sammut.

  07 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  iputils-20071127-r2.ebuild:
  Transfer Prefix keywords

  23 Aug 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  iputils-20070202.ebuild:
  Drop to ~mips (for docbook cleanup).

*iputils-20071127-r2 (10 Jun 2008)

  10 Jun 2008; <chainsaw@gentoo.org>
  +files/iputils-20071127-nonroot-floodping.patch,
  +iputils-20071127-r2.ebuild:
  Introduce USE=SECURITY_HAZARD which allows non-root users to floodping.
  This can be useful in some IXP/ISP environments where 10Gbit fibre links
  have to be tested. As the name suggests, it should not be enabled unless
  you know it makes sense for your situation.

*iputils-20071127-r1 (20 Apr 2008)

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-20070202-idn.patch, +iputils-20071127-r1.ebuild:
  Add support for USE=idn #218638 by Hanno Boeck.

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org> iputils-20071127.ebuild:
  Mark amd64 stable.

  31 Mar 2008; Sven Wegener <swegener@gentoo.org> iputils-20071127.ebuild:
  Use mirror://gentoo/ for the manpages.

  29 Mar 2008; Raúl Porcel <armin76@gentoo.org> iputils-20071127.ebuild:
  alpha/ia64/sparc stable wrt #214734

  29 Mar 2008; Jeroen Roovers <jer@gentoo.org> iputils-20071127.ebuild:
  Stable for HPPA (bug #214734).

  29 Mar 2008; Brent Baude <ranger@gentoo.org> ChangeLog:
  Marking iputils-20071127 ppc for bug 214734

  29 Mar 2008; Brent Baude <ranger@gentoo.org> iputils-20071127.ebuild:
  stable ppc64, bug 214734

  29 Mar 2008; Dawid Węgliński <cla@gentoo.org> iputils-20071127.ebuild:
  Stable on x86 (bug #214734)

  29 Mar 2008; Mike Frysinger <vapier@gentoo.org> iputils-20071127.ebuild:
  Fixup manpage install.

  28 Mar 2008; Brent Baude <ranger@gentoo.org> iputils-20071127.ebuild:
  stable ppc, bug 214734

*iputils-20071127 (26 Jan 2008)

  26 Jan 2008; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-20071127-gcc34.patch,
  +files/iputils-20071127-kernel-ifaddr.patch, +iputils-20071127.ebuild:
  Version bump #207289.

  28 Oct 2007; Mike Frysinger <vapier@gentoo.org> iputils-20070202.ebuild:
  Block net-misc/rarpd #197110 by kouyu.

  21 Oct 2007; nixnut <nixnut@gentoo.org> iputils-20070202.ebuild:
  Stable on ppc wrt bug 195915

  19 Oct 2007; Raúl Porcel <armin76@gentoo.org> iputils-20070202.ebuild:
  alpha/ia64/sparc stable wrt #195915

  16 Oct 2007; Christoph Mende <angelos@gentoo.org> iputils-20070202.ebuild:
  Stable on amd64 wrt bug #195915

  16 Oct 2007; Markus Rothe <corsair@gentoo.org> iputils-20070202.ebuild:
  Stable on ppc64; bug #195915

  15 Oct 2007; Christian Faulhammer <opfer@gentoo.org>
  iputils-20070202.ebuild:
  stable x86, bug 195915

  15 Oct 2007; Jeroen Roovers <jer@gentoo.org> iputils-20070202.ebuild:
  Stable for HPPA (bug #195915).

  15 Oct 2007; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-20070202-no-open-max.patch, iputils-20070202.ebuild:
  Fix building with newer kernel headers that lack OPEN_MAX #195861 by Markus
  Meier.

*iputils-99999999 (30 Apr 2007)

  30 Apr 2007; Mike Frysinger <vapier@gentoo.org> +iputils-99999999.ebuild:
  Live git version.

  09 Feb 2007; Alexander H. Færøy <eroyf@gentoo.org>
  iputils-20060512.ebuild:
  Stable on MIPS; bug #165179

  05 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org>
  iputils-20060512.ebuild:
  Stable on alpha wrt bug #165179.

  05 Feb 2007; Jeroen Roovers <jer@gentoo.org> iputils-20060512.ebuild:
  Stable for HPPA (bug #165179).

  04 Feb 2007; Steve Dibb <beandog@gentoo.org> iputils-20060512.ebuild:
  amd64 stable, bug 165179

  04 Feb 2007; nixnut <nixnut@gentoo.org> iputils-20060512.ebuild:
  Stable on ppc wrt bug 165179

  04 Feb 2007; Markus Rothe <corsair@gentoo.org> iputils-20060512.ebuild:
  Added ~ppc64; bug #165179

  03 Feb 2007; Torsten Veller <tove@gentoo.org> iputils-20060512.ebuild:
  Stable on x86 (#165179)

  03 Feb 2007; Jason Wever <weeve@gentoo.org> iputils-20060512.ebuild:
  Stable on SPARC wrt bug #165179.

*iputils-20070202 (03 Feb 2007)

  03 Feb 2007; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-20070202-makefile.patch, +iputils-20070202.ebuild:
  Version bump.

  21 Dec 2006; Mike Frysinger <vapier@gentoo.org> iputils-20060512.ebuild:
  Only generate man pages for USE=doc until next release where they include
  man pages #158660.

*iputils-20060512 (20 Dec 2006)

  20 Dec 2006; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-20060512-RFC3542.patch, +files/iputils-20060512-gcc4.patch,
  +files/iputils-20060512-kernel-ifaddr.patch,
  +files/iputils-20060512-linux-headers.patch,
  +files/iputils-20060512-makefile.patch, +iputils-20060512.ebuild:
  Version bump.

  20 Aug 2006; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-021109-ipv6-updates.patch, iputils-021109-r3.ebuild:
  Handle ipv6 define updates in newer kernels #134751 by Mekong.

  08 Jun 2006; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-021109-gcc4.patch, iputils-021109-r3.ebuild:
  Fixup a lot of incorrect type use.

  06 May 2006; Mike Frysinger <vapier@gentoo.org> iputils-021109-r3.ebuild:
  Generate a ping6.8 symlink to ping.8 as pointed out by Matej Stepanek #132010.

  29 May 2005; <solar@gentoo.org> iputils-021109-r3.ebuild:
  echangelog - update package to use libc expanded variable elibc_uclibc vs
  uclibc so USE=-* works

  02 May 2005; Mike Frysinger <vapier@gentoo.org>
  +files/iputils-021109-bindnow.patch, -files/021109-gcc34.patch,
  +files/iputils-021109-gcc34.patch, iputils-021109-r3.ebuild:
  Update the gcc-inline patch by Dave Stahl #80969 and fix lazy bindings for
  setuid apps #77526.

  18 Jan 2005; Mike Frysinger <vapier@gentoo.org>
  -files/iputils-021109-pfkey.patch, iputils-021109-r3.ebuild:
  Punt setkey since ipsec-tools exists now to handle it #78588.

  03 Jan 2005; Mike Frysinger <vapier@gentoo.org> iputils-021109-r3.ebuild:
  Restore USE=doc with an extra check in case we're in the middle of a
  bootstrap #23156.

  03 Jan 2005; Mike Frysinger <vapier@gentoo.org> iputils-021109-r3.ebuild:
  Make sure linux/ipsec.h is usuable before building ipsec stuff #67569.

  03 Jan 2005; Mike Frysinger <vapier@gentoo.org>
  +files/021109-ipg-linux-2.6.patch, iputils-021109-r3.ebuild:
  Add support to ipg for newer kernels #71756 by Christoph M.

  06 Oct 2004; Travis Tilley <lv@gentoo.org>
  +files/iputils-021109-linux-udp-header.patch, iputils-021109-r3.ebuild:
  fix compiling iputils using newer glibc snapshots

  04 Aug 2004; Jon Portnoy <avenj@gentoo.org> iputils-021109-r3.ebuild :
  Fix bison sed line. Bugs 59414 and 59191.

  01 Jul 2004; Jon Hood <squinky86@gentoo.org> iputils-020927.ebuild,
  iputils-021109-r3.ebuild:
  virtual/glibc -> virtual/libc

  28 Jun 2004; Brandon Hale <tseng@gentoo.org> iputils-021109-r3.ebuild:
  Stable on x86.

  15 Jun 2004; <solar@gentoo.org> iputils-021109-r3.ebuild,
  files/iputils-20020927-no-ether_ntohost.patch:
  added patch to allow iputils to compile with uclibc

  14 Jun 2004; Aron Griffis <agriffis@gentoo.org> iputils-020927.ebuild:
  Fix use invocation

*iputils-021109-r3 (24 Apr 2004)

  24 Apr 2004; Mike Frysinger <vapier@gentoo.org> :
  Remove racoon since (1) net-firewall/ipsec-tools installs this and
  (2) the packaged racoon has a nice remote DoS #48847.

*iputils-021109-r2 (07 Apr 2004)

  09 Apr 2004; Travis Tilley <lv@gentoo.org> iputils-021109-r1.ebuild:
  marked stable on amd64

  08 Apr 2004; Joshua Kinard <kumba@gentoo.org> iputils-020927.ebuild:
  Typo fix

  07 Apr 2004; Mike Frysinger <vapier@gentoo.org> :
  Clean up src_unpack and src_compile steps and add flex/openssl to DEPEND #38774.

  23 Mar 2004; Daniel Ahlberg <aliz@gentoo.org> iputils-021109-r1.ebuild:
  Closing #44555.

  01 Mar 2004; Tom Gall <tgall@gentoo.org> iputils-021109-r1.ebuild:
  make sure ppc64 has yacc dependancy

  16 Jan 2004; Bartosch Pixa <darkspecter@gentoo.org> :
  set ppc in keywords

  13 Jan 2004; Ned Ludd <solar@gentoo.org> iputils-021109-r1.ebuild:
  Make ipv6 traceroute6, tracepath6 and ping6 made optional based on 
  ipv6 use flag. Prepare for x86 stable in the next day to two for
  GRP release.

*iputils-021109-r1 (13 Jan 2004)

  12 Jan 2004; Luca Barbato <lu_zero@gentoo.org> iputils-021109.ebuild:
  Marked ppc to match the linux-headers changes

  08 Jan 2004; <plasmaroo@gentoo.org> iputils-021109.ebuild:
  Added 2.6 support; this now installs setkey and racoon if you have 2.6
  headers.

*iputils-021109 (16 Nov 2003)

  16 Nov 2003; Joshua Kinard <kumba@gentoo.org> iputils-021109.ebuild:
  Version bump to a package that appears to be beta. It builds against 2.4.22+
  linux-headers, however, so worth testing.

*iputils-020927 (03 Jan 2003)

  21 Sep 2003; Mike Frysinger <vapier@gentoo.org> :
  Add static support #29202.

  12 Aug 2003; Jason Wever <weeve@gentoo.org> iputils-020927.ebuild:
  Changed ~sparc keyword to sparc.

  07 Jul 2003; Jan Seidel <tuxus@gentoo.org> iputils-020927.ebuild:
  Mark stable on mips

  01 Jul 2003; Luca Barbato <lu_zero@gentoo.org> iputils-020927.ebuild:
  Mark stable on ppc

  24 Jun 2003; Aron Griffis <agriffis@gentoo.org> iputils-020927.ebuild:
  Mark stable on alpha

  20 Jun 2003; Jon Portnoy <avenj@gentoo.org> iputils-020927.ebuild :
  Temporarily yanked out all of the USE="doc" stuff until a more
  permanent fix can be implemented. Was breaking emerge system for 
  users with doc in USE.

  06 Apr 2003; Guy Martin <gmsoft@gentoo.org> iputils-020927.ebuild :
  Marked stable on hppa. Changed depend sys-kernel/linux-headers to virtual/os-headers.

  24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> iputils-020927.ebuild :
  Added testing mips keyword to the ebuild.

  03 Jan 2003; Daniel Ahlberg <aliz@gentoo.org> iputils-020927.ebuild :
  Version bump, found by Torgeir Hansen <torgeir@trenger.ro> in #13052.
  Made use of "doc" use variable to decide whetever to depend on openjade to
  compile and install documentation.

  03 Jan 2003; Daniel Ahlberg <aliz@gentoo.org> iputils-020124-r1.ebuild :
  Changed where the bins are installed. Also made ping and traceroute tools setuid.
  Closes #10090.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*iputils-020124-r1 (16 Aug 2002)

  06 Apr 2003; Guy Martin <gmsoft@gentoo.org> iputils-020124-r1.ebuild :
  Changed depend sys-kernel/linux-headers to virtual/os-headers.

  12 Feb 2003; Guy Martin <gmsoft@gentoo.org> iputils-020124-r1.ebuild :
  Added hppa to keywords.

  24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> iputils-020124-r1.ebuild :
  Added stable mips keyword to the ebuild.

  16 Aug 2002; Matthew Turk <satai@gentoo.org> ChangeLog:

  Updated by enabling documentation; recent changes in DocBook ebuilds have
  fixed the outstanding issues.

*iputils-020124 (16 Jul 2002)

  24 Feb 2003; Nicholas Wourms <dragon@gentoo.org> iputils-020124.ebuild :
  Added stable mips keyword to the ebuild.

  16 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog  :

  new package
