diff options
author | 2019-09-11 10:34:05 +0200 | |
---|---|---|
committer | 2019-09-12 16:28:29 +0200 | |
commit | b8e7ebb0d37f790bfb325d2bf4aa423dad0fb1b2 (patch) | |
tree | 95b9917c8123582970e5d25470646470d2030149 /sys-apps/lm-sensors | |
parent | sys-apps/lm_sensors: Inline PN as appropriate before renaming (diff) | |
download | gentoo-b8e7ebb0d37f790bfb325d2bf4aa423dad0fb1b2.tar.gz gentoo-b8e7ebb0d37f790bfb325d2bf4aa423dad0fb1b2.tar.bz2 gentoo-b8e7ebb0d37f790bfb325d2bf4aa423dad0fb1b2.zip |
Rename sys-apps/{lm_sensors → lm-sensors}, to match upstream
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'sys-apps/lm-sensors')
-rw-r--r-- | sys-apps/lm-sensors/Manifest | 2 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/fancontrol.confd | 16 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/fancontrol.initd | 21 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/fancontrol.service-r1 | 9 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/lm-sensors-3.4.0-sensors-detect-gentoo.patch | 342 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/lm-sensors-3.5.0-sensors-detect-gentoo.patch | 347 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/lm_sensors.confd | 4 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/lm_sensors.initd | 21 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/sensord.confd | 19 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/sensord.initd | 19 | ||||
-rw-r--r-- | sys-apps/lm-sensors/files/sensord.service-r1 | 9 | ||||
-rw-r--r-- | sys-apps/lm-sensors/lm-sensors-3.5.0.ebuild | 218 | ||||
-rw-r--r-- | sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild | 218 | ||||
-rw-r--r-- | sys-apps/lm-sensors/metadata.xml | 31 |
14 files changed, 1276 insertions, 0 deletions
diff --git a/sys-apps/lm-sensors/Manifest b/sys-apps/lm-sensors/Manifest new file mode 100644 index 000000000000..1e5c83b45168 --- /dev/null +++ b/sys-apps/lm-sensors/Manifest @@ -0,0 +1,2 @@ +DIST lm-sensors-3.5.0.tar.gz 267133 BLAKE2B f8fe8efe19cd17f2c828404bee7b2b285118279f06aaa2ebf831823d6767865a2b19da7bede1f3b43b2664ae3cec41b9e840be24fa673472fe577d38f602da4e SHA512 bea9b2ac01bc43622cafdce0b00ac3bb8cb2d818449c8b332ab51e7ad0022b66bcbf6ca1e99c8500bdc6092c5c1ef985bfe7cff05dbcf015bd3ccf58c00a72e1 +DIST lm-sensors-3.5.0_p20190505.tar.gz 269694 BLAKE2B 6d665b8cbf83b26786686c5000dcac139aac930f691bac9053173dfcb92b6320afeb2f9b5ba6305cba643ff8cde356ef9e6772948d0f618cb3f5a48b3b5396f2 SHA512 15e3c50a9f00d284995f1ae34ef38e1ce314acb0c15d4996002287fadcf89a6f066058838c74c2b2bbec2628a3e5b9e8e010b0f5139641ee5336ac061cb33353 diff --git a/sys-apps/lm-sensors/files/fancontrol.confd b/sys-apps/lm-sensors/files/fancontrol.confd new file mode 100644 index 000000000000..a7169583173e --- /dev/null +++ b/sys-apps/lm-sensors/files/fancontrol.confd @@ -0,0 +1,16 @@ +# /etc/conf.d/fancontrol + +# Configuration file +#FANCONTROL_CONFIGFILE="/etc/fancontrol" + +# You can use this configuration option to pass additional options to the +# start-stop-daemon, see start-stop-daemon(8) for more details. +# Per default we forces fancontrol into background and wait 1000ms after we +# have started the service to ensure that the daemon is really up and +# running. +#FANCONTROL_SSDARGS="--background --wait 1000" + +# The termination timeout (start-stop-daemon parameter "retry") ensures +# that the service will be terminated within a given time (60 + 5 seconds +# per default) when you are stopping the service. +#FANCONTROL_TERMTIMEOUT="TERM/60/KILL/5" diff --git a/sys-apps/lm-sensors/files/fancontrol.initd b/sys-apps/lm-sensors/files/fancontrol.initd new file mode 100644 index 000000000000..0734668a4c0a --- /dev/null +++ b/sys-apps/lm-sensors/files/fancontrol.initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +FANCONTROL_CONFIGFILE=${FANCONTROL_CONFIGFILE:-"/etc/fancontrol"} +FANCONTROL_SSDARGS=${FANCONTROL_SSDARGS:-"--background --wait 1000"} +FANCONTROL_TERMTIMEOUT=${FANCONTROL_TERMTIMEOUT:-"TERM/60/KILL/5"} + + +command="/usr/sbin/fancontrol" +command_args="${FANCONTROL_CONFIGFILE}" +start_stop_daemon_args="${FANCONTROL_SSDARGS}" +pidfile="/run/fancontrol.pid" +retry="${FANCONTROL_TERMTIMEOUT}" + +required_files="${FANCONTROL_CONFIGFILE}" + +depend() { + need localmount + use lm_sensors +} diff --git a/sys-apps/lm-sensors/files/fancontrol.service-r1 b/sys-apps/lm-sensors/files/fancontrol.service-r1 new file mode 100644 index 000000000000..7d4342c30171 --- /dev/null +++ b/sys-apps/lm-sensors/files/fancontrol.service-r1 @@ -0,0 +1,9 @@ +[Unit] +Description=Fan control daemon + +[Service] +PIDFile=/run/fancontrol.pid +ExecStart=/usr/sbin/fancontrol + +[Install] +WantedBy=multi-user.target diff --git a/sys-apps/lm-sensors/files/lm-sensors-3.4.0-sensors-detect-gentoo.patch b/sys-apps/lm-sensors/files/lm-sensors-3.4.0-sensors-detect-gentoo.patch new file mode 100644 index 000000000000..dd77d66c0855 --- /dev/null +++ b/sys-apps/lm-sensors/files/lm-sensors-3.4.0-sensors-detect-gentoo.patch @@ -0,0 +1,342 @@ +From d8603c540cfccda5e011060083108de8f1b820ab Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Tue, 9 Aug 2016 01:19:16 +0200 +Subject: [PATCH 1/3] sensors-detect: Add sd_boot detection + +We need to know in write_config function wether the system is using systemd +or not. +--- + prog/detect/sensors-detect | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 057cd96..e29ab4c 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2746,7 +2746,7 @@ sub isa_read_i5d6 + # AUTODETECTION # + ################# + +-use vars qw($dev_i2c $sysfs_root $systemd_systemctl $systemd_system_dir); ++use vars qw($dev_i2c $sysfs_root $systemd_is_booted $systemd_systemctl $systemd_system_dir); + + sub initialize_conf + { +@@ -2820,6 +2820,10 @@ sub initialize_conf + } elsif (-d "/lib/systemd/system") { + $systemd_system_dir = "/lib/systemd/system"; + } ++ ++ # Check whether the system was booted using systemd. ++ # See: man sd_booted ++ $systemd_is_booted = -d '/run/systemd/system'; + } + + # [0] -> VERSION +-- +2.9.3 + + +From 14376e837c4a666fe2088bc7b7fbb90a4520f387 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Tue, 9 Aug 2016 01:25:52 +0200 +Subject: [PATCH 2/3] sensors-detect: write_config function adjusted for Gentoo + environment + +Bug: https://bugs.gentoo.org/480018 +--- + prog/detect/sensors-detect | 133 +++++++++++++++++++++------------------------ + 1 file changed, 62 insertions(+), 71 deletions(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index e29ab4c..bb5ae0f 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -7079,6 +7079,9 @@ sub write_config + { + my ($configfile, $bus_modules, $hwmon_modules) = @_; + ++ my $have_conffiles_created = 0; ++ ++ # /etc/modprobe.d handling + if (defined $configfile) { + my $have_modprobe_d = -d '/etc/modprobe.d'; + printf "Do you want to \%s /etc/modprobe.d/lm_sensors.conf? (\%s): ", +@@ -7087,96 +7090,84 @@ sub write_config + $_ = read_answer(); + if (($have_modprobe_d and not m/^\s*n/i) or m/^\s*y/i) { + unless ($have_modprobe_d) { +- mkdir('/etc/modprobe.d', 0777) ++ mkdir('/etc/modprobe.d', 0755) + or die "Sorry, can't create /etc/modprobe.d ($!)"; + } +- open(local *MODPROBE_D, ">/etc/modprobe.d/lm_sensors.conf") ++ open(local *MODPROBE_D, ">", $have_modprobe_d . '/lm_sensors.conf') + or die "Sorry, can't create /etc/modprobe.d/lm_sensors.conf ($!)"; + print MODPROBE_D "# Generated by sensors-detect on " . scalar localtime() . "\n"; + print MODPROBE_D $configfile; + close(MODPROBE_D); ++ $have_conffiles_created++; + } else { + print "To make the sensors modules behave correctly, add these lines to\n". +- "/etc/modprobe.conf:\n\n"; ++ "/etc/modprobe.d/lm_sensors.conf:\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'); +- $_ = read_answer(); +- 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 "# 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 +-# be loaded/unloaded. +-# +-# The format of this file is a shell script that simply defines variables: +-# HWMON_MODULES for hardware monitoring driver modules, and optionally +-# BUS_MODULES for any required bus driver module (for example for I2C or SPI). +- +-EOT +- print SYSCONFIG "BUS_MODULES=\"", join(" ", @{$bus_modules}), "\"\n" +- if @{$bus_modules}; +- print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n"; +- close(SYSCONFIG); +- +- if ($systemd_systemctl && $systemd_system_dir) { +- if (-f "$systemd_system_dir/lm_sensors.service") { +- system($systemd_systemctl, "enable", "lm_sensors.service"); +- system($systemd_systemctl, "start", "lm_sensors.service"); +- # All done, don't check for /etc/init.d/lm_sensors +- } else { +- print "Copy prog/init/lm_sensors.service to $systemd_system_dir\n". +- "and run 'systemctl enable lm_sensors.service'\n". +- "for initialization at boot time.\n"; +- } +- return; ++ # /etc/modules-load.d handling ++ my $modulesload_filedir = '/etc/modules-load.d'; ++ my $modulesload_file = $modulesload_filedir . '/lm_sensors.conf'; ++ my $modulesload_cfg = "# Generated by sensors-detect on " . scalar localtime() . "\n" ++ . join("\n", (@{$bus_modules}, @{$hwmon_modules})) . "\n"; ++ ++ my $have_modulesload_file = -f $modulesload_file; ++ printf "Do you want to \%s '$modulesload_file'? (\%s): ", ++ ($have_modulesload_file ? 'overwrite' : 'generate'), ++ ($have_modulesload_file ? 'yes/NO' : 'YES/no'); ++ ++ my $input = read_answer(); ++ chomp($input); ++ if ($input eq '' && $have_modulesload_file) { ++ $input = 'no'; ++ } ++ elsif ($input eq '' && !$have_modulesload_file) { ++ $input = 'yes'; ++ } ++ ++ if ($input =~ m/^\s*y/i) { ++ unless (-d $modulesload_filedir) { ++ mkdir($modulesload_filedir, 0755) ++ or die "Sorry, can't create '$modulesload_filedir' ($!)"; + } + +- 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"; ++ open(my $fh, '>', $modulesload_file) ++ or die "Sorry, can't open '$modulesload_file' for writing! ($!)"; + +- if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") { +- system("/sbin/insserv", "/etc/init.d/lm_sensors"); +- } elsif (-x "/sbin/chkconfig" && -f "/etc/init.d/lm_sensors") { +- system("/sbin/chkconfig", "lm_sensors", "on"); +- if (-x "/sbin/service") { +- system("/sbin/service", "lm_sensors", "start"); +- } ++ print $fh $modulesload_cfg; ++ close($fh); ++ ++ $have_conffiles_created++; ++ } ++ else { ++ print "\nPlease create '$modulesload_file' with the following content\n" ++ . "to allow modules-load service to autoload modules on boot:\n\n"; ++ print "#----cut here----\n" ++ . "# Generated by sensors-detect on " . scalar localtime() . "\n" ++ . join("\n", (@{$bus_modules}, @{$hwmon_modules})) . "\n" ++ . "#----cut here----\n\n"; ++ } ++ ++ if ($have_conffiles_created) { ++ printf "\nNote: You only have created the required configuration to autoload the\n" ++ . "required modules to use your sensors on boot. If you want to start using\n" ++ . "your sensors right now you have to either load them now once manually, to\n" ++ . "reboot this system or to execute the following command(s):\n\n"; ++ ++ if ($systemd_is_booted) { ++ print " # systemctl restart systemd-modules-load\n\n" + } else { +- print "You should now start the lm_sensors service to load the required\n". +- "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 " # /etc/init.d/modules-load restart\n\n" + } +- 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 "You really should try these commands right now to make sure everything\n". +- "is working properly. Monitoring programs won't work until the needed\n". +- "modules are loaded.\n\n"; ++ } ++ else { ++ print "\nNote: Please make sure the following modules are loaded when you\n" ++ . "want to make use of your sensors:\n\n"; ++ ++ print " " . join(" ", (@{$bus_modules}, @{$hwmon_modules})) . "\n\n"; + } + } + +-- +2.9.3 + + +From 59680d1fd41402efb547ca75ad8397089df2e059 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Mon, 29 Aug 2016 12:47:50 +0200 +Subject: [PATCH 3/3] sensors-detect: Add Gentoo config file protection + +Per default we don't modify live config file. Instead we create +"._cfg0000_<filename>" files known from emerge when using CONFIG PROTECT. + +See CONFIGURATION FILES section of emerge(1) man page for details. + +Can be disabled using the "--no-gentoo-config-protect" parameter. +--- + prog/detect/sensors-detect | 51 +++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 48 insertions(+), 3 deletions(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index bb5ae0f..2cc8f88 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -7093,7 +7093,7 @@ sub write_config + mkdir('/etc/modprobe.d', 0755) + or die "Sorry, can't create /etc/modprobe.d ($!)"; + } +- open(local *MODPROBE_D, ">", $have_modprobe_d . '/lm_sensors.conf') ++ open(local *MODPROBE_D, ">", gentoo_get_protected_file($have_modprobe_d . '/lm_sensors.conf')) + or die "Sorry, can't create /etc/modprobe.d/lm_sensors.conf ($!)"; + print MODPROBE_D "# Generated by sensors-detect on " . scalar localtime() . "\n"; + print MODPROBE_D $configfile; +@@ -7134,7 +7134,7 @@ sub write_config + or die "Sorry, can't create '$modulesload_filedir' ($!)"; + } + +- open(my $fh, '>', $modulesload_file) ++ open(my $fh, '>', gentoo_get_protected_file($modulesload_file)) + or die "Sorry, can't open '$modulesload_file' for writing! ($!)"; + + print $fh $modulesload_cfg; +@@ -7152,10 +7152,17 @@ sub write_config + } + + if ($have_conffiles_created) { ++ if (!$opt{no_gentoo_config_protect}) { ++ print "\n * IMPORTANT: At least $have_conffiles_created config file(s) in '/etc' need updating.\n" ++ . " * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS\n" ++ . " * sections of the emerge man page to learn how to update config files.\n"; ++ } ++ + printf "\nNote: You only have created the required configuration to autoload the\n" + . "required modules to use your sensors on boot. If you want to start using\n" + . "your sensors right now you have to either load them now once manually, to\n" +- . "reboot this system or to execute the following command(s):\n\n"; ++ . "reboot this system or to execute the following command(s)\%s:\n\n", ++ ($opt{no_gentoo_config_protect} ? "" : " _AFTER_\nyou have updated your config files"); + + if ($systemd_is_booted) { + print " # systemctl restart systemd-modules-load\n\n" +@@ -7171,6 +7178,32 @@ sub write_config + } + } + ++sub gentoo_get_protected_file ++{ ++ my ($file) = @_; ++ ++ if ($opt{no_gentoo_config_protect}) { ++ return $file; ++ } ++ ++ my $basename = basename($file); ++ my $dirname = dirname($file); ++ ++ my $protected_file; ++ for (my $prot_num = 0; $prot_num <= 9999; $prot_num++) { ++ $protected_file = sprintf('%s/._cfg%s_%s', ++ $dirname, ++ sprintf("%0*d", 4, $prot_num), ++ $basename); ++ ++ if (! -f $protected_file) { ++ return $protected_file; ++ } ++ } ++ ++ die "Running out of files -- cannot create protected file '$file'" ++} ++ + sub main + { + my ($input, $superio_features); +@@ -7181,6 +7214,8 @@ sub main + $opt{stat} = 1; + } elsif ($ARGV[0] eq "--auto") { + $opt{auto} = 1; ++ } elsif ($ARGV[0] eq "--no-gentoo-config-protect") { ++ $opt{no_gentoo_config_protect} = 1; + } else { + print STDERR "Error: unknown option $ARGV[0]\n"; + exit 1; +@@ -7234,6 +7269,16 @@ sub main + "unless you know what you're doing.\n\n"; + } + ++ if (!$opt{no_gentoo_config_protect}) { ++ print "Gentoo config file protection is active. Every file this program will\n", ++ "modify must be merged before the change will become active using\n", ++ "default Gentoo tools such as dispatch-conf, cfg-update, and etc-update.\n\n"; ++ } ++ else { ++ print "Gentoo config file protection is _disabled_. This program will modify\n", ++ "your active configuration without backups.\n\n"; ++ } ++ + print "Some south bridges, CPUs or memory controllers contain embedded sensors.\n". + "Do you want to scan for them? This is totally safe. (YES/no): "; + $input = read_answer(); +-- +2.9.3 + diff --git a/sys-apps/lm-sensors/files/lm-sensors-3.5.0-sensors-detect-gentoo.patch b/sys-apps/lm-sensors/files/lm-sensors-3.5.0-sensors-detect-gentoo.patch new file mode 100644 index 000000000000..3fcd19c05c4f --- /dev/null +++ b/sys-apps/lm-sensors/files/lm-sensors-3.5.0-sensors-detect-gentoo.patch @@ -0,0 +1,347 @@ +From eed538e59a63eaacae67d7bfdd95a19e18dad1a5 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Tue, 9 Aug 2016 01:19:16 +0200 +Subject: [PATCH 1/3] sensors-detect: Add sd_boot detection + +We need to know in write_config function wether the system is using systemd +or not. + +Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> +--- + prog/detect/sensors-detect | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 5c771485..ea1c0d53 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2976,7 +2976,7 @@ sub isa_read_i5d6 + # AUTODETECTION # + ################# + +-use vars qw($dev_i2c $sysfs_root $systemd_systemctl $systemd_system_dir); ++use vars qw($dev_i2c $sysfs_root $systemd_is_booted $systemd_systemctl $systemd_system_dir); + + sub initialize_conf + { +@@ -3050,6 +3050,10 @@ sub initialize_conf + } elsif (-d "/lib/systemd/system") { + $systemd_system_dir = "/lib/systemd/system"; + } ++ ++ # Check whether the system was booted using systemd. ++ # See: man sd_booted ++ $systemd_is_booted = -d '/run/systemd/system'; + } + + # [0] -> VERSION +-- +2.21.0 + + +From bad0d73c98c9167ec4ade01c6b75159643d237f1 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Tue, 9 Aug 2016 01:25:52 +0200 +Subject: [PATCH 2/3] sensors-detect: write_config function adjusted for Gentoo + environment + +Bug: https://bugs.gentoo.org/480018 +Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> +--- + prog/detect/sensors-detect | 133 +++++++++++++++++-------------------- + 1 file changed, 62 insertions(+), 71 deletions(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index ea1c0d53..1e8ac00d 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -7338,6 +7338,9 @@ sub write_config + { + my ($configfile, $bus_modules, $hwmon_modules) = @_; + ++ my $have_conffiles_created = 0; ++ ++ # /etc/modprobe.d handling + if (defined $configfile) { + my $have_modprobe_d = -d '/etc/modprobe.d'; + printf "Do you want to \%s /etc/modprobe.d/lm_sensors.conf? (\%s): ", +@@ -7346,96 +7349,84 @@ sub write_config + $_ = read_answer(); + if (($have_modprobe_d and not m/^\s*n/i) or m/^\s*y/i) { + unless ($have_modprobe_d) { +- mkdir('/etc/modprobe.d', 0777) ++ mkdir('/etc/modprobe.d', 0755) + or die "Sorry, can't create /etc/modprobe.d ($!)"; + } +- open(local *MODPROBE_D, ">/etc/modprobe.d/lm_sensors.conf") ++ open(local *MODPROBE_D, ">", $have_modprobe_d . '/lm_sensors.conf') + or die "Sorry, can't create /etc/modprobe.d/lm_sensors.conf ($!)"; + print MODPROBE_D "# Generated by sensors-detect on " . scalar localtime() . "\n"; + print MODPROBE_D $configfile; + close(MODPROBE_D); ++ $have_conffiles_created++; + } else { + print "To make the sensors modules behave correctly, add these lines to\n". +- "/etc/modprobe.conf:\n\n"; ++ "/etc/modprobe.d/lm_sensors.conf:\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'); +- $_ = read_answer(); +- 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 "# 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 +-# be loaded/unloaded. +-# +-# The format of this file is a shell script that simply defines variables: +-# HWMON_MODULES for hardware monitoring driver modules, and optionally +-# BUS_MODULES for any required bus driver module (for example for I2C or SPI). +- +-EOT +- print SYSCONFIG "BUS_MODULES=\"", join(" ", @{$bus_modules}), "\"\n" +- if @{$bus_modules}; +- print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n"; +- close(SYSCONFIG); +- +- if ($systemd_systemctl && $systemd_system_dir) { +- if (-f "$systemd_system_dir/lm_sensors.service") { +- system($systemd_systemctl, "enable", "lm_sensors.service"); +- system($systemd_systemctl, "start", "lm_sensors.service"); +- # All done, don't check for /etc/init.d/lm_sensors +- } else { +- print "Copy prog/init/lm_sensors.service to $systemd_system_dir\n". +- "and run 'systemctl enable lm_sensors.service'\n". +- "for initialization at boot time.\n"; +- } +- return; ++ # /etc/modules-load.d handling ++ my $modulesload_filedir = '/etc/modules-load.d'; ++ my $modulesload_file = $modulesload_filedir . '/lm_sensors.conf'; ++ my $modulesload_cfg = "# Generated by sensors-detect on " . scalar localtime() . "\n" ++ . join("\n", (@{$bus_modules}, @{$hwmon_modules})) . "\n"; ++ ++ my $have_modulesload_file = -f $modulesload_file; ++ printf "Do you want to \%s '$modulesload_file'? (\%s): ", ++ ($have_modulesload_file ? 'overwrite' : 'generate'), ++ ($have_modulesload_file ? 'yes/NO' : 'YES/no'); ++ ++ my $input = read_answer(); ++ chomp($input); ++ if ($input eq '' && $have_modulesload_file) { ++ $input = 'no'; ++ } ++ elsif ($input eq '' && !$have_modulesload_file) { ++ $input = 'yes'; ++ } ++ ++ if ($input =~ m/^\s*y/i) { ++ unless (-d $modulesload_filedir) { ++ mkdir($modulesload_filedir, 0755) ++ or die "Sorry, can't create '$modulesload_filedir' ($!)"; + } + +- 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"; ++ open(my $fh, '>', $modulesload_file) ++ or die "Sorry, can't open '$modulesload_file' for writing! ($!)"; + +- if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") { +- system("/sbin/insserv", "/etc/init.d/lm_sensors"); +- } elsif (-x "/sbin/chkconfig" && -f "/etc/init.d/lm_sensors") { +- system("/sbin/chkconfig", "lm_sensors", "on"); +- if (-x "/sbin/service") { +- system("/sbin/service", "lm_sensors", "start"); +- } ++ print $fh $modulesload_cfg; ++ close($fh); ++ ++ $have_conffiles_created++; ++ } ++ else { ++ print "\nPlease create '$modulesload_file' with the following content\n" ++ . "to allow modules-load service to autoload modules on boot:\n\n"; ++ print "#----cut here----\n" ++ . "# Generated by sensors-detect on " . scalar localtime() . "\n" ++ . join("\n", (@{$bus_modules}, @{$hwmon_modules})) . "\n" ++ . "#----cut here----\n\n"; ++ } ++ ++ if ($have_conffiles_created) { ++ printf "\nNote: You only have created the required configuration to autoload the\n" ++ . "required modules to use your sensors on boot. If you want to start using\n" ++ . "your sensors right now you have to either load them now once manually, to\n" ++ . "reboot this system or to execute the following command(s):\n\n"; ++ ++ if ($systemd_is_booted) { ++ print " # systemctl restart systemd-modules-load\n\n" + } else { +- print "You should now start the lm_sensors service to load the required\n". +- "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 " # /etc/init.d/modules restart\n\n" + } +- 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 "You really should try these commands right now to make sure everything\n". +- "is working properly. Monitoring programs won't work until the needed\n". +- "modules are loaded.\n\n"; ++ } ++ else { ++ print "\nNote: Please make sure the following modules are loaded when you\n" ++ . "want to make use of your sensors:\n\n"; ++ ++ print " " . join(" ", (@{$bus_modules}, @{$hwmon_modules})) . "\n\n"; + } + } + +-- +2.21.0 + + +From c1d471a8be4840a38fe82464e0756a243e158a30 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Mon, 29 Aug 2016 12:47:50 +0200 +Subject: [PATCH 3/3] sensors-detect: Add Gentoo config file protection + +Per default we don't modify live config file. Instead we create +"._cfg0000_<filename>" files known from emerge when using CONFIG PROTECT. + +See CONFIGURATION FILES section of emerge(1) man page for details. + +Can be disabled using the "--no-gentoo-config-protect" parameter. + +Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> +--- + prog/detect/sensors-detect | 51 +++++++++++++++++++++++++++++++++++--- + 1 file changed, 48 insertions(+), 3 deletions(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 1e8ac00d..e548bfaf 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -7352,7 +7352,7 @@ sub write_config + mkdir('/etc/modprobe.d', 0755) + or die "Sorry, can't create /etc/modprobe.d ($!)"; + } +- open(local *MODPROBE_D, ">", $have_modprobe_d . '/lm_sensors.conf') ++ open(local *MODPROBE_D, ">", gentoo_get_protected_file($have_modprobe_d . '/lm_sensors.conf')) + or die "Sorry, can't create /etc/modprobe.d/lm_sensors.conf ($!)"; + print MODPROBE_D "# Generated by sensors-detect on " . scalar localtime() . "\n"; + print MODPROBE_D $configfile; +@@ -7393,7 +7393,7 @@ sub write_config + or die "Sorry, can't create '$modulesload_filedir' ($!)"; + } + +- open(my $fh, '>', $modulesload_file) ++ open(my $fh, '>', gentoo_get_protected_file($modulesload_file)) + or die "Sorry, can't open '$modulesload_file' for writing! ($!)"; + + print $fh $modulesload_cfg; +@@ -7411,10 +7411,17 @@ sub write_config + } + + if ($have_conffiles_created) { ++ if (!$opt{no_gentoo_config_protect}) { ++ print "\n * IMPORTANT: At least $have_conffiles_created config file(s) in '/etc' need updating.\n" ++ . " * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS\n" ++ . " * sections of the emerge man page to learn how to update config files.\n"; ++ } ++ + printf "\nNote: You only have created the required configuration to autoload the\n" + . "required modules to use your sensors on boot. If you want to start using\n" + . "your sensors right now you have to either load them now once manually, to\n" +- . "reboot this system or to execute the following command(s):\n\n"; ++ . "reboot this system or to execute the following command(s)\%s:\n\n", ++ ($opt{no_gentoo_config_protect} ? "" : " _AFTER_\nyou have updated your config files"); + + if ($systemd_is_booted) { + print " # systemctl restart systemd-modules-load\n\n" +@@ -7430,6 +7437,32 @@ sub write_config + } + } + ++sub gentoo_get_protected_file ++{ ++ my ($file) = @_; ++ ++ if ($opt{no_gentoo_config_protect}) { ++ return $file; ++ } ++ ++ my $basename = basename($file); ++ my $dirname = dirname($file); ++ ++ my $protected_file; ++ for (my $prot_num = 0; $prot_num <= 9999; $prot_num++) { ++ $protected_file = sprintf('%s/._cfg%s_%s', ++ $dirname, ++ sprintf("%0*d", 4, $prot_num), ++ $basename); ++ ++ if (! -f $protected_file) { ++ return $protected_file; ++ } ++ } ++ ++ die "Running out of files -- cannot create protected file '$file'" ++} ++ + sub main + { + my ($input, $superio_features); +@@ -7440,6 +7473,8 @@ sub main + $opt{stat} = 1; + } elsif ($ARGV[0] eq "--auto") { + $opt{auto} = 1; ++ } elsif ($ARGV[0] eq "--no-gentoo-config-protect") { ++ $opt{no_gentoo_config_protect} = 1; + } else { + print STDERR "Error: unknown option $ARGV[0]\n"; + exit 1; +@@ -7493,6 +7528,16 @@ sub main + "unless you know what you're doing.\n\n"; + } + ++ if (!$opt{no_gentoo_config_protect}) { ++ print "Gentoo config file protection is active. Every file this program will\n", ++ "modify must be merged before the change will become active using\n", ++ "default Gentoo tools such as dispatch-conf, cfg-update, and etc-update.\n\n"; ++ } ++ else { ++ print "Gentoo config file protection is _disabled_. This program will modify\n", ++ "your active configuration without backups.\n\n"; ++ } ++ + print "Some south bridges, CPUs or memory controllers contain embedded sensors.\n". + "Do you want to scan for them? This is totally safe. (YES/no): "; + $input = read_answer(); +-- +2.21.0 + diff --git a/sys-apps/lm-sensors/files/lm_sensors.confd b/sys-apps/lm-sensors/files/lm_sensors.confd new file mode 100644 index 000000000000..bae2ea0bbbec --- /dev/null +++ b/sys-apps/lm-sensors/files/lm_sensors.confd @@ -0,0 +1,4 @@ +# /etc/conf.d/lm_sensors + +# NOTE: +# For module loading please use /etc/modules-load.d/lm_sensors.conf diff --git a/sys-apps/lm-sensors/files/lm_sensors.initd b/sys-apps/lm-sensors/files/lm_sensors.initd new file mode 100644 index 000000000000..4efc6c964040 --- /dev/null +++ b/sys-apps/lm-sensors/files/lm_sensors.initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +command="/usr/bin/sensors" + +depend() { + need localmount + after modules-load +} + +start() { + ebegin "Initializing sensors" + ${command} --set >/dev/null 2>&1 + eend $? +} + +stop() { + # Nothing to stop + return 0; +} diff --git a/sys-apps/lm-sensors/files/sensord.confd b/sys-apps/lm-sensors/files/sensord.confd new file mode 100644 index 000000000000..a6f2f265c11f --- /dev/null +++ b/sys-apps/lm-sensors/files/sensord.confd @@ -0,0 +1,19 @@ +# /etc/conf.d/sensord + +# PID file +#SENSORD_PIDFILE="/run/sensord.pid" + +# You can use this configuration option to pass additional options to the +# start-stop-daemon, see start-stop-daemon(8) for more details. +# Per default we wait 1000ms after we have started the service to ensure +# that the daemon is really up and running. +#SENSORD_SSDARGS="--wait 1000" + +# The termination timeout (start-stop-daemon parameter "retry") ensures +# that the service will be terminated within a given time (60 + 5 seconds +# per default) when you are stopping the service. +#SENSORD_TERMTIMEOUT="TERM/60/KILL/5" + +# Extra options to pass to the sensord daemon, +# see sensord(8) for more information +#SENSORD_OPTS="" diff --git a/sys-apps/lm-sensors/files/sensord.initd b/sys-apps/lm-sensors/files/sensord.initd new file mode 100644 index 000000000000..fa958dbf4389 --- /dev/null +++ b/sys-apps/lm-sensors/files/sensord.initd @@ -0,0 +1,19 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +SENSORD_PIDFILE=${SENSORD_PIDFILE:-"/run/sensord.pid"} +SENSORD_SSDARGS=${SENSORD_SSDARGS:-"--wait 1000"} +SENSORD_TERMTIMEOUT=${SENSORD_TERMTIMEOUT:-"TERM/60/KILL/5"} +SENSORD_OPTS=${SENSORD_OPTS:-""} + +command="/usr/sbin/sensord" +command_args="${SENSORD_OPTS} --pid-file ${SENSORD_PIDFILE}" +start_stop_daemon_args="${SENSORD_SSDARGS}" +pidfile="${SENSORD_PIDFILE}" +retry="${SENSORD_TERMTIMEOUT}" + +depend() { + need localmount + use logger lm_sensors +} diff --git a/sys-apps/lm-sensors/files/sensord.service-r1 b/sys-apps/lm-sensors/files/sensord.service-r1 new file mode 100644 index 000000000000..b7a1e1bc3bd0 --- /dev/null +++ b/sys-apps/lm-sensors/files/sensord.service-r1 @@ -0,0 +1,9 @@ +[Unit] +Description=Sensor information logging daemon + +[Service] +PIDFile=/run/sensord.pid +ExecStart=/usr/sbin/sensord + +[Install] +WantedBy=multi-user.target diff --git a/sys-apps/lm-sensors/lm-sensors-3.5.0.ebuild b/sys-apps/lm-sensors/lm-sensors-3.5.0.ebuild new file mode 100644 index 000000000000..5a11eb1e7cf8 --- /dev/null +++ b/sys-apps/lm-sensors/lm-sensors-3.5.0.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit linux-info systemd toolchain-funcs multilib-minimal eapi7-ver + +DESCRIPTION="Hardware Monitoring user-space utilities" +HOMEPAGE="https://hwmon.wiki.kernel.org/ https://github.com/lm-sensors/lm-sensors" + +MY_PN="${PN/_/-}" + +if [[ "${PV}" =~ .*_p[[:digit:]]{8}.* ]] ; then + COMMIT="807f9b1529892c0ac89bca0c7ae781c59f9c8393" + SRC_URI="https://github.com/lm-sensors/${MY_PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${MY_PN}-${COMMIT}" +else + SRC_URI="https://github.com/lm-sensors/lm-sensors/archive/V$(ver_rs 1- -).tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN/_/-}-$(ver_rs 1- -)" +fi + +LICENSE="GPL-2+ LGPL-2.1" + +# SUBSLOT based on SONAME of libsensors.so +SLOT="0/5.0.0" + +KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +IUSE="contrib sensord static-libs" + +COMMON_DEPS=" + sensord? ( + net-analyzer/rrdtool + virtual/logger + )" + +RDEPEND="${COMMON_DEPS} + dev-lang/perl + !<sys-apps/openrc-0.21.7" + +DEPEND="${COMMON_DEPS} + sys-devel/bison + sys-devel/flex" + +CONFIG_CHECK="~HWMON ~I2C_CHARDEV ~I2C" +WARNING_HWMON="${PN} requires CONFIG_HWMON to be enabled for use." +WARNING_I2C_CHARDEV="sensors-detect requires CONFIG_I2C_CHARDEV to be enabled." +WARNING_I2C="${PN} requires CONFIG_I2C to be enabled for most sensors." + +PATCHES=( "${FILESDIR}"/${PN}-3.4.0-sensors-detect-gentoo.patch ) + +DOCS=( CHANGES CONTRIBUTORS INSTALL README ) +DOCS+=( doc/{donations,fancontrol.txt,fan-divisors,libsensors-API.txt,progs,temperature-sensors,vid} ) + +src_prepare() { + default + + if [[ -n "${COMMIT}" ]]; then + local _version="${PV%_*}+git_${COMMIT}" + + sed -i \ + -e "s:LM_VERSION.*:LM_VERSION \"${_version}\":" \ + version.h || \ + die "Failed to update version.h" + + sed -i \ + -e "s/^\$revision = '.*/\$revision = '${_version}';/" \ + -e "/^\$revision =~ s.*/d" \ + prog/detect/sensors-detect || \ + die "Failed to set revision in prog/detect/sensors-detect" + + sed -i \ + -e "s/^echo \"# pwmconfig revision.*/echo \"# pwmconfig revision ${_version}\"/" \ + -e "/^REVISION=.*/d" \ + -e "/^REVDATE=.*/d" \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust prog/pwm/pwmconfig" + else + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust PIDFILE in prog/pwm/pwmconfig" + fi + + # Respect LDFLAGS + sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile || \ + die "Failed to sed in LDFLAGS" + + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/fancontrol || \ + die "Failed to adjust PIDFILE of prog/pwm/fancontrol" + + # Don't use EnvironmentFile in systemd unit + sed -i \ + -e '/^EnvironmentFile=/d' \ + -e '/^Exec.*modprobe.*/d' \ + prog/init/lm_sensors.service || \ + die "Failed to remove EnvironmentFile from systemd unit file" + + if ! use static-libs; then + sed -i -e '/^BUILD_STATIC_LIB/d' Makefile || \ + die "Failed to disable static building" + fi + + # Don't show outdated user instructions + sed -i -e '/^ @echo "\*\*\* /d' Makefile || \ + die "Failed to remove outdated user instructions" + + multilib_copy_sources +} + +multilib_src_configure() { + default + + if multilib_is_native_abi && use sensord; then + # sensord requires net-analyzer/rrdtool which doesn't have real multilib + # support. To prevent errors like + # + # skipping incompatible /usr/lib/librrd.so when searching for -lrrd + # cannot find -lrrd + # + # we only build sensord when we are building for profile's native ABI + # (it doesn't affect libsensors.so). + sed -i -e 's:^#\(PROG_EXTRA.*\):\1:' Makefile || \ + die "Failed to enable building of sensord" + fi +} + +multilib_src_compile() { + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" +} + +multilib_src_install() { + emake \ + DESTDIR="${D%/}" \ + PREFIX="/usr" \ + MANDIR="/usr/share/man" \ + ETCDIR="/etc" \ + LIBDIR="/usr/$(get_libdir)" \ + install +} + +multilib_src_install_all() { + newinitd "${FILESDIR}"/lm_sensors.initd lm_sensors + newconfd "${FILESDIR}"/lm_sensors.confd lm_sensors + systemd_dounit prog/init/lm_sensors.service + + newinitd "${FILESDIR}"/fancontrol.initd fancontrol + newconfd "${FILESDIR}"/fancontrol.confd fancontrol + systemd_newunit "${FILESDIR}"/fancontrol.service-r1 fancontrol.service + + if use sensord; then + newconfd "${FILESDIR}"/sensord.confd sensord + newinitd "${FILESDIR}"/sensord.initd sensord + systemd_newunit "${FILESDIR}"/sensord.service-r1 sensord.service + fi + + einstalldocs + + docinto developers + dodoc doc/developers/applications + + if use contrib; then + insinto /usr/share/lm_sensors + doins -r "${S}"/configs + fi +} + +pkg_postinst() { + local _new_loader='3.4.0_p20160725' + local _v + for _v in ${REPLACING_VERSIONS}; do + if ! ver_test "${_v}" -gt "${_new_loader}"; then + # This is an upgrade which require migration + + elog "" + elog "Since version 3.4.0_p20160725 ${PN} no longer loads modules on its own" + elog "instead it is using \"modules-load\" services provided by OpenRC or systemd." + elog "" + elog "To migrate your configuration you have 2 options:" + elog "" + elog " a) Re-create a new configuration using \"/usr/sbin/sensors-detect\"" + elog "" + elog " b) Copy existing \"modules_<n>\", \"HWMON_MODULES\" or \"BUS_MODULES\"" + elog " variables from \"/etc/conf.d/lm_modules\" to" + elog " \"/etc/modules-load.d/lm_sensors.conf\" and adjust format." + elog "" + elog " For details see https://wiki.gentoo.org/wiki/Systemd#Automatic_module_loading" + elog "" + elog " Important: Don't forget to migrate your module's argument" + elog " (modules_<name>_args variable) if your are not already" + elog " using \"/etc/modprobe.d\" (which is recommended)." + + # Show this elog only once + break + fi + done + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # New installation + + elog "" + elog "Please run \`/usr/sbin/sensors-detect' in order to setup" + elog "\"/etc/modules-load.d/lm_sensors.conf\"." + elog "" + elog "You might want to add lm_sensors to your default runlevel to make" + elog "sure the sensors get initialized on the next startup." + elog "" + elog "Be warned, the probing of hardware in your system performed by" + elog "sensors-detect could freeze your system. Also make sure you read" + elog "the documentation before running ${PN} on IBM ThinkPads." + fi +} diff --git a/sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild b/sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild new file mode 100644 index 000000000000..f84df9880d5c --- /dev/null +++ b/sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit linux-info systemd toolchain-funcs multilib-minimal + +DESCRIPTION="Hardware Monitoring user-space utilities" +HOMEPAGE="https://hwmon.wiki.kernel.org/ https://github.com/lm-sensors/lm-sensors" + +MY_PN="${PN/_/-}" + +if [[ "${PV}" =~ .*_p[[:digit:]]{8}.* ]] ; then + COMMIT="2c8cca3d6cd60121b401734c1a24cfec7daed4fc" + SRC_URI="https://github.com/lm-sensors/${MY_PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${MY_PN}-${COMMIT}" +else + SRC_URI="https://github.com/lm-sensors/lm-sensors/archive/V$(ver_rs 1- -).tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN/_/-}-$(ver_rs 1- -)" +fi + +LICENSE="GPL-2+ LGPL-2.1" + +# SUBSLOT based on SONAME of libsensors.so +SLOT="0/5.0.0" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="contrib sensord static-libs" + +COMMON_DEPS=" + sensord? ( + net-analyzer/rrdtool + virtual/logger + )" + +RDEPEND="${COMMON_DEPS} + dev-lang/perl + !<sys-apps/openrc-0.36" + +DEPEND="${COMMON_DEPS} + sys-devel/bison + sys-devel/flex" + +CONFIG_CHECK="~HWMON ~I2C_CHARDEV ~I2C" +WARNING_HWMON="${PN} requires CONFIG_HWMON to be enabled for use." +WARNING_I2C_CHARDEV="sensors-detect requires CONFIG_I2C_CHARDEV to be enabled." +WARNING_I2C="${PN} requires CONFIG_I2C to be enabled for most sensors." + +PATCHES=( "${FILESDIR}"/${PN}-3.5.0-sensors-detect-gentoo.patch ) + +DOCS=( CHANGES CONTRIBUTORS INSTALL README ) +DOCS+=( doc/{donations,fancontrol.txt,fan-divisors,libsensors-API.txt,progs,temperature-sensors,vid} ) + +src_prepare() { + default + + if [[ -n "${COMMIT}" ]]; then + local _version="${PV%_*}+git_${COMMIT}" + + sed -i \ + -e "s:LM_VERSION.*:LM_VERSION \"${_version}\":" \ + version.h || \ + die "Failed to update version.h" + + sed -i \ + -e "s/^\$revision = '.*/\$revision = '${_version}';/" \ + -e "/^\$revision =~ s.*/d" \ + prog/detect/sensors-detect || \ + die "Failed to set revision in prog/detect/sensors-detect" + + sed -i \ + -e "s/^echo \"# pwmconfig revision.*/echo \"# pwmconfig revision ${_version}\"/" \ + -e "/^REVISION=.*/d" \ + -e "/^REVDATE=.*/d" \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust prog/pwm/pwmconfig" + else + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/pwmconfig || \ + die "Failed to adjust PIDFILE in prog/pwm/pwmconfig" + fi + + # Respect LDFLAGS + sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile || \ + die "Failed to sed in LDFLAGS" + + sed -i \ + -e "s:^PIDFILE=\".*:PIDFILE=\"/run/fancontrol.pid\":" \ + prog/pwm/fancontrol || \ + die "Failed to adjust PIDFILE of prog/pwm/fancontrol" + + # Don't use EnvironmentFile in systemd unit + sed -i \ + -e '/^EnvironmentFile=/d' \ + -e '/^Exec.*modprobe.*/d' \ + prog/init/lm_sensors.service || \ + die "Failed to remove EnvironmentFile from systemd unit file" + + if ! use static-libs; then + sed -i -e '/^BUILD_STATIC_LIB/d' Makefile || \ + die "Failed to disable static building" + fi + + # Don't show outdated user instructions + sed -i -e '/^ @echo "\*\*\* /d' Makefile || \ + die "Failed to remove outdated user instructions" + + multilib_copy_sources +} + +multilib_src_configure() { + default + + if multilib_is_native_abi && use sensord; then + # sensord requires net-analyzer/rrdtool which doesn't have real multilib + # support. To prevent errors like + # + # skipping incompatible /usr/lib/librrd.so when searching for -lrrd + # cannot find -lrrd + # + # we only build sensord when we are building for profile's native ABI + # (it doesn't affect libsensors.so). + sed -i -e 's:^#\(PROG_EXTRA.*\):\1:' Makefile || \ + die "Failed to enable building of sensord" + fi +} + +multilib_src_compile() { + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" +} + +multilib_src_install() { + emake \ + DESTDIR="${D%/}" \ + PREFIX="/usr" \ + MANDIR="/usr/share/man" \ + ETCDIR="/etc" \ + LIBDIR="/usr/$(get_libdir)" \ + install +} + +multilib_src_install_all() { + newinitd "${FILESDIR}"/lm_sensors.initd lm_sensors + newconfd "${FILESDIR}"/lm_sensors.confd lm_sensors + systemd_dounit prog/init/lm_sensors.service + + newinitd "${FILESDIR}"/fancontrol.initd fancontrol + newconfd "${FILESDIR}"/fancontrol.confd fancontrol + systemd_newunit "${FILESDIR}"/fancontrol.service-r1 fancontrol.service + + if use sensord; then + newconfd "${FILESDIR}"/sensord.confd sensord + newinitd "${FILESDIR}"/sensord.initd sensord + systemd_newunit "${FILESDIR}"/sensord.service-r1 sensord.service + fi + + einstalldocs + + docinto developers + dodoc doc/developers/applications + + if use contrib; then + insinto /usr/share/lm_sensors + doins -r "${S}"/configs + fi +} + +pkg_postinst() { + local _new_loader='3.4.0_p20160725' + local _v + for _v in ${REPLACING_VERSIONS}; do + if ! ver_test "${_v}" -gt "${_new_loader}"; then + # This is an upgrade which require migration + + elog "" + elog "Since version 3.4.0_p20160725 ${PN} no longer loads modules on its own" + elog "instead it is using \"modules-load\" services provided by OpenRC or systemd." + elog "" + elog "To migrate your configuration you have 2 options:" + elog "" + elog " a) Re-create a new configuration using \"/usr/sbin/sensors-detect\"" + elog "" + elog " b) Copy existing \"modules_<n>\", \"HWMON_MODULES\" or \"BUS_MODULES\"" + elog " variables from \"/etc/conf.d/lm_modules\" to" + elog " \"/etc/modules-load.d/lm_sensors.conf\" and adjust format." + elog "" + elog " For details see https://wiki.gentoo.org/wiki/Systemd#Automatic_module_loading" + elog "" + elog " Important: Don't forget to migrate your module's argument" + elog " (modules_<name>_args variable) if your are not already" + elog " using \"/etc/modprobe.d\" (which is recommended)." + + # Show this elog only once + break + fi + done + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # New installation + + elog "" + elog "Please run \`/usr/sbin/sensors-detect' in order to setup" + elog "\"/etc/modules-load.d/lm_sensors.conf\"." + elog "" + elog "You might want to add lm_sensors to your default runlevel to make" + elog "sure the sensors get initialized on the next startup." + elog "" + elog "Be warned, the probing of hardware in your system performed by" + elog "sensors-detect could freeze your system. Also make sure you read" + elog "the documentation before running ${PN} on IBM ThinkPads." + fi +} diff --git a/sys-apps/lm-sensors/metadata.xml b/sys-apps/lm-sensors/metadata.xml new file mode 100644 index 000000000000..897d37da3562 --- /dev/null +++ b/sys-apps/lm-sensors/metadata.xml @@ -0,0 +1,31 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>polynomial-c@gentoo.org</email> + <name>Lars Wendler</name> + </maintainer> + <maintainer type="person"> + <email>whissi@gentoo.org</email> + <name>Thomas Deutschmann</name> + </maintainer> + <slots> + <subslots>Reflect ABI of libsensors.so.</subslots> + </slots> + <use> + <flag name="contrib"> + Installs user contributed configuration files so you don't need + to find settings on your own for your system if somebody else + has already created such a configuration for sensors/mainboards + you are using. + </flag> + <flag name="sensord"> + Enable sensord - a daemon that can be used to + periodically log sensor readings from hardware health-monitoring + chips + </flag> + </use> + <upstream> + <remote-id type="github">groeck/lm-sensors</remote-id> + </upstream> +</pkgmetadata> |