--- lm_sensors-3.1.1.orig/prog/detect/sensors-detect 2009-03-04 15:18:39.000000000 +0100 +++ lm_sensors-3.1.1/prog/detect/sensors-detect 2009-03-04 15:21:26.000000000 +0100 @@ -20,6 +20,9 @@ # MA 02110-1301 USA. # +# Gentoo specific modifications based on a patch from Rudo Thomas +# + require 5.004; use strict; @@ -5274,26 +5277,33 @@ 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". - "/etc/modprobe.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 ($!)"; + 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(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors") - or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)"; + open(SYSCONFIG, ">".$filename) + or die "Sorry, can't create $filename ($!)."; print SYSCONFIG "# Generated by sensors-detect on " . scalar localtime() . "\n"; print SYSCONFIG <<'EOT'; # This file is sourced by /etc/init.d/lm_sensors and defines the modules to @@ -5304,6 +5314,11 @@ # BUS_MODULES for any required bus driver module (for example for I2C or SPI). EOT + print SYSCONFIG + "# Load modules at startup\n". + "LOADMODULES=yes\n\n". + "# Initialize sensors at startup\n". + "INITSENSORS=yes\n\n"; print SYSCONFIG "BUS_MODULES=\"", join(" ", @{$bus_modules}), "\"\n" if @{$bus_modules}; print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n"; @@ -5312,6 +5327,10 @@ # For compatibility reasons, modules are also listed individually as variables # 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. +# # You should use BUS_MODULES and HWMON_MODULES instead if possible. EOT @@ -5321,10 +5340,7 @@ $i++; } close(SYSCONFIG); - - 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"; + print "Done.\n"; if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") { system("/sbin/insserv", "/etc/init.d/lm_sensors"); @@ -5338,20 +5354,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"; - if (@{$bus_modules}) { - print "# Adapter drivers\n"; - print "modprobe $_\n" foreach (@{$bus_modules}); - } - print "# Chip drivers\n"; - print "modprobe $_\n" foreach (@{$hwmon_modules}); - print((-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".