diff -urN lm_sensors-3.0.3.orig/prog/detect/sensors-detect lm_sensors-3.0.3/prog/detect/sensors-detect --- lm_sensors-3.0.3.orig/prog/detect/sensors-detect 2008-09-19 17:05:28.000000000 +0200 +++ lm_sensors-3.0.3/prog/detect/sensors-detect 2008-10-27 10:03:39.000000000 +0100 @@ -27,6 +27,9 @@ # each be put in a separate file, using modules and packages. That is beyond # me. +# Gentoo specific modifications based on a patch from Rudo Thomas +# + require 5.004; use strict; @@ -6076,29 +6079,35 @@ print MODPROBE_D $configfile; close(MODPROBE_D); } else { + print "\nIf you want to load the modules at startup, generate a config file\n", + "below and make sure lm_sensors gets started at boot time; e.g\n", + "\$ rc-update add lm_sensors default\n"; print "To make the sensors modules behave correctly, add these lines to\n". - "$modules_conf:\n\n"; + "/etc/modules.d/lm_sensors and run modules-update:\n\n"; print "#----cut here----\n". $configfile. "#----cut here----\n\n"; } } - my $have_sysconfig = -d '/etc/sysconfig'; - printf "Do you want to \%s /etc/sysconfig/lm_sensors? (\%s): ", - (-e '/etc/sysconfig/lm_sensors' ? 'overwrite' : 'generate'), - ($have_sysconfig ? 'YES/no' : 'yes/NO'); - $_ = ; - if (($have_sysconfig and not m/^\s*n/i) or m/^\s*y/i) { - unless ($have_sysconfig) { - mkdir('/etc/sysconfig', 0777) - or die "Sorry, can't create /etc/sysconfig ($!)"; - } - open(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors") - or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)"; - print SYSCONFIG <<'EOT'; -# /etc/sysconfig/lm_sensors - Defines modules loaded by -# /etc/init.d/lm_sensors + my $have_config = -f '/etc/conf.d/lm_sensors'; + print "\nDo you want to ".($have_config?"overwrite":"generate"). + " /etc/conf.d/lm_sensors? Enter s to specify other file name?\n", + " (".($have_config?"yes/NO":"YES/no")."/s): "; + my $reply = ; + + if (($have_config and $reply =~ /^\s*[Yy]/) or + (not $have_config and not $reply =~ /^\s*[Nn]/) or + $reply =~ /^\s*[Ss]/) { + my $filename = "/etc/conf.d/lm_sensors"; + if ($reply =~ /^\s*[Ss]/) { + print "Specify the file to store the configuration to: "; + $filename = ; + } + open(SYSCONFIG, ">".$filename) + or die "Sorry, can't create $filename ($!)."; + print SYSCONFIG <<'EOT'; +# /etc/conf.d/sensors - Defines modules loaded by /etc/init.d/lm_sensors # Copyright (c) 1998 - 2001 Frodo Looijaard # # This program is free software; you can redistribute it and/or modify @@ -6127,12 +6136,21 @@ # in order as normal variables with the special names: # MODULE_0, MODULE_1, MODULE_2, etc. # +# Please note that the numbers in MODULE_X must start at 0 and increase in +# steps of 1. Any number that is missing will make the init script skip the +# rest of the modules. Use MODULE_X_ARGS for arguments. +# # List the modules that are to be loaded for your system # EOT print SYSCONFIG - "# Generated by sensors-detect on " . scalar localtime() . "\n"; + "# Generated by sensors-detect on " . scalar localtime() . "\n\n"; my @modules = grep /^modprobe /, split "\n", $modprobes; + print SYSCONFIG + "# Load modules at startup\n". + "LOADMODULES=yes\n\n". + "# Initialize sensors at startup\n". + "INITSENSORS=yes\n\n"; my $i = 0; my $sysconfig = ""; foreach (@modules) { @@ -6142,10 +6160,8 @@ } print SYSCONFIG $sysconfig; close(SYSCONFIG); + print "Done.\n"; - print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n". - "for initialization at boot time.\n" - unless -f "/etc/init.d/lm_sensors"; if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") { system("/sbin/insserv", "/etc/init.d/lm_sensors"); @@ -6159,15 +6175,6 @@ "kernel modules.\n\n"; } } else { - print "To load everything that is needed, add this to one of the system\n". - "initialization scripts (e.g. /etc/rc.d/rc.local):\n\n"; - print "#----cut here----\n". - $modprobes. - (-e '/usr/bin/sensors' ? - "/usr/bin/sensors -s\n" : - "/usr/local/bin/sensors -s\n") . - "#----cut here----\n\n"; - print "If you have some drivers built into your kernel, the list above will\n". "contain too many modules. Skip the appropriate ones! You really\n". "should try these commands right now to make sure everything is\n".