# ChangeLog for net-ftp/netkit-tftp
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-ftp/netkit-tftp/ChangeLog,v 1.21 2008/09/24 05:13:27 jer Exp $

  24 Sep 2008; Jeroen Roovers <jer@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  Stable for HPPA (bug #237821).

  20 Sep 2008; nixnut <nixnut@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  Stable on ppc wrt bug 237821

  18 Sep 2008; Markus Meier <maekke@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  amd64 stable, bug #237821

  17 Sep 2008; Brent Baude <ranger@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  stable ppc64, bug 237821

  17 Sep 2008; Raúl Porcel <armin76@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  sparc/x86 stable wrt #237821

  18 Jul 2008; Jeroen Roovers <jer@gentoo.org> netkit-tftp-0.17-r7.ebuild:
  Marked ~hppa (for net-analyzer/sara).

*netkit-tftp-0.17-r7 (16 May 2008)

  16 May 2008; Peter Volkov <pva@gentoo.org>
  +files/netkit-tftp-0.17-socket-reopen-on-errors.patch,
  +files/netkit-tftp-0.17-tftpd-put-fixes.patch,
  -netkit-tftp-0.17-r5.ebuild, +netkit-tftp-0.17-r7.ebuild:
  Fixed WRQ handling in tftpd, backported changes from debian and now we
  reopen socket on all errors. Removed old.

*netkit-tftp-0.17-r6 (29 Mar 2008)

  29 Mar 2008; Mike Frysinger <vapier@gentoo.org>
  +netkit-tftp-0.17-r6.ebuild:
  Fixup manpage install and cleanup ebuild.

  23 Mar 2008; Brent Baude <ranger@gentoo.org> netkit-tftp-0.17-r5.ebuild:
  stable ppc, bug 214049

  22 Mar 2008; Raúl Porcel <armin76@gentoo.org> netkit-tftp-0.17-r5.ebuild:
  sparc stable wrt #214049

  21 Mar 2008; Brent Baude <ranger@gentoo.org> netkit-tftp-0.17-r5.ebuild:
  stable ppc64, bug 214049

  21 Mar 2008; Markus Meier <maekke@gentoo.org> netkit-tftp-0.17-r5.ebuild:
  amd64/x86 stable, bug #214049

*netkit-tftp-0.17-r5 (20 Feb 2008)

  20 Feb 2008; <pva@gentoo.org> netkit-tftp-0.17-r3.ebuild,
  netkit-tftp-0.17-r4.ebuild, +netkit-tftp-0.17-r5.ebuild:
  Fixed filtering out of LDFLAGS, bug 209740, thank you Diego Pettenò!
  Compiler is now set correctly.

  05 Feb 2008; Markus Rothe <corsair@gentoo.org> netkit-tftp-0.17-r4.ebuild:
  Stable on ppc64

  21 Jan 2008; Raúl Porcel <armin76@gentoo.org> netkit-tftp-0.17-r4.ebuild:
  sparc/x86 stable

*netkit-tftp-0.17-r4 (19 Jul 2007)

  19 Jul 2007; <pva@gentoo.org>
  +files/netkit-tftp-0.17-tftp-connect-segfault.patch,
  +files/netkit-tftp-0.17-tftp-fix-put-zero-size.diff,
  +files/netkit-tftp-0.17-tftp-manpage-typo.patch, +files/tftp-dgram,
  +files/tftp-stream, metadata.xml, +netkit-tftp-0.17-r4.ebuild:
  Bunch of fixes reported and some fixed in debian: segfault during tftp
  connect (see debian bug #375365), manpage typo (debian #310347), and put
  command in tftp now works (debian #88286). Added example files for xinetd,
  and dodoc now installs README, ChangeLog and BUGS. Took maintenance.

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

*netkit-tftp-0.17-r3 (21 Feb 2007)

  21 Feb 2007; Anant Narayanan <anant@gentoo.org> +files/man.patch, +files/memset.patch,
  -netkit-tftp-0.17-r2.ebuild, +netkit-tftp-0.17-r3.ebuild:
  Add two patches to install man pages in /usr/share/man instead of /usr/man and
  solve 2 QA warnings. Closes bugs #167800 and #167858

  21 Sep 2004; Tom Gall <tgall@gentoo.org> netkit-tftp-0.17-r2.ebuild:
  stable on ppc64

*netkit-tftp-0.17-r2 (30 Oct 2003)

  30 Oct 2003; Heinrich Wendel <lanius@gentoo.org> netkit-tftp-0.17.ebuild:
  virtual/tftp

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*netkit-tftp-0.17-r1 (22 Apr 2002)

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

   20 Oct 2002; Calum Selkirk <cselkirk@gentoo.org> netkit-tftp-0.17.ebuild 
   netkit-tftp-0.17-1.ebuild :

   Added ppc to KEYWORDS.

   09 Jul 2002; phoen][x <phoenix@gentoo.org> netkit-tftp-0.17-r1.ebuild:
   Added KEYWORDS, LICENSE, SLOT.

   22 Apr 2002; Ryan Phillips <rphillips@gentoo.org> netkit-tftp-0.17-r1.ebuild   
   Patched netkit-tftp-0.17 to actually install in.tftpd and man pages.
   Fixes (#1997)
   
*netkit-tftp-0.17 (18 Feb 2002)

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

   09 Jul 2002; phoen][x <phoenix@gentoo.org> netkit-tftp-0.17.ebuild:
   Added KEYWORDS, LICENSE, SLOT.

   18 Feb 2002; F.Meyndert <m0rpheus@gentoo.org> netkit-tftp-0.17.ebuild,   
   New ebuild for netkit-tftp, ftp client and server.

