From 73cdf10f1f513be7b5dec4f1cc91e0c68cda689b Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Thu, 18 Aug 2016 16:25:56 -0500 Subject: 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 2cd1ef31..d28ac850 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 de618733..055b5f45 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 6929810d..87adacd9 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} \ -- cgit v1.2.3