# ChangeLog for net-analyzer/tcpdump
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/ChangeLog,v 1.144 2010/04/12 10:32:14 pva Exp $

  12 Apr 2010; Peter Volkov <pva@gentoo.org> tcpdump-4.1.1.ebuild:
  Print elog only if USE=suid, bug #312841, again thank Martin von Gagern
  for report.

*tcpdump-4.1.1 (08 Apr 2010)

  08 Apr 2010; Peter Volkov <pva@gentoo.org> -tcpdump-4.1.0.ebuild,
  -tcpdump-4.1.0-r1.ebuild, -files/tcpdump-4.1.0-without-chroot.patch,
  +tcpdump-4.1.1.ebuild:
  Version bump.

  07 Apr 2010; Peter Volkov <pva@gentoo.org> tcpdump-4.1.0-r1.ebuild:
  Print elog only if USE=suid, bug #312841, thank Martin von Gagern for
  report.

*tcpdump-4.1.0-r1 (02 Apr 2010)

  02 Apr 2010; Peter Volkov <pva@gentoo.org> +tcpdump-4.1.0-r1.ebuild:
  Added suid USE flag to allow users in tcpdump group to sniff traffic, bug
  #283527, thank Hank Leininger for report.

*tcpdump-4.1.0 (02 Apr 2010)

  02 Apr 2010; Peter Volkov <pva@gentoo.org> +tcpdump-4.1.0.ebuild,
  +files/tcpdump-4.1.0-without-chroot.patch:
  Version bump, bug #312337, thank Richard Hartmann for report. Fixes
  inability to run tcpdump if built with USE=-chroot, bug 281936, thank
  Travis Schack for report. Tests are broken in the release.

  12 Feb 2010; Jeroen Roovers <jer@gentoo.org> tcpdump-3.9.8-r1.ebuild:
  Stable for HPPA too.

  01 Jan 2010; Christian Faulhammer <fauli@gentoo.org>
  tcpdump-4.0.1_pre20090709.ebuild:
  Transfer Prefix keywords

*tcpdump-4.0.1_pre20090709 (09 Jul 2009)

  09 Jul 2009; Peter Volkov <pva@gentoo.org> -tcpdump-4.0.0.ebuild,
  -tcpdump-4.0.1_pre20090616.ebuild, +tcpdump-4.0.1_pre20090709.ebuild:
  --disable-chroot is now --without-chroot, bug #277001 thank Conrad
  Kostecki for report. Disable samba support with IUSE default, bug #275100
  thank Matthias Schwarzott for suggestion. Dropped versions not to be
  stabilized.

  17 Jun 2009; Peter Volkov <pva@gentoo.org> tcpdump-3.9.8.ebuild,
  tcpdump-3.9.8-r1.ebuild, tcpdump-4.0.0.ebuild,
  tcpdump-4.0.1_pre20090616.ebuild:
  Make repoman happy: RDEPEND.implicit and ebuild.minorsyn fixed.

*tcpdump-4.0.1_pre20090616 (17 Jun 2009)

  17 Jun 2009; Peter Volkov <pva@gentoo.org>
  +tcpdump-4.0.1_pre20090616.ebuild:
  Bump to recent git snapshot.

  20 Feb 2009; Raúl Porcel <armin76@gentoo.org> tcpdump-4.0.0.ebuild:
  Add ~arm/~s390/~sh wrt #247076

*tcpdump-4.0.0 (16 Nov 2008)

  16 Nov 2008; Peter Volkov <pva@gentoo.org>
  -files/tcpdump-3.9.5-print-802_11.c.diff,
  -files/tcpdump-3.9.6-bgp-integer-overflow.patch,
  +files/tcpdump-4.0.0-ipv6-build.patch,
  +files/tcpdump-4.0.0-libsmi-autodep.patch, metadata.xml,
  -tcpdump-3.9.5-r3.ebuild, -tcpdump-3.9.6-r1.ebuild,
  -tcpdump-3.9.7-r1.ebuild, +tcpdump-4.0.0.ebuild:
  Version bump, bug #245179, thank Krzysztof Olędzki for report. Removed
  old.

  28 Sep 2008; Cédric Krier <cedk@gentoo.org> tcpdump-3.9.8-r1.ebuild:
  Call enewuser/enewgroup in both pkg_setup and pkg_preinst for bug #231917

  10 Sep 2008; Peter Volkov <pva@gentoo.org> tcpdump-3.9.5-r3.ebuild,
  tcpdump-3.9.6-r1.ebuild, tcpdump-3.9.7-r1.ebuild, tcpdump-3.9.8.ebuild,
  tcpdump-3.9.8-r1.ebuild:
  enewuser/enewgroup die on their own, no need to || die

  04 Aug 2008; Jeroen Roovers <jer@gentoo.org> metadata.xml:
  Describe local USE flags for GLEP 56.

  25 Jun 2008; Santiago M. Mola <coldwind@gentoo.org>
  tcpdump-3.9.8-r1.ebuild:
  amd64 stable

  24 Jun 2008; Raúl Porcel <armin76@gentoo.org> tcpdump-3.9.8-r1.ebuild:
  alpha/ia64/sparc/x86 stable

*tcpdump-3.9.8-r1 (30 Mar 2008)

  30 Mar 2008; Cédric Krier <cedk@gentoo.org> +tcpdump-3.9.8-r1.ebuild:
  Add chroot USE for bug #199172

  14 Nov 2007; Jeroen Roovers <jer@gentoo.org> tcpdump-3.9.8.ebuild:
  Stable for HPPA (bug #198476).

  10 Nov 2007; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.8.ebuild:
  Stable on ppc64; bug #198476

  10 Nov 2007; Daniel Gryniewicz <dang@gentoo.org> tcpdump-3.9.8.ebuild:
  Marked stable on amd64 for bug #198476

  09 Nov 2007; nixnut <nixnut@gentoo.org> tcpdump-3.9.8.ebuild:
  Stable on ppc wrt bug 198476

  08 Nov 2007; Raúl Porcel <armin76@gentoo.org> tcpdump-3.9.8.ebuild:
  alpha/ia64/sparc/x86 stable wrt #198476

  13 Oct 2007; Tom Gall <tgall@gentoo.org> tcpdump-3.9.7-r1.ebuild:
  stable on ppc64, bug #193787

*tcpdump-3.9.8 (09 Oct 2007)

  09 Oct 2007; Markus Ullmann <jokey@gentoo.org> +tcpdump-3.9.8.ebuild:
  Version bump wrt bug #194890

  29 Sep 2007; Christoph Mende <angelos@gentoo.org> tcpdump-3.9.7-r1.ebuild:
  Stable on amd64 wrt bug #193787

  28 Sep 2007; nixnut <nixnut@gentoo.org> tcpdump-3.9.7-r1.ebuild:
  Stable on ppc wrt bug 193787

  27 Sep 2007; Jeroen Roovers <jer@gentoo.org> tcpdump-3.9.7-r1.ebuild:
  Stable for HPPA (bug #193787).

  06 Sep 2007; Markus Ullmann <jokey@gentoo.org> ChangeLog:
  Cleanup

  06 Sep 2007; Raúl Porcel <armin76@gentoo.org> tcpdump-3.9.7-r1.ebuild:
  alpha/ia64/x86 stable

  06 Sep 2007; Markus Ullmann <jokey@gentoo.org>
  -files/tcpdump-3.8.3-bgp-infinite-loop2.patch,
  -files/tcpdump-3.8.3-gcc4.patch, -files/tcpdump-3.8.3-gentoo.patch,
  -tcpdump-3.9.5-r2.ebuild, -tcpdump-3.9.6.ebuild:
  Cleanup

  28 Aug 2007; <pva@gentoo.org> -tcpdump-3.9.7.ebuild:
  Cleaned tcpdump ebuild without drop priviledges feature.

*tcpdump-3.9.7-r1 (27 Aug 2007)

  27 Aug 2007; Cédric Krier <cedk@gentoo.org> +tcpdump-3.9.7-r1.ebuild:
  Re-enable drop privileges for bug #176391

  13 Aug 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  tcpdump-3.9.6-r1.ebuild:
  ppc. stable

  06 Aug 2007; Joshua Kinard <kumba@gentoo.org> tcpdump-3.9.6-r1.ebuild:
  Stable on mips.

*tcpdump-3.9.7 (02 Aug 2007)

  02 Aug 2007; Raphael Marichez <falco@gentoo.org> +tcpdump-3.9.7.ebuild:
  Version bump

  26 Jul 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  tcpdump-3.9.6-r1.ebuild:
  Stable on sparc

  24 Jul 2007; Raúl Porcel <armin76@gentoo.org> tcpdump-3.9.6-r1.ebuild:
  alpha/ia64/x86 stable

  16 Jul 2007; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.5-r3.ebuild:
  Stable on ppc64; bug #184815

  16 Jul 2007; Joshua Kinard <kumba@gentoo.org> tcpdump-3.9.5-r3.ebuild:
  Stable on mips, per #184815.

  15 Jul 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  tcpdump-3.9.5-r3.ebuild:
  ppc stable, bug #184815

  13 Jul 2007; Steve Dibb <beandog@gentoo.org> tcpdump-3.9.5-r3.ebuild:
  amd64 stable, security bug 184815

  12 Jul 2007; Jeroen Roovers <jer@gentoo.org> tcpdump-3.9.5-r3.ebuild:
  Stable for HPPA (bug #184815).

  11 Jul 2007; Raúl Porcel <armin76@gentoo.org> tcpdump-3.9.5-r3.ebuild:
  alpha/ia64/x86 stable wrt #184815

  11 Jul 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  tcpdump-3.9.5-r3.ebuild:
  Stable on sparc wrt security #184815

*tcpdump-3.9.6-r1 (10 Jul 2007)
*tcpdump-3.9.5-r3 (10 Jul 2007)

  10 Jul 2007; <pva@gentoo.org>
  +files/tcpdump-3.9.6-bgp-integer-overflow.patch, +tcpdump-3.9.5-r3.ebuild,
  +tcpdump-3.9.6-r1.ebuild:
  Fix vulnerability reported in bug 184815. Thank mu-b <mu-b AT
  digit-labs.org>. Force tcpdump to drop privileges by default. Thank Jukka
  Ruohonen <drear AT iki.fi> for report (bug #176391).

*tcpdump-3.9.6 (23 Jun 2007)

  23 Jun 2007; Cédric Krier <cedk@gentoo.org> +tcpdump-3.9.6.ebuild:
  Version bump

  01 Apr 2007; Marcelo Goes <vanquirius@gentoo.org>
  -tcpdump-3.9.4-r3.ebuild, -tcpdump-3.9.5-r1.ebuild:
  Remove old ebuilds.

  07 Mar 2007; Alexander H. Færøy <eroyf@gentoo.org>
  tcpdump-3.9.5-r2.ebuild:
  Stable on MIPS; bug #168916

  06 Mar 2007; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.5-r2.ebuild:
  Stable on ppc64; bug #168916

  05 Mar 2007; <jrivero@gentoo.org> tcpdump-3.9.5-r2.ebuild:
  Stable on alpha wrt security bug #168916

  03 Mar 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  tcpdump-3.9.5-r2.ebuild:
  Stable on ppc wrt bug #168916.

  02 Mar 2007; Jason Wever <weeve@gentoo.org> tcpdump-3.9.5-r2.ebuild:
  Stable on SPARC wrt security bug #168916.

  02 Mar 2007; Christian Faulhammer <opfer@gentoo.org>
  tcpdump-3.9.5-r2.ebuild:
  stable x86; security bug 168916

  02 Mar 2007; Jeroen Roovers <jer@gentoo.org> tcpdump-3.9.5-r2.ebuild:
  Stable for HPPA (bug #168916).

  02 Mar 2007; Steve Dibb <beandog@gentoo.org> tcpdump-3.9.5-r2.ebuild:
  amd64 stable, bug 168916

*tcpdump-3.9.5-r2 (02 Mar 2007)

  02 Mar 2007; Marcelo Goes <vanquirius@gentoo.org>
  +files/tcpdump-3.9.5-print-802_11.c.diff, -tcpdump-3.9.3.ebuild,
  -tcpdump-3.9.4.ebuild, +tcpdump-3.9.5-r2.ebuild:
  Add print-802_11.c patch for bug 168916. Thanks to Executioner <executioner
  at phobik dot org>. Also, removing old ebuilds.

  18 Dec 2006; Alexander H. Færøy <eroyf@gentoo.org>
  tcpdump-3.9.4-r3.ebuild:
  Stable on IA64.

*tcpdump-3.9.4-r3 (15 Nov 2006)

  15 Nov 2006; Peter Volkov <pva@gentoo.org> -tcpdump-3.9.4-r2.ebuild,
  +tcpdump-3.9.4-r3.ebuild:
  Fixed broken smb ./configure option. Thank Tommy Yu for report in bug #155193.

  04 Nov 2006; Alexander H. Færøy <eroyf@gentoo.org>
  tcpdump-3.9.4-r2.ebuild:
  Stable on Alpha.

*tcpdump-3.9.5-r1 (09 Oct 2006)

  09 Oct 2006; Markus Ullmann <jokey@gentoo.org> +tcpdump-3.9.5-r1.ebuild:
  Readding samba stuff

*tcpdump-3.9.5 (08 Oct 2006)

  08 Oct 2006; Markus Ullmann <jokey@gentoo.org> +tcpdump-3.9.5.ebuild:
  Version bump

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

  16 Aug 2006; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.4-r2.ebuild:
  Stable on ppc64

  13 Aug 2006; Jason Wever <weeve@gentoo.org> tcpdump-3.9.4-r2.ebuild:
  Stable on SPARC.

  06 Aug 2006; Guy Martin <gmsoft@gentoo.org> tcpdump-3.9.4-r2.ebuild:
  Stable on hppa.

  30 Jul 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  tcpdump-3.9.4-r2.ebuild:
  ppc stable

  30 Jul 2006; Daniel Gryniewicz <dang@gentoo.org> tcpdump-3.9.4-r2.ebuild:
  Marked stable on amd64

  29 Jul 2006; Marcelo Goes <vanquirius@gentoo.org>
  -tcpdump-3.8.3-r4.ebuild, -tcpdump-3.8.3-r6.ebuild,
  -tcpdump-3.9.3-r2.ebuild, tcpdump-3.9.4-r2.ebuild:
  Remove old ebuilds, mark 3.9.4-r2 x86 stable.

  12 Jul 2006; Diego Pettenò <flameeyes@gentoo.org>
  tcpdump-3.9.4-r2.ebuild:
  Add ~x86-fbsd keyword.

  28 Jun 2006; Simon Stelling <blubb@gentoo.org> tcpdump-3.9.4.ebuild:
  stable on amd64

  28 Apr 2006; Joshua Kinard <kumba@gentoo.org> tcpdump-3.9.4.ebuild:
  Marked stable on mips.

*tcpdump-3.9.4-r2 (28 Mar 2006)
*tcpdump-3.9.3-r2 (28 Mar 2006)
*tcpdump-3.8.3-r6 (28 Mar 2006)

  28 Mar 2006; Markus Ullmann <jokey@gentoo.org> -tcpdump-3.8.3-r5.ebuild,
  +tcpdump-3.8.3-r6.ebuild, -tcpdump-3.9.3-r1.ebuild,
  +tcpdump-3.9.3-r2.ebuild, -tcpdump-3.9.4-r1.ebuild,
  +tcpdump-3.9.4-r2.ebuild:
  Fixed ssl support, thanks to exg for hint

  18 Mar 2006; Markus Ullmann <jokey@gentoo.org> tcpdump-3.9.3-r1.ebuild,
  tcpdump-3.9.4-r1.ebuild:
  added missing samba IUSE

*tcpdump-3.9.4-r1 (18 Mar 2006)
*tcpdump-3.9.3-r1 (18 Mar 2006)
*tcpdump-3.8.3-r5 (18 Mar 2006)

  18 Mar 2006; Markus Ullmann <jokey@gentoo.org> +tcpdump-3.8.3-r5.ebuild,
  +tcpdump-3.9.3-r1.ebuild, +tcpdump-3.9.4-r1.ebuild:
  Adding big fat warning if we use samba as dependency, configure script has
  weird defaults. Thanks to exg for pointing this out

  09 Mar 2006; Michael Hanselmann <hansmi@gentoo.org> tcpdump-3.9.4.ebuild:
  Stable on ppc.

  27 Feb 2006; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.4.ebuild:
  Stable on ppc64

  27 Feb 2006; Christian Birchinger <joker@gentoo.org> tcpdump-3.9.4.ebuild:
  Added sparc stable keyword

  26 Feb 2006; Marcelo Goes <vanquirius@gentoo.org> tcpdump-3.9.4.ebuild:
  Mark 3.9.4 x86 stable.

  20 Feb 2006; Joshua Kinard <kumba@gentoo.org> tcpdump-3.9.3.ebuild:
  Marked stable on mips.

  15 Feb 2006; Markus Ullmann <jokey@gentoo.org> tcpdump-3.8.3-r4.ebuild,
  tcpdump-3.9.3.ebuild, tcpdump-3.9.4.ebuild:
  Removing virtual/libpcap wrt bug #117898

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

  21 Jan 2006; Markus Rothe <corsair@gentoo.org> tcpdump-3.9.3.ebuild:
  Stable on ppc64

  15 Jan 2006; Michael Hanselmann <hansmi@gentoo.org> tcpdump-3.9.3.ebuild:
  Stable on ppc.

  15 Jan 2006; Marcus D. Hanwell <cryos@gentoo.org> tcpdump-3.9.3.ebuild:
  Stable on amd64, bug 118984.

  09 Jan 2006; Gustavo Zacarias <gustavoz@gentoo.org> tcpdump-3.9.3.ebuild:
  Stable on sparc

*tcpdump-3.9.4 (08 Jan 2006)

  08 Jan 2006; Marcelo Goes <vanquirius@gentoo.org> tcpdump-3.9.3.ebuild,
  +tcpdump-3.9.4.ebuild:
  3.9.4 version bump, marking 3.9.3 x86 stable.

  09 Oct 2005; <mkay@gentoo.org> tcpdump-3.9.3.ebuild:
  Forcing at least -O optymalization. This close bug #108391

*tcpdump-3.9.3 (20 Sep 2005)

  20 Sep 2005; Marcelo Goes <vanquirius@gentoo.org> +tcpdump-3.9.3.ebuild:
  Version bump.

  20 Sep 2005; Marcelo Goes <vanquirius@gentoo.org>
  -tcpdump-3.8.3-r1.ebuild, tcpdump-3.8.3-r4.ebuild:
  inherit eutils.

  02 Jul 2005; Hardave Riar <hardave@gentoo.org> tcpdump-3.8.3-r4.ebuild:
  Stable on mips, bug #95349

*tcpdump-3.8.3-r4 (30 Jun 2005)

  30 Jun 2005; Aaron Walker <ka0ttic@gentoo.org> -tcpdump-3.8.3-r2.ebuild,
  -tcpdump-3.8.3-r3.ebuild, +tcpdump-3.8.3-r4.ebuild:
  Revision bump; previous ebuilds do not enable SSL with USE=ssl, bug 97471.
  Tidy old ebuilds.

  11 Jun 2005; Yuta SATOH <nigoro@gentoo.org> tcpdump-3.8.3-r3.ebuild:
  Stable on ppc64, bug #95349

  10 Jun 2005; Rene Nussbaumer <killerfox@gentoo.org>
  tcpdump-3.8.3-r3.ebuild:
  Stable on hppa.

  10 Jun 2005; Aron Griffis <agriffis@gentoo.org> tcpdump-3.8.3-r3.ebuild:
  stable on alpha ia64 #95349

  10 Jun 2005; Michael Hanselmann <hansmi@gentoo.org>
  tcpdump-3.8.3-r3.ebuild:
  Stable on ppc.

  10 Jun 2005; Jan Brinkmann <luckyduck@gentoo.org> tcpdump-3.8.3-r3.ebuild:
  Stable on amd64 wrt #95349.

  10 Jun 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  tcpdump-3.8.3-r3.ebuild:
  Stable on sparc wrt #95349

*tcpdump-3.8.3-r3 (09 Jun 2005)

  09 Jun 2005; Marcelo Goes <vanquirius@gentoo.org>
  +files/tcpdump-3.8.3-bgp-infinite-loop2.patch, +tcpdump-3.8.3-r3.ebuild:
  Adding patch for security bug 95349.

  15 May 2005; Marcelo Goes <vanquirius@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  Use toolchain-funcs.eclass instead of gcc.eclass. See bug 92745.

  14 May 2005; Aaron Walker <ka0ttic@gentoo.org>
  files/tcpdump-3.8.3-gcc4.patch, tcpdump-3.8.3-r2.ebuild:
  Update gcc4 patch with the proper AC_TRY_LINK fix. Thanks to halcy0n for the
  help.

  14 May 2005; Aaron Walker <ka0ttic@gentoo.org>
  +files/tcpdump-3.8.3-gcc4.patch, tcpdump-3.8.3-r2.ebuild:
  Added patch to make gcc-4 a happy camper; also updated to use
  toolchain-funcs.eclass rather than gcc.eclass.

  07 May 2005; Bryan Østergaard <kloeri@gentoo.org>
  tcpdump-3.8.3-r2.ebuild:
  Stable on alpha + ia64, bug 90541.

  07 May 2005; Omkhar Arasaratnam <omkhar@gentoo.org>
  tcpdump-3.8.3-r2.ebuild:
  Stable on ppc64 wrt #90541

  07 May 2005; Michael Hanselmann <hansmi@gentoo.org>
  tcpdump-3.8.3-r2.ebuild:
  Stable on hppa.

  07 May 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  tcpdump-3.8.3-r2.ebuild:
  Stable on sparc wrt #90541

  06 May 2005; Andrej Kacian <ticho@gentoo.org> tcpdump-3.8.3-r2.ebuild:
  Stable on amd64, bug #90541.

  06 May 2005; Daniel Black <dragonheart@gentoo.org>
  tcpdump-3.8.3-r2.ebuild:
  ppc stable as per bug #90541

*tcpdump-3.8.3-r2 (06 May 2005)

  06 May 2005; Marcelo Goes <vanquirius@gentoo.org>
  +files/tcpdump-3.8.3-gentoo.patch, +tcpdump-3.8.3-r2.ebuild:
  Adding security patch derived from debian to solve bug #90541

  31 Jan 2005; Daniel Black <dragonheart@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  virtual/libpcap transition

  30 Oct 2004; Eldad Zack <eldad@gentoo.org>
  -files/tcpdump-3.6.2-afsprinting.patch, -files/tcpdump-3.7.2-sctp.patch,
  -tcpdump-3.6.2-r1.ebuild, -tcpdump-3.7.1.ebuild, -tcpdump-3.7.2.ebuild,
  -tcpdump-3.8.1.ebuild, -tcpdump-3.8.3.ebuild:
  Cleanup

  17 Jul 2004; Tom Gall <tgall@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  stable on ppc64, bug #56913

  14 Jul 2004; Travis Tilley <lv@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  fix gcc 3.4 fix so that it works with gcc 3.4.1 too

  27 Apr 2004; Aron Griffis <agriffis@gentoo.org> tcpdump-3.7.2.ebuild:
  Add inherit eutils

  04 Apr 2004; Aron Griffis <agriffis@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  Mark stable on alpha and ia64 for bug 46258

  04 Apr 2004; Jon Portnoy <avenj@gentoo.org> tcpdump-3.8.3-r1.ebuild :
  Stable on AMD64

  03 Apr 2004; Jason Wever <weeve@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  Stable on sparc wrt bug #46258.

  03 Apr 2004; <solar@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  stable on x86. Bug #37184,#46258

  03 Apr 2004; Lars Weiler <pylon@gentoo.org> tcpdump-3.8.3-r1.ebuild:
  stable on ppc as requested in bug #46258

*tcpdump-3.8.3-r1 (31 Mar 2004)

  31 Mar 2004; <solar@gentoo.org> metadata.xml, tcpdump-3.8.3-r1.ebuild:
  updated DEPEND's

  30 Mar 2004; Jason Wever <weeve@gentoo.org> tcpdump-3.8.3.ebuild:
  Stable on sparc.

*tcpdump-3.8.3 (30 Mar 2004)

  30 Mar 2004; <solar@gentoo.org> tcpdump-3.6.2-r1.ebuild,
  tcpdump-3.7.1.ebuild, tcpdump-3.7.2.ebuild, tcpdump-3.8.3.ebuild:
  ISAKMP payload handling denial-of-service vulnerabilities. Bugzilla Bug 46258

  30 Mar 2004; Aron Griffis <agriffis@gentoo.org> tcpdump-3.8.1.ebuild:
  Stable on alpha and ia64 for bug 38206

  15 Jan 2004; <gustavoz@gentoo.org> tcpdump-3.8.1.ebuild:
  marked hppa and sparc, fixes #38206

  05 Jan 2004; Daniel Ahlberg <aliz@gentoo.org> tcpdump-3.8.1.ebuild:
  Change optimization levels. Patch by Gustavo Zacarias <gustavoz@gentoo.org> in
  #37184.

*tcpdump-3.8.1 (03 Jan 2004)

  03 Jan 2004; Daniel Ahlberg <aliz@gentoo.org> tcpdump-3.8.1.ebuild:
  Version bump. Closing #37091

  04 Nov 2003; Will Woods <wwoods@gentoo.org> tcpdump-3.7.2.ebuild:
  Added files/tcpdump-3.7.2-sctp.patch, fixing bug #25544

*tcpdump-3.7.2 (03 Mar 2003)

  27 Apr 2003; Zach Welch <zwelch@gentoo.org> tcpdump-3.7.2.ebuild:
  add arm keyword

  25 Apr 2003; Guy Martin <gmsoft@gentoo.org> tcpdump-3.7.2.ebuild :
  Added hppa to KEYWORDS.

  03 Mar 2003; Daniel Ahlberg <aliz@gentoo.org> :
  Security update.

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

*tcpdump-3.7.1 (9 May 2002)

  15 Feb 2003; Nicholas Wourms <dragon@gentoo.org> tcpdump-3.6.2-r1.ebuild tcpdump-3.7.1.ebuild :
  Added mips keyword to ebuilds.

  10 Feb 2003; Peter Johanson <latexer@gentoo.org> tcpdump-3.7.1.ebuild :
  Added ~alpha to KEYWORDS in tcpdump-3.7.1.ebuild.

  17 Aug 2002; Daniel Ahlberg <aliz@gentoo.org> tcpdump-3.7.1.ebuild :
  Moved binary from /usr/bin to /usr/sbin as suggested in #6518.

  21 Jul 2002; Owen Stampflee <owen@gentoo.org> :
  Added PPC to KEYWORDS.

  18 Jul 2002; Kyle Manna <nitro@gentoo.org tcpdump-3.7.1.ebuild
  tcpdump-3.6.2-r1.ebuild :
  Added KEYWORDS, SLOT, and LICENSE.

  9 May 2002; Spider <spider@gentoo.org> tcpdump-3.7.1.ebuild :
  New version again :)  Not sure if this is BETA, devel, tested, working etc.
  But it has the security patch already applied ;)

*tcpdump-3.6.2-r1 (9 May 2002)

  17 Aug 2002; Daniel Ahlberg <aliz@gentoo.org> tcpdump-3.6.2-r1.ebuild :
  Moved binary from /usr/bin to /usr/sbin as suggested in #6518.

  9 May 2002; Spider <spider@gentoo.org> tcpdump-3.6.2-r1.ebuild :
  Yet another security fix. from connectiva this time

*tcpdump-3.6.2 (9 May 2002)

  9 May 2002; Spider <spider@gentoo.org> tcpdump-3.6.2.ebuild :
  Updated version on tcpdump.org, fixes security vulnerability.

*tcpdump-3.6.1 (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.
