# ChangeLog for net-ftp/vsftpd
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-ftp/vsftpd/ChangeLog,v 1.120 2009/11/30 16:53:09 voyageur Exp $

*vsftpd-2.2.2 (30 Nov 2009)

  30 Nov 2009; Bernard Cafarelli <voyageur@gentoo.org> +vsftpd-2.2.2.ebuild:
  Version bump, bug #294325

*vsftpd-2.2.1 (29 Oct 2009)

  29 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> +vsftpd-2.2.1.ebuild,
  metadata.xml:
  Version bump, bug #290970. Also add net-ftp as herd

  24 Aug 2009; Stephanie Lockwood-Childs <wormo@gentoo.org>
  +files/vsftpd-2.2.0-dont-link-caps.patch:
  Need new version of caps-disabling patch to apply cleanly to 2.2.0
  (bug #282494, reported by Sergey Plyukhin)

*vsftpd-2.2.0 (23 Aug 2009)

  23 Aug 2009; Víctor Ostorga <vostorga@gentoo.org> +vsftpd-2.2.0.ebuild,
  +files/vsftpd-2.2.0-gentoo.patch:
  Version bump to 2.2.0

*vsftpd-2.1.2 (30 May 2009)
*vsftpd-2.1.0-r1 (30 May 2009)

  30 May 2009; Raúl Porcel <armin76@gentoo.org>
  files/vsftpd-2.1.0-gentoo.patch, +files/vsftpd-2.1.2-dont-link-caps.patch,
  -vsftpd-2.0.6.ebuild, -vsftpd-2.1.0.ebuild, +vsftpd-2.1.0-r1.ebuild,
  +vsftpd-2.1.2.ebuild:
  Version bump, fix xinetd example, bug #266881, force libcap-2, bug #266806,
  bug #268353

  25 Apr 2009; Raúl Porcel <armin76@gentoo.org> vsftpd-2.1.0.ebuild:
  arm/ia64/s390/sh/sparc stable wrt #266664

  19 Apr 2009; Markus Meier <maekke@gentoo.org> vsftpd-2.1.0:
  amd64/x86 stable, bug #266664

  19 Apr 2009; Brent Baude <ranger@gentoo.org> vsftpd-2.1.0.ebuild:
  Marking vsftpd-2.1.0 ppc64 and ppc for bug 266664

  18 Apr 2009; Tobias Klausmann <klausman@gentoo.org> vsftpd-2.1.0.ebuild:
  Stable on alpha, bug #266664

  24 Feb 2009; Raúl Porcel <armin76@gentoo.org> vsftpd-2.0.7-r1.ebuild:
  arm/s390/sh stable

*vsftpd-2.1.0 (23 Feb 2009)

  23 Feb 2009; Raúl Porcel <armin76@gentoo.org>
  +files/vsftpd-2.1.0-caps.patch, +files/vsftpd-2.1.0-dont-link-caps.patch,
  +files/vsftpd-2.1.0-gentoo.patch, +vsftpd-2.1.0.ebuild:
  Version bump

  09 Feb 2009; Christoph Mende <angelos@gentoo.org> vsftpd-2.0.7-r1.ebuild:
  QA: Removed logrotate USE flag, the logrotate.d file is installed
  unconditionally now (bug 258180)

  07 Jan 2009; Raúl Porcel <armin76@gentoo.org> vsftpd-2.0.7-r1.ebuild:
  alpha/ia64/x86 stable wrt #248458

  02 Jan 2009; Dawid Węgliński <cla@gentoo.org> vsftpd-2.0.7-r1.ebuild:
  Stable on amd64 (bug #248458)

  31 Dec 2008; Friedrich Oslage <bluebird@gentoo.org>
  vsftpd-2.0.7-r1.ebuild:
  Stable on sparc, bug #248458

  28 Dec 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  vsftpd-2.0.7-r1.ebuild:
  ppc stable, bug #248458

  27 Dec 2008; Brent Baude <ranger@gentoo.org> vsftpd-2.0.7-r1.ebuild:
  stable ppc64, bug 248458

  26 Dec 2008; Raúl Porcel <armin76@gentoo.org>
  -files/vsftpd-2.0.5-anon-upload-umask.patch,
  +files/vsftpd-2.0.7-uclibc.patch, vsftpd-2.0.7-r1.ebuild:
  Also add a patch from Debian to fix uclibc build, bug #241720

*vsftpd-2.0.7-r1 (26 Dec 2008)

  26 Dec 2008; Raúl Porcel <armin76@gentoo.org> files/vsftpd.init,
  -vsftpd-2.0.5-r3.ebuild, -vsftpd-2.0.7.ebuild, +vsftpd-2.0.7-r1.ebuild:
  Fix init script, bug 234278

  21 Aug 2008; Doug Goldstein <cardoe@gentoo.org> metadata.xml:
  add GLEP 56 USE flag desc from use.local.desc

*vsftpd-2.0.7 (31 Jul 2008)

  31 Jul 2008; Raúl Porcel <armin76@gentoo.org> +vsftpd-2.0.7.ebuild:
  Version bump

  02 Jun 2008; Jeremy Olexa <darkside@gentoo.org> files/vsftpd.init:
  Modified init script to allow vsftpd to stop correctly. Thanks to Vaclav
  Adamik for the suggestion, bug #223225

  14 May 2008; Diego Pettenò <flameeyes@gentoo.org> vsftpd-2.0.5-r3.ebuild,
  vsftpd-2.0.6.ebuild:
  Make the pam USE flag only depend on virtual/pam.

  04 Apr 2008; Kenneth Prugh <ken69267@gentoo.org> vsftpd-2.0.6.ebuild:
  amd64 stable, bug #214959

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

  28 Mar 2008; Brent Baude <ranger@gentoo.org> vsftpd-2.0.6.ebuild:
  stable ppc, bug 214959

  27 Mar 2008; Markus Rothe <corsair@gentoo.org> vsftpd-2.0.6.ebuild:
  Stable on ppc64; bug #214959

  26 Mar 2008; Raúl Porcel <armin76@gentoo.org> vsftpd-2.0.6.ebuild:
  alpha/ia64/sparc stable

  26 Feb 2008; Raúl Porcel <armin76@gentoo.org>
  -files/vsftpd-2.0.5-caps.patch, +files/vsftpd-2.0.6-caps.patch,
  +files/vsftpd-2.0.6-libcap1.patch, vsftpd-2.0.5-r3.ebuild,
  vsftpd-2.0.6.ebuild:
  Finally fix the libcap mess, bug #210478

  21 Feb 2008; Raúl Porcel <armin76@gentoo.org> vsftpd-2.0.5-r3.ebuild,
  vsftpd-2.0.6.ebuild:
  Fix caps failure wrt #210478

*vsftpd-2.0.6 (14 Feb 2008)

  14 Feb 2008; Raúl Porcel <armin76@gentoo.org> +vsftpd-2.0.6.ebuild:
  Version bump

  25 Dec 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
  Removing uberlord from metadata.xml as per #199318. Assigning to
  maintainer-needed.

  09 Jul 2007; Roy Marples <uberlord@gentoo.org> vsftpd-2.0.5-r3.ebuild:
  Keyworded ~x86-fbsd

*vsftpd-2.0.5-r3 (26 Jun 2007)

  26 Jun 2007; Roy Marples <uberlord@gentoo.org>
  +files/vsftpd-2.0.5-anon-upload-umask.patch, +vsftpd-2.0.5-r3.ebuild:
  Fix anon umask uploads, #183213 thanks to Serhij S. Stasyuk

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

  11 May 2007; Jose Luis Rivero <yoswink@gentoo.org> vsftpd-2.0.5-r2.ebuild:
  Stable on alpha wrt bug #166805

*vsftpd-2.0.5-r2 (10 Apr 2007)

  10 Apr 2007; Roy Marples <uberlord@gentoo.org> files/vsftpd.init,
  +vsftpd-2.0.5-r2.ebuild:
  Fix the init script to muliplex better, #173923 thanks to Grégoire Baron

*vsftpd-2.0.5-r1 (02 Apr 2007)

  02 Apr 2007; Roy Marples <uberlord@gentoo.org> files/vsftpd.init,
  +vsftpd-2.0.5-r1.ebuild:
  Bump for a non-bash init script.

  17 Mar 2007; Steve Dibb <beandog@gentoo.org> vsftpd-2.0.5.ebuild:
  amd64 stable, bug 166805

  18 Feb 2007; nixnut <nixnut@gentoo.org> vsftpd-2.0.5.ebuild:
  Stable on ppc wrt bug 166805

  16 Feb 2007; Markus Rothe <corsair@gentoo.org> vsftpd-2.0.5.ebuild:
  Stable on ppc64; bug #166805

  14 Feb 2007; Gustavo Zacarias <gustavoz@gentoo.org> vsftpd-2.0.5.ebuild:
  Stable on sparc wrt #166805

  14 Feb 2007; Christian Faulhammer <opfer@gentoo.org> vsftpd-2.0.5.ebuild:
  stable x86; bug 166805

  14 Jan 2007; Roy Marples <uberlord@gentoo.org>
  +files/vsftpd-2.0.5-caps.patch, vsftpd-2.0.5.ebuild:
  Fix building without the caps USE flag, #159488.

  23 Nov 2006; Roy Marples <uberlord@gentoo.org> vsftpd-2.0.5.ebuild:
  Support cross compiling, #155975 thanks to Attila Fazekas.

  14 Oct 2006; Roy Marples <uberlord@gentoo.org>
  -files/vsftpd-2.0.3-gentoo.diff, -files/vsftpd.conf.d, files/vsftpd.init,
  -files/vsftpd.init.d, -vsftpd-2.0.3-r1.ebuild:
  Quiet stopping and punt old version.

*vsftpd-2.0.5 (14 Jul 2006)

  14 Jul 2006; Roy Marples <uberlord@gentoo.org> +vsftpd-2.0.5.ebuild:
  Version bump.

  16 May 2006; Markus Rothe <corsair@gentoo.org> vsftpd-2.0.4-r1.ebuild:
  Stable on ppc64; bug #132650

  14 May 2006; Thomas Cort <tcort@gentoo.org> vsftpd-2.0.4-r1.ebuild:
  Stable on alpha wrt Bug #132650.

  14 May 2006; Chris Gianelloni <wolf31o2@gentoo.org>
  vsftpd-2.0.4-r1.ebuild:
  Stable on x86 wrt bug #132650.

  14 May 2006; Jason Wever <weeve@gentoo.org> vsftpd-2.0.4-r1.ebuild:
  Stable on SPARC wrt bug #132650.

  14 May 2006; Luis Medinas <metalgod@gentoo.org> vsftpd-2.0.4-r1.ebuild:
  Stable on amd64. Bug #132650.

  11 May 2006; Tobias Scherbaum <dertobi123@gentoo.org>
  vsftpd-2.0.4-r1.ebuild:
  ppc stable, bug #132650

  08 May 2006; Roy Marples <uberlord@gentoo.org> vsftpd-2.0.4-r1.ebuild:
  Don't install the installation document - lol.

*vsftpd-2.0.4-r1 (31 Jan 2006)

  31 Jan 2006; Roy Marples <uberlord@gentoo.org> +vsftpd-2.0.4-r1.ebuild:
  Let portage control stripping and configure libcap dependancy via the cap USE
  flag, #120891.

*vsftpd-2.0.4 (10 Jan 2006)

  10 Jan 2006; Roy Marples <uberlord@gentoo.org> +files/vsftpd.logrotate,
  +vsftpd-2.0.4.ebuild:
  logrotate support, #115320.
  New release, #118464.

*vsftpd-2.0.3-r2 (20 Oct 2005)

  20 Oct 2005; Roy Marples <uberlord@gentoo.org>
  +files/vsftpd-2.0.3-gentoo.patch, +files/vsftpd.init, -files/vsftpd.pam,
  -files/vsftpd.pam-include, +vsftpd-2.0.3-r2.ebuild:
  New init script which allows for running multiple vsftpd daemons with
  different config files - works like net.ethx scripts, #97140

  Punted unused pam files.

  Patch now updates the default vsftpd.conf for using /etc/vsftpd instead
  of maintaining our own config.

  02 Oct 2005; MATSUU Takuto <matsuu@gentoo.org> vsftpd-2.0.3-r1.ebuild:
  Stable on sh

  19 Sep 2005; Roy Marples <uberlord@gentoo.org> -vsftpd-1.2.2.ebuild,
  vsftpd-2.0.3-r1.ebuild:
  New USE flag selinux now depends on the selinux-ftpd policy, wrt #106355.
  
  Punted the old 1.2.2 ebuild - 2.0.3-r1 stable on all arches :)

  17 Sep 2005; Aron Griffis <agriffis@gentoo.org> vsftpd-2.0.3-r1.ebuild:
  Mark 2.0.3-r1 stable on alpha

  14 Aug 2005; Michael Hanselmann <hansmi@gentoo.org>
  vsftpd-2.0.3-r1.ebuild:
  Stable on ppc.

  08 Aug 2005; Markus Rothe <corsair@gentoo.org> vsftpd-2.0.3-r1.ebuild:
  Stable on ppc64

  03 Aug 2005; Roy Marples <uberlord@gentoo.org> files/vsftpd.conf:
  Fixed vsftpd.conf example wrt bug #101137

  28 Jul 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  vsftpd-2.0.3-r1.ebuild:
  Stable on sparc

  27 Jul 2005; Roy Marples <uberlord@gentoo.org>
  -files/vsftpd-2.0.1-gentoo.diff, -vsftpd-2.0.2.ebuild,
  -vsftpd-2.0.3.ebuild, vsftpd-2.0.3-r1.ebuild:
  Stable on amd64 and x86.

*vsftpd-2.0.3-r1 (28 Jun 2005)

  28 Jun 2005; Roy Marples <uberlord@gentoo.org>
  +files/vsftpd-2.0.3-gentoo.diff, +vsftpd-2.0.3-r1.ebuild,
  files/vsftpd.conf:
  Added dependency on ftpbase - fixes #96258
  
  Changed default options of /etc/vsftpd/vsftpd.something
  to /etc/vsftpd/something - exception is /etc/vsftpd/vsftpd.conf
  This makes is more consistent with the default vsftpd installation.
  
  Default log file is now /var/log/vsftpd.log - which is the package default
  
  Default PAM service name is now ftp again

  07 Jun 2005; Roy Marples <uberlord@gentoo.org>
  -files/vsftpd-1.0.1-gentoo.diff, -files/vsftpd-1.2.0-gentoo.diff.bz2,
  metadata.xml, -vsftpd-1.0.1-r1.ebuild, -vsftpd-1.2.0-r1.ebuild,
  -vsftpd-1.2.1.ebuild, -vsftpd-2.0.1.ebuild, vsftpd-2.0.3.ebuild:
  punted old versions
  ipv6 flag dropped for 2.0.3 - I'm sure xinetd users can add the ipv6
  flag to the /etc/xinetd.d/vsftpd themselves if needed - fixes #75609
  added background=YES and listen=YES to the default config - fixes #78347
  tweaked DEPEND to work with sys-libs/pam and virtual/pam

*vsftpd-2.0.3 (07 Jun 2005)

  07 Jun 2005; Roy Marples <uberlord@gentoo.org> files/vsftpd.init.d,
  +files/vsftpd.pam-include, files/vsftpd.xinetd, files/vsftpd.xinetd.ipv6,
  metadata.xml, +vsftpd-2.0.3.ebuild:
  init.d script now checks for listen=YES or listen_ipv6=YES - fixes #54228
  xinetd USE flag added to make support of it optional - fixes #75892
  USERID removed from xinetd files - fixes #78764
  init.d script now does a "killall vsftpd" when stopping - fixes #81819
  cleaner ebuild - fixes #84733 thanks to Diego Pettenò <flameeyes@gentoo.org>

*vsftpd-2.0.2 (13 Mar 2005)

  13 Mar 2005; <solar@gentoo.org> +vsftpd-2.0.2.ebuild:
  - version bump. fixes an issue with SSL secured data connections dropping out

  09 Feb 2005; <solar@gentoo.org> vsftpd-2.0.1.ebuild:
  - remove fPIC filtering on vsftpd-2.0.1 (no longer needed) bug #74519

  09 Feb 2005; Jeffrey Forman <jforman@gentoo.org> vsftpd-2.0.1.ebuild:
  didnt compile, fixed the ebuild per bug 79202, thanks Rob!

  22 Jan 2005; <solar@gentoo.org> vsftpd-1.2.2.ebuild:
  - remove fPIC filtering on vsftpd-1.2.2. (no longer needed) bug #74519

  17 Jan 2005; Jeffrey Forman <jforman@gentoo.org> vsftpd-2.0.1.ebuild:
  Add support to build vsftpd without pam, bug 65981, thanks Rob!

  29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  30 Sep 2004; Jeffrey Forman <jforman@gentoo.org> files/vsftpd.init.d:
  updated init.d/vsftpd to remove source cmd per bug #51908

  28 Sep 2004; Tom Gall <tgall@gentoo.org> vsftpd-1.2.2.ebuild, 
  +vsftpd-1.2.2-ppc64.diff:
  fix bug #64175 for ppc64

  25 Sep 2004; Tom Martin <slarti@gentoo.org> vsftpd-2.0.1.ebuild:
  Fixed the epatch line in the ebuild to not include `.bz2' (see jforman's
  comment below).

  24 Sep 2004; Jeffrey Forman <jforman@gentoo.org> vsftpd-2.0.1.ebuild:
  added patch for gentoo-friendly file locations, wrt bug #65116

*vsftpd-2.0.1 (23 Sep 2004)

  23 Sep 2004; Jeffrey Forman <jforman@gentoo.org> vsftpd-2.0.1.ebuild:
  ~ on all arch's for testing

  23 Sep 2004; Jeffrey Forman <jforman@gentoo.org> :
  New ebuild, vsftp-2.0.1, -$arch on all. Adds SSL/TLS support

  13 Jul 2004; Tom Gall <tgall@gentoo.org> vsftpd-1.2.2.ebuild:
  stable on ppc64, bug #53116

  15 Jun 2004; Brandon Hale <tseng@gentoo.org> vsftpd-1.2.2.ebuild:
  Stable on x86, bug #53116

  15 Jun 2004; Jason Wever <weeve@gentoo.org> vsftpd-1.2.2.ebuild:
  Marked stable on sparc wrt bug #53116.

  15 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> vsftpd-1.2.2.ebuild:
  Stable on alpha, bug 53116.

*vsftpd-1.2.2 (15 Jun 2004)

  15 Jun 2004; <solar@gentoo.org> vsftpd-1.2.2.ebuild:
  security version bump bug #53116

  10 Jun 2004; Aron Griffis <agriffis@gentoo.org> vsftpd-1.2.0-r1.ebuild,
  vsftpd-1.2.1.ebuild:
  Fix use invocation

  05 Jun 2004; Michael Hanselmann <hansmi@gentoo.org> vsftpd-1.2.1.ebuild:
  Added ~ppc to KEYWORDS.

  03 Jun 2004; Tom Gall <tgall@gentoo.org> vsftpd-1.2.1.ebuild:
  stable on ppc64, bug #52907

  30 Mar 2004; Michael Sterrett <mr_bones_@gentoo.org> vsftpd-1.2.0-r1.ebuild,
  vsftpd-1.2.1.ebuild:
  move filter-flags into src_unpack()

  29 Mar 2004; <randy@gentoo.org> vsftpd-1.2.1.ebuild:
  adding s390 keywords

  14 Mar 2004; Jason Wever <weeve@gentoo.org> vsftpd-1.2.1.ebuild:
  Stable on sparc.

  02 Mar 2004; Jason Wever <weeve@gentoo.org> vsftpd-1.2.1.ebuild:
  Added the super spiffy ~sparc keyword :)

  27 Feb 2004; Rajiv Aaron Manglani <rajiv@gentoo.org> vsftpd-1.2.1.ebuild:
  marked stable on x86.

  26 Feb 2004; Aron Griffis <agriffis@gentoo.org> vsftpd-1.2.1.ebuild:
  stable on alpha and ia64

  01 Feb 2004; Jon Portnoy <avenj@gentoo.org> vsftpd-1.2.1.ebuild :
  AMD64 keywords.

  07 Jan 2004; Jason Wever <weeve@gentoo.org> vsftpd-1.2.0-r1.ebuild:
  Marked stable on sparc.

*vsftpd-1.2.1 (10 Dec 2003)

  10 Dec 2003; Rajiv Aaron Manglani <rajiv@gentoo.org> vsftpd-1.2.1.ebuild,
  files/vsftpd-1.2.1-gentoo.diff.bz2:
  version bump. thanks to matt taylor for a new patch file.
  fixes bug #33648.

  10 Dec 2003; Rajiv Aaron Manglani <rajiv@gentoo.org> vsftpd-1.1.2.ebuild,
  vsftpd-1.1.3-r1.ebuild, vsftpd-1.1.3.ebuild, vsftpd-1.2.0.ebuild,
  files/vsftpd-1.1.2-gentoo.diff, files/vsftpd-1.1.3-gentoo.diff,
  files/vsftpd-1.1.3-ipv6.patch:
  removed old ebuild files.

  10 Dec 2003; Rajiv Aaron Manglani <rajiv@gentoo.org> files/vsftpd.init.d:
  check for 'listen' in conf file. bug #33648.

  08 Dec 2003; <spider@gentoo.org> vsftpd-1.1.3-r1.ebuild,
  vsftpd-1.1.3.ebuild, vsftpd-1.2.0-r1.ebuild, vsftpd-1.2.0.ebuild:
  QA drive, fixing bug 35127

  09 Sep 2003; Rajiv Aaron Manglani <rajiv@gentoo.org> vsftpd-1.2.0-r1.ebuild:
  bumped vsftpd-1.2.0-r1.ebuild to x86 stable.

*vsftpd-1.2.0-r1 (02 Sep 2003)

  02 Sep 2003; Rajiv Aaron Manglani <rajiv@gentoo.org> vsftpd-1.2.0-r1.ebuild,
  files/vsftpd.conf.d, files/vsftpd.init.d:
  added init.d and conf.d files for running vsftpd standalone.

  31 Jul 2003; Tavis Ormandy <taviso@gentoo.org> vsftpd-1.2.0.ebuild:
  reported broken on alpha.

*vsftpd-1.2.0 (09 Jun 2003)

  09 Jun 2003; Nick Hadaway <raker@gentoo.org> vsftpd-1.2.0.ebuild.
  files/vsftpd-1.2.0-gentoo.diff.bz2:
  Version bump.  Fixed ipv6 logic for xinetd.  Now ipv6 support is 
  included in the source so no patch is needed.  Updated the gentoo 
  patch for this version.

*vsftpd-1.1.3-r1 (06 Apr 2003)

  05 Jun 2003; Donny Davies <woodchip@gentoo.org> vsftpd-1.1.3-r1.ebuild:
  Fix #21079.

  06 Feb 2003; Guy Martin <gmsoft@gentoo.org> vsftpd-1.1.3-r1.ebuild, files/digest-vsftpd-1.1.3-r1,
  files/vsftpd-1.1.3-ipv6.patch, files/vsftpd.xinetd.ipv6 :
  Added ipv6 support. Added ~hppa to KEYWORDS.

  24 Feb 2003; Donny Davies <woodchip@gentoo.org> : Fix my ebuild.

*vsftpd-1.1.3 (15 Feb 2003)

  18 Feb 2003;  <seemant@gentoo.org> vsftpd-1.1.3.ebuild :
  filter -fPIC.

  15 Feb 2003; Donny Davies <woodchip@gentoo.org> : Chase latest release.
  #12435; optional pam and tcpd support.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*vsftpd-1.1.2 (19 Oct 2002)

  19 Oct 2002; Donny Davies <woodchip@gentoo.org> :
  Chase latest release.  Tidy up patch.  Make vsftpd.pam pam_stack aware.

*vsftpd-1.0.1-r1 (3 May 2002)

  20 Sep 2002; Mike Frysinger <vapier@gentoo.org> :
  Added HOMEPAGE variable and set SRC_URI to the homepage download location.

  3 May 2002; Donny Davies <woodchip@gentoo.org> :
  Added LICENSE, SLOT.
