commit: 73cdf10f1f513be7b5dec4f1cc91e0c68cda689b Author: William Hubbs <w.d.hubbs <AT> gmail <DOT> com> AuthorDate: Thu Aug 18 21:25:56 2016 +0000 Commit: William Hubbs <williamh <AT> gentoo <DOT> org> CommitDate: Fri Aug 19 16:08:27 2016 +0000 URL: https://gitweb.gentoo.org/proj/openrc.git/commit/?id=73cdf10f
Deprecate automatic loading of modules In the hwclock, procfs and sysfs service scripts, we automatically attempt to load the kernel modules we need before we take any action. We shouldn't do this, because there are systems which do not use kernel modules and do not have the kmod package installed. With this change, we continue to load the modules ourselves, but we warn the admin that they need to be added to /etc/conf.d/modules or built into the kernel. In the future, this automatic loading will be dropped. X-Gentoo-Bug: 342313 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=342313 init.d/hwclock.in | 10 ++++++++-- init.d/procfs.in | 8 ++++++-- init.d/sysfs.in | 6 +++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/init.d/hwclock.in b/init.d/hwclock.in index 2cd1ef3..d28ac85 100644 --- a/init.d/hwclock.in +++ b/init.d/hwclock.in @@ -30,6 +30,7 @@ fi depend() { provide clock + want modules if yesno $clock_adjfile; then use root else @@ -81,7 +82,7 @@ get_noadjfile() start() { - local retval=0 errstr="" + local retval=0 errstr="" modname setupopts if [ -z "$utc_cmd" ]; then @@ -96,7 +97,12 @@ start() [ -e "$rtc" ] && break done if [ ! -e "${rtc}" ]; then - modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc + for x in rtc-cmos rtc genrtc; do + modprobe -q $x && modname=$x && break + done + [ -n "$modname" ] && + ewarn "The $modname module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in." fi fi diff --git a/init.d/procfs.in b/init.d/procfs.in index de61873..055b5f4 100644 --- a/init.d/procfs.in +++ b/init.d/procfs.in @@ -13,7 +13,8 @@ description="Mounts misc filesystems in /proc." depend() { - use modules devfs + use devfs + want modules need localmount keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver } @@ -22,7 +23,10 @@ start() { # Setup Kernel Support for miscellaneous Binary Formats if [ -d /proc/sys/fs/binfmt_misc -a ! -e /proc/sys/fs/binfmt_misc/register ]; then - modprobe -q binfmt-misc + if modprobe -q binfmt-misc; then + ewarn "The binfmt-misc module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in." + fi if grep -qs binfmt_misc /proc/filesystems; then ebegin "Mounting misc binary format filesystem" mount -t binfmt_misc -o nodev,noexec,nosuid \ diff --git a/init.d/sysfs.in b/init.d/sysfs.in index 6929810..87adacd 100644 --- a/init.d/sysfs.in +++ b/init.d/sysfs.in @@ -15,6 +15,7 @@ sysfs_opts=nodev,noexec,nosuid depend() { + want modules keyword -docker -lxc -prefix -systemd-nspawn -vserver } @@ -102,7 +103,10 @@ mount_misc() # it will NOT appear in /proc/filesystems yet if [ -d /sys/firmware/efi/efivars ] \ && ! mountinfo -q /sys/firmware/efi/efivars; then - modprobe -q efivarfs + if modprobe -q efivarfs; then + ewarn "The efivarfs module needs to be configured in \ + @SYSCONFDIR@/conf.d/modules or built in" + fi if grep -qs efivarfs /proc/filesystems; then ebegin "Mounting efivarfs filesystem" mount -n -t efivarfs -o ${sysfs_opts} \
