emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#26917: closed ([PATCH] Add thermald and thermald-s


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#26917: closed ([PATCH] Add thermald and thermald-service-type (for cpu frequency scaling))
Date: Sun, 14 May 2017 05:29:02 +0000

Your message dated Sun, 14 May 2017 00:28:34 -0500
with message-id <address@hidden>
and subject line Re: bug#26917: [PATCH] Add thermald and thermald-service-type 
(for cpu frequency scaling)
has caused the debbugs.gnu.org bug report #26917,
regarding [PATCH] Add thermald and thermald-service-type (for cpu frequency 
scaling)
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
26917: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26917
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] Add thermald and thermald-service-type (for cpu frequency scaling) Date: Sat, 13 May 2017 20:04:51 -0500 User-agent: mu4e 0.9.18; emacs 25.2.1
Hello!  I got tired of my laptop crashing so much due to overheating, so
here's a package for thermald as well as a service type.

>From 56c7019d58d4a064fe44e626a1396b62cbf808b0 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <address@hidden>
Date: Sat, 13 May 2017 19:36:01 -0500
Subject: [PATCH 1/2] gnu: Add thermald.

* gnu/packages/admin.scm (thermald): New variable.
---
 gnu/packages/admin.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index ff0431999..20cb8f180 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2016 John Darrington <address@hidden>
 ;;; Copyright © 2017 Ben Sturmfels <address@hidden>
 ;;; Copyright © 2017 Ethan R. Jones <address@hidden>
+;;; Copyright © 2017 Christopher Allan Webber <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -80,7 +81,8 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages kerberos)
-  #:use-module (gnu packages gtk))
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages xml))
 
 (define-public aide
   (package
@@ -2130,3 +2132,53 @@ logo, or any ASCII file of your choice.  The main 
purpose of Neofetch is to be
 used in screenshots to show other users what operating system or distribution
 you are running, what theme or icon set you are using, etc.")
     (license license:expat)))
+
+(define-public thermald
+  (package
+    (name "thermald")
+    (version "1.6")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/01org/thermal_daemon/archive/v";
+                          version ".tar.gz"))
+      (sha256 (base32
+               "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after
+                   'unpack 'autogen.sh-and-fix-paths
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let ((out (assoc-ref outputs "out")))
+                       ;; upstartconfir is hardcoded to /etc/init and the build
+                       ;; system tries to mkdir that.  We don't even need 
upstart
+                       ;; files at all; this is a fast and kludgy workaround
+                       (substitute* "data/Makefile.am"
+                         (("upstartconfdir = /etc/init")
+                          (string-append "upstartconfdir = "
+                                         out "/etc/init")))
+                       ;; Now run autogen
+                       (zero? (system* "sh" "autogen.sh"))))))
+       #:configure-flags
+       (let ((out      (assoc-ref %outputs "out")))
+         (list (string-append "--sysconfdir="
+                              out "/etc")
+               (string-append "--with-udev-dir="
+                              out "/lib/udev")
+               (string-append "--with-dbus-sys-dir="
+                              out "/etc/dbus-1/system.d")
+               "--localstatedir=/var"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("dbus-glib" ,dbus-glib)
+       ("libxml2" ,libxml2)))
+    (home-page "https://01.org/linux-thermal-daemon/";)
+    (synopsis "CPU scaling for thermal management")
+    (description "The Linux Thermal Daemon helps monitor and control 
temperature
+on systems running the Linux kernel.")
+    (license license:gpl2+)))
-- 
2.12.2

>From de2045cdc81ddef7b01b3445fb731a3252f5b4a8 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <address@hidden>
Date: Sat, 13 May 2017 19:37:02 -0500
Subject: [PATCH 2/2] services: Add 'thermald-service-type'.

* gnu/services/admin.scm (<thermald-configuration>): New record type.
(thermald-shepherd-service, thermald-service-type): New variables.
* doc/guix.texi (Thermal Management): New section documenting thermald.
---
 doc/guix.texi          | 23 ++++++++++++++++++++++-
 gnu/services/admin.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 69 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 22dc8b3f9..1fee7616c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35,7 +35,8 @@ Copyright @copyright{} 2017 Mathieu address@hidden
 Copyright @copyright{} 2017 Federico address@hidden
 Copyright @copyright{} 2017 Carlo address@hidden
 Copyright @copyright{} 2017 Thomas address@hidden
-Copyright @copyright{} 2017 humanitiesNerd
+Copyright @copyright{} 2017 address@hidden
+Copyright @copyright{} 2017 Christopher Allan Webber
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -14746,6 +14747,26 @@ The following is an example @code{dicod-service} 
configuration.
                     %dicod-database:gcide))))
 @end example
 
address@hidden Thermal Management
+
+The @code{(gnu services admin)} module provides an interface to
+thermald, a cpu frequency scaling service which helps prevent overheating.
+
address@hidden {Scheme Variable} thermald-service-type
+This is the service type for thermald.
address@hidden defvr
+
address@hidden {Data Type} thermald-configuration
+Data type representing the configuration of THERMALD-SERVICE.
+
address@hidden @asis
address@hidden @code{ignore-cpuid-check?} {default: @code{#f}}
+Ignore cpuid check for supported CPU models.
+
address@hidden table
address@hidden deftp
+
+
 @subsubsection Version Control
 
 The @code{(gnu services version-control)} module provides the following 
services:
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 6ac24e32b..ec274b416 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -32,17 +32,27 @@
             rottlog-configuration
             rottlog-configuration?
             rottlog-service
-            rottlog-service-type))
+            rottlog-service-type
+
+            thermald-configuration
+            thermald-service-type))
 
 ;;; Commentary:
 ;;;
-;;; This module implements configuration of rottlog by writing
+;;; Various administration services.
+;;;
+;;; Code:
+
+
+
+;;;
+;;; Rotlog
+;;;
+;;; This service implements configuration of rottlog by writing
 ;;; /etc/rottlog/{rc,hourly|daily|weekly}.  Example usage
 ;;;
 ;;;     (mcron-service)
 ;;;     (service rottlog-service-type (rottlog-configuration))
-;;;
-;;; Code:
 
 (define %rotated-files
   ;; Syslog files subject to rotation.
@@ -118,4 +128,37 @@
                                         (compose list rottlog-rottlog))))
    (default-value (rottlog-configuration))))
 
+
+
+;;;
+;;; thermald
+;;;
+;;; This service implements cpu scaling.  Helps prevent overheating!
+
+(define-record-type* <thermald-configuration>
+  thermald-configuration make-thermald-configuration
+  thermald-configuration?
+  (ignore-cpuid-check? thermald-ignore-cpuid-check?
+                       (default #f)))
+
+(define (thermald-shepherd-service config)
+  (list
+   (shepherd-service
+    (provision '(thermald))
+    (documentation "Run thermald cpu frequency scaling.")
+    (start #~(make-forkexec-constructor
+              '(#$(file-append thermald "/sbin/thermald")
+                "--no-daemon"
+                #$@(if (thermald-ignore-cpuid-check? config)
+                       '("--ignore-cpuid-check")
+                       '()))))
+    (stop #~(make-kill-destructor)))))
+
+(define thermald-service-type
+  (service-type
+   (name 'thermald)
+   (extensions (list (service-extension shepherd-root-service-type
+                                        thermald-shepherd-service)))
+   (default-value (thermald-configuration))))
+
 ;;; admin.scm ends here
-- 
2.12.2


--- End Message ---
--- Begin Message --- Subject: Re: bug#26917: [PATCH] Add thermald and thermald-service-type (for cpu frequency scaling) Date: Sun, 14 May 2017 00:28:34 -0500 User-agent: mu4e 0.9.18; emacs 25.2.1
Bah, this should have been sent to guix-patches.

Christopher Allan Webber writes:

> Hello!  I got tired of my laptop crashing so much due to overheating, so
> here's a package for thermald as well as a service type.
>
>>From 56c7019d58d4a064fe44e626a1396b62cbf808b0 Mon Sep 17 00:00:00 2001
> From: Christopher Allan Webber <address@hidden>
> Date: Sat, 13 May 2017 19:36:01 -0500
> Subject: [PATCH 1/2] gnu: Add thermald.
>
> * gnu/packages/admin.scm (thermald): New variable.
> ---
>  gnu/packages/admin.scm | 54 
> +++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 53 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index ff0431999..20cb8f180 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -17,6 +17,7 @@
>  ;;; Copyright © 2016 John Darrington <address@hidden>
>  ;;; Copyright © 2017 Ben Sturmfels <address@hidden>
>  ;;; Copyright © 2017 Ethan R. Jones <address@hidden>
> +;;; Copyright © 2017 Christopher Allan Webber <address@hidden>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -80,7 +81,8 @@
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages kerberos)
> -  #:use-module (gnu packages gtk))
> +  #:use-module (gnu packages gtk)
> +  #:use-module (gnu packages xml))
>  
>  (define-public aide
>    (package
> @@ -2130,3 +2132,53 @@ logo, or any ASCII file of your choice.  The main 
> purpose of Neofetch is to be
>  used in screenshots to show other users what operating system or distribution
>  you are running, what theme or icon set you are using, etc.")
>      (license license:expat)))
> +
> +(define-public thermald
> +  (package
> +    (name "thermald")
> +    (version "1.6")
> +    (source
> +     (origin
> +      (method url-fetch)
> +      (uri (string-append "https://github.com/01org/thermal_daemon/archive/v";
> +                          version ".tar.gz"))
> +      (sha256 (base32
> +               "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:phases (modify-phases %standard-phases
> +                  (add-after
> +                   'unpack 'autogen.sh-and-fix-paths
> +                   (lambda* (#:key outputs #:allow-other-keys)
> +                     (let ((out (assoc-ref outputs "out")))
> +                       ;; upstartconfir is hardcoded to /etc/init and the 
> build
> +                       ;; system tries to mkdir that.  We don't even need 
> upstart
> +                       ;; files at all; this is a fast and kludgy workaround
> +                       (substitute* "data/Makefile.am"
> +                         (("upstartconfdir = /etc/init")
> +                          (string-append "upstartconfdir = "
> +                                         out "/etc/init")))
> +                       ;; Now run autogen
> +                       (zero? (system* "sh" "autogen.sh"))))))
> +       #:configure-flags
> +       (let ((out      (assoc-ref %outputs "out")))
> +         (list (string-append "--sysconfdir="
> +                              out "/etc")
> +               (string-append "--with-udev-dir="
> +                              out "/lib/udev")
> +               (string-append "--with-dbus-sys-dir="
> +                              out "/etc/dbus-1/system.d")
> +               "--localstatedir=/var"))))
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
> +       ("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("dbus-glib" ,dbus-glib)
> +       ("libxml2" ,libxml2)))
> +    (home-page "https://01.org/linux-thermal-daemon/";)
> +    (synopsis "CPU scaling for thermal management")
> +    (description "The Linux Thermal Daemon helps monitor and control 
> temperature
> +on systems running the Linux kernel.")
> +    (license license:gpl2+)))
> -- 
> 2.12.2
>
>>From de2045cdc81ddef7b01b3445fb731a3252f5b4a8 Mon Sep 17 00:00:00 2001
> From: Christopher Allan Webber <address@hidden>
> Date: Sat, 13 May 2017 19:37:02 -0500
> Subject: [PATCH 2/2] services: Add 'thermald-service-type'.
>
> * gnu/services/admin.scm (<thermald-configuration>): New record type.
> (thermald-shepherd-service, thermald-service-type): New variables.
> * doc/guix.texi (Thermal Management): New section documenting thermald.
> ---
>  doc/guix.texi          | 23 ++++++++++++++++++++++-
>  gnu/services/admin.scm | 51 
> ++++++++++++++++++++++++++++++++++++++++++++++----
>  2 files changed, 69 insertions(+), 5 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 22dc8b3f9..1fee7616c 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -35,7 +35,8 @@ Copyright @copyright{} 2017 Mathieu address@hidden
>  Copyright @copyright{} 2017 Federico address@hidden
>  Copyright @copyright{} 2017 Carlo address@hidden
>  Copyright @copyright{} 2017 Thomas address@hidden
> -Copyright @copyright{} 2017 humanitiesNerd
> +Copyright @copyright{} 2017 address@hidden
> +Copyright @copyright{} 2017 Christopher Allan Webber
>  
>  Permission is granted to copy, distribute and/or modify this document
>  under the terms of the GNU Free Documentation License, Version 1.3 or
> @@ -14746,6 +14747,26 @@ The following is an example @code{dicod-service} 
> configuration.
>                      %dicod-database:gcide))))
>  @end example
>  
> address@hidden Thermal Management
> +
> +The @code{(gnu services admin)} module provides an interface to
> +thermald, a cpu frequency scaling service which helps prevent overheating.
> +
> address@hidden {Scheme Variable} thermald-service-type
> +This is the service type for thermald.
> address@hidden defvr
> +
> address@hidden {Data Type} thermald-configuration
> +Data type representing the configuration of THERMALD-SERVICE.
> +
> address@hidden @asis
> address@hidden @code{ignore-cpuid-check?} {default: @code{#f}}
> +Ignore cpuid check for supported CPU models.
> +
> address@hidden table
> address@hidden deftp
> +
> +
>  @subsubsection Version Control
>  
>  The @code{(gnu services version-control)} module provides the following 
> services:
> diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
> index 6ac24e32b..ec274b416 100644
> --- a/gnu/services/admin.scm
> +++ b/gnu/services/admin.scm
> @@ -32,17 +32,27 @@
>              rottlog-configuration
>              rottlog-configuration?
>              rottlog-service
> -            rottlog-service-type))
> +            rottlog-service-type
> +
> +            thermald-configuration
> +            thermald-service-type))
>  
>  ;;; Commentary:
>  ;;;
> -;;; This module implements configuration of rottlog by writing
> +;;; Various administration services.
> +;;;
> +;;; Code:
> +
> +
> +
> +;;;
> +;;; Rotlog
> +;;;
> +;;; This service implements configuration of rottlog by writing
>  ;;; /etc/rottlog/{rc,hourly|daily|weekly}.  Example usage
>  ;;;
>  ;;;     (mcron-service)
>  ;;;     (service rottlog-service-type (rottlog-configuration))
> -;;;
> -;;; Code:
>  
>  (define %rotated-files
>    ;; Syslog files subject to rotation.
> @@ -118,4 +128,37 @@
>                                          (compose list rottlog-rottlog))))
>     (default-value (rottlog-configuration))))
>  
> +
> +
> +;;;
> +;;; thermald
> +;;;
> +;;; This service implements cpu scaling.  Helps prevent overheating!
> +
> +(define-record-type* <thermald-configuration>
> +  thermald-configuration make-thermald-configuration
> +  thermald-configuration?
> +  (ignore-cpuid-check? thermald-ignore-cpuid-check?
> +                       (default #f)))
> +
> +(define (thermald-shepherd-service config)
> +  (list
> +   (shepherd-service
> +    (provision '(thermald))
> +    (documentation "Run thermald cpu frequency scaling.")
> +    (start #~(make-forkexec-constructor
> +              '(#$(file-append thermald "/sbin/thermald")
> +                "--no-daemon"
> +                #$@(if (thermald-ignore-cpuid-check? config)
> +                       '("--ignore-cpuid-check")
> +                       '()))))
> +    (stop #~(make-kill-destructor)))))
> +
> +(define thermald-service-type
> +  (service-type
> +   (name 'thermald)
> +   (extensions (list (service-extension shepherd-root-service-type
> +                                        thermald-shepherd-service)))
> +   (default-value (thermald-configuration))))
> +
>  ;;; admin.scm ends here



--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]