From d17ae8c0c3023683a3175246a8ceedac237b5dd0 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 30 Apr 2016 10:31:13 +0200 Subject: gnu: Add thinkfan. * gnu/packages/linux.scm (thinkfan): New variable. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e80c9004ed..fcea499227 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; 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,53 @@ 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.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/thinkfan/" + version "/thinkfan-" version ".tar.gz")) + (sha256 + (base32 + "0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n")) + (modules '((guix build utils))) + ;; Fix erroneous man page location in Makefile leading to + ;; a compilation failure. + (snippet + '(substitute* "CMakeLists.txt" + (("thinkfan\\.1") "src/thinkfan.1"))))) + (build-system cmake-build-system) + (arguments + `(#:modules ((guix build cmake-build-system) + (guix build utils) + (srfi srfi-26)) + #:tests? #f ;no test target + #:configure-flags + ;; Enable 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 (string-append "../thinkfan-" ,version + "/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+))) -- cgit 1.4.1