summaryrefslogtreecommitdiff
path: root/sys-apps/lm-sensors
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/lm-sensors')
-rw-r--r--sys-apps/lm-sensors/Manifest15
-rw-r--r--sys-apps/lm-sensors/files/fancontrol.confd16
-rw-r--r--sys-apps/lm-sensors/files/fancontrol.initd21
-rw-r--r--sys-apps/lm-sensors/files/fancontrol.service-r19
-rw-r--r--sys-apps/lm-sensors/files/lm-sensors-3.4.0-sensors-detect-gentoo.patch342
-rw-r--r--sys-apps/lm-sensors/files/lm-sensors-3.5.0-sensors-detect-gentoo.patch347
-rw-r--r--sys-apps/lm-sensors/files/lm_sensors.confd4
-rw-r--r--sys-apps/lm-sensors/files/lm_sensors.initd21
-rw-r--r--sys-apps/lm-sensors/files/sensord.confd19
-rw-r--r--sys-apps/lm-sensors/files/sensord.initd19
-rw-r--r--sys-apps/lm-sensors/files/sensord.service-r19
-rw-r--r--sys-apps/lm-sensors/lm-sensors-3.5.0.ebuild218
-rw-r--r--sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild216
-rw-r--r--sys-apps/lm-sensors/metadata.xml31
14 files changed, 1287 insertions, 0 deletions
diff --git a/sys-apps/lm-sensors/Manifest b/sys-apps/lm-sensors/Manifest
new file mode 100644
index 000000000000..4c8e1205bc19
--- /dev/null
+++ b/sys-apps/lm-sensors/Manifest
@@ -0,0 +1,15 @@
+AUX fancontrol.confd 669 BLAKE2B cc297a5122d54f6104d840548480c6648fb31388a9c78a5e3a96ec91841c67d527a38e452ddaba5801c975fb23d9fab79aea46abbba0781ef2a8d8e9c6f1fed0 SHA512 06ec0b44e753bfa6a5ca461345e5857ac4d824cb3d9dd4955bbe884ff91d0184050476fe6da0ea8b0882243a51466af2d82540474581bd471f13c5977a0ec41a
+AUX fancontrol.initd 603 BLAKE2B d5409d4141996adb8e5e9520075d42f79fcdcc017850c0d3d21cbf5736ea1d7da07921b035cbbb5a2c4a8490ddad3a108073fe154f170507249f3fc8f5e5b920 SHA512 3dad0939d679bfb2732bdbd8ff851298ed86e5fd83719eb5181f8cc3e7d84f7986a79a3438a8c3b6a6e3c8be1a3a9839769292d77e352c0167d4b16dd1f0d086
+AUX fancontrol.service-r1 146 BLAKE2B 666a45c2e55dcf31470167ba9bb78e6205b3fcb47f66ae7b185d6651dba33f8a7699f800ecddaed070a8827d24893cc1971203b691f37515ea74125e889e8965 SHA512 eb1e22045a4adbcba398b77061d33b145614edf960c31aeb3c9a987553d6a0d8de332d4887e52ca2c6d6147d6e1a2b5e8bae41dca5f1c9d4fc2dc522c18459f8
+AUX lm-sensors-3.4.0-sensors-detect-gentoo.patch 12441 BLAKE2B f35efdf0f27b8aa64d5d0f8f088921225b9f991eb999d40f452afba4161ea7a38521346356f00c3136e6fb0d27d6508dd46fef385fb9e317157eb33bce8bdb8d SHA512 740c2fefa3c914fbb977e86b5b57cdbbcd06fc2d348ee42b5c678f164f15fb7a171979e5da5a1779c932ba39a535e37d0f7b7506c43966463115e0042dc9dc81
+AUX lm-sensors-3.5.0-sensors-detect-gentoo.patch 12593 BLAKE2B 21383c2d0a7dc2063f81ca7af15ee02dc94a3344f23da80433ab19fc7a5528cc516408ecadc46d0fd1f55799a305c0e509211476314ca0cdf05e3b8942059050 SHA512 0f1556cef3d1c19f4dd822afdf609390f82dbfda7e66070ca5b89b145c29669e05141f150b3b0d58c277c79c57f98659284953788db6334c27e17e3f39e23cdd
+AUX lm_sensors.confd 102 BLAKE2B 5d0771a2cac4869caee2d6ae3ac2cc2f60e64720ad587d4a89fa6dca7506325554b06d92cce42fc51b9af9c8715834d6d481f342cd6be57061c5234dfabd26d3 SHA512 a31220f4bf337de7b17158e00c64e662527abe11c5cc9f8401216f757dcde1c220527ad73f375c0de051030119daeba4cef6c5155f077447a9391e273cd65f50
+AUX lm_sensors.initd 334 BLAKE2B 377cea5d1f0c2baf94a2a17dd870ae3ba545bb96453432808360d1ff0ffd92dfcb306364ffa579afdb6b02dda930c7288e5c1b32274893e8541777a62abe8c37 SHA512 5a3f3eb6ae2a97f0a3841a2544579733f6df4a89c3667e1920203a6b0d18f54eb0aa12b1fd0c0bbdc4f6a1535df8444ebeb9d6212cc8be8dc1cf25e204d009a0
+AUX sensord.confd 695 BLAKE2B e435c63a48da41218b793f9beefd5f9d1702aa80a525ca378eeef36654933f0ec2042683e1b13bc48349eebc4d2dde26d20ac7e7681c01ceeb0b3b4e27576d2b SHA512 83c71b9aaae273daff62da31ae45ffa682460e4d4a8fbca54dfa83b1db58d4d042bba08eb62c62f4d8f6647d222ef5a11181a3fb7bedffbb4138ef02f6143535
+AUX sensord.initd 574 BLAKE2B bbc4e39d6b906a0e7539c4521420b9da686722eb6d26d486c29554c2cdc1b8c45d770c5e587f707d4fad0e34e083b2388dda194908a78c89e3ad4606cd61e464 SHA512 69abc9a92bfffae59f17a93e4792fd1f6b64285271693a443e1007adb73f95cb62a8dbf318f407f60fb3e3573d0e7ea11357076f14dbb58a0964f7b0bfe30b4a
+AUX sensord.service-r1 155 BLAKE2B 8a61565976b7d333dfb257d0e57a18140229bedb44fc095446e64de85d829f3d34802d4f762967cc503d527b8f28deaeaf3e0a93b3a4384b9c9b62a8b71d4dfe SHA512 83132636209f3e3717edad28ed230f767ee8bf00eabf3036238f64c370d1e42db1c14d1ed965c650da8aa3a6deb3ce7a0794425491ff7f8ce67e2fde934fc4fb
+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
+EBUILD lm-sensors-3.5.0.ebuild 6478 BLAKE2B 86a3662a799b7fc98c6f4e743bd2922067fe38105a000e0c081dc207711b1c23c72712645d7beb16f31087cd8e952a06cbefb85b1870440d1646dcf29e5dde79 SHA512 080128a13e5e32b88365eb091708d61b0cb1dc523740a3a22828ec34876977817b4f50363ef0f361d27b853a80004a8aa03566406a12eaf27c1c840de49ee735
+EBUILD lm-sensors-3.5.0_p20190505.ebuild 6445 BLAKE2B 3e11c346ac68bfbec68d63ae766a5737cd59721008b4e04bb80ed6d73b32b3db64a98e2fd1ede5c5b13d487131d74b984559599299614b6c3d10856b73b1e41b SHA512 1edbf8904e2d43ae0ecd72e1b3b93f19387c42bd7d8ed7e2de737f1406dee1243bce43cf4c37ed5e6c0d5992f5f05522a34429e82a608c9f3ee3fa203ffd3c94
+MISC metadata.xml 943 BLAKE2B dec9c9764069667a9f5f5cd8359d0dc06020d6acbed972daab0b538b9f172f6d081a057cc6c55362de11c26857d1a885bb8a04e18dab1062370a8ddf0e25d7e8 SHA512 c32b85e2771b216861bf16d8c7ccfc8277b34c7ab712edaf487083f8d9e2a8e3707b65d1dd952e92d925fbefa87cf76799aa0b30f11ae8acfd4ffe27f2caf1f8
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..e2d8209c6ad9
--- /dev/null
+++ b/sys-apps/lm-sensors/lm-sensors-3.5.0_p20190505.ebuild
@@ -0,0 +1,216 @@
+# 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"
+
+if [[ "${PV}" =~ .*_p[[:digit:]]{8}.* ]] ; then
+ COMMIT="2c8cca3d6cd60121b401734c1a24cfec7daed4fc"
+ SRC_URI="https://github.com/lm-sensors/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${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>