diff mbox

Add thinkfan.

Message ID 877ffalrj3.fsf@saiph.selenimh
State New
Headers show

Commit Message

Nicolas Goaziou May 3, 2016, 10:12 p.m. UTC
Hello,

Leo Famulari <leo@famulari.name> writes:

> Can you add a brief comment explaining this flag?

Done.

> Also, can you add a phase that installs the "rcscripts"? They will be
> useful for Guix users on foreign distros.

Done.

> I'm not sure where to install them. Since they will probably have to be
> copied or symlinked out of ~/.guix-profile anyways, how about installing
> them into 'share/misc'?
>
> I'm open to better ideas!

What about share/thinkfan instead? I changed the patch accordingly. Feel
free to use share/misc instead if you think this is better.

>> +    (synopsis "Simple fan control program")
>
> Is it specific to ThinkPads?

No, it isn't. Quoting README:

  Thinkfan is a simple, lightweight fan control program. Originally designed
  specifically for IBM/Lenovo Thinkpads, it now supports any kind of system via
  the sysfs hwmon interface (/sys/class/hwmon).

Here is the updated patch. Thank you for the review.


Regards,

Comments

Leo Famulari May 6, 2016, 6:13 p.m. UTC | #1
On Wed, May 04, 2016 at 12:12:48AM +0200, Nicolas Goaziou wrote:
> Leo Famulari <leo@famulari.name> writes:
> > Also, can you add a phase that installs the "rcscripts"? They will be
> > useful for Guix users on foreign distros.
> 
> Done.
> 
> > I'm not sure where to install them. Since they will probably have to be
> > copied or symlinked out of ~/.guix-profile anyways, how about installing
> > them into 'share/misc'?
> >
> > I'm open to better ideas!
> 
> What about share/thinkfan instead? I changed the patch accordingly. Feel
> free to use share/misc instead if you think this is better.

Yours is one of those "better ideas" I was talking about ;)

> * gnu/packages/linux.scm (thinkfan): New variable.

Looks good! But I noticed they *just* released a new version. Can you
take a look and submit a patch with that version if it works for you?
diff mbox

Patch

From b804f745864eb06613a51e6055b8b0b4c4865401 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 30 Apr 2016 10:31:13 +0200
Subject: [PATCH] gnu: Add thinkfan.

* gnu/packages/linux.scm (thinkfan): New variable.
---
 gnu/packages/linux.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index aa778be..97958eb 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -11,6 +11,7 @@ 
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,6 +64,7 @@ 
   #:use-module (gnu packages readline)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages freedesktop)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -2591,3 +2593,47 @@  where they are less likely to cause damage to the spinning disc.  Requires a
 drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload
 feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
     (license license:gpl2)))
+
+(define-public thinkfan
+  (package
+    (name "thinkfan")
+    (version "0.9.2")
+    (source (origin
+              (method url-fetch/tarbomb)
+              (file-name (string-append name "-" version))
+              (uri (string-append "mirror://sourceforge/thinkfan/"
+                                  version "/thinkfan-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ydgabk2758f6j64g1r9vdsd221nqsv5rwnphm81s7i2vgra1nlh"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:modules ((guix build cmake-build-system)
+                  (guix build utils)
+                  (srfi srfi-1)
+                  (srfi srfi-26))
+       #:tests? #f                      ;no test target
+       #:configure-flags
+       ;; Allow reading temperatures from hard disks via S.M.A.R.T.
+       `("-DUSE_ATASMART:BOOL=ON")
+       #:phases
+       (modify-phases %standard-phases
+         ;; Install scripts for various foreign init systems.
+         (add-after 'install 'install-rc-scripts
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each (cute install-file <>
+                             (string-append (assoc-ref outputs "out")
+                                            "/share/thinkfan"))
+                       (find-files "../source/rcscripts" ".*"))
+             #t)))))
+    (inputs
+     `(("libatasmart" ,libatasmart)))
+    (home-page "http://thinkfan.sourceforge.net/")
+    (synopsis "Simple fan control program")
+    (description
+     "Thinkfan is a simple fan control program.  It reads temperatures,
+checks them against configured limits and switches to appropriate (also
+pre-configured) fan level.  It requires a working @code{thinkpad_acpi} or any
+other @code{hwmon} driver that enables temperature reading and fan control
+from userspace.")
+    (license license:gpl3+)))
-- 
2.7.4