]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
nfs-utils: clean up startup
authorDaniel McGregor <daniel.mcgregor@vecima.com>
Wed, 12 Feb 2025 19:12:29 +0000 (13:12 -0600)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 17 Feb 2025 22:04:00 +0000 (22:04 +0000)
Change the sysvinit script to start at the S runlevel, this matches
Debian, and prevents systemd from generating a unit file for it.
Also have the nfsd systemd service request the nfsd kernel filesystem
mountpoint. This avoids startup failures in unpriviled containers
or other setups that don't support the filesystem.

Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-connectivity/nfs-utils/nfs-utils/nfscommon
meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.2.bb

index 992267d5a1610214c1aacfb223ed090d89f09438..4f07324a21f626f8d4cf55bd6e2a26e2776e2e06 100644 (file)
@@ -1,9 +1,9 @@
 #!/bin/sh
 ### BEGIN INIT INFO
 # Provides:          nfs-common
-# Required-Start:    $portmap hwclock
-# Required-Stop:     $portmap hwclock
-# Default-Start:     2 3 4 5
+# Required-Start:    $portmap $time
+# Required-Stop:     $portmap $time
+# Default-Start:     S
 # Default-Stop:      0 1 6
 # Short-Description: NFS support for both client and server
 # Description:       NFS is a popular protocol for file sharing across
@@ -20,7 +20,7 @@
 . /etc/init.d/functions
 
 test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd
-test -z "$STATD_PID" && STATD_PID=/var/run/rpc.statd.pid
+test -z "$STATD_PID" && STATD_PID=/run/rpc.statd.pid
 #
 # The default state directory is /var/lib/nfs
 test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs
index ff02a3aea01c618d3efcae12dd06700fe881eb06..df9c95a71ff83f7be9181323d7dafac074297977 100644 (file)
@@ -133,15 +133,14 @@ do_install:append () {
        install -m 0644 ${UNPACKDIR}/nfs-server.service ${D}${systemd_system_unitdir}/
        install -m 0644 ${UNPACKDIR}/nfs-mountd.service ${D}${systemd_system_unitdir}/
        install -m 0644 ${UNPACKDIR}/nfs-statd.service ${D}${systemd_system_unitdir}/
+       install -m 0644 ${UNPACKDIR}/proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/
        sed -i -e 's,@SBINDIR@,${sbindir},g' \
                -e 's,@SYSCONFDIR@,${sysconfdir},g' \
                -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
                ${D}${systemd_system_unitdir}/*.service
-       if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-               install -m 0644 ${UNPACKDIR}/proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/
-               install -d ${D}${systemd_system_unitdir}/sysinit.target.wants/
-               ln -sf ../proc-fs-nfsd.mount ${D}${systemd_system_unitdir}/sysinit.target.wants/proc-fs-nfsd.mount
-       fi
+       # Add compatibility symlinks for the sysvinit scripts
+       ln -s nfs-server.service ${D}${systemd_system_unitdir}/nfsserver.service
+       ln -s /dev/null ${D}${systemd_system_unitdir}/nfscommon.service
 
        # kernel code as of 3.8 hard-codes this path as a default
        install -d ${D}/var/lib/nfs/v4recovery