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} \

Reply via email to