# ChangeLog for net-fs/nfs-utils
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/nfs-utils/ChangeLog,v 1.174 2010/10/08 19:48:08 vapier Exp $

*nfs-utils-1.2.3 (08 Oct 2010)

  08 Oct 2010; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.2.3.ebuild:
  Version bump #339288.

  19 Sep 2010; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.2.2-r2.ebuild:
  Fix multilib dir handling with backed up /var/lib/nfs.

  07 Aug 2010; Mike Frysinger <vapier@gentoo.org> files/nfs.initd:
  Port logic over for detecting rpc.gssd needs in nfs init.d script #330795 by
  Jared.

  02 Aug 2010; Diego E. Pettenò <flameeyes@gentoo.org> files/nfs.initd:
  Only require rpc.svcgssd if sec=krb is used rather than sec=sys (default).
  Thanks to Jared in bug #330795.

  26 Jul 2010; Diego E. Pettenò <flameeyes@gentoo.org> files/nfs.initd:
  Fix nfs init script dependency generation for kerberos exports.

*nfs-utils-1.2.2-r2 (23 Jul 2010)

  23 Jul 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  +nfs-utils-1.2.2-r2.ebuild, +files/nfs-utils-1.2.2-nfsv4.patch:
  Fix configure script when enabling NFSv4 and Kerberos, some tests would
  have been skipped.

  28 Jun 2010; Mike Frysinger <vapier@gentoo.org> files/nfsmount.initd:
  Fix idmapd/gssd dep calculation with nfs mounts #324725 by Михаил.

*nfs-utils-1.2.2-r1 (20 Apr 2010)

  20 Apr 2010; Mike Frysinger <vapier@gentoo.org>
  +nfs-utils-1.2.2-r1.ebuild, +files/nfs-utils-1.2.2-optional-libcap.patch:
  Make libcap support optional via USE=caps #314777.

  20 Apr 2010; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.2.2.ebuild:
  Disable tests since they require no rpc.statd to be running on the system
  beforehand #315573 by Pacho Ramos.

*nfs-utils-1.2.2 (11 Apr 2010)

  11 Apr 2010; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.2.2.ebuild:
  Version bump #314603 by Tim Harder.

  31 Mar 2010; <solar@gentoo.org> nfs-utils-1.1.4-r1.ebuild,
  nfs-utils-1.1.5.ebuild, nfs-utils-1.1.6.ebuild, nfs-utils-1.1.6-r1.ebuild,
  nfs-utils-1.2.0.ebuild, nfs-utils-1.2.1.ebuild:
  - elibc_glibc has to be defined in IUSE= for profiles that are unable to
  use.force that flag bug #312085

  22 Nov 2009; Sven Wegener <swegener@gentoo.org> nfs-utils-1.2.1.ebuild:
  Use src_configure and src_prepare for EAPI-2 compliance, this should fix
  bug #294082.

*nfs-utils-1.2.1 (22 Nov 2009)

  22 Nov 2009; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.2.1.ebuild:
  Version bump #293523 by Florian Manschwetus and update kerberos depends
  #274793 by Andrew Savchenko.

  11 Sep 2009; Zac Medico <zmedico@gentoo.org> nfs-utils-1.2.0.ebuild:
  Move !net-nds/portmap out of DEPEND, as per bug #108449, comment #4.

  25 Aug 2009; Mike Frysinger <vapier@gentoo.org>
  -files/nfs-utils-1.1.2-rpcgen-ioctl.patch, nfs-utils-1.1.4-r1.ebuild,
  +files/nfs-utils-1.1.4-rpcgen-ioctl.patch, nfs-utils-1.1.5.ebuild,
  nfs-utils-1.1.6.ebuild, nfs-utils-1.1.6-r1.ebuild:
  Update rpcgen ioctl patch to reflect changes in upstream.

*nfs-utils-1.2.0 (02 Jun 2009)

  02 Jun 2009; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.2.0.ebuild:
  Version bump.

  30 May 2009; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.1.6-r1.ebuild,
  files/nfs.confd, files/nfs.initd:
  Have nfs init.d depend on rpc.idmapd by default when USE=nfsv4, but allow
  people to disable it via conf.d #234132 by roger.

  30 May 2009; Mike Frysinger <vapier@gentoo.org>
  +nfs-utils-1.1.6-r1.ebuild, metadata.xml:
  Add support for USE=ipv6 #261926, switch to rpcbind over portmap, switch
  to libtirpc all the time, and make nfs3/nfs4 optional.

*nfs-utils-1.1.6-r1 (30 May 2009)

  30 May 2009; Mike Frysinger <vapier@gentoo.org>
  +nfs-utils-1.1.6-r1.ebuild:
  Add support for USE=ipv6 #261926, switch to rpcbind over portmap, switch
  to libtirpc all the time, and make nfs3/nfs4 optional.

*nfs-utils-1.1.6 (09 May 2009)

  09 May 2009; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.1.6.ebuild:
  Version bump.

  25 Mar 2009; Raúl Porcel <armin76@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  arm/ia64/s390/sh/sparc stable wrt #261334

  18 Mar 2009; Joseph Jezak <josejx@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  Marked ppc stable for bug #261334.

  15 Mar 2009; Markus Meier <maekke@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  x86 stable, bug #261334

  15 Mar 2009; Brent Baude <ranger@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  Marking nfs-utils-1.1.4-r1 ppc64 for bug 261334

  14 Mar 2009; Mike Frysinger <vapier@gentoo.org> files/rpc.idmapd.initd:
  Add a warning upon failure that DNOTIFY is needed #261697 by Pacho Ramos.

  11 Mar 2009; Tobias Klausmann <klausman@gentoo.org>
  nfs-utils-1.1.4-r1.ebuild:
  Stable on alpha, bug #261334

  10 Mar 2009; Dawid Węgliński <cla@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  Stable on amd64 (bug #261334)

*nfs-utils-1.1.5 (06 Mar 2009)

  06 Mar 2009; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.1.5.ebuild:
  Version bump.

  06 Mar 2009; Jeroen Roovers <jer@gentoo.org> nfs-utils-1.1.4-r1.ebuild:
  Stable for HPPA (bug #261334).

  27 Feb 2009; Mike Frysinger <vapier@gentoo.org> files/nfs.initd:
  Fixup bashism in init.d script #260149 by Timothy Redaelli.

*nfs-utils-1.1.4-r1 (31 Jan 2009)

  31 Jan 2009; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.1.4-ascii-man.patch,
  +files/nfs-utils-1.1.4-mtab-sym.patch,
  +files/nfs-utils-1.1.4-no-exec.patch, +nfs-utils-1.1.4-r1.ebuild:
  Add some fixes from Debian and push out init.d fixes.

  31 Jan 2009; Mike Frysinger <vapier@gentoo.org> files/nfs.initd:
  Also use rpc.nfsd to try to shutdown nfsd #228127 by Maurice Volaski.

  31 Jan 2009; Mike Frysinger <vapier@gentoo.org> files/rpc.statd.initd:
  Make sure stop() works even if rpc.statd is dead so init.d doesnt fake
  stop silently.

  31 Jan 2009; Mike Frysinger <vapier@gentoo.org> files/nfs.initd:
  Add /proc/fs/nfs -> /proc/fs/nfsd fix again.

  31 Jan 2009; Mike Frysinger <vapier@gentoo.org> files/nfs.initd:
  Restart rpc.idmapd if nfsd is a module #220747 by Jochen Radmacher.

  30 Dec 2008; Friedrich Oslage <bluebird@gentoo.org>
  nfs-utils-1.1.3.ebuild:
  Stable on sparc, security bug #242696

  09 Nov 2008; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.1.4.ebuild:
  Always own /etc/exports from now on #246021 by Ian Kelling.

  08 Nov 2008; Raúl Porcel <armin76@gentoo.org> nfs-utils-1.1.3.ebuild:
  alpha/ia64 stable wrt #242696

  02 Nov 2008; Tobias Scherbaum <dertobi123@gentoo.org>
  nfs-utils-1.1.3.ebuild:
  ppc stable, bug #242696

  30 Oct 2008; Jeroen Roovers <jer@gentoo.org> nfs-utils-1.1.3.ebuild:
  Stable for HPPA (bug #242696).

  28 Oct 2008; Brent Baude <ranger@gentoo.org> nfs-utils-1.1.3.ebuild:
  Marking nfs-utils-1.1.3 ppc64 for bug 242696

  27 Oct 2008; Markus Meier <maekke@gentoo.org> nfs-utils-1.1.3.ebuild:
  amd64/x86 stable, bug #242696

  26 Oct 2008; Mike Frysinger <vapier@gentoo.org> files/rpc.gssd.initd,
  files/rpc.idmapd.initd, +files/rpc.pipefs.initd, files/rpc.svcgssd.initd,
  nfs-utils-1.0.12-r5.ebuild, nfs-utils-1.1.0-r1.ebuild,
  nfs-utils-1.1.1.ebuild, nfs-utils-1.1.1-r1.ebuild, nfs-utils-1.1.2.ebuild,
  nfs-utils-1.1.2-r1.ebuild, nfs-utils-1.1.3.ebuild, nfs-utils-1.1.4.ebuild:
  Split rpc.pipefs mounting into its own init.d script so we handle parallel
  execution properly #238593 by Michele Schiavo.

  26 Oct 2008; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.1.4.ebuild:
  Force newer libnfsidmap as it provides idmapd.conf #243066.

*nfs-utils-1.1.4 (18 Oct 2008)

  18 Oct 2008; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.1.4.ebuild:
  Version bump.

*nfs-utils-1.1.3 (16 Aug 2008)

  16 Aug 2008; Mike Frysinger <vapier@gentoo.org> files/rpc.gssd.initd,
  files/rpc.svcgssd.initd, +nfs-utils-1.1.3.ebuild:
  Version bump. Fix arg passing for gssd binaries #232387 by Michele
  Schiavo. Depend on e2fsprogs-libs for libblkid #221773 by Triffid Hunter.

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

*nfs-utils-1.1.2-r1 (04 May 2008)

  04 May 2008; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.1.2-mount-eacces.patch, files/nfs.initd,
  files/nfsmount.initd, files/rpc.gssd.initd, files/rpc.idmapd.initd,
  files/rpc.svcgssd.initd, +nfs-utils-1.1.2-r1.ebuild:
  Dont bother checking for config anymore #219495 by Davide Pesavento. Load
  sunrpc module if rpc_pipefs is not available #219566 by Martin von Gagern.
  Add change from Fedora to exit immediately upon perm denied errors when
  mounting #219729 by Stefaan De Roeck.

  21 Apr 2008; Mike Frysinger <vapier@gentoo.org> files/nfsmount.initd:
  Use non-common awk exit values so that the default exit values dont trigger
  false positives #218713 by Paolo Pedroni.

  21 Apr 2008; Mike Frysinger <vapier@gentoo.org> files/rpc.gssd.initd,
  files/rpc.svcgssd.initd:
  Fix typo in start() func in new gssd init.d scripts as pointed out by Ryan
  Tandy #218665.

  20 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> nfs-utils-1.1.2.ebuild:
  Fix building without kerberos and with nonfsv4 USE flag enabled. See bug
  #218595.

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.1.2-rpcgen-ioctl.patch, nfs-utils-1.1.2.ebuild:
  Make sure rpcgen includes sys/ioctl.h #174393.

*nfs-utils-1.1.2 (20 Apr 2008)

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.1.2.ebuild:
  Version bump.

*nfs-utils-1.1.1-r1 (20 Apr 2008)

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org>
  +nfs-utils-1.1.1-r1.ebuild:
  Push out accumulated changes.

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/rpc.gssd.initd, +files/rpc.svcgssd.initd,
  nfs-utils-1.0.12-r5.ebuild, nfs-utils-1.1.0-r1.ebuild,
  nfs-utils-1.1.1.ebuild:
  Split the gssd and svcgssd init.d scripts #186037 by Paul B. Henson.

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.1.1.ebuild:
  Only leverage kerberos when USE="-nonfsv4" #212160.

  20 Apr 2008; Mike Frysinger <vapier@gentoo.org> files/nfsmount.initd:
  Fix nfs4/idmapd detection #213384 by Marek Szuba.

  14 Jan 2008; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/nfsmount.initd:
  Until newer baselayout stabilizes, only use config() when it exists #203906.

  08 Jan 2008; Raúl Porcel <armin76@gentoo.org> nfs-utils-1.1.0-r1.ebuild:
  alpha/ia64/sparc stable wrt #201552

  08 Jan 2008; Jeroen Roovers <jer@gentoo.org> nfs-utils-1.1.0-r1.ebuild:
  Stable for HPPA (bug #201552).

  30 Dec 2007; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/nfsmount.initd:
  Make sure /etc/exports and /etc/fstab exist to account for the stupid cases
  of running these init.d scripts without anything useful to do.

  30 Dec 2007; Samuli Suominen <drac@gentoo.org> nfs-utils-1.1.0-r1.ebuild:
  amd64 stable wrt #201552

  29 Dec 2007; nixnut <nixnut@gentoo.org> nfs-utils-1.1.0-r1.ebuild:
  Stable on ppc wrt bug 201552

  29 Dec 2007; Mike Frysinger <vapier@gentoo.org> files/nfsmount.initd:
  Make sure we check for "nfs" and not "nfsd" when doing client filesystem setup.

*nfs-utils-1.1.1 (29 Dec 2007)

  29 Dec 2007; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/rpc.gssd.initd, files/rpc.idmapd.initd, files/rpc.statd.initd,
  +nfs-utils-1.1.1.ebuild:
  Version bump #197336 by Francisco Javier. Tweak nfs init.d needs based on
  exportfs #172431. Only mount nfsd fs in nfs init.d script. Mount rpc_pipefs
  in rpc.idmapd and rpc.gssd after making sure the dir exists #180425 by
  Maurice Volaski.

  29 Dec 2007; Mike Frysinger <vapier@gentoo.org> files/rpc.statd.initd:
  Look up the full path of rpc.statd to avoid matching the init.d script
  #203646 by legate.

  15 Oct 2007; Markus Rothe <corsair@gentoo.org> nfs-utils-1.1.0-r1.ebuild:
  Stable on ppc64

  21 Sep 2007; Christian Faulhammer <opfer@gentoo.org>
  nfs-utils-1.1.0-r1.ebuild:
  stable x86, bug 190182

*nfs-utils-1.1.0-r1 (15 Sep 2007)
*nfs-utils-1.0.12-r1 (15 Sep 2007)
*nfs-utils-1.0.12-r5 (15 Sep 2007)

  15 Sep 2007; Mike Frysinger <vapier@gentoo.org>
  +nfs-utils-1.0.12-r1.ebuild, +nfs-utils-1.0.12-r5.ebuild,
  +nfs-utils-1.1.0-r1.ebuild:
  Force bumpage for versions to clean up libgssglue nightmare #191746.

  23 Aug 2007; Joshua Kinard <kumba@gentoo.org> nfs-utils-1.0.12-r3.ebuild:
  Stable on mips.

*nfs-utils-1.0.12-r4 (16 Aug 2007)

  16 Aug 2007; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/nfsmount.initd, +nfs-utils-1.0.12-r4.ebuild:
  Only force kerb init.d scripts when the NFSv4 mount needs it #180428 by
  Maurice Volaski. Load the nfs module in the nfsmount client script, not
  nfsd.

  13 May 2007; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.1.0.ebuild:
  Make sure we pull in >=app-crypt/libgssapi-0.11 #178217 by Markus Ullmann.

*nfs-utils-1.1.0 (12 May 2007)

  12 May 2007; Mike Frysinger <vapier@gentoo.org> files/nfs.initd,
  files/nfsmount.initd, files/rpc.gssd.initd, files/rpc.idmapd.initd,
  files/rpc.statd.initd, +nfs-utils-1.1.0.ebuild:
  Version bump.

  06 May 2007; Marius Mauch <genone@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Replacing einfo with elog

  07 Apr 2007; Mike Frysinger <vapier@gentoo.org> nfs-utils-1.0.12-r3.ebuild:
  Bind rpc.gssd install to USE=kerberos rather than USE=!nonfsv4
  #172431 by emerald.

*nfs-utils-1.0.12-r3 (02 Apr 2007)

  02 Apr 2007; Roy Marples <uberlord@gentoo.org> files/nfs.initd,
  files/rpc.gssd.initd, files/rpc.idmapd.initd, files/rpc.statd.initd,
  +nfs-utils-1.0.12-r3.ebuild:
  Remove some bashisms and support baselayout-2 restart option.

  27 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
  nfs-utils-1.0.12.ebuild:
  Stable on alpha/amd64 wrt bug #172133.

  26 Mar 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  nfs-utils-1.0.12.ebuild:
  Stable on sparc wrt #172133

  26 Mar 2007; Jeroen Roovers <jer@gentoo.org> nfs-utils-1.0.12.ebuild:
  Stable for HPPA (bug #172133).

  26 Mar 2007; Alec Warner <antarus@gentoo.org> nfs-utils-1.0.6-r6.ebuild,
  nfs-utils-1.0.7-r2.ebuild, nfs-utils-1.0.9.ebuild,
  nfs-utils-1.0.10.ebuild, nfs-utils-1.0.12.ebuild,
  nfs-utils-1.0.12-r1.ebuild, nfs-utils-1.0.12-r2.ebuild:
  Remove dependency on portage: ref bug 162516

*nfs-utils-1.0.12-r2 (25 Mar 2007)

  25 Mar 2007; Mike Frysinger <vapier@gentoo.org> files/nfs.confd,
  +files/nfs.initd, +files/nfsmount.initd, +files/rpc.gssd.initd,
  +files/rpc.idmapd.initd, +files/rpc.statd.initd,
  +nfs-utils-1.0.12-r2.ebuild:
  Split init.d scripts up so client/server configurations are handled properly
  #101624 by Tim Hobbs. Special thanks to Daniel Burr and Thomas Bettler.

  25 Mar 2007; Tobias Scherbaum <dertobi123@gentoo.org>
  nfs-utils-1.0.12.ebuild:
  Stable on ppc wrt bug #172133.

  25 Mar 2007; Andrej Kacian <ticho@gentoo.org> nfs-utils-1.0.12.ebuild:
  Stable on x86, bug #172133.

  25 Mar 2007; Markus Rothe <corsair@gentoo.org> nfs-utils-1.0.12.ebuild:
  Stable on ppc64; bug #172133

  24 Mar 2007; Mike Frysinger <vapier@gentoo.org> files/nfs:
  Mount nfsd filesystem at /proc/fs/nfsd rather than /proc/fs/nfs #172019.

*nfs-utils-1.0.12-r1 (24 Mar 2007)

  24 Mar 2007; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.0.12-mountd-memleak.patch, +nfs-utils-1.0.12-r1.ebuild:
  Grab fix from upstream for memleak in mountd #172014 by Bardur Arantsson.

  21 Mar 2007; Chris Gianelloni <wolf31o2@gentoo.org>
  nfs-utils-1.0.10.ebuild:
  Stable on amd64 wrt bug #167664.

  16 Mar 2007; nixnut <nixnut@gentoo.org> nfs-utils-1.0.10.ebuild:
  Stable on ppc wrt bug 167664

*nfs-utils-1.0.12 (27 Feb 2007)

  27 Feb 2007; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.0.12.ebuild:
  Version bump.

  23 Feb 2007; Markus Rothe <corsair@gentoo.org> nfs-utils-1.0.10.ebuild:
  Stable on ppc64; bug #167664

  23 Feb 2007; Christian Faulhammer <opfer@gentoo.org>
  nfs-utils-1.0.10.ebuild:
  stable x86; bug 167664

  10 Jan 2007; Roy Marples <uberlord@gentoo.org> files/nfs:
  Use --name for s-s-d starting nfsd so baselayout-1.13 correctly finds it.

  05 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
  nfs-utils-1.0.6-r6.ebuild:
  Remove gnuconfig inherit.

  28 Dec 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  nfs-utils-1.0.10.ebuild:
  Stable on sparc

  04 Dec 2006; Jeroen Roovers <jer@gentoo.org> nfs-utils-1.0.10.ebuild:
  Stable for HPPA.

  23 Oct 2006; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.0.10-uts-release.patch, nfs-utils-1.0.10.ebuild:
  Fix building with linux-headers-2.6.18+.

  21 Oct 2006; Aron Griffis <agriffis@gentoo.org> nfs-utils-1.0.10.ebuild:
  Mark 1.0.10 stable on alpha/ia64

*nfs-utils-1.0.10 (22 Aug 2006)

  22 Aug 2006; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.0.10.ebuild:
  Version bump.

*nfs-utils-1.0.9 (16 Jul 2006)

  16 Jul 2006; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.0.9.ebuild:
  Version bump.

*nfs-utils-1.0.8 (10 Jun 2006)

  10 Jun 2006; Mike Frysinger <vapier@gentoo.org> +nfs-utils-1.0.8.ebuild:
  Version bump #136038 by Mario Fetka.

  09 Mar 2006; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.0.7-no-stripping.patch, nfs-utils-1.0.7-r2.ebuild:
  Let portage strip binaries.

  29 Jan 2006; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.0.6-usn36.patch, -files/nfs-utils-1.0.6-usn36.patch.gz,
  nfs-utils-1.0.6-r6.ebuild:
  Uncompress patch #120673 by Simon Stelling.

*nfs-utils-1.0.7-r2 (08 Oct 2005)

  08 Oct 2005; Mike Frysinger <vapier@gentoo.org>
  +files/nfs-utils-1.0.7-man-pages.patch, files/nfs, files/nfs.confd,
  +nfs-utils-1.0.7-r2.ebuild:
  Add support for starting/stopping gssd daemons #108276 and installing their
  config files. Also tweak the man-pages SEE ALSO #107991.

  23 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org> files/nfsmount:
  Corrected init script to use 'svc_stop; svc_start' and not 'stop; start'.

  15 Mar 2005; Seemant Kulleen <seemant@gentoo.org>
  nfs-utils-1.0.7-r1.ebuild:
  add kerberos to IUSE

*nfs-utils-1.0.7-r1 (15 Mar 2005)

  15 Mar 2005; Mike Frysinger <vapier@gentoo.org> files/nfs,
  files/nfs.confd, -nfs-utils-1.0.7.ebuild, +nfs-utils-1.0.7-r1.ebuild:
  Add support for integrated idmapd #71607 by Keith M Wesolowski.

*nfs-utils-1.0.7 (04 Feb 2005)

  04 Feb 2005; Aron Griffis <agriffis@gentoo.org> +nfs-utils-1.0.7.ebuild:
  Bump to 1.0.7. New local USE-flag nfsv4 since that pulls in mit-krb5 which
  has its own problems

  15 Jan 2005; Robin H. Johnson <robbat2@gentoo.org> :
  Fix digest, bug #78168.

  15 Jan 2005; <solar@gentoo.org> +files/nfs-utils-1.0.6-uclibc.patch,
  nfs-utils-1.0.6-r6.ebuild:
  - getrpcbynumber_r is not in the SuSv3 spec. disable it for uClibc

  11 Dec 2004; Markus Rothe <corsair@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Stable on ppc64; bug #72113

  11 Dec 2004; Joseph Jezak <josejx@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Marked ppc stable for bug #72113.

  10 Dec 2004; Guy Martin <gmsoft@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Stable on hppa.

  07 Dec 2004; Hardave Riar <hardave@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Stable on mips, bug #72113

  07 Dec 2004; Bryan Østergaard <kloeri@gentoo.org>
  nfs-utils-1.0.6-r6.ebuild:
  Stable on alpha, bug 72113.

  06 Dec 2004; Karol Wojtaszek <sekretarz@gentoo.org>
  nfs-utils-1.0.6-r6.ebuild:
  Stable on amd64, bug #72113

  06 Dec 2004; Olivier Crete <tester@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Stable on x86 wrt security bug 72113

  06 Dec 2004; Gustavo Zacarias <gustavoz@gentoo.org>
  nfs-utils-1.0.6-r6.ebuild:
  Stable on sparc wrt #72113

  06 Dec 2004; <rphillips@gentoo.org> nfs-utils-1.0.6-r6.ebuild:
  Added ubuntu's DOS vulnerability patch. fixes #72113

  05 Dec 2004; Jason Wever <weeve@gentoo.org> nfs-utils-1.0.6-r5.ebuild:
  Stable on sparc wrt security bug #72113.

  05 Dec 2004; Bryan Østergaard <kloeri@gentoo.org>
  nfs-utils-1.0.6-r5.ebuild:
  Stable on alpha, bug 72113.

  04 Dec 2004; Hardave Riar <hardave@gentoo.org> nfs-utils-1.0.6-r5.ebuild:
  Stable on mips, bug #72113

  04 Dec 2004; Markus Rothe <corsair@gentoo.org> nfs-utils-1.0.6-r5.ebuild:
  Stable on ppc64; bug #72113

  04 Dec 2004; Mike Doty <kingtaco@gentoo.org> nfs-utils-1.0.6-r5.ebuild:
  stable on amd64 per #72113

*nfs-utils-1.0.6-r5 (22 Nov 2004)

  22 Nov 2004; <solar@gentoo.org>
  +files/nfs-utils-0.3.3-rquotad-overflow.patch, +nfs-utils-1.0.6-r5.ebuild:
  Security bump for 64bit arches bug #72113 - CAN-2004-0946

  07 Nov 2004; Joshua Kinard <kumba@gentoo.org> nfs-utils-1.0.6-r4.ebuild:
  Marked stable on mips.

  01 Nov 2004; Bryan Østergaard <kloeri@gentoo.org>
  nfs-utils-1.0.6-r4.ebuild:
  Stable on alpha.

  19 Oct 2004; Dylan Carlson <absinthe@gentoo.org>
  nfs-utils-1.0.6-r4.ebuild:
  Stable on amd64.

  09 Oct 2004; Christian Birchinger <joker@gentoo.org>
  nfs-utils-1.0.6-r4.ebuild:
  Added sparc stable keyword

  23 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org> files/nfsmount:
  Added 'use ypbind' to nfsmount script to close bug #28195.

*nfs-utils-1.0.6-r4 (07 Jul 2004)

  07 Jul 2004; Aron Griffis <agriffis@gentoo.org> files/nfs-5,
  -nfs-utils-1.0.6-r3.ebuild, +nfs-utils-1.0.6-r4.ebuild:
  Set a default timeout of 30 seconds in case EXPORTFSTIMEOUT is unset in
  conf.d/nfs

  25 Jun 2004; Danny van Dyk <kugelfang@gentoo.org> nfs-utils-1.0.6.ebuild:
  Marked stable on amd64.

*nfs-utils-1.0.6-r3 (11 Jun 2004)

  11 Jun 2004; Mike Frysinger <vapier@gentoo.org> :
  While i'm here, might as well fix more things :P.
  Run make for the depend target so that we can then build everything 
  else in parallel.  Add tweakable exportfs timeout to nfs init script 
  #37004 by Vlastimil Holer.  Enable the '--enable-secure-statd' option 
  by default (seems to work fine on my nfs3 machines) #49444 by Juergen 
  Nagel.  Make sure the emtpy state dirs dont get autocleaned #30522 by 
  Brave Cobra.

*nfs-utils-1.0.6-r2 (08 Jun 2004)

  08 Jun 2004; Mike Frysinger <vapier@gentoo.org> +files/nfs-4,
  +nfs-utils-1.0.6-r2.ebuild:
  Add support for NFSv4 #25106 by Michael Locher.

  11 May 2004; Michael McCabe <randy@gentoo.org> nfs-utils-1.0.6-r1.ebuild:
  Added s390 keywords

  13 Apr 2004; Joshua Kinard <kumba@gentoo.org> nfs-utils-1.0.6-r1.ebuild:
  Marked stable on mips.

  11 Mar 2004; Lars Weiler <pylon@gentoo.org> nfs-utils-1.0.6.ebuild:
  stable on ppc

  07 Mar 2004; Tom Gall <tgall@gentoo.org> nfs-utils-1.0.6-r1.ebuild:
  stable on ppc64

  06 Mar 2004; Ilya A. Volynets-Evenbakh <ilya@total-knowledge.com> :
  mark as ~mips

  06 Mar 2004; Joshua Kinard <kumba@gentoo.org> nfs-utils-1.0.5-r1.ebuild,
  nfs-utils-1.0.6-r1.ebuild:
  Added ~mips to KEYWORDS.

*nfs-utils-1.0.6-r1 (30 Jan 2004)  
  
  30 Jan 2004; Daniel Robbins <drobbins@gentoo.org> nfs-utils-1.0.6-r1.ebuild:
  Add a new ebuild (currently unmasked for ~x86 and ~amd64 only) that mounts
  the nfsd filesystem to /proc/fs/nfs to provide robust exports handling for
  2.6 kernels. (See /usr/src/linux/Documentation/Changes in a 2.6 kernel source
  tree for more information on this.) I needed this fix for mountd to support
  nfs version 3 on my server with a 2.6 kernel. Also changed default
  "restarting" behavior to "yes," which seems to be what most users will want.
  This ebuild is not in stable on any arch, so nfs-team, please let me know
  what you think of these changes.
  
  15 Jan 2004; Aron Griffis <agriffis@gentoo.org> nfs-utils-1.0.6.ebuild: 
  Fix bug 30486 by refraining from overwriting /var/lib/nfs/*

  14 Jan 2004; Martin Holzer <mholzer@gentoo.org> files/nfs.confd:
  removing quota entry from conf.d

  05 Jan 2004; zhen <zhen@gentoo.org> metadata.xml:
  adding to net-fs herd

  28 Dec 2003; Guy Martin <gmsoft@gentoo.org> nfs-utils-1.0.6.ebuild:
  Marked stable on hppa.

  02 Nov 2003; Daniel Robbins <drobbins@gentoo.org> nfs-utils-1.0.6.ebuild:
  added util-linux RDEPEND to ensure "mount" command it up-to-date. (See
  nfs-utils README.)
  
  22 Oct 2003; Martin Holzer <mholzer@gentoo.org> nfs-utils-1.0.5-r1.ebuild,
  nfs-utils-1.0.6.ebuild:
  adding RESTRICT="nomirror"

  03 Oct 2003; Christian Birchinger <joker@gentoo.org> nfs-utils-1.0.6.ebuild:
  Added sparc stable keyword

*nfs-utils-1.0.6 (18 Sep 2003)

  18 Sep 2003; Martin Holzer <mholzer@gentoo.org> nfs-utils-1.0.6.ebuild:
  Version bumped.

*nfs-utils-1.0.5-r1 (19 Jul 2003)

  26 Jul 2003; Stefan Jones <cretin@gentoo.org> files/nfs-2:
  Fixed waiting on exportfs to finish. Use wait $pidofexportfs ( let kill
  finish in background ) Speedups of 29secs!

  19 Jul 2003; Aron Griffis <agriffis@gentoo.org> nfs-utils-1.0.5-r1.ebuild,
  files/nfs-2:
  Change exportfs timeouts from 5 seconds to 30 seconds to prevent prematurely
  killing exportfs

  19 Jul 2003; Daniel Ahlberg <aliz@gentoo.org> nfs-utils-1.0.5.ebuild :
  Security update, unmasking.

*nfs-utils-1.0.5 (19 Jul 2003)

  19 Jul 2003; Don Seiler <rizzo@gentoo.org>; nfs-utils-1.0.4.ebuild,
  nfs-utils-1.0.5.ebuild:
  Version bumped and v1.0.4 deleted due to bugs that are fixed in 1.0.5

*nfs-utils-1.0.4 (17 Jul 2003)

  17 Jul 2003; Martin Holzer <mholzer@gentoo.org> nfs-utils-1.0.4.ebuild:
  Version bumped.

  21 May 2003; Christian Birchinger <joker@gentoo.org> nfs-utils-1.0.3.ebuild:
  Added sparc stable keyword

  16 May 2003; Martin Holzer <mholzer@gentoo.org> nfs-utils-1.0.3.ebuild:
  Marked as stable

*nfs-utils-1.0.3 (27 Mar 2003)

  21 Jun 2003; Guy martin <gmsoft@gentoo.org> nfs-utils-1.0.3.ebuild :
  Marked stable on hppa.

  17 Apr 2003; Guy Martin <gmsoft@gentoo.org> nfs-utils-1.0.3.ebuild :
  Added ~hppa to KEYWORDS.

  27 Mar 2003; Brandon Low <lostlogic@gentoo.org> nfs-utils-1.0.3.ebuild:
  Bump to latest released today

*nfs-utils-1.0.1-r1 (03 Mar 2003)

  30 Mar 2003; Christian Birchinger <joker@gentoo.org>
  nfs-utils-1.0.1-r1.ebuild:
  Added sparc stable keyword

  13 Mar 2003; Zach Welch <zwelch@gentoo.org> nfs-utils-1.0.1-r1.ebuild:
  add arm keyword

  03 Mar 2003; Aron Griffis <agriffis@gentoo.org> nfs-utils-1.0.1-r1.ebuild,
  files/nfs-1:
  Fix bug 16075 by installing server binaries into /usr/sbin (thanks Tero
  Pelander for the clue and the updated ebuild). Fix bug 13838 by using
  rpc.rquotad from the quota package instead of the nfs-utils version (thanks
  Andrea Barisani for the heads-up). Finally, mark stable on x86 and alpha
  where I can test as part of the package upgrade phase.

*nfs-utils-1.0.1 (12 Dec 2002)

  12 Dec 2002; Brad Cowan <bcowan@gentoo.org> :
  
  Added options to config file thanks to Cardoe and j2ee.

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
*nfs-utils-1.0.1 (13 Oct 2002)
 
  07 Dec 2002; Jack Morgan <jmorgan@gentoo.org> nfs-utils-1.0.1.ebuild :
  Changed ~sparc64 to ~sparc keyword

  13 Oct 2002; Brad Cowan <bcowan@gentoo.org> nfs-utils-1.0.1.ebuild,
  files/digest-nfs-utils-1.0.1 :
  
  Version bump thanks to j2ee<maurizio@iridium.aetheric.org>.

*nfs-utils-0.3.3-r1 (24 Apr 2002)

  16 Sep 2002; Maarten Thibaut <murphy@gentoo.org> nfs-utils-0.3.3-r1.ebuild :
  Adding sparc/sparc64 keywords.

  22 Jul 2002; Kyle Manna <nitro@gentoo.org> nfs-utils-0.3.3-r1.ebuild :
  Parallel make fails sometimes.  Replaced emake with make.
  
  24 Apr 2002; Daniel Robbins <drobbins@gentoo.org>: Some rc script fixes
  (removal of NFSSERVER) and cleanups in the ebuild, removal of old ebuilds and
  old files in /files

*nfs-utils-0.3.3 (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.
