diff options
author | 2017-08-19 13:48:40 +0100 | |
---|---|---|
committer | 2017-08-19 16:11:24 +0100 | |
commit | 067a67fd006451ff2ac2821aeec0cd216c34924d (patch) | |
tree | ea0aab6ee4064581e60b066eb31b8781bd2ea4fb /net-fs | |
parent | Add net-dns/libidn-1.33, update README.md (diff) | |
download | srcshelton-067a67fd006451ff2ac2821aeec0cd216c34924d.tar.gz srcshelton-067a67fd006451ff2ac2821aeec0cd216c34924d.tar.bz2 srcshelton-067a67fd006451ff2ac2821aeec0cd216c34924d.zip |
Add net-fs/nfs-utils-1.3.4-r1, update README.md
Diffstat (limited to 'net-fs')
-rw-r--r-- | net-fs/nfs-utils/Manifest | 19 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/exports | 1 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch | 39 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch | 48 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfs.confd | 38 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfs.initd | 162 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfsclient.confd | 18 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/nfsclient.initd | 33 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/proc-fs-nfsd.mount | 8 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc-gssd.service | 12 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc-idmapd.service | 11 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc-svcgssd.service | 13 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc.gssd.initd | 23 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc.idmapd.initd | 25 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc.pipefs.initd | 32 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc.statd.initd | 32 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/rpc.svcgssd.initd | 23 | ||||
-rw-r--r-- | net-fs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount | 7 | ||||
-rw-r--r-- | net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild | 179 |
19 files changed, 723 insertions, 0 deletions
diff --git a/net-fs/nfs-utils/Manifest b/net-fs/nfs-utils/Manifest new file mode 100644 index 00000000..9322d664 --- /dev/null +++ b/net-fs/nfs-utils/Manifest @@ -0,0 +1,19 @@ +AUX exports 66 SHA256 5d6356df546682e2f1a87131d1bb67de9b1f9a34d3a5742343dc64e890cf71d5 SHA512 fd8052dc8e17eccb0bb1443f341c97ec7c9dac5824294cadf486d91475bc728d4bb69300034b528a690707520590f6675ee371f92e9838afc8ed88092ee0f220 WHIRLPOOL 7cc6b59c1f7013a0ad98518623b03d1cba784ecaf6d6a085b85282192c6f41ac1c649a39dc6e1b42ff38a571c00a85aed6e04ea57d6339a072cc4f2c41d5d74e +AUX nfs-utils-1.1.4-mtab-sym.patch 1020 SHA256 0232799d085151649a1eb1f31644105de7e5cfba888794354005499a0db277c3 SHA512 1cd916028a8515772f05ef63832d73a09e9720055aedc9e2e4ce3a08ce1820948700a4f00ca9c4ee684880f18e67aca888dd857fc7931d923021ba50964be998 WHIRLPOOL c16ecee3228ad4522cf4ede1d05ca50cece3910955314c96eb88a61cfe07b7f6a95c42bb15a7f7f9fd211fa62cdcbb02925e68702d5066338b4543baf56fb2df +AUX nfs-utils-1.2.8-cross-build.patch 1323 SHA256 281ae4f2af4d28adc936be961c2ab4aa4f77c4fb74ba08f2cef1038c6e03b30e SHA512 42a41411d0de384b66a2875fa9ea15e4b854150b5f75ba2db54ad7785fd147ee329eb8867d24a26b2b1d9ef89bd887caeaf0b5a59cdda15f5a11c47888882b9a WHIRLPOOL 52f5704ec8b88eeb3fab37e4aa9a7ca64ca76f0665c66347ab663624cb3b70309a262d86b21882dc5f687741c73974dc6efbc01d6c386e3ea607bbdb89619edb +AUX nfs.confd 930 SHA256 c652a4fe8a43dc68a818345db2b3acc560663b5b6c969324d4f23afb0fb96a94 SHA512 bc11b073735ee86c96b9c249ee187f4d16329c279a4e26760875059d2b5fa1d510ef3e4df5ee9dfb2a3133d755e1eb5c323d2fadc432a0cf630191ec353ac535 WHIRLPOOL 799a8faf894b912816737388bdf2dfffacf4de791e5c868437fc298604c6d27c58581b1e3df26648cba4e832cb0eee8d4042692065ed6b4c6fb66f6a1e207813 +AUX nfs.initd 4244 SHA256 247456e845e70badb44d9155b68e5f76d502361769e4332a9d1bd6345f85fbfa SHA512 f7feb79cfcab0478affb640d1e5ad059757c88d51cc790fd54cde2fd7ed2e3cfd8f7f4c2de993d99da03e8ce3bdfb2750a4cb997b850fe33d0ef76d9b91c9018 WHIRLPOOL ef4edea3cda5bc5867cf513bc14fd104ad4d4f58440aa5bf52a49f83f5e3a368acc0276323286607293bd79d2bd52a49794b429036bf41c06b0999d9a0e06322 +AUX nfsclient.confd 591 SHA256 29775c3d68e212fc1aa27d6714f7d8002b044313828b4731bb264599dd1c9f8e SHA512 c79baac9ad76e09012cbebe22b1bd2dec3ed574c6e51e38cd4c534a92947719c887af927d325562fa539826680b5c52334fb7d1c2cd9d2a7295f1878080ca680 WHIRLPOOL 5d7ea185e5c7aed180b03a3ca9ebd04ddfac7015894ae425f6fe8848eec7b99dc63ff70c5a33efa7ea2f6dd6c55bd3be3bfbeb930e596c2b3786a4b332a3a201 +AUX nfsclient.initd 752 SHA256 56973f5c8196b4227114d94a1d3c8c95518be5a02c6b5dc97da243d0b6086843 SHA512 85078e2cd38b37a1e6fbaf0e40cf7690f403e71d9c8188d542d12fe56bfc02a49763c7bcc7742691754acc37928468c215db2795bebc29a5dfb052ba08f407bb WHIRLPOOL 1513fe28b612be33b8a4afa7e26994f32f08b559f1b90cb190a64e4649819defee2cdba7738409b6f65b7817e950193225b6818c08e7cfd134fc7faeb95bd376 +AUX proc-fs-nfsd.mount 123 SHA256 39ca215bd3ff124a5872d3535f7cfd403455469350a9495f0ac1f6fb169264c2 SHA512 cd129a6cb7286c175d1dde512bb7cf51c5e56648870cb0082ffeb4068636c78c58c8f3935ebf0c8f177943a4a69b4d02eef80851f88415ad0dffffadaee3dd1b WHIRLPOOL 273581c5e30f4495b12ed5fd35c1cdaaf38351d6a30a17ee45b79406d9c3185c835a2e15c5c1887f1c1bfd98c4669179c7492a9ae7961a2c30ee81bb8f8cb14d +AUX rpc-gssd.service 289 SHA256 1a322ed002c4e3c1e9166f169b8a8467c51bab51897459982cfe73d19c7e7bc6 SHA512 84e8a043b62b6f371dfc19670bd95cf81aef624482072b06e5a1877be23466102775898605ceace0823feb53e0c066c156ab7d16f41fb23833f32d6e06739aa3 WHIRLPOOL 5f1307780deadf454229c1a5a337c4d99e8a4a121d90e37eeadc3981e4bee75a80db36f816f4934fe09f760f504ae1382d29997cbc033a3bab0a0045224b02d3 +AUX rpc-idmapd.service 269 SHA256 996c02401f0a5f2516650bd205e993987ca0781b6040a6fbcd6736d6eedf2b62 SHA512 973b0aa83c42f4f22a982680669a0d4109db498362c9c8cbf4da445c04c7be059cb89fe67f839892b53f44c0fd1b4e767f8d8a834ac3d3180c62c83267c5fab1 WHIRLPOOL 4ed69ec063368a0064fe999eb685c113c3aa63d6b6484dd3747722134018e8d774a6803d7617d7b670b938683b8f3de2b46480a5be75c10df86156daed307766 +AUX rpc-svcgssd.service 259 SHA256 ee585a6448c3f211e431431d547378531eea5137b8968ae1c663e79a490999dd SHA512 ff5cfcb9f5f616b8418535b6337410133c60824def55dcefea2622c64352c4a1c295933f291361917148402cba7f7b0fbf218d7a33b427ee7a174c938a73594e WHIRLPOOL b45aac6b7d0fd2a0be18c0e00df2a95d31d433327e0838da680a582623028376d44242875fa0bd563049c61cf183c962c373e005e6c47e291fabb36b1f61de81 +AUX rpc.gssd.initd 455 SHA256 83c318a7502718a3e1693869297b95db1c32270b37d45b26b2bc151ec06f3c08 SHA512 d9d7eeebbe153d3c4784112ed6d50734b5619b3315bb1454f8163de2b78ed8f958029a0e1088de58e9b1b8069184aeab2c8f19af4b957b6be25e4f138960aeac WHIRLPOOL 94e2ea6103ce06f245bd7e349f56789415c1289954f3f8b53335071240fb93ac3915f4b37e6d35536075c81b00088ca269aa6effb787af9fd55813919713930c +AUX rpc.idmapd.initd 482 SHA256 dc21ce6ba28f45eb450d5d0dbe7e5ea706b1547c8bece4ddb6836a5433427bd6 SHA512 f3e88038cb040ffcbca76166f4322d37e39da00d144bc0a17aed4467ab10c6e626fcde6c407d0911d135bfab55622ad2e38ed93788b11459c5882ce60577fb45 WHIRLPOOL 864abfa5d2fc88112f9670673f8c7974c2a163a518f516b356ec12409be9b59f9c4307c1dbcf8fb21c2063d2708a89404186c325d7e60bf4adeb4edb96201b13 +AUX rpc.pipefs.initd 760 SHA256 04102bff9b13d2e7c4e30603e7c98fe412d5f6c907a37dcea95f420f153c29ae SHA512 3d3fa6e7ae01e27d27d88aba1e307c5293dd1cbc9d555737e03c4f1e17988518f4f1e7f7a38a7337f8e8961e8378cc4611769b04db7368460589a3b218ac6d6b WHIRLPOOL d1398888182a15edb9df6e0cee807de4be6cf576af7383a36abfa1de806efc0d4ecefc901fa245d87aec44935ece967dea975b99d7228ac1a83c69bc84fe6157 +AUX rpc.statd.initd 706 SHA256 6f3d93442db0c17436547a16155e0d61dd5cd17f49fd3a642a9a5de833411d51 SHA512 7f6baea852fff91b88e15e432ba19f9da0a3e3510b6f550b553912cf3887ce176280367b62bcce2a044730a075e4c1f6d7df1a669556d42725dea6e6e8e967ac WHIRLPOOL c8902c26109a70f5393121a97b8f6f9212fb3113aa0359da08fd650e9683e6155da170f8a05fd2d0410fb67aa2a817f5618630572a540396f16a08151293fe48 +AUX rpc.svcgssd.initd 470 SHA256 272905335a7c82034c6bac007bd4477aae21d8ce49e82355c48301db771ba77e SHA512 819cce4ae0a0f26bc74ce546e149b98420584240a594c9bb4a0a49413750320bde050866f3753c499425ea8d8df094211fb1f7e020ce281791e1933e1bc6a47f WHIRLPOOL 00ec16b95b288d98ea30ed135f5b518fec16c41413e7369d8ec497e3ebc7367ed76434d24ff0f8bcb27103d8880c4dd0b0fbc9306ba2ecc77136260683580f5d +AUX var-lib-nfs-rpc_pipefs.mount 111 SHA256 59e05e4e6d6af92d5fafaf2d6b8e87670bcda4de5c9fb748d1be40a21f594500 SHA512 f4502bf53fd3014987e53ffc5d4b9b8678103052289dfe9f9304bb7eab66b6b59d80e3a29c19e3bc794657c2e3dbb25e275f78e09bc25808ed9849cc4a748034 WHIRLPOOL c684e43627f4e9ec4c97f0db28ce28682fc5f17627573c0902bb17946b0012969e070bd9030e0c20b9bd10e140e2901a9c2246a7e70700cf7541d90aa7293c76 +DIST nfs-utils-1.3.4.tar.bz2 814545 SHA256 c529c82a82320daae811f3d3a143f83d2714d7e7a43beadd42fcd6022c17d590 SHA512 765c0bc55a9a0bdb2c25d8fb7189a9054fb9f2dd51726eda29f44e5d5c423e245b02307dfcfab9239276d8f44869a72732416f6e9ef5a1f80753d9243ba1b38c WHIRLPOOL 6dc556ef7d00a583c222eb62a600b0d83c6f91ad65d89ca14e1fb3c8aaacf4fbae492e6f0ca3fb0821e2b666f0806ad5fddec041a1124b86b9941540cdfb08b4 +EBUILD nfs-utils-1.3.4-r1.ebuild 5077 SHA256 ecaebcbc0000ac5694ed78d5e6df877ddb789ebe6e8cc920a730cde884742d77 SHA512 85b81c4fa9da35bcd7ff6b12547caf2b542cb8a474b6f3bc2542e7c66c283f91659ae2f8b42a1f2ce22fdfa959c8ef6175128b12915fe0b75195e2be533d423b WHIRLPOOL ed1782065fc5eb549a6d4f98df7a1f2729f9d5da26a4be72a614eafe826832e6733677862ce0c81690be120e526ef8cdee120eb962e6bc891ae6ce5c934ce243 diff --git a/net-fs/nfs-utils/files/exports b/net-fs/nfs-utils/files/exports new file mode 100644 index 00000000..5102ef27 --- /dev/null +++ b/net-fs/nfs-utils/files/exports @@ -0,0 +1 @@ +# /etc/exports: NFS file systems being exported. See exports(5). diff --git a/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch b/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch new file mode 100644 index 00000000..c9e60afc --- /dev/null +++ b/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch @@ -0,0 +1,39 @@ +ripped from Debian + +--- nfs-utils-1.1.4/utils/mount/fstab.c ++++ nfs-utils-1.1.4/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; +--- nfs-utils-1.1.4/utils/mount/fstab.h ++++ nfs-utils-1.1.4/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); +--- nfs-utils-1.1.4/utils/mount/mount.c ++++ nfs-utils-1.1.4/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/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch new file mode 100644 index 00000000..7317115a --- /dev/null +++ b/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch @@ -0,0 +1,48 @@ +this is kind of hacky, but automake doesn't make this easy +for us atm, so hack away :( + +(recent autotools will always add $(CFLAGS)/etc... to the compile) + +--- a/tools/locktest/Makefile.am ++++ b/tools/locktest/Makefile.am +@@ -1,12 +1,11 @@ + ## Process this file with automake to produce Makefile.in + + CC=$(CC_FOR_BUILD) +-LIBTOOL = @LIBTOOL@ --tag=CC ++CFLAGS=$(CFLAGS_FOR_BUILD) ++CPPFLAGS=$(CPPFLAGS_FOR_BUILD) ++LDFLAGS=$(LDFLAGS_FOR_BUILD) + + noinst_PROGRAMS = testlk + testlk_SOURCES = testlk.c +-testlk_CFLAGS=$(CFLAGS_FOR_BUILD) +-testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD) +-testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD) + + MAINTAINERCLEANFILES = Makefile.in +--- a/tools/rpcgen/Makefile.am ++++ b/tools/rpcgen/Makefile.am +@@ -1,7 +1,9 @@ + ## Process this file with automake to produce Makefile.in + + CC=$(CC_FOR_BUILD) +-LIBTOOL = @LIBTOOL@ --tag=CC ++CFLAGS=$(CFLAGS_FOR_BUILD) ++CPPFLAGS=$(CPPFLAGS_FOR_BUILD) ++LDFLAGS=$(LDFLAGS_FOR_BUILD) + + noinst_PROGRAMS = rpcgen + rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \ +@@ -9,10 +11,6 @@ + rpc_util.c rpc_sample.c rpc_output.h rpc_parse.h \ + rpc_scan.h rpc_util.h + +-rpcgen_CFLAGS=$(CFLAGS_FOR_BUILD) +-rpcgen_CPPLAGS=$(CPPFLAGS_FOR_BUILD) +-rpcgen_LDFLAGS=$(LDFLAGS_FOR_BUILD) +-rpcgen_LDADD=$(LIBTIRPC) + + MAINTAINERCLEANFILES = Makefile.in + + EXTRA_DIST = rpcgen.new.1 diff --git a/net-fs/nfs-utils/files/nfs.confd b/net-fs/nfs-utils/files/nfs.confd new file mode 100644 index 00000000..9dc14058 --- /dev/null +++ b/net-fs/nfs-utils/files/nfs.confd @@ -0,0 +1,38 @@ +# /etc/conf.d/nfs + +# If you wish to set the port numbers for lockd, +# please see /etc/sysctl.conf + +# Optional services to include in default `/etc/init.d/nfs start` +# For NFSv4 users, you'll want to add "rpc.idmapd" here. +NFS_NEEDED_SERVICES="" + +# Options to pass to rpc.nfsd +OPTS_RPC_NFSD="8" + +# Options to pass to rpc.mountd +# ex. OPTS_RPC_MOUNTD="-p 32767" +OPTS_RPC_MOUNTD="" + +# Options to pass to rpc.statd +# ex. OPTS_RPC_STATD="-p 32765 -o 32766" +OPTS_RPC_STATD="" + +# Options to pass to rpc.idmapd +OPTS_RPC_IDMAPD="" + +# Options to pass to rpc.gssd +OPTS_RPC_GSSD="" + +# Options to pass to rpc.svcgssd +OPTS_RPC_SVCGSSD="" + +# Options to pass to rpc.rquotad (requires sys-fs/quota) +OPTS_RPC_RQUOTAD="" + +# Timeout (in seconds) for exportfs +EXPORTFS_TIMEOUT=30 + +# Options to set in the nfsd filesystem (/proc/fs/nfsd/). +# Format is <option>=<value>. Multiple options are allowed. +#OPTS_NFSD="nfsv4leasetime=30 max_block_size=4096" diff --git a/net-fs/nfs-utils/files/nfs.initd b/net-fs/nfs-utils/files/nfs.initd new file mode 100644 index 00000000..4b572fc2 --- /dev/null +++ b/net-fs/nfs-utils/files/nfs.initd @@ -0,0 +1,162 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +# This variable is used for controlling whether or not to run exportfs -ua; +# see stop() for more information +restarting=no + +# The binary locations +exportfs=/usr/sbin/exportfs + mountd=/usr/sbin/rpc.mountd + nfsd=/usr/sbin/rpc.nfsd +smnotify=/usr/sbin/sm-notify + +depend() { + local myneed="" + # XXX: no way to detect NFSv4 is desired and so need rpc.idmapd + myneed="${myneed} $( + awk '!/^[[:space:]]*#/ { + # clear the path to avoid spurious matches + $1 = ""; + if ($0 ~ /[(][^)]*sec=(krb|spkm)[^)]*[)]/) { + print "rpc.svcgssd" + exit 0 + } + }' /etc/exports /etc/exports.d/*.exports 2>/dev/null + )" + config /etc/exports /etc/exports.d/*.exports + need portmap rpc.statd ${myneed} ${NFS_NEEDED_SERVICES} + use ypbind net dns rpc.rquotad rpc.idmapd rpc.svcgssd + after quota +} + +mkdir_nfsdirs() { + local d + for d in v4recovery v4root ; do + d="/var/lib/nfs/${d}" + [ ! -d "${d}" ] && mkdir -p "${d}" + done +} + +waitfor_exportfs() { + local pid=$1 + ( sleep ${EXPORTFS_TIMEOUT:-30}; kill -9 ${pid} 2>/dev/null ) & + wait $1 +} + +mount_nfsd() { + if [ -e /proc/modules ] ; then + # Make sure nfs support is loaded in the kernel #64709 + if ! grep -qs nfsd /proc/filesystems ; then + modprobe -q nfsd + fi + # Restart idmapd if needed #220747 + if grep -qs nfsd /proc/modules ; then + killall -q -HUP rpc.idmapd + fi + fi + + # This is the new "kernel 2.6 way" to handle the exports file + if grep -qs nfsd /proc/filesystems ; then + if ! mountinfo -q /proc/fs/nfsd ; then + ebegin "Mounting nfsd filesystem in /proc" + mount -t nfsd -o nodev,noexec,nosuid nfsd /proc/fs/nfsd + eend $? + fi + + local o + for o in ${OPTS_NFSD} ; do + echo "${o#*=}" > "/proc/fs/nfsd/${o%%=*}" + done + fi +} + +start_it() { + ebegin "Starting NFS $1" + shift + "$@" + eend $? + ret=$((ret + $?)) +} +start() { + mount_nfsd + mkdir_nfsdirs + + # Exportfs likes to hang if networking isn't working. + # If that's the case, then try to kill it so the + # bootup process can continue. + if grep -qs '^[[:space:]]*/' /etc/exports /etc/exports.d/*.exports ; then + ebegin "Exporting NFS directories" + ${exportfs} -r & + waitfor_exportfs $! + eend $? + fi + + local ret=0 + start_it mountd ${mountd} ${OPTS_RPC_MOUNTD} + start_it daemon ${nfsd} ${OPTS_RPC_NFSD} + [ -x "${smnotify}" ] && start_it smnotify ${smnotify} ${OPTS_SMNOTIFY} + return ${ret} +} + +stop() { + local ret=0 + + ebegin "Stopping NFS mountd" + start-stop-daemon --stop --exec ${mountd} + eend $? + ret=$((ret + $?)) + + # nfsd sets its process name to [nfsd] so don't look for $nfsd + ebegin "Stopping NFS daemon" + start-stop-daemon --stop --name nfsd --user root --signal 2 + eend $? + ret=$((ret + $?)) + # in case things don't work out ... #228127 + rpc.nfsd 0 + + # When restarting the NFS server, running "exportfs -ua" probably + # isn't what the user wants. Running it causes all entries listed + # in xtab to be removed from the kernel export tables, and the + # xtab file is cleared. This effectively shuts down all NFS + # activity, leaving all clients holding stale NFS filehandles, + # *even* when the NFS server has restarted. + # + # That's what you would want if you were shutting down the NFS + # server for good, or for a long period of time, but not when the + # NFS server will be running again in short order. In this case, + # then "exportfs -r" will reread the xtab, and all the current + # clients will be able to resume NFS activity, *without* needing + # to umount/(re)mount the filesystem. + if [ "${restarting}" = no -o "${RC_CMD}" = "restart" ] ; then + ebegin "Unexporting NFS directories" + # Exportfs likes to hang if networking isn't working. + # If that's the case, then try to kill it so the + # shutdown process can continue. + ${exportfs} -ua & + waitfor_exportfs $! + eend $? + fi + + return ${ret} +} + +reload() { + # Exportfs likes to hang if networking isn't working. + # If that's the case, then try to kill it so the + # bootup process can continue. + ebegin "Reloading /etc/exports" + ${exportfs} -r 1>&2 & + waitfor_exportfs $! + eend $? +} + +restart() { + # See long comment in stop() regarding "restarting" and exportfs -ua + restarting=yes + svc_stop + svc_start +} diff --git a/net-fs/nfs-utils/files/nfsclient.confd b/net-fs/nfs-utils/files/nfsclient.confd new file mode 100644 index 00000000..3c904deb --- /dev/null +++ b/net-fs/nfs-utils/files/nfsclient.confd @@ -0,0 +1,18 @@ +# You need to decide which nfs protocol version you want to use. +# If you are unsure, leave these alone. +# +# If you are using only nfsv4, uncomment this line: +# +#rc_need="!rpc.statd" +# +# If you are using only nfsv3, uncomment this line: +# +#rc_need="!rpc.idmapd" +# +# You will need to set the dependencies in the nfsclient script to match +# the network configuration tools you are using. This should be done in +# this file by following the examples below, and not by changing the +# service script itself. See /etc/conf.d/netmount for more examples. +# +# This is a safe default. +rc_after="net" diff --git a/net-fs/nfs-utils/files/nfsclient.initd b/net-fs/nfs-utils/files/nfsclient.initd new file mode 100644 index 00000000..6724e913 --- /dev/null +++ b/net-fs/nfs-utils/files/nfsclient.initd @@ -0,0 +1,33 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +depend() { + local opts myneed="" + if [ -e /etc/fstab ] ; then + for opts in $(fstabinfo -o -t nfs,nfs4) ; do + case $opts in + *sec=krb*|*sec=spkm*) myneed="$myneed rpc.gssd" ;; + esac + done + fi + config /etc/fstab + need portmap rpc.statd rpc.idmapd ${myneed} + use ypbind dns +} + +start() { + if [ -x /usr/sbin/sm-notify ] ; then + ebegin "Starting NFS sm-notify" + /usr/sbin/sm-notify ${OPTS_SMNOTIFY} + eend $? + fi + + # Make sure nfs support is loaded in the kernel #64709 + if [ -e /proc/modules ] && ! grep -qs 'nfs$' /proc/filesystems ; then + modprobe -q nfs + fi + return 0 +} diff --git a/net-fs/nfs-utils/files/proc-fs-nfsd.mount b/net-fs/nfs-utils/files/proc-fs-nfsd.mount new file mode 100644 index 00000000..26b58b96 --- /dev/null +++ b/net-fs/nfs-utils/files/proc-fs-nfsd.mount @@ -0,0 +1,8 @@ +[Unit] +Description=NFS Configuration File System +DefaultDependencies=no + +[Mount] +What=sunrpc +Where=/proc/fs/nfsd +Type=nfsd diff --git a/net-fs/nfs-utils/files/rpc-gssd.service b/net-fs/nfs-utils/files/rpc-gssd.service new file mode 100644 index 00000000..4c96deef --- /dev/null +++ b/net-fs/nfs-utils/files/rpc-gssd.service @@ -0,0 +1,12 @@ +[Unit] +Description=RPC GSS-API Client Daemon +Documentation=man:rpc.gssd(8) +After=rpcbind.service var-lib-nfs-rpc_pipefs.mount +Requires=rpcbind.service var-lib-nfs-rpc_pipefs.mount +Before=remote-fs-pre.target + +[Service] +ExecStart=/usr/sbin/rpc.gssd -f + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/nfs-utils/files/rpc-idmapd.service b/net-fs/nfs-utils/files/rpc-idmapd.service new file mode 100644 index 00000000..4a63b91c --- /dev/null +++ b/net-fs/nfs-utils/files/rpc-idmapd.service @@ -0,0 +1,11 @@ +[Unit] +Description=NFS v4 ID-Name Mapping Daemon +Documentation=man:rpc.idmapd(8) man:idmapd.conf(5) +After=var-lib-nfs-rpc_pipefs.mount nfsd.service +Requires=var-lib-nfs-rpc_pipefs.mount + +[Service] +ExecStart=/usr/sbin/rpc.idmapd -f + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/nfs-utils/files/rpc-svcgssd.service b/net-fs/nfs-utils/files/rpc-svcgssd.service new file mode 100644 index 00000000..121c61a4 --- /dev/null +++ b/net-fs/nfs-utils/files/rpc-svcgssd.service @@ -0,0 +1,13 @@ +[Unit] +Description=RPC GSS-API Server Daemon +Documentation=man:rpc.svcgssd(8) +After=rpcbind.service +Requires=rpcbind.service +Before=nfs-server.target +PartOf=nfs-server.target + +[Service] +ExecStart=/usr/sbin/rpc.svcgssd -f + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/nfs-utils/files/rpc.gssd.initd b/net-fs/nfs-utils/files/rpc.gssd.initd new file mode 100644 index 00000000..445d44c4 --- /dev/null +++ b/net-fs/nfs-utils/files/rpc.gssd.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +depend() { + use ypbind net + need portmap rpc.pipefs + after quota +} + +start() { + ebegin "Starting gssd" + start-stop-daemon --start --exec /usr/sbin/rpc.gssd -- ${OPTS_RPC_GSSD} + eend $? +} + +stop() { + ebegin "Stopping gssd" + start-stop-daemon --stop --exec /usr/sbin/rpc.gssd + eend $? +} diff --git a/net-fs/nfs-utils/files/rpc.idmapd.initd b/net-fs/nfs-utils/files/rpc.idmapd.initd new file mode 100644 index 00000000..61cfd4de --- /dev/null +++ b/net-fs/nfs-utils/files/rpc.idmapd.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +rpc_bin=/usr/sbin/rpc.idmapd + +depend() { + use ypbind net + need portmap rpc.pipefs + after quota +} + +start() { + ebegin "Starting idmapd" + ${rpc_bin} ${OPTS_RPC_IDMAPD} + eend $? "make sure DNOTIFY support is enabled ..." +} + +stop() { + ebegin "Stopping idmapd" + start-stop-daemon --stop --exec ${rpc_bin} + eend $? +} diff --git a/net-fs/nfs-utils/files/rpc.pipefs.initd b/net-fs/nfs-utils/files/rpc.pipefs.initd new file mode 100644 index 00000000..f971a49b --- /dev/null +++ b/net-fs/nfs-utils/files/rpc.pipefs.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +MNT="/var/lib/nfs/rpc_pipefs" + +mount_pipefs() { + local fstype=rpc_pipefs + + # if things are already mounted, nothing to do + mountinfo -q ${MNT} && return 0 + + # if rpc_pipefs is not available, try to load sunrpc for it #219566 + grep -qs ${fstype} /proc/filesystems || modprobe -q sunrpc + # if still not available, the `mount` will issue an error for the user + + # now just do it for kicks + mkdir -p ${MNT} + mount -t ${fstype} ${fstype} ${MNT} +} + +start() { + ebegin "Setting up RPC pipefs" + mount_pipefs + eend $? "make sure you have NFS/SUNRPC enabled in your kernel" +} + +stop() { + ebegin "Unmounting RPC pipefs" + umount ${MNT} + eend $? +} diff --git a/net-fs/nfs-utils/files/rpc.statd.initd b/net-fs/nfs-utils/files/rpc.statd.initd new file mode 100644 index 00000000..ea78b9ae --- /dev/null +++ b/net-fs/nfs-utils/files/rpc.statd.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +rpc_bin=/sbin/rpc.statd +rpc_pid=/var/run/rpc.statd.pid + +depend() { + use ypbind net + need portmap + after quota +} + +start() { + # Don't start rpc.statd if already started by someone else ... + # Don't try and kill it if it's already dead ... + if killall -q -0 ${rpc_bin} ; then + return 0 + fi + + ebegin "Starting NFS statd" + start-stop-daemon --start --exec ${rpc_bin} -- --no-notify ${OPTS_RPC_STATD} + eend $? +} + +stop() { + ebegin "Stopping NFS statd" + start-stop-daemon --stop --exec ${rpc_bin} --pidfile /var/run/rpc.statd.pid + eend $? +} diff --git a/net-fs/nfs-utils/files/rpc.svcgssd.initd b/net-fs/nfs-utils/files/rpc.svcgssd.initd new file mode 100644 index 00000000..c714e360 --- /dev/null +++ b/net-fs/nfs-utils/files/rpc.svcgssd.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs + +depend() { + use ypbind net + need portmap rpc.pipefs + after quota +} + +start() { + ebegin "Starting svcgssd" + start-stop-daemon --start --exec /usr/sbin/rpc.svcgssd -- ${OPTS_RPC_SVCGSSD} + eend $? +} + +stop() { + ebegin "Stopping svcgssd" + start-stop-daemon --stop --exec /usr/sbin/rpc.svcgssd + eend $? +} diff --git a/net-fs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount b/net-fs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount new file mode 100644 index 00000000..c4166582 --- /dev/null +++ b/net-fs/nfs-utils/files/var-lib-nfs-rpc_pipefs.mount @@ -0,0 +1,7 @@ +[Unit] +Description=RPC Pipe File System + +[Mount] +What=rpc_pipefs +Where=/var/lib/nfs/rpc_pipefs +Type=rpc_pipefs diff --git a/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild b/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild new file mode 100644 index 00000000..b6e0d8ee --- /dev/null +++ b/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +inherit eutils flag-o-matic multilib autotools systemd + +DESCRIPTION="NFS client and server daemons" +HOMEPAGE="http://linux-nfs.org/" +SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86" +IUSE="caps ipv6 kerberos +libmount nfsdcld +nfsidmap +nfsv4 nfsv41 selinux systemd tcpd +uuid" +REQUIRED_USE="kerberos? ( nfsv4 )" +RESTRICT="test" #315573 + +# kth-krb doesn't provide the right include +# files, and nfs-utils doesn't build against heimdal either, +# so don't depend on virtual/krb. +# (04 Feb 2005 agriffis) +DEPEND_COMMON="tcpd? ( sys-apps/tcp-wrappers ) + caps? ( sys-libs/libcap ) + sys-libs/e2fsprogs-libs + >=net-nds/rpcbind-0.2.4 + net-libs/libtirpc:= + libmount? ( sys-apps/util-linux ) + nfsdcld? ( >=dev-db/sqlite-3.3 ) + nfsv4? ( + dev-libs/libevent:= + >=net-libs/libnfsidmap-0.21-r1 + kerberos? ( + >=net-libs/libtirpc-0.2.4-r1[kerberos] + app-crypt/mit-krb5 + ) + nfsidmap? ( + >=net-libs/libnfsidmap-0.24 + >=sys-apps/keyutils-1.5.9 + ) + ) + nfsv41? ( + sys-fs/lvm2 + ) + uuid? ( sys-apps/util-linux )" +RDEPEND="${DEPEND_COMMON} + !net-nds/portmap + !<sys-apps/openrc-0.13.9 + selinux? ( + sec-policy/selinux-rpc + sec-policy/selinux-rpcbind + ) +" +DEPEND="${DEPEND_COMMON} + virtual/pkgconfig" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch + epatch "${FILESDIR}"/${PN}-1.2.8-cross-build.patch + + sed \ + -e "/^sbindir/s:= := \"${EPREFIX}\":g" \ + -i utils/*/Makefile.am || die + + epatch_user + eautoreconf +} + +src_configure() { + export libsqlite3_cv_is_recent=yes # Our DEPEND forces this. + export ac_cv_header_keyutils_h=$(usex nfsidmap) + econf \ + --with-statedir="${EPREFIX}"/var/lib/nfs \ + --enable-tirpc \ + --with-tirpcinclude="${EPREFIX}"/usr/include/tirpc/ \ + $(use_enable libmount libmount-mount) \ + $(use_with tcpd tcp-wrappers) \ + $(use_enable nfsdcld nfsdcltrack) \ + $(use_enable nfsv4) \ + $(use_enable nfsv41) \ + $(use_enable ipv6) \ + $(use_enable caps) \ + $(use_enable uuid) \ + $(use_enable kerberos gss) \ + $(use_enable kerberos svcgss) \ + --without-gssglue +} + +src_compile(){ + # remove compiled files bundled in the tarball + emake clean + default +} + +src_install() { + default + rm linux-nfs/Makefile* || die + dodoc -r linux-nfs README + + # Don't overwrite existing xtab/etab, install the original + # versions somewhere safe... more info in pkg_postinst + keepdir /var/lib/nfs/{,sm,sm.bak} + mv "${ED}"/var/lib "${ED}"/usr/$(get_libdir) || die + + # Install some client-side binaries in /sbin + dodir /sbin + mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die + # nfsdcltrack links to libraries (inc. libstdc++) which only exist beneath + # the /usr mount-point + dodir /usr/sbin + mv "${ED}"/sbin/nfsdcltrack "${ED}"/usr/sbin/ || die + + if use nfsv4 && use nfsidmap ; then + # Install a config file for idmappers in newer kernels. #415625 + insinto /etc/request-key.d + echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > id_resolver.conf + doins id_resolver.conf + fi + + insinto /etc + doins "${FILESDIR}"/exports + keepdir /etc/exports.d + + local f list=() opt_need="" + if use nfsv4 ; then + opt_need="rpc.idmapd" + list+=( rpc.idmapd rpc.pipefs ) + use kerberos && list+=( rpc.gssd rpc.svcgssd ) + fi + for f in nfs nfsclient rpc.statd "${list[@]}" ; do + newinitd "${FILESDIR}"/${f}.initd ${f} + done + for f in nfs nfsclient ; do + newconfd "${FILESDIR}"/${f}.confd ${f} + done + sed -i \ + -e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \ + "${ED}"/etc/conf.d/nfs || die #234132 + + if use systemd; then + systemd_dounit systemd/*.{mount,service,target} + if ! use nfsv4 || ! use kerberos ; then + rm "${D}$(systemd_get_unitdir)"/rpc-{gssd,svcgssd}.service || die + fi + if ! use nfsv41 ; then + rm "${D}$(systemd_get_unitdir)"/nfs-blkmap.* || die + fi + rm "${D}$(systemd_get_unitdir)"/nfs-config.service || die + sed -i -r \ + -e "/^EnvironmentFile=/s:=.*:=${EPREFIX}/etc/conf.d/nfs:" \ + -e '/^(After|Wants)=nfs-config.service$/d' \ + -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ + "${D}$(systemd_get_unitdir)"/* || die + fi + + keepdir /var/lib/nfs #368505 + keepdir /var/lib/nfs/v4recovery #603628 +} + +pkg_postinst() { + # Install default xtab and friends if there's none existing. In + # src_install we put them in /usr/lib/nfs for safe-keeping, but + # the daemons actually use the files in /var/lib/nfs. #30486 + local f + for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do + [[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue + einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs" + cp -pPR "${f}" "${EROOT}"/var/lib/nfs/ + done + + if systemd_is_booted; then + if [[ ${REPLACING_VERSIONS} < 1.3.0 ]]; then + ewarn "We have switched to upstream systemd unit files. Since" + ewarn "they got renamed, you should probably enable the new ones." + ewarn "You can run 'equery files nfs-utils | grep systemd'" + ewarn "to know what services you need to enable now." + fi + fi +} |