From 36498d2ea2c5fb72792552630e205be1bd4562ee Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 7 Aug 2012 12:45:51 -0500
Subject: nfs-utils 1.2.6

---
 abs/core/nfs-utils/PKGBUILD                        |  98 +++++++++------
 abs/core/nfs-utils/blkmapd.service                 |  11 ++
 abs/core/nfs-utils/nfs                             |  40 ++++++
 abs/core/nfs-utils/nfs-common                      |  10 +-
 abs/core/nfs-utils/nfs-server                      |   6 +-
 abs/core/nfs-utils/nfs-server.conf                 |   2 +-
 .../nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch    | 138 ---------------------
 .../nfs-utils-1.1.6-heimdal_functions.patch        |  69 -----------
 .../nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch   |  57 ---------
 abs/core/nfs-utils/nfs-utils.conf                  |   1 +
 abs/core/nfs-utils/nfsd.service                    |  16 +++
 abs/core/nfs-utils/proc-fs-nfsd.mount              |   8 ++
 abs/core/nfs-utils/rpc-gssd.service                |  12 ++
 abs/core/nfs-utils/rpc-idmapd.service              |  12 ++
 abs/core/nfs-utils/rpc-mountd.service              |  12 ++
 abs/core/nfs-utils/rpc-statd.service               |  12 ++
 abs/core/nfs-utils/rpc-svcgssd.service             |  12 ++
 abs/core/nfs-utils/start-statd.patch               |   4 +-
 abs/core/nfs-utils/var-lib-nfs-rpc_pipefs.mount    |   7 ++
 19 files changed, 209 insertions(+), 318 deletions(-)
 create mode 100644 abs/core/nfs-utils/blkmapd.service
 create mode 100644 abs/core/nfs-utils/nfs
 delete mode 100644 abs/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch
 delete mode 100644 abs/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch
 delete mode 100644 abs/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch
 create mode 100644 abs/core/nfs-utils/nfs-utils.conf
 create mode 100644 abs/core/nfs-utils/nfsd.service
 create mode 100644 abs/core/nfs-utils/proc-fs-nfsd.mount
 create mode 100644 abs/core/nfs-utils/rpc-gssd.service
 create mode 100644 abs/core/nfs-utils/rpc-idmapd.service
 create mode 100644 abs/core/nfs-utils/rpc-mountd.service
 create mode 100644 abs/core/nfs-utils/rpc-statd.service
 create mode 100644 abs/core/nfs-utils/rpc-svcgssd.service
 create mode 100644 abs/core/nfs-utils/var-lib-nfs-rpc_pipefs.mount

diff --git a/abs/core/nfs-utils/PKGBUILD b/abs/core/nfs-utils/PKGBUILD
index edc688b..a6ac7ff 100644
--- a/abs/core/nfs-utils/PKGBUILD
+++ b/abs/core/nfs-utils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 97759 2010-11-01 20:06:42Z tpowa $
+# $Id: PKGBUILD 160027 2012-05-28 10:26:22Z tpowa $
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 # Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
@@ -6,14 +6,14 @@
 # Contributor: Marco Lima <cipparello gmail com>
 
 pkgname=nfs-utils
-pkgver=1.2.2
-pkgrel=6
+pkgver=1.2.6
+pkgrel=1
 pkgdesc="Support programs for Network File Systems"
 arch=('i686' 'x86_64')
 url='http://nfs.sourceforge.net'
 license=('GPL')
-backup=(etc/{exports,idmapd.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf})
-depends=('glibc' 'tcp_wrappers' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=1.3e' 'libgssglue')
+backup=(etc/{exports,idmapd.conf,nfsmount.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf})
+depends=('glibc' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=2.0.10' 'libgssglue' 'device-mapper')
 makedepends=('pkgconfig' 'autoconf' 'automake')
 source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2
 	nfs-common
@@ -23,42 +23,65 @@ source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgn
 	exports
 	idmapd.conf
 	start-statd.patch
-	nfs-utils-1.1.2-kerberos-ac.patch
-	nfs-utils-1.1.6-no_libgssapi.patch
-	nfs-utils-1.1.6-heimdal_functions.patch
+        nfs
 	nfs-utils-1.1.4-mtab-sym.patch
-	nfs-utils-1.1.4-no-exec.patch)
+	nfs-utils-1.1.4-no-exec.patch
+	rpc-gssd.service
+	rpc-mountd.service
+	rpc-svcgssd.service
+	rpc-idmapd.service
+	rpc-statd.service
+	nfsd.service
+	var-lib-nfs-rpc_pipefs.mount
+	proc-fs-nfsd.mount
+	blkmapd.service
+	nfs-utils.conf)
 install=nfs-utils.install
+md5sums=('8be543ca270c2234ff18f8c8d35e0d37'
+         'dd0d65fc6e8f422fa12520813098264b'
+         'f73f197a16b02c3e248488ec35c4cf43'
+         'e619f18354ff958ed624d05d08853d8f'
+         '9cef69bc686cc5dcac23fbb51450747d'
+         'ff585faf410a62c4333a027c50b56bae'
+         'eb4f4027fab6fc1201f1ca04f5954c76'
+         'e9144277a89a620d9bc80413158a7d27'
+         'f5e7bba09a46c5c5d7007cac6eff9df5'
+         '7674106eaaa4c149bccd4f05fe3604e9'
+         '4f4827dfc93008dfadd0a530ad0872b2'
+         '38855936dc55a5afe37d84edc0f11066'
+         '965311784d49a7d126d512cadbe91deb'
+         'e05705d9ccccaeaeb1ecaee20adc05bc'
+         'd7df7bc311fd95c5b80017dd1741570d'
+         '2e72ee082cba5d3ec6f51d2a105664da'
+         '5d33d2e754fd37280365b287603bac90'
+         '1cd65909fa0983047f3f06a3ab352401'
+         '02a34835aa077146a90eb7d191e612d0'
+         '8ffc2ebe932d29efe17d6f3f23d5b975'
+         '8ac484023d786766d287ccbe878ae4ba')
 
 build() {
   cd $srcdir/${pkgname}-${pkgver}
-  # Patches from gentoo for heimdal compatibility Bug 231396
-  # http://bugs.gentoo.org/show_bug.cgi?id=231396
-  patch -Np1 -i ../nfs-utils-1.1.2-kerberos-ac.patch 
-  patch -Np1 -i ../nfs-utils-1.1.6-no_libgssapi.patch 
-  patch -Np0 -i ../nfs-utils-1.1.6-heimdal_functions.patch
   patch -Np1 -i ../nfs-utils-1.1.4-mtab-sym.patch
-  patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch
-
+  #patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch
   # arch specific patch
   patch -Np0 -i $srcdir/start-statd.patch
 
-  rm -f config.guess config.sub ltmain.sh
-  autoreconf -i
-
-  export GSSGLUE_CFLAGS='-I/usr/include/gssapi'
-  export GSSGLUE_LIBS='-lgssapi -ldl'
+  ./configure --prefix=/usr --enable-nfsv4 --enable-nfsv41 --enable-gss \
+              --without-tcp-wrappers --with-statedir=/var/lib/nfs \
+              --enable-ipv6 --sysconfdir=/etc --enable-libmount-mount \
+              --enable-mountconfig
 
-  ./configure --prefix=/usr --enable-nfsv3 --enable-nfsv4 --enable-gss \
-              --with-tcp-wrappers --with-statedir=/var/lib/nfs --enable-ipv6 --sysconfdir=/etc
-
-  unset LDFLAGS
-  make || return 1
+  make 
 }
 
 package() {
   cd $srcdir/${pkgname}-${pkgver}
-  make DESTDIR=$pkgdir install || return 1
+  # fix make install
+  mkdir -p $pkgdir/sbin
+  make DESTDIR=$pkgdir install
+
+  # support python2 (FS#25120)
+  sed -i '1s/python$/python2/' "$pkgdir"/usr/sbin/{nfsiostat,mountstats}
 
   # NFS & NFSv4 init scripts
   install -D -m 755 ../nfs-common "$pkgdir/"etc/rc.d/nfs-common
@@ -68,20 +91,15 @@ package() {
   install -D -m 644 ../idmapd.conf "$pkgdir/"etc/idmapd.conf
   install -D -m 644 ../nfs-common.conf "$pkgdir/"etc/conf.d/nfs-common.conf
   install -D -m 644 ../nfs-server.conf "$pkgdir/"etc/conf.d/nfs-server.conf
+  install -D -m 644 ../nfs "$pkgdir/"etc/conf.d/nfs
+  install -D -m 644 utils/mount/nfsmount.conf "$pkgdir/"etc/nfsmount.conf
+  # systemd files
+  for i in ${srcdir}/*.{service,mount}; do
+    install -D -m 644 $i "$pkgdir/usr/lib/systemd/system/${i##*/}"
+  done
+  install -D -m 644 ../nfs-utils.conf "$pkgdir/"usr/lib/modules-load.d/nfs-utils.conf
   # directories
+  mkdir "$pkgdir/"etc/exports.d
   mkdir "$pkgdir/"var/lib/nfs/rpc_pipefs
   mkdir "$pkgdir/"var/lib/nfs/v4recovery
 }
-md5sums=('dad92f64db3266c7757f71bb53ee8f35'
-         '1beda3420086f1801a7228c06d80fb4e'
-         'f73f197a16b02c3e248488ec35c4cf43'
-         '5ae080f6117cef3140f02bc162bdc755'
-         'b9b334414baec31b97f0431d9ecdcfb9'
-         'ff585faf410a62c4333a027c50b56bae'
-         'eb4f4027fab6fc1201f1ca04f5954c76'
-         'e24f81a8c8657672e262c61235d34b4a'
-         'f3be115d392d9f9bb0f056e8d4341a14'
-         '20c6fae1c771b9d8e91c4973f16372e3'
-         'e6fd3a8acfe97970a53db1b902c34f45'
-         '7674106eaaa4c149bccd4f05fe3604e9'
-         '4f4827dfc93008dfadd0a530ad0872b2')
diff --git a/abs/core/nfs-utils/blkmapd.service b/abs/core/nfs-utils/blkmapd.service
new file mode 100644
index 0000000..16cb68b
--- /dev/null
+++ b/abs/core/nfs-utils/blkmapd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=pNFS block layout mapping daemon
+After=var-lib-nfs-rpc_pipefs.mount nfsd.service
+Requires=var-lib-nfs-rpc_pipefs.mount
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/blkmapd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/nfs b/abs/core/nfs-utils/nfs
new file mode 100644
index 0000000..2d33cf3
--- /dev/null
+++ b/abs/core/nfs-utils/nfs
@@ -0,0 +1,40 @@
+#
+# Optinal options passed to rquotad
+RPCRQUOTADOPTS=""
+#
+# Optional arguments passed to in-kernel lockd
+#LOCKDARG=
+# TCP port rpc.lockd should listen on.
+#LOCKD_TCPPORT=32803
+# UDP port rpc.lockd should listen on.
+#LOCKD_UDPPORT=32769
+#
+# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
+RPCNFSDARGS=""
+# Number of nfs server processes to be started.
+# The default is 8. 
+RPCNFSDCOUNT=8
+# Set V4 grace period in seconds
+#NFSD_V4_GRACE=90
+#
+# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
+RPCMOUNTDOPTS=""
+#
+# Optional arguments passed to rpc.statd. See rpc.statd(8)
+STATDARG=""
+#
+# Optional arguments passed to rpc.idmapd. See rpc.idmapd(8)
+RPCIDMAPDARGS=""
+#
+# Optional arguments passed to rpc.gssd. See rpc.gssd(8)
+RPCGSSDARGS=""
+#
+# Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8)
+RPCSVCGSSDARGS=""
+#
+# To enable RDMA support on the server by setting this to
+# the port the server should listen on
+#RDMA_PORT=20049 
+#
+# Optional arguments passed to blkmapd. See blkmapd(8)
+BLKMAPDARGS=""
diff --git a/abs/core/nfs-utils/nfs-common b/abs/core/nfs-utils/nfs-common
index 9902ec4..7b16b4b 100644
--- a/abs/core/nfs-utils/nfs-common
+++ b/abs/core/nfs-utils/nfs-common
@@ -2,9 +2,6 @@
 
 daemon_name=nfs-common
 
-# daemon dependencies
-DAEMON_DEPENDS=('rpcbind')
-
 NEED_STATD=
 STATD_OPTS=
 NEED_IDMAPD=
@@ -124,8 +121,7 @@ get_pid() {
 
 case "$1" in
   start)
-    ck_depends ${DAEMON_DEPENDS[@]}
-
+    ck_daemon rpcbind && { echo -n "Start rpcbind first." >&2; stat_die; }
     rc=0
     if [ "$NEED_STATD" = yes ]; then
       stat_busy "Starting $STATD_DAEMON_NAME daemon"
@@ -161,6 +157,8 @@ case "$1" in
       if [ $rc -gt 0 ]; then
 	stat_fail
 	exit $rc
+      else
+        stat_done
       fi
 
       if [ "$NEED_IDMAPD" = yes ]; then
@@ -314,4 +312,4 @@ case "$1" in
     echo "usage: $0 {start|stop|status|restart}"  
 esac
 exit 0
-	    
\ No newline at end of file
+	    
diff --git a/abs/core/nfs-utils/nfs-server b/abs/core/nfs-utils/nfs-server
index 9574cbc..6aa609d 100644
--- a/abs/core/nfs-utils/nfs-server
+++ b/abs/core/nfs-utils/nfs-server
@@ -2,9 +2,6 @@
 
 daemon_name=nfs-server
 
-# daemon dependencies
-DAEMON_DEPENDS=('nfs-common')
-
 NFSD_COUNT=
 NFSD_OPTS=
 NEED_SVCGSSD=
@@ -85,8 +82,7 @@ get_pid() {
 
 case "$1" in
   start)
-    ck_depends ${DAEMON_DEPENDS[@]}
-
+    ck_daemon nfs-common && { echo -n "Start nfs-common first." >&2; stat_die; }
     rc=0
     stat_busy "Mounting nfsd filesystem"
     do_modprobe nfsd
diff --git a/abs/core/nfs-utils/nfs-server.conf b/abs/core/nfs-utils/nfs-server.conf
index cf75fb6..581e263 100644
--- a/abs/core/nfs-utils/nfs-server.conf
+++ b/abs/core/nfs-utils/nfs-server.conf
@@ -18,7 +18,7 @@ PROCNFSD_MOUNTOPTS=""
 # If you have a port-based firewall, you might want to set up
 # a fixed port here using the --port option.
 # See rpc.mountd(8) for more details.
-MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2"
+MOUNTD_OPTS=""
 
 # Do you want to start the svcgssd daemon? It is only required for Kerberos
 # exports. Valid alternatives are "yes" and "no"; the default is "no".
diff --git a/abs/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch b/abs/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch
deleted file mode 100644
index 4a5a138..0000000
--- a/abs/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff -NaurwB nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 nfs-utils-1.1.2/aclocal/kerberos5.m4
---- nfs-utils-1.1.2.orig/aclocal/kerberos5.m4	2008-03-14 16:46:29.000000000 +0100
-+++ nfs-utils-1.1.2/aclocal/kerberos5.m4	2008-06-12 17:13:51.000000000 +0200
-@@ -1,112 +1,48 @@
--dnl Checks for Kerberos
--dnl NOTE: while we intend to do generic gss-api, currently we
--dnl have a requirement to get an initial Kerberos machine
--dnl credential.  Thus, the requirement for Kerberos.
--dnl The Kerberos gssapi library will be dynamically loaded?
- AC_DEFUN([AC_KERBEROS_V5],[
-+  K5CONFIG="krb5-config"
-   AC_MSG_CHECKING(for Kerberos v5)
--  AC_ARG_WITH(krb5,
--  [AC_HELP_STRING([--with-krb5=DIR], [use Kerberos v5 installation in DIR])],
-+  AC_ARG_WITH(krb5-config,
-+  [AC_HELP_STRING([--with-krb5-config=PATH], [Full Path to krb5-config.])],
-   [ case "$withval" in
-     yes|no)
--       krb5_with=""
-+       K5CONFIG="krb5-config"
-        ;;
-     *)
--       krb5_with="$withval"
-+       K5CONFIG="$withval"
-        ;;
-     esac ]
-   )
- 
--  for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
--  	     /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
--    dnl This ugly hack brought on by the split installation of
--    dnl MIT Kerberos on Fedora Core 1
--    K5CONFIG=""
--    if test -f $dir/bin/krb5-config; then
--      K5CONFIG=$dir/bin/krb5-config
--    elif test -f "/usr/kerberos/bin/krb5-config"; then
--      K5CONFIG="/usr/kerberos/bin/krb5-config"
--    elif test -f "/usr/lib/mit/bin/krb5-config"; then
--      K5CONFIG="/usr/lib/mit/bin/krb5-config"
--    fi
-     if test "$K5CONFIG" != ""; then
-       KRBCFLAGS=`$K5CONFIG --cflags`
-       KRBLIBS=`$K5CONFIG --libs gssapi`
--      K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
--      AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
--      if test -f $dir/include/gssapi/gssapi_krb5.h -a \
--                \( -f $dir/lib/libgssapi_krb5.a -o \
--                   -f $dir/lib64/libgssapi_krb5.a -o \
--                   -f $dir/lib64/libgssapi_krb5.so -o \
--                   -f $dir/lib/libgssapi_krb5.so \) ; then
-+    if $K5CONFIG --version | grep -q -e heimdal; then
-+      K5VERS=`$K5CONFIG --version | head -n 1 | cut -f2 -d ' ' | tr -d '.'`
-+      AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
-+      gssapi_lib=gssapi
-+      KRBIMPL="heimdal"
-+    elif $K5CONFIG --version | grep -q -e mit; then
-+      K5VERS=`$K5CONFIG --version | head -n 1 | cut -f4 -d ' ' | tr -d '.'`
-          AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
--         KRBDIR="$dir"
--  dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
--  dnl private function (gss_krb5_ccache_name) to get correct
--  dnl behavior of changing the ccache used by gssapi.
--  dnl Starting in 1.3.2, we *DO NOT* want to use
--  dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
--  dnl to get gssapi to use a different ccache
-          if test $K5VERS -le 131; then
-            AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable])
-          fi
-          gssapi_lib=gssapi_krb5
--         break
--      dnl The following ugly hack brought on by the split installation
--      dnl of Heimdal Kerberos on SuSe
--      elif test \( -f $dir/include/heim_err.h -o\
--      		 -f $dir/include/heimdal/heim_err.h \) -a \
--                -f $dir/lib/libroken.a; then
--         AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
--         KRBDIR="$dir"
--         gssapi_lib=gssapi
--        break
--      fi
--    fi
--  done
--  dnl We didn't find a usable Kerberos environment
--  if test "x$KRBDIR" = "x"; then
--    if test "x$krb5_with" = "x"; then
--      AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
-+      KRBIMPL="mit-krb5"
-     else
--      AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
--    fi
-+      AC_MSG_ERROR(Unknown Kerberos 5 Implementation. Is neither heimdal or mit-krb5.)
-+      KRBIMPL="unknown"
-   fi
--  AC_MSG_RESULT($KRBDIR)
--
--  dnl Check if -rpath=$(KRBDIR)/lib is needed
--  echo "The current KRBDIR is $KRBDIR"
--  if test "$KRBDIR/lib" = "/lib" -o "$KRBDIR/lib" = "/usr/lib" \
--       -o "$KRBDIR/lib" = "//lib" -o "$KRBDIR/lib" = "/usr//lib" ; then
--    KRBLDFLAGS="";
--  elif /sbin/ldconfig -p | grep > /dev/null "=> $KRBDIR/lib/"; then
--    KRBLDFLAGS="";
--  else
--    KRBLDFLAGS="-Wl,-rpath=$KRBDIR/lib"
-+    AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
-   fi
-+  AC_MSG_RESULT($KRBIMPL)
- 
--  dnl Now check for functions within gssapi library
--  AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
--    AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
--  AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
--    AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
--  AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
--    AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
--
--  dnl Check for newer error message facility
--  AC_CHECK_LIB($gssapi_lib, krb5_get_error_message,
--    AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
-+  AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
-+  AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
-+  AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
-+  AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
-+  AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
- 
--  dnl Check for function to specify addressless tickets
--  AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless,
--    AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
--
--  dnl If they specified a directory and it didn't work, give them a warning
--  if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
--    AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
--  fi
--
--  AC_SUBST([KRBDIR])
-   AC_SUBST([KRBLIBS])
-   AC_SUBST([KRBCFLAGS])
-   AC_SUBST([KRBLDFLAGS])
diff --git a/abs/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch b/abs/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch
deleted file mode 100644
index 7f6c7a7..0000000
--- a/abs/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-diff -Naur nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c nfs-utils-1.1.6/utils/gssd/krb5_util.c
---- utils/gssd/krb5_util.c      2009-04-20 19:32:50.000000000 +0200
-+++ utils/gssd/krb5_util.c      2009-04-20 20:57:31.000000000 +0200
-@@ -940,9 +940,37 @@
- {
- 	krb5_error_code ret;
- 	krb5_creds creds;
--	krb5_cc_cursor cur;
- 	int found = 0;
- 
-+#ifdef HAVE_HEIMDAL
-+	krb5_creds pattern;
-+	krb5_realm *client_realm;
-+
-+	krb5_cc_clear_mcred(&pattern);
-+
-+	client_realm = krb5_princ_realm (context, principal);
-+
-+	ret = krb5_make_principal (context, &pattern.server,
-+				   *client_realm, KRB5_TGS_NAME, *client_realm,
-+				   NULL);
-+	if (ret)
-+	  krb5_err (context, 1, ret, "krb5_make_principal");
-+	pattern.client = principal;
-+
-+	ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
-+	krb5_free_principal (context, pattern.server);
-+	if (ret) {
-+	  if (ret == KRB5_CC_END)
-+            return 1;
-+	  krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
-+	}
-+
-+	found = creds.times.endtime > time(NULL);
-+
-+	krb5_free_cred_contents (context, &creds);
-+#else
-+	krb5_cc_cursor cur;
-+
- 	ret = krb5_cc_start_seq_get(context, ccache, &cur);
- 	if (ret) 
- 		return 0;
-@@ -962,6 +990,7 @@
- 		krb5_free_cred_contents(context, &creds);
- 	}
- 	krb5_cc_end_seq_get(context, ccache, &cur);
-+#endif
- 
- 	return found;
- }
-@@ -1008,6 +1037,9 @@
- 	}
- 	krb5_free_principal(context, principal);
- err_princ:
-+#ifdef HAVE_HEIMDAL
-+#define KRB5_TC_OPENCLOSE              0x00000001
-+#endif
- 	krb5_cc_set_flags(context, ccache,  KRB5_TC_OPENCLOSE);
- 	krb5_cc_close(context, ccache);
- err_cache:
-@@ -1262,7 +1294,7 @@
- 	if (context != NULL) {
- 		origmsg = krb5_get_error_message(context, code);
- 		msg = strdup(origmsg);
--		krb5_free_error_message(context, origmsg);
-+		krb5_free_error_string(context, origmsg);
- 	}
- #endif
- 	if (msg != NULL)
diff --git a/abs/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch b/abs/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch
deleted file mode 100644
index 917136a..0000000
--- a/abs/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Index: nfs-utils-1.1.6/utils/gssd/context_lucid.c
-===================================================================
---- nfs-utils-1.1.6.orig/utils/gssd/context_lucid.c
-+++ nfs-utils-1.1.6/utils/gssd/context_lucid.c
-@@ -51,8 +51,10 @@
- #include "context.h"
- 
- #ifndef OM_uint64
-+#ifndef GSSAPI_GSSAPI_H_
- typedef uint64_t OM_uint64;
- #endif
-+#endif
- 
- static int
- write_lucid_keyblock(char **p, char *end, gss_krb5_lucid_key_t *key)
-@@ -177,10 +179,10 @@
- 	int retcode = 0;
- 
- 	printerr(2, "DEBUG: serialize_krb5_ctx: lucid version!\n");
--	maj_stat = gss_export_lucid_sec_context(&min_stat, &ctx,
-+	maj_stat = gss_krb5_export_lucid_sec_context(&min_stat, &ctx,
- 						1, &return_ctx);
- 	if (maj_stat != GSS_S_COMPLETE) {
--		pgsserr("gss_export_lucid_sec_context",
-+		pgsserr("gss_krb5_export_lucid_sec_context",
- 			maj_stat, min_stat, &krb5oid);
- 		goto out_err;
- 	}
-@@ -204,9 +206,9 @@
- 	else
- 		retcode = prepare_krb5_rfc_cfx_buffer(lctx, buf, endtime);
- 
--	maj_stat = gss_free_lucid_sec_context(&min_stat, ctx, return_ctx);
-+	maj_stat = gss_krb5_free_lucid_sec_context(&min_stat, ctx);
- 	if (maj_stat != GSS_S_COMPLETE) {
--		pgsserr("gss_export_lucid_sec_context",
-+		pgsserr("gss_krb5_export_lucid_sec_context",
- 			maj_stat, min_stat, &krb5oid);
- 		printerr(0, "WARN: failed to free lucid sec context\n");
- 	}
-Index: nfs-utils-1.1.6/utils/gssd/krb5_util.c
-===================================================================
---- nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c
-+++ nfs-utils-1.1.6/utils/gssd/krb5_util.c
-@@ -332,10 +332,10 @@
- 		return -1;
- 	}
- 
--	maj_stat = gss_set_allowable_enctypes(&min_stat, credh, &krb5oid,
-+	maj_stat = gss_krb5_set_allowable_enctypes(&min_stat, credh,
- 					     num_enctypes, &enctypes);
- 	if (maj_stat != GSS_S_COMPLETE) {
--		pgsserr("gss_set_allowable_enctypes",
-+		pgsserr("gss_krb5_set_allowable_enctypes",
- 			maj_stat, min_stat, &krb5oid);
- 		gss_release_cred(&min_stat, &credh);
- 		return -1;
diff --git a/abs/core/nfs-utils/nfs-utils.conf b/abs/core/nfs-utils/nfs-utils.conf
new file mode 100644
index 0000000..33c97b8
--- /dev/null
+++ b/abs/core/nfs-utils/nfs-utils.conf
@@ -0,0 +1 @@
+nfs
diff --git a/abs/core/nfs-utils/nfsd.service b/abs/core/nfs-utils/nfsd.service
new file mode 100644
index 0000000..e5481c3
--- /dev/null
+++ b/abs/core/nfs-utils/nfsd.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=NFS server
+After=rpcbind.service
+Requires=rpcbind.service
+
+[Service]
+Type=oneshot
+EnvironmentFile=/etc/conf.d/nfs-server.conf
+ExecStart=/usr/sbin/rpc.nfsd $NFSD_OPTS $NFSD_COUNT
+ExecStartPost=/usr/sbin/exportfs -a
+ExecStop=/usr/sbin/rpc.nfsd 0
+ExecStopPost=/usr/sbin/exportfs -a -u
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/proc-fs-nfsd.mount b/abs/core/nfs-utils/proc-fs-nfsd.mount
new file mode 100644
index 0000000..f8664a8
--- /dev/null
+++ b/abs/core/nfs-utils/proc-fs-nfsd.mount
@@ -0,0 +1,8 @@
+[Unit]
+Description=RPC Pipe File System 
+DefaultDependencies=no
+
+[Mount]
+What=sunrpc
+Where=/proc/fs/nfsd
+Type=rpc_pipefs
diff --git a/abs/core/nfs-utils/rpc-gssd.service b/abs/core/nfs-utils/rpc-gssd.service
new file mode 100644
index 0000000..446864d
--- /dev/null
+++ b/abs/core/nfs-utils/rpc-gssd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=RPC GSS-API client-side daemon
+After=rpcbind.service var-lib-nfs-rpc_pipefs.mount
+Requires=rpcbind.service var-lib-nfs-rpc_pipefs.mount
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/nfs-common.conf
+ExecStart=/usr/sbin/rpc.gssd $GSSD_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/rpc-idmapd.service b/abs/core/nfs-utils/rpc-idmapd.service
new file mode 100644
index 0000000..72cd26a
--- /dev/null
+++ b/abs/core/nfs-utils/rpc-idmapd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=NFSv4 ID-name mapping daemon
+After=var-lib-nfs-rpc_pipefs.mount nfsd.service
+Requires=var-lib-nfs-rpc_pipefs.mount
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/nfs-common.conf
+ExecStart=/usr/sbin/rpc.idmapd $IDMAPD_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/rpc-mountd.service b/abs/core/nfs-utils/rpc-mountd.service
new file mode 100644
index 0000000..edd8c85
--- /dev/null
+++ b/abs/core/nfs-utils/rpc-mountd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=NFS Mount Daemon
+After=rpcbind.service nfsd.service
+Requires=rpcbind.service nfsd.service
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/nfs-server.conf
+ExecStart=/usr/sbin/rpc.mountd $MOUNTD_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/rpc-statd.service b/abs/core/nfs-utils/rpc-statd.service
new file mode 100644
index 0000000..983b404
--- /dev/null
+++ b/abs/core/nfs-utils/rpc-statd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=NFSv2/3 Network Status Monitor Daemon
+After=rpcbind.service
+Requires=rpcbind.service
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/nfs-common.conf
+ExecStart=/usr/sbin/rpc.statd $STATD_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/rpc-svcgssd.service b/abs/core/nfs-utils/rpc-svcgssd.service
new file mode 100644
index 0000000..8152e83
--- /dev/null
+++ b/abs/core/nfs-utils/rpc-svcgssd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=RPC GSS-API server-side daemon
+After=rpcbind.service
+Requires=rpcbind.service
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/conf.d/nfs-server.conf
+ExecStart=/usr/sbin/rpc.svcgssd $SVCGSSD_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/nfs-utils/start-statd.patch b/abs/core/nfs-utils/start-statd.patch
index 38c60a7..5d73b6e 100644
--- a/abs/core/nfs-utils/start-statd.patch
+++ b/abs/core/nfs-utils/start-statd.patch
@@ -1,7 +1,7 @@
 --- utils/statd/start-statd	2007-05-11 04:40:57.000000000 +0100
 +++ utils/statd/start-statd.new	2007-09-21 17:11:34.000000000 +0100
 @@ -1,9 +1,16 @@
--#!/bin/sh -p
+-#!/bin/bash -p
 +#!/bin/sh
 +
 +# Original script provided by the NFS project
@@ -10,7 +10,7 @@
  # nfsmount calls this script when mounting a filesystem with locking
  # enabled, but when statd does not seem to be running (based on
  # /var/run/rpc.statd.pid).
- # It should run run statd with whatever flags are apropriate for this
+ # It should run statd with whatever flags are apropriate for this
  # site.
 -PATH=/sbin:/usr/sbin
 -exec rpc.statd --no-notify
diff --git a/abs/core/nfs-utils/var-lib-nfs-rpc_pipefs.mount b/abs/core/nfs-utils/var-lib-nfs-rpc_pipefs.mount
new file mode 100644
index 0000000..4bd440f
--- /dev/null
+++ b/abs/core/nfs-utils/var-lib-nfs-rpc_pipefs.mount
@@ -0,0 +1,7 @@
+[Unit]
+Description=RPC pipe filesystem
+
+[Mount]
+What=rpc_pipefs
+Where=/var/lib/nfs/rpc_pipefs
+Type=rpc_pipefs
-- 
cgit v0.12

