From f38036e6d2d1ba72fe247fbd2f40ae784e38e583 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Tue, 10 Jan 2023 10:57:51 -0500 Subject: [PATCH] mkinitcpio-nfs-utils: support NFSv4 roots --- .../mkinitcpio-nfs-utils/files/initcpio-hook-net | 13 ++++++++++++- .../mkinitcpio-nfs-utils/files/initcpio-install-net | 2 ++ srcpkgs/mkinitcpio-nfs-utils/template | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-hook-net b/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-hook-net index 4d1ebb95605e..33382d95b728 100644 --- a/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-hook-net +++ b/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-hook-net @@ -84,7 +84,18 @@ nfs_mount_handler() { launch_interactive_shell msg "Trying to continue (this will most likely fail) ..." fi - nfsmount ${nfs_option:+-o ${nfs_option}} "${nfs_server}:${nfs_path}" "$1" + + # nfsmount avoids problems with lockd for v2 and v3 but does not support v4; + # to support v4 roots, examine mount options for a v4 version spec and use + # the ordinary mount program. v4 doesn't need lockd for file locking anyway. + mount_cmd=nfsmount + case "${nfs_option}" in + nfsvers=4*|*,nfsvers=4*|vers=4*|*,vers=4*) + command -v mount.nfs4 >/dev/null 2>&1 && mount_cmd="mount -t nfs4" + ;; + esac + + ${mount_cmd} ${nfs_option:+-o ${nfs_option}} "${nfs_server}:${nfs_path}" "$1" } # vim: set ft=sh ts=4 sw=4 et: diff --git a/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-install-net b/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-install-net index 79b678949c95..153767add8c5 100644 --- a/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-install-net +++ b/srcpkgs/mkinitcpio-nfs-utils/files/initcpio-install-net @@ -3,9 +3,11 @@ build() { add_checked_modules '/drivers/net/' add_module nfsv3? + add_module nfsv4? add_binary "/usr/lib/initcpio/ipconfig" "/bin/ipconfig" add_binary "/usr/lib/initcpio/nfsmount" "/bin/nfsmount" + command -v mount.nfs4 >/dev/null 2>&1 && add_binary "mount.nfs4" add_runscript } diff --git a/srcpkgs/mkinitcpio-nfs-utils/template b/srcpkgs/mkinitcpio-nfs-utils/template index 7f36e1cf7fdf..05664525ebfe 100644 --- a/srcpkgs/mkinitcpio-nfs-utils/template +++ b/srcpkgs/mkinitcpio-nfs-utils/template @@ -1,7 +1,7 @@ # Template file for 'mkinitcpio-nfs-utils' pkgname=mkinitcpio-nfs-utils version=0.3 -revision=3 +revision=4 build_style=gnu-makefile depends="mkinitcpio" short_desc="Ipconfig and nfsmount tools for NFS root support in mkinitcpio"