commit:     9ba6c0d353dd2ad3936fe35095588648b472f188
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 16 12:36:11 2016 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Sep 16 12:37:14 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ba6c0d3

sys-apps/lm_sensors: Version bump to snapshot release from 2016-07-25; Package 
now uses module-load service

Changes:
========
 - Based on latest unreleased changes (snapshot release from 2016-07-25;
   updated/added detection for Fintek F81768, Nuvoton NCT6793D, Microchip
   MCP9808 and Mark F71868A chips; various fixes for sensors-detect, see
   https://git.io/v6Wig for all changes)

 - sensors-detect now writes to "/etc/modules-load.d/lm_sensors.conf" and
   uses a config file protection mechanism like known from emerge (i.e.
   after making changes you have to call tools such as dispatch-conf,
   cfg-update or etc-update to merge the changes;
   new "--no-gentoo-config-protect" parameter will disable config file
   protection)

 - Due to previous change lm_service service no longer loads modules. You
   have to use mechanism your init system provides to do that (i.e. make
   sure your init system's modules-load service is enabled).

 - Ebuild is now multilib compatible (see bug 529684)

 - Runscripts no longer passes config file as argument. While this removes
   the possibility to use different configurations per default services it
   allows you to use "/etc/sensors.d" (see bug 490502 and bug 307249)

 - Runscripts improved in general. I.e. if you start fancontrol service
   without a valid config (so that fancontrol doesn't start and exit with
   an error) you will now know at least, that the service didn't start.
   Now you will also have reliable status functions to know service state.

Gentoo-Bug: https://bugs.gentoo.org/592916
Gentoo-Bug: https://bugs.gentoo.org/529684
Gentoo-Bug: https://bugs.gentoo.org/490502
Gentoo-Bug: https://bugs.gentoo.org/307249

Package-Manager: portage-2.3.0

 sys-apps/lm_sensors/Manifest                       |   1 +
 sys-apps/lm_sensors/files/fancontrol.confd         |  16 +
 sys-apps/lm_sensors/files/fancontrol.initd         |  22 ++
 sys-apps/lm_sensors/files/fancontrol.service-r1    |   9 +
 .../lm_sensors-3.4.0-sensors-detect-gentoo.patch   | 342 +++++++++++++++++++++
 sys-apps/lm_sensors/files/lm_sensors.confd         |   4 +
 sys-apps/lm_sensors/files/lm_sensors.initd         |  22 ++
 sys-apps/lm_sensors/files/sensord.confd            |  19 ++
 sys-apps/lm_sensors/files/sensord.initd            |  20 ++
 sys-apps/lm_sensors/files/sensord.service-r1       |   9 +
 .../lm_sensors/lm_sensors-3.4.0_p20160725.ebuild   | 211 +++++++++++++
 sys-apps/lm_sensors/metadata.xml                   |  25 +-
 12 files changed, 692 insertions(+), 8 deletions(-)

diff --git a/sys-apps/lm_sensors/Manifest b/sys-apps/lm_sensors/Manifest
index f398311..c9e6ed7 100644
--- a/sys-apps/lm_sensors/Manifest
+++ b/sys-apps/lm_sensors/Manifest
@@ -1,3 +1,4 @@
 DIST lm_sensors-3.3.4.tar.bz2 172226 SHA256 
b4608610cb5de4b24e3fe1ae357712e8633a8a929bbb42df5eecc4ccee6ba76d SHA512 
a375f747a1687da0fe743d731893156f7983e001725c2d7cd284cefd3e8922deb3dfe542d3c901e3da8fff321633d64180a637d780b5e1bb3f1e9a254c16b7e6
 WHIRLPOOL 
4011264a56c36ffcfe28d357ceae1929fdf8a21c27bfaba928c9a7b48ef2b8422cd6650981a4c8f220900cc45526ca4bbfda9810b54db0efaf15cdaad4599838
 DIST lm_sensors-3.3.5.tar.bz2 173609 SHA256 
5dae6a665e1150159a93743c4ff1943a7efe02cd9d3bb12c4805e7d7adcf4fcf SHA512 
0874084c3dd40b93ed05e1955f76e35e78ac3ac2343341d8ab5412fd941ea300b3a4b1320bec3a5bfb07309e82f42cc5dac0a728cdfddac4053d4fdb96dc12e7
 WHIRLPOOL 
f82d0d1a4b7647cf9076f16861024dd65fd97bd34a7498fcc06e851913f5b71805689d915b67a628b6cd7aea2b46225d64df8833550c785236311c9980ac8ed1
 DIST lm_sensors-3.4.0.tar.bz2 175802 SHA256 
e0579016081a262dd23eafe1d22b41ebde78921e73a1dcef71e05e424340061f SHA512 
993064bd14b855c1ae8c057e89313df5b3d5efe441fb2e8c3e508f42bb15658564df2563fac8fabbdb0d650dfdbc694037736c748d45cb9d85dfb8fb5a3d1ea9
 WHIRLPOOL 
82ed9b922a352702d974ea075222894c69a081da1fca9e026e3176266bb6a8911fd8fc0cd73f2d9ab3524cd30cfe2e688a015032829cf32d844592debaf9924d
+DIST lm_sensors-3.4.0_p20160725.tar.gz 206868 SHA256 
c3bb872cabcf3fa4b597bc1a8d6ee277a80b28c811125a45341e0874a97ac102 SHA512 
abae5c4ba2ed0b763fda918e2ededb2148a3edd1d33709a34b91a33398a64e8988d14c5d16a5c756bf55beaa383e661c76e1acccc7b5ef858aa772e96878131b
 WHIRLPOOL 
4d7620f74ea46f559b6b293a7cb20f0296277f7c10f54b368fd63bef2d1496b3769f39066cc4f980337d99b3a1dbb51af8e9eed724605f153a08cfa9fd28739b

diff --git a/sys-apps/lm_sensors/files/fancontrol.confd 
b/sys-apps/lm_sensors/files/fancontrol.confd
new file mode 100644
index 00000000..a716958
--- /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 00000000..05f787d
--- /dev/null
+++ b/sys-apps/lm_sensors/files/fancontrol.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 00000000..7d4342c
--- /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 00000000..dd77d66
--- /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 <whi...@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 <whi...@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 <whi...@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.confd 
b/sys-apps/lm_sensors/files/lm_sensors.confd
new file mode 100644
index 00000000..bae2ea0
--- /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 00000000..4804b78
--- /dev/null
+++ b/sys-apps/lm_sensors/files/lm_sensors.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 00000000..a6f2f26
--- /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 00000000..96acb59
--- /dev/null
+++ b/sys-apps/lm_sensors/files/sensord.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 00000000..b7a1e1b
--- /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.4.0_p20160725.ebuild 
b/sys-apps/lm_sensors/lm_sensors-3.4.0_p20160725.ebuild
new file mode 100644
index 00000000..01e2e73
--- /dev/null
+++ b/sys-apps/lm_sensors/lm_sensors-3.4.0_p20160725.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit linux-info systemd toolchain-funcs multilib-minimal
+
+DESCRIPTION="Hardware Monitoring user-space utilities"
+HOMEPAGE="http://www.lm-sensors.org/ https://github.com/groeck/lm-sensors";
+
+COMMIT="45ffa15cf02e63f70ff3b85c23e22dfbab7e8f9c"
+MY_PN="${PN/_/-}"
+
+#SRC_URI="http://dl.lm-sensors.org/lm-sensors/releases/${P}.tar.bz2";
+SRC_URI="https://github.com/groeck/${MY_PN}/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-2+ LGPL-2.1"
+
+# SUBSLOT based on SONAME of libsensors.so
+SLOT="0/4.4.0"
+
+KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux 
~arm-linux ~x86-linux"
+IUSE="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}
 )
+
+S="${WORKDIR}/${MY_PN}-${COMMIT}"
+
+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}"/${PN}.initd ${PN}
+       newconfd "${FILESDIR}"/${PN}.confd ${PN}
+       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
+}
+
+pkg_postinst() {
+       local _new_loader='3.4.0_p20160725'
+       local _v
+       for _v in ${REPLACING_VERSIONS}; do
+               if ! version_is_at_least ${_new_loader} ${v}; 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 ${PN} 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
index c865c34..d8294cc 100644
--- a/sys-apps/lm_sensors/metadata.xml
+++ b/sys-apps/lm_sensors/metadata.xml
@@ -1,13 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-  <maintainer type="person">
-    <email>polynomia...@gentoo.org</email>
-    <name>Lars Wendler</name>
-  </maintainer>
-  <use>
-    <flag name="sensord">Enable sensord - a daemon that can be used to
+       <maintainer type="person">
+               <email>polynomia...@gentoo.org</email>
+               <name>Lars Wendler</name>
+       </maintainer>
+       <maintainer type="person">
+               <email>whi...@gentoo.org</email>
+               <name>Thomas Deutschmann</name>
+       </maintainer>
+       <slots>
+               <subslots>Reflect ABI of libsensors.so.</subslots>
+       </slots>
+       <use>
+               <flag name="sensord">
+                       Enable sensord - a daemon that can be used to
                        periodically log sensor readings from hardware 
health-monitoring
-                       chips</flag>
-  </use>
+                       chips
+               </flag>
+       </use>
 </pkgmetadata>

Reply via email to