From 2c06ac51b77103f790ec78a9a675c70a8e0ed57d Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 28 Jan 2012 17:04:13 +0100 Subject: [PATCH] nfs-utils: update to 1.2.5, systemd switch. --- srcpkgs/nfs-utils/files/exportfs.service | 13 ++++ srcpkgs/nfs-utils/files/idmapd.conf | 14 +++++ srcpkgs/nfs-utils/files/mountd.rc | 13 ---- srcpkgs/nfs-utils/files/nfs-utils.tmpfiles.d | 3 + srcpkgs/nfs-utils/files/nfsd.rc | 30 --------- srcpkgs/nfs-utils/files/nfsd.service | 13 ++++ srcpkgs/nfs-utils/files/nfslock.rc | 11 ---- srcpkgs/nfs-utils/files/rpc-gssd.service | 11 ++++ srcpkgs/nfs-utils/files/rpc-idmapd.service | 11 ++++ srcpkgs/nfs-utils/files/rpc-mountd.service | 11 ++++ srcpkgs/nfs-utils/files/rpc-statd.service | 11 ++++ srcpkgs/nfs-utils/files/rpc-svcgssd.service | 11 ++++ .../files/var-lib-nfs-rpc_pipefs.mount | 7 +++ srcpkgs/nfs-utils/nfs-utils.rshlibs | 11 ++++ .../patches/nfs-utils-1.1.4-mtab-sym.patch | 39 ++++++++++++ srcpkgs/nfs-utils/template | 63 ++++++++++++------- 16 files changed, 196 insertions(+), 76 deletions(-) create mode 100644 srcpkgs/nfs-utils/files/exportfs.service create mode 100644 srcpkgs/nfs-utils/files/idmapd.conf delete mode 100644 srcpkgs/nfs-utils/files/mountd.rc create mode 100644 srcpkgs/nfs-utils/files/nfs-utils.tmpfiles.d delete mode 100644 srcpkgs/nfs-utils/files/nfsd.rc create mode 100644 srcpkgs/nfs-utils/files/nfsd.service delete mode 100644 srcpkgs/nfs-utils/files/nfslock.rc create mode 100644 srcpkgs/nfs-utils/files/rpc-gssd.service create mode 100644 srcpkgs/nfs-utils/files/rpc-idmapd.service create mode 100644 srcpkgs/nfs-utils/files/rpc-mountd.service create mode 100644 srcpkgs/nfs-utils/files/rpc-statd.service create mode 100644 srcpkgs/nfs-utils/files/rpc-svcgssd.service create mode 100644 srcpkgs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount create mode 100644 srcpkgs/nfs-utils/nfs-utils.rshlibs create mode 100644 srcpkgs/nfs-utils/patches/nfs-utils-1.1.4-mtab-sym.patch diff --git a/srcpkgs/nfs-utils/files/exportfs.service b/srcpkgs/nfs-utils/files/exportfs.service new file mode 100644 index 0000000000..5acec33771 --- /dev/null +++ b/srcpkgs/nfs-utils/files/exportfs.service @@ -0,0 +1,13 @@ +[Unit] +Description=Export filesystems over NFS +After=nfsd.service +Requires=nfsd.service + +[Service] +ExecStart=/usr/sbin/exportfs -ar +ExecStop=/usr/sbin/exportfs -au +ExecReload=/usr/sbin/exportfs -ar +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/idmapd.conf b/srcpkgs/nfs-utils/files/idmapd.conf new file mode 100644 index 0000000000..b1b23afe94 --- /dev/null +++ b/srcpkgs/nfs-utils/files/idmapd.conf @@ -0,0 +1,14 @@ +[General] + +Verbosity = 0 +Pipefs-Directory = /var/lib/nfs/rpc_pipefs +Domain = localdomain + +[Mapping] + +Nobody-User = nobody +Nobody-Group = nobody + +[Translation] + +Method = nsswitch diff --git a/srcpkgs/nfs-utils/files/mountd.rc b/srcpkgs/nfs-utils/files/mountd.rc deleted file mode 100644 index 8e46fa4a7c..0000000000 --- a/srcpkgs/nfs-utils/files/mountd.rc +++ /dev/null @@ -1,13 +0,0 @@ -#!/sbin/runscript - -# Disable v1 and v2 by default. -: ${mountd_args:=--no-nfs-version 1 --no-nfs-version 2} - -command=/usr/sbin/rpc.mountd -command_args=$mountd_args -name="RPC Mountd daemon" - -depend() -{ - need nfslock -} diff --git a/srcpkgs/nfs-utils/files/nfs-utils.tmpfiles.d b/srcpkgs/nfs-utils/files/nfs-utils.tmpfiles.d new file mode 100644 index 0000000000..f558f87175 --- /dev/null +++ b/srcpkgs/nfs-utils/files/nfs-utils.tmpfiles.d @@ -0,0 +1,3 @@ +d /var/lib/nfs/rpc_pipefs 0755 root root - +d /var/lib/nfs/v4recovery 0755 root root - +d /etc/exports.d 0750 root root - diff --git a/srcpkgs/nfs-utils/files/nfsd.rc b/srcpkgs/nfs-utils/files/nfsd.rc deleted file mode 100644 index 3d68912e85..0000000000 --- a/srcpkgs/nfs-utils/files/nfsd.rc +++ /dev/null @@ -1,30 +0,0 @@ -#!/sbin/runscript - -# By default start up 8 server threads. -: ${nfsd_args:=8} - -command=/usr/sbin/rpc.nfsd -command_args=$nfsd_args -pidfile=/var/run/nfsd.pid -name="RPC Network File System daemon" - -depend() -{ - use procfs - need mountd -} - -start_post() -{ - echo $(pidof -o %PPID nfsd) > $pidfile - sm-notify ${smnotify_args} -} - -stop() -{ - # Unexport all directories before. - exportfs -au - ebegin "Stopping $name" - kill -9 $(cat $pidfile) && rm -f $pidfile - eend $? -} diff --git a/srcpkgs/nfs-utils/files/nfsd.service b/srcpkgs/nfs-utils/files/nfsd.service new file mode 100644 index 0000000000..27dd7f1b60 --- /dev/null +++ b/srcpkgs/nfs-utils/files/nfsd.service @@ -0,0 +1,13 @@ +[Unit] +Description=NFS server +After=rpcbind.service +Requires=rpcbind.service + +[Service] +Type=oneshot +ExecStart=/usr/sbin/rpc.nfsd +ExecStop=/usr/sbin/rpc.nfsd 0 +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/nfslock.rc b/srcpkgs/nfs-utils/files/nfslock.rc deleted file mode 100644 index d142c5c195..0000000000 --- a/srcpkgs/nfs-utils/files/nfslock.rc +++ /dev/null @@ -1,11 +0,0 @@ -#!/sbin/runscript - -command=/usr/sbin/rpc.statd -command_args=$nfslock_args -pidfile=/var/run/rpc.statd.pid -name="RPC Statd daemon" - -depend() -{ - need portmap -} diff --git a/srcpkgs/nfs-utils/files/rpc-gssd.service b/srcpkgs/nfs-utils/files/rpc-gssd.service new file mode 100644 index 0000000000..f4d7802f03 --- /dev/null +++ b/srcpkgs/nfs-utils/files/rpc-gssd.service @@ -0,0 +1,11 @@ +[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 +ExecStart=/usr/sbin/rpc.gssd + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/rpc-idmapd.service b/srcpkgs/nfs-utils/files/rpc-idmapd.service new file mode 100644 index 0000000000..c9abfc8993 --- /dev/null +++ b/srcpkgs/nfs-utils/files/rpc-idmapd.service @@ -0,0 +1,11 @@ +[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 +ExecStart=/usr/sbin/rpc.idmapd + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/rpc-mountd.service b/srcpkgs/nfs-utils/files/rpc-mountd.service new file mode 100644 index 0000000000..16ce6636c0 --- /dev/null +++ b/srcpkgs/nfs-utils/files/rpc-mountd.service @@ -0,0 +1,11 @@ +[Unit] +Description=NFSv2/3 Mount Daemon +After=rpcbind.service nfsd.service +Requires=rpcbind.service nfsd.service + +[Service] +Type=forking +ExecStart=/usr/sbin/rpc.mount + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/rpc-statd.service b/srcpkgs/nfs-utils/files/rpc-statd.service new file mode 100644 index 0000000000..ba1175fcc2 --- /dev/null +++ b/srcpkgs/nfs-utils/files/rpc-statd.service @@ -0,0 +1,11 @@ +[Unit] +Description=NFSv2/3 Network Status Monitor Daemon +After=rpcbind.service +Requires=rpcbind.service + +[Service] +Type=forking +ExecStart=/usr/sbin/rpc.statd + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/rpc-svcgssd.service b/srcpkgs/nfs-utils/files/rpc-svcgssd.service new file mode 100644 index 0000000000..04917cc1ad --- /dev/null +++ b/srcpkgs/nfs-utils/files/rpc-svcgssd.service @@ -0,0 +1,11 @@ +[Unit] +Description=RPC GSS-API server-side daemon +After=rpcbind.service +Requires=rpcbind.service + +[Service] +Type=forking +ExecStart=/usr/sbin/rpc.svcgssd + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount b/srcpkgs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount new file mode 100644 index 0000000000..4bd440f24e --- /dev/null +++ b/srcpkgs/nfs-utils/files/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 diff --git a/srcpkgs/nfs-utils/nfs-utils.rshlibs b/srcpkgs/nfs-utils/nfs-utils.rshlibs new file mode 100644 index 0000000000..ac6cefd670 --- /dev/null +++ b/srcpkgs/nfs-utils/nfs-utils.rshlibs @@ -0,0 +1,11 @@ +libc.so.6 +libblkid.so.1 +libtirpc.so.1 +libcap.so.2 +libevent-2.0.so.5 +libnfsidmap.so.0 +libdevmapper.so.1.02 +libgssglue.so.1 +libkrb5.so.3 +libcom_err.so.2 +libmount.so.1 diff --git a/srcpkgs/nfs-utils/patches/nfs-utils-1.1.4-mtab-sym.patch b/srcpkgs/nfs-utils/patches/nfs-utils-1.1.4-mtab-sym.patch new file mode 100644 index 0000000000..bf0eb54ce7 --- /dev/null +++ b/srcpkgs/nfs-utils/patches/nfs-utils-1.1.4-mtab-sym.patch @@ -0,0 +1,39 @@ +ripped from Debian + +--- utils/mount/fstab.c ++++ utils/mount/fstab.c +@@ -57,7 +57,7 @@ mtab_does_not_exist(void) { + return var_mtab_does_not_exist; + } + +-static int ++int + mtab_is_a_symlink(void) { + get_mtab_info(); + return var_mtab_is_a_symlink; +--- utils/mount/fstab.h ++++ utils/mount/fstab.h +@@ -7,6 +7,7 @@ + #define _PATH_FSTAB "/etc/fstab" + #endif + ++int mtab_is_a_symlink(void); + int mtab_is_writable(void); + int mtab_does_not_exist(void); + void reset_mtab_info(void); +--- utils/mount/mount.c ++++ utils/mount/mount.c +@@ -230,6 +230,13 @@ create_mtab (void) { + int flags; + mntFILE *mfp; + ++ /* Avoid writing if the mtab is a symlink to /proc/mounts, since ++ that would create a file /proc/mounts in case the proc filesystem ++ is not mounted, and the fchmod below would also fail. */ ++ if (mtab_is_a_symlink()) { ++ return EX_SUCCESS; ++ } ++ + lock_mtab(); + + mfp = nfs_setmntent (MOUNTED, "a+"); diff --git a/srcpkgs/nfs-utils/template b/srcpkgs/nfs-utils/template index d7f3b6ee91..0354f056b2 100644 --- a/srcpkgs/nfs-utils/template +++ b/srcpkgs/nfs-utils/template @@ -1,36 +1,55 @@ # Template file for 'nfs-utils' pkgname=nfs-utils -version=1.2.0 -revision=1 +version=1.2.5 +homepage="http://nfs.sourceforge.net" distfiles="http://downloads.sf.net/nfs/$pkgname-$version.tar.bz2" build_style=gnu-configure -configure_args="--with-statduser=nobody --disable-gss --disable-nfsv4 - --enable-nfsv3 --with-statedir=/var/lib/nfs --enable-mount" +configure_args="--with-statduser=nobody --enable-gss --enable-nfsv4 +--with-statedir=/var/lib/nfs --enable-libmount-mount +--without-tcp-wrappers --enable-ipv6" short_desc="Network File System utilities" maintainer="Juan RP " -checksum=cb39468b3acd0bf3870cde4bbb06fe01a88e7cf0c81cff87fa7794cab871a1d1 +license="GPL-2" +checksum=3595ed4f6ee5c13514540861ad5e89907aa4fd6897bfa99577515233e4745a9b long_desc=" The $pkgname package provides a daemon for the kernel NFS server and related tools, which provides a much higher level of performance than the traditional Linux NFS server used by most users." -openrc_services=" -mountd default false -nfsd default false -nfslock default false" -conf_files="/etc/exports" +conf_files="/etc/exports /etc/idmapd.conf" -Add_dependency full glibc -Add_dependency full portmap -Add_dependency full libblkid -Add_dependency build tcp_wrappers -Add_dependency run tcp_wrappers-libs +# systemd services +systemd_services=" +exportfs.service on +nfsd.service on +rpc-gssd.service on +rpc-idmapd.service on +rpc-mountd.service on +rpc-statd.service on +rpc-svcgssd.service on" -post_install() -{ - # Install the OpenRC services. - for f in mountd nfsd nfslock; do - install -D -m755 ${FILESDIR}/${f}.rc ${DESTDIR}/etc/init.d/${f} - done - install -D -m644 ${FILESDIR}/exports ${DESTDIR}/etc/exports +Add_dependency run rpcbind + +Add_dependency build coreutils # install --mode +Add_dependency build pkg-config +Add_dependency build libblkid-devel +Add_dependency build libmount-devel +Add_dependency build libtirpc-devel +Add_dependency build librpcsecgss-devel +Add_dependency build libnfsidmap-devel +Add_dependency build libevent-devel +Add_dependency build device-mapper-devel +Add_dependency build libcap-devel +Add_dependency build mit-krb5-devel + +post_install() { + # conffiles + vinstall ${FILESDIR}/exports 644 etc + vinstall ${FILESDIR}/idmapd.conf 644 etc + # systemd glue + vinstall ${FILESDIR}/${pkgname}.tmpfiles.d 644 \ + usr/lib/tmpfiles.d ${pkgname}.conf + vmkdir lib/systemd/system + install -m644 ${FILESDIR}/*.{service,mount} \ + ${DESTDIR}/lib/systemd/system }