[PATCH 0/6 v2] Add tlp service.

DoneSubmitted by Mathieu Othacehe.
Details
2 participants
  • Clément Lassieur
  • Mathieu Othacehe
Owner
unassigned
Severity
normal
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:31
(address . guix-patches@gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103138.7557-1-m.othacehe@gmail.com
Hi Guix,
Here's the v2 of this serie. The v1 was published without debbugs.This version addresses issues pointed out by Clément.
Thank you,
Mathieu
Mathieu Othacehe (6): gnu: tlp: Read configuration from /etc/tlp. services: Factorize define-maybe macro. services: configuration: Rewrite id procedure. gnu: Add tlp service. services: openvpn: Fix a typo which was corrected in generated doc. doc: Re-generate openvpn service documentation.
doc/guix.texi | 587 ++++++++++++++++++++++++++++++++++++++--- gnu/local.mk | 2 + gnu/packages/linux.scm | 2 +- gnu/services/configuration.scm | 29 +- gnu/services/messaging.scm | 23 +- gnu/services/pm.scm | 404 ++++++++++++++++++++++++++++ gnu/services/vpn.scm | 3 +- 7 files changed, 977 insertions(+), 73 deletions(-) create mode 100644 gnu/services/pm.scm
-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 1/6] gnu: tlp: Read configuration from /etc/tlp.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-1-m.othacehe@gmail.com
* gnu/packages/linux.scm (tlp): Set TLP_CONF to "/etc/tlp".--- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Toggle diff (15 lines)diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scmindex 4557194e8..61afc9b00 100644--- a/gnu/packages/linux.scm+++ b/gnu/packages/linux.scm@@ -3494,7 +3494,7 @@ Light is the successor of lightscript.") (setenv "TLP_BIN" (string-append out "/bin")) (setenv "TLP_TLIB" (string-append out "/share/tlp-pm")) (setenv "TLP_ULIB" (string-append out "/lib/udev"))- (setenv "TLP_CONF" (string-append out "/etc/tlp"))+ (setenv "TLP_CONF" "/etc/tlp") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man")))))-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 2/6] services: Factorize define-maybe macro.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-2-m.othacehe@gmail.com
* gnu/services/configuration.scm (id): New procedure extracted from define-configuration.(define-maybe): New exported procedure, moved from messaging.scm.* gnu/services/messaging.scm (define-maybe): Remove it.(id): Move declaration inside define-all-configurations which is nowthe only caller procedure.--- gnu/services/configuration.scm | 24 +++++++++++++++++++++--- gnu/services/messaging.scm | 23 ++++------------------- 2 files changed, 25 insertions(+), 22 deletions(-)
Toggle diff (99 lines)diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scmindex 2ad3a637a..f59920d5a 100644--- a/gnu/services/configuration.scm+++ b/gnu/services/configuration.scm@@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -36,6 +37,7 @@ configuration-field-default-value-thunk configuration-field-documentation serialize-configuration+ define-maybe define-configuration validate-configuration generate-documentation@@ -85,9 +87,7 @@ (configuration-field-name field) val)))) fields)) -(define-syntax define-configuration- (lambda (stx)- (define (id ctx part . parts)+(define (id ctx part . parts) (let ((part (syntax->datum part))) (datum->syntax ctx@@ -95,6 +95,24 @@ (() part) (parts (symbol-append part (syntax->datum (apply id ctx parts))))))))++(define-syntax define-maybe+ (lambda (x)+ (syntax-case x ()+ ((_ stem)+ (with-syntax+ ((stem? (id #'stem #'stem #'?))+ (maybe-stem? (id #'stem #'maybe- #'stem #'?))+ (serialize-stem (id #'stem #'serialize- #'stem))+ (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem)))+ #'(begin+ (define (maybe-stem? val)+ (or (eq? val 'disabled) (stem? val)))+ (define (serialize-maybe-stem field-name val)+ (when (stem? val) (serialize-stem field-name val)))))))))++(define-syntax define-configuration+ (lambda (stx) (syntax-case stx () ((_ stem (field (field-type def) doc) ...) (with-syntax (((field-getter ...)diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scmindex 34723dc11..715d6181f 100644--- a/gnu/services/messaging.scm+++ b/gnu/services/messaging.scm@@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -49,27 +50,11 @@ ;;; ;;; Code: -(define-syntax-rule (id ctx parts ...)- "Assemble PARTS into a raw (unhygienic) identifier."- (datum->syntax ctx (symbol-append (syntax->datum parts) ...)))--(define-syntax define-maybe- (lambda (x)- (syntax-case x ()- ((_ stem)- (with-syntax- ((stem? (id #'stem #'stem #'?))- (maybe-stem? (id #'stem #'maybe- #'stem #'?))- (serialize-stem (id #'stem #'serialize- #'stem))- (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem)))- #'(begin- (define (maybe-stem? val)- (or (eq? val 'disabled) (stem? val)))- (define (serialize-maybe-stem field-name val)- (when (stem? val) (serialize-stem field-name val)))))))))- (define-syntax define-all-configurations (lambda (stx)+ (define-syntax-rule (id ctx parts ...)+ "Assemble PARTS into a raw (unhygienic) identifier."+ (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define (make-pred arg) (lambda (field target) (and (memq (syntax->datum target) `(common ,arg)) field)))-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 3/6] services: configuration: Rewrite id procedure.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-3-m.othacehe@gmail.com
* gnu/services/configuration.scm (id): Replace it using the more concise version found in messaging.scm.--- gnu/services/configuration.scm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
Toggle diff (24 lines)diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scmindex f59920d5a..4ee92e35f 100644--- a/gnu/services/configuration.scm+++ b/gnu/services/configuration.scm@@ -87,14 +87,9 @@ (configuration-field-name field) val)))) fields)) -(define (id ctx part . parts)- (let ((part (syntax->datum part)))- (datum->syntax- ctx- (match parts- (() part)- (parts (symbol-append part- (syntax->datum (apply id ctx parts))))))))+(define-syntax-rule (id ctx parts ...)+ "Assemble PARTS into a raw (unhygienic) identifier."+ (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define-syntax define-maybe (lambda (x)-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 5/6] services: openvpn: Fix a typo which was corrected in generated doc.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-5-m.othacehe@gmail.com
* gnu/services/vpn.scm (define-split-configuration): Fix typo.--- gnu/services/vpn.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Toggle diff (23 lines)diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scmindex 844a11b3d..e1a04a985 100644--- a/gnu/services/vpn.scm+++ b/gnu/services/vpn.scm@@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -279,7 +280,7 @@ by the authority given in @code{ca}.") (key (string "/etc/openvpn/client.key")- "The key of the machine the daemon is running on. It must be the whose+ "The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}.") (comp-lzo?-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 6/6] doc: Re-generate openvpn service documentation.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-6-m.othacehe@gmail.com
* doc/guix.texi (VPN Services): Generate documentation withgenerate-openvpn-server-documentation andgenerate-openvpn-client-documentation helpers and guile 2.1.7.--- doc/guix.texi | 88 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 44 insertions(+), 44 deletions(-)
Toggle diff (368 lines)diff --git a/doc/guix.texi b/doc/guix.texiindex bed8a6ff4..fd6b9a15b 100644--- a/doc/guix.texi+++ b/doc/guix.texi@@ -13027,19 +13027,19 @@ Both can be run simultaneously. Available @code{openvpn-client-configuration} fields are: -@deftypevr @code{openvpn-client-configuration} parameter package openvpn+@deftypevr {@code{openvpn-client-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string pid-file+@deftypevr {@code{openvpn-client-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter proto proto+@deftypevr {@code{openvpn-client-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13047,21 +13047,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter dev dev+@deftypevr {@code{openvpn-client-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string ca+@deftypevr {@code{openvpn-client-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string cert+@deftypevr {@code{openvpn-client-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13069,7 +13069,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string key+@deftypevr {@code{openvpn-client-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13077,21 +13077,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean comp-lzo?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-key?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-tun?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13099,14 +13099,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter number verbosity+@deftypevr {@code{openvpn-client-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter tls-auth-client tls-auth+@deftypevr {@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13114,42 +13114,42 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter key-usage verify-key-usage?+@deftypevr {@code{openvpn-client-configuration} parameter} key-usage verify-key-usage? Whether to check the server certificate has server usage extension. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter bind bind?+@deftypevr {@code{openvpn-client-configuration} parameter} bind bind? Bind to a specific local port number. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter resolv-retry resolv-retry?+@deftypevr {@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry? Retry resolving server address. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter openvpn-remote-list remote+@deftypevr {@code{openvpn-client-configuration} parameter} openvpn-remote-list remote A list of remote servers to connect to. Defaults to @samp{()}. Available @code{openvpn-remote-configuration} fields are: -@deftypevr @code{openvpn-remote-configuration} parameter string name+@deftypevr {@code{openvpn-remote-configuration} parameter} string name Server name. Defaults to @samp{"my-server"}. @end deftypevr -@deftypevr @code{openvpn-remote-configuration} parameter number port+@deftypevr {@code{openvpn-remote-configuration} parameter} number port Port number the server listens to. Defaults to @samp{1194}.@@ -13163,19 +13163,19 @@ Defaults to @samp{1194}. Available @code{openvpn-server-configuration} fields are: -@deftypevr @code{openvpn-server-configuration} parameter package openvpn+@deftypevr {@code{openvpn-server-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string pid-file+@deftypevr {@code{openvpn-server-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter proto proto+@deftypevr {@code{openvpn-server-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13183,21 +13183,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter dev dev+@deftypevr {@code{openvpn-server-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ca+@deftypevr {@code{openvpn-server-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string cert+@deftypevr {@code{openvpn-server-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13205,7 +13205,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string key+@deftypevr {@code{openvpn-server-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13213,21 +13213,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean comp-lzo?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-key?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-tun?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13235,14 +13235,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number verbosity+@deftypevr {@code{openvpn-server-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter tls-auth-server tls-auth+@deftypevr {@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13250,56 +13250,56 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number port+@deftypevr {@code{openvpn-server-configuration} parameter} number port Specifies the port number on which the server listens. Defaults to @samp{1194}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter ip-mask server+@deftypevr {@code{openvpn-server-configuration} parameter} ip-mask server An ip and mask specifying the subnet inside the virtual network. Defaults to @samp{"10.8.0.0 255.255.255.0"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter cidr6 server-ipv6+@deftypevr {@code{openvpn-server-configuration} parameter} cidr6 server-ipv6 A CIDR notation specifying the IPv6 subnet inside the virtual network. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string dh+@deftypevr {@code{openvpn-server-configuration} parameter} string dh The Diffie-Hellman parameters file. Defaults to @samp{"/etc/openvpn/dh2048.pem"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ifconfig-pool-persist+@deftypevr {@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist The file that records client IPs. Defaults to @samp{"/etc/openvpn/ipp.txt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter gateway redirect-gateway?+@deftypevr {@code{openvpn-server-configuration} parameter} gateway redirect-gateway? When true, the server will act as a gateway for its clients. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean client-to-client?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean client-to-client? When true, clients are alowed to talk to each other inside the VPN. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter keepalive keepalive+@deftypevr {@code{openvpn-server-configuration} parameter} keepalive keepalive Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down. @code{keepalive} requires a pair. The first element is the period of the ping sending,@@ -13308,14 +13308,14 @@ down. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number max-clients+@deftypevr {@code{openvpn-server-configuration} parameter} number max-clients The maximum number of clients. Defaults to @samp{100}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string status+@deftypevr {@code{openvpn-server-configuration} parameter} string status The status file. This file shows a small report on current connection. It is trunkated and rewritten every minute. @@ -13323,28 +13323,28 @@ Defaults to @samp{"/var/run/openvpn/status"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter openvpn-ccd-list client-config-dir+@deftypevr {@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir The list of configuration for some clients. Defaults to @samp{()}. Available @code{openvpn-ccd-configuration} fields are: -@deftypevr @code{openvpn-ccd-configuration} parameter string name+@deftypevr {@code{openvpn-ccd-configuration} parameter} string name Client name. Defaults to @samp{"client"}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask iroute+@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask iroute Client own network Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask ifconfig-push+@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push Client VPN IP. Defaults to @samp{#f}.-- 2.12.0
M
M
Mathieu Othacehe wrote on 17 Mar 2017 11:34
[PATCH 4/6] gnu: Add tlp service.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170317103430.7629-4-m.othacehe@gmail.com
* gnu/services/pm.scm: New file.* gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/services/tlp.scm.* doc/guix.texi (Power management Services): New section.--- doc/guix.texi | 499 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 2 + gnu/services/pm.scm | 404 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 905 insertions(+) create mode 100644 gnu/services/pm.scm
Toggle diff (956 lines)diff --git a/doc/guix.texi b/doc/guix.texiindex 93640dfba..bed8a6ff4 100644--- a/doc/guix.texi+++ b/doc/guix.texi@@ -216,6 +216,7 @@ Services * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service.+* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. Defining Services@@ -8407,6 +8408,7 @@ declaration. * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service.+* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. @end menu @@ -13622,6 +13624,503 @@ The Cuirass package to use. @end table @end deftp +@node Power management Services+@subsubsection Power management Services++@cindex power management with TLP+The @code{(gnu services pm)} module provides a Guix service definition+for the Linux power management tool TLP.++@deffn {Scheme Variable} tlp-service-type+The service type for the TLP tool. Its value should be a valid+TLP configuration (see below). For example:+@example+(service tlp-service-type (tlp-configuration))+@end example+@end deffn++By default TLP does not need much configuration but most TLP parameters+can be tweaked using @code{tlp-configuration}.++Each parameter definition is preceded by its type; for example,+@samp{boolean foo} indicates that the @code{foo} parameter+should be specified as a boolean. Types starting with+@code{maybe-} denote parameters that won't show up in TLP config file+when their value is @code{'disabled}.++@c The following documentation was initially generated by+@c (generate-tlp-documentation) in (gnu services pm). Manually maintained+@c documentation is better, so we shouldn't hesitate to edit below as+@c needed. However if the change you want to make to this documentation+@c can be done in an automated way, it's probably easier to change+@c (generate-documentation) than to make it below and have to deal with+@c the churn as TLP updates.++Available @code{tlp-configuration} fields are:++@deftypevr {@code{tlp-configuration} parameter} package tlp+The TLP package.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean tlp-enable?+Set to true if you wish to enable TLP.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string tlp-default-mode+Default mode when no power supply can be detected. Alternatives are AC+and BAT.++Defaults to @samp{"AC"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac+Number of seconds Linux kernel has to wait after the disk goes idle,+before syncing on AC.++Defaults to @samp{0}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat+Same as @code{disk-idle-ac} but on BAT mode.++Defaults to @samp{2}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac+Dirty pages flushing periodicity, expressed in seconds.++Defaults to @samp{15}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat+Same as @code{max-lost-work-secs-on-ac} but on BAT mode.++Defaults to @samp{60}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac+CPU frequency scaling governor on AC mode. With intel_pstate driver,+alternatives are powersave and performance. With acpi-cpufreq driver,+alternatives are ondemand, powersave, performance and conservative.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat+Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac+Set the min available frequency for the scaling governor on AC.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac+Set the max available frequency for the scaling governor on AC.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat+Set the min available frequency for the scaling governor on BAT.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat+Set the max available frequency for the scaling governor on BAT.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac+Limit the min P-state to control the power dissipation of the CPU, in AC+mode. Values are stated as a percentage of the available performance.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac+Limit the max P-state to control the power dissipation of the CPU, in AC+mode. Values are stated as a percentage of the available performance.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat+Same as @code{cpu-min-perf-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat+Same as @code{cpu-max-perf-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?+Enable CPU turbo boost feature on AC mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?+Same as @code{cpu-boost-on-ac?} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?+Allow Linux kernel to minimize the number of CPU cores/hyper-threads+used under light load conditions.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?+Same as @code{sched-powersave-on-ac?} but on BAT mode.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean nmi-watchdog?+Enable Linux kernel NMI watchdog.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string phc-controls+For Linux kernels with PHC patch applied, change CPU voltages. An+example value would be @samp{"F:V F:V F:V F:V"}.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-ac+Set CPU performance versus energy saving policy on AC. Alternatives are+performance, normal, powersave.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-bat+Same as @code{energy-perf-policy-ac} but on BAT mode.++Defaults to @samp{"powersave"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disks-devices+Hard disk devices.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac+Hard disk advanced power management level.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat+Same as @code{disk-apm-bat} but on BAT mode.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac+Hard disk spin down timeout. One value has to be specified for each+declared hard disk.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat+Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched+Select IO scheduler for disk devices. One value has to be specified for+each declared hard disk. Example alternatives are cfq, deadline and+noop.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-ac+SATA aggressive link power management (ALPM) level. Alternatives are+min_power, medium_power, max_performance.++Defaults to @samp{"max_performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-bat+Same as @code{sata-linkpwr-ac} but on BAT mode.++Defaults to @samp{"min_power"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist+Exclude specified SATA host devices for link power management.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?+Enable Runtime Power Management for AHCI controller and disks on AC+mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?+Same as @code{ahci-runtime-pm-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout+Seconds of inactivity before disk is suspended.++Defaults to @samp{15}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-ac+PCI Express Active State Power Management level. Alternatives are+default, performance, powersave.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-bat+Same as @code{pcie-aspm-ac} but on BAT mode.++Defaults to @samp{"powersave"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac+Radeon graphics clock speed level. Alternatives are low, mid, high,+auto, default.++Defaults to @samp{"high"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-bat+Same as @code{radeon-power-ac} but on BAT mode.++Defaults to @samp{"low"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac+Radeon dynamic power management method (DPM). Alternatives are battery,+performance.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat+Same as @code{radeon-dpm-state-ac} but on BAT mode.++Defaults to @samp{"battery"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac+Radeon DPM performance level. Alternatives are auto, low, high.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat+Same as @code{radeon-dpm-perf-ac} but on BAT mode.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?+Wifi power saving mode.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?+Same as @code{wifi-power-ac?} but on BAT mode.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} y-n-boolean wol-disable?+Disable wake on LAN.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac+Timeout duration in seconds before activating audio power saving on+Intel HDA and AC97 devices. A value of 0 disables power saving.++Defaults to @samp{0}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat+Same as @code{sound-powersave-ac} but on BAT mode.++Defaults to @samp{1}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?+Disable controller in powersaving mode on Intel HDA devices.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?+Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be+powered on again by releasing (and reinserting) the eject lever or by+pressing the disc eject button on newer models.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string bay-device+Name of the optical drive device to power off.++Defaults to @samp{"sr0"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-ac+Runtime Power Management for PCI(e) bus devices. Alternatives are on+and auto.++Defaults to @samp{"on"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-bat+Same as @code{runtime-pm-ac} but on BAT mode.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean runtime-pm-all?+Runtime Power Management for all PCI(e) bus devices, except blacklisted+ones.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist+Exclude specified PCI(e) devices adresses from Runtime Power Management.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist+Exclude PCI(e) devices assigned to the specified drivers from Runtime+Power Management.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean usb-autosuspend?+Enable USB autosuspend feature.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist+Exclude specified devices from USB autosuspend.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?+Exclude WWAN devices from USB autosuspend.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-whitelist+Include specified devices into USB autosuspend, even if they are already+excluded by the driver or via @code{usb-blacklist-wwan?}.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?+Enable USB autosuspend before shutdown.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?+Restore radio device state (bluetooth, wifi, wwan) from previous+shutdown on system startup.++Defaults to @samp{#f}.++@end deftypevr+ @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mkindex 2cc5d546b..fc8367b26 100644--- a/gnu/local.mk+++ b/gnu/local.mk@@ -10,6 +10,7 @@ # Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> # Copyright © 2017 Clément Lassieur <clement@lassieur.org>+# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # # This file is part of GNU Guix. #@@ -422,6 +423,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/nfs.scm \ %D%/services/shepherd.scm \ %D%/services/herd.scm \+ %D%/services/pm.scm \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \diff --git a/gnu/services/pm.scm b/gnu/services/pm.scmnew file mode 100644index 000000000..ec35e5701--- /dev/null+++ b/gnu/services/pm.scm@@ -0,0 +1,404 @@+;;; GNU Guix --- Functional package management for GNU+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>+;;;+;;; This file is part of GNU Guix.+;;;+;;; GNU Guix is free software: you can redistribute it and/or modify+;;; it under the terms of the GNU General Public License as published by+;;; the Free Software Foundation, either version 3 of the License, or+;;; (at your option) any later version.+;;;+;;; GNU Guix is distributed in the hope that it will be useful,+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+;;; GNU General Public License for more details.+;;;+;;; You should have received a copy of the GNU General Public License+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.++(define-module (gnu services pm)+ #:use-module (guix gexp)+ #:use-module (guix packages)+ #:use-module (guix records)+ #:use-module (gnu packages linux)+ #:use-module (gnu services)+ #:use-module (gnu services base)+ #:use-module (gnu services configuration)+ #:use-module (gnu services shepherd)+ #:use-module (gnu system shadow)+ #:export (tlp-service-type+ tlp-configuration))++(define (uglify-field-name field-name)+ (let ((str (symbol->string field-name)))+ (string-join (string-split+ (string-upcase+ (if (string-suffix? "?" str)+ (substring str 0 (1- (string-length str)))+ str))+ #\-)+ "_")))++(define (serialize-field field-name val)+ (format #t "~a=~a\n" (uglify-field-name field-name) val))++(define (serialize-boolean field-name val)+ (serialize-field field-name (if val "1" "0")))+(define-maybe boolean)++(define (serialize-string field-name val)+ (serialize-field field-name val))+(define-maybe string)++(define (space-separated-string-list? val)+ (and (list? val)+ (and-map (lambda (x)+ (and (string? x) (not (string-index x #\space))))+ val)))+(define (serialize-space-separated-string-list field-name val)+ (serialize-field field-name+ (format #f "~s"+ (string-join val " "))))+(define-maybe space-separated-string-list)++(define (non-negative-integer? val)+ (and (exact-integer? val) (not (negative? val))))+(define (serialize-non-negative-integer field-name val)+ (serialize-field field-name val))+(define-maybe non-negative-integer)++(define (on-off-boolean? val)+ (boolean? val))+(define (serialize-on-off-boolean field-name val)+ (serialize-field field-name (if val "on" "off")))+(define-maybe on-off-boolean)++(define (y-n-boolean? val)+ (boolean? val))+(define (serialize-y-n-boolean field-name val)+ (serialize-field field-name (if val "Y" "N")))++(define-configuration tlp-configuration+ (tlp+ (package tlp)+ "The TLP package.")++ (tlp-enable?+ (boolean #t)+ "Set to true if you wish to enable TLP.")++ (tlp-default-mode+ (string "AC")+ "Default mode when no power supply can be detected. Alternatives are+AC and BAT.")++ (disk-idle-secs-on-ac+ (non-negative-integer 0)+ "Number of seconds Linux kernel has to wait after the disk goes idle,+before syncing on AC.")++ (disk-idle-secs-on-bat+ (non-negative-integer 2)+ "Same as @code{disk-idle-ac} but on BAT mode.")++ (max-lost-work-secs-on-ac+ (non-negative-integer 15)+ "Dirty pages flushing periodicity, expressed in seconds.")++ (max-lost-work-secs-on-bat+ (non-negative-integer 60)+ "Same as @code{max-lost-work-secs-on-ac} but on BAT mode.")++ (cpu-scaling-governor-on-ac+ (maybe-space-separated-string-list 'disabled)+ "CPU frequency scaling governor on AC mode. With intel_pstate+driver, alternatives are powersave and performance. With acpi-cpufreq driver,+alternatives are ondemand, powersave, performance and conservative.")++ (cpu-scaling-governor-on-bat+ (maybe-space-separated-string-list 'disabled)+ "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.")++ (cpu-scaling-min-freq-on-ac+ (maybe-non-negative-integer 'disabled)+ "Set the min available frequency for the scaling governor on AC.")++ (cpu-scaling-max-freq-on-ac+ (maybe-non-negative-integer 'disabled)+ "Set the max available frequency for the scaling governor on AC.")++ (cpu-scaling-min-freq-on-bat+ (maybe-non-negative-integer 'disabled)+ "Set the min available frequency for the scaling governor on BAT.")++ (cpu-scaling-max-freq-on-bat+ (maybe-non-negative-integer 'disabled)+ "Set the max available frequency for the scaling governor on BAT.")++ (cpu-min-perf-on-ac+ (maybe-non-negative-integer 'disabled)+ "Limit the min P-state to control the power dissipation of the CPU,+in AC mode. Values are stated as a percentage of the available performance.")++ (cpu-max-perf-on-ac+ (maybe-non-negative-integer 'disabled)+ "Limit the max P-state to control the power dissipation of the CPU,+in AC mode. Values are stated as a percentage of the available performance.")++ (cpu-min-perf-on-bat+ (maybe-non-negative-integer 'disabled)+ "Same as @code{cpu-min-perf-on-ac} on BAT mode.")++ (cpu-max-perf-on-bat+ (maybe-non-negative-integer 'disabled)+ "Same as @code{cpu-max-perf-on-ac} on BAT mode.")++ (cpu-boost-on-ac?+ (maybe-boolean 'disabled)+ "Enable CPU turbo boost feature on AC mode.")++ (cpu-boost-on-bat?+ (maybe-boolean 'disabled)+ "Same as @code{cpu-boost-on-ac?} on BAT mode.")++ (sched-powersave-on-ac?+ (boolean #f)+ "Allow Linux kernel to minimize the number of CPU cores/hyper-threads+used under light load conditions.")++ (sched-powersave-on-bat?+ (boolean #t)+ "Same as @code{sched-powersave-on-ac?} but on BAT mode.")++ (nmi-watchdog?+ (boolean #f)+ "Enable Linux kernel NMI watchdog.")++ (phc-controls+ (maybe-string 'disabled)+ "For Linux kernels with PHC patch applied, change CPU voltages.+An example value would be @samp{\"F:V F:V F:V F:V\"}.")++ (energy-perf-policy-on-ac+ (string "performance")+ "Set CPU performance versus energy saving policy on AC. Alternatives are+performance, normal, powersave.")++ (energy-perf-policy-on-bat+ (string "powersave")+ "Same as @code{energy-perf-policy-ac} but on BAT mode.")++ (disks-devices+ (space-separated-string-list '("sda"))+ "Hard disk devices.")++ (disk-apm-level-on-ac+ (space-separated-string-list '("254" "254"))+ "Hard disk advanced power management level.")++ (disk-apm-level-on-bat+ (space-separated-string-list '("128" "128"))+ "Same as @code{disk-apm-bat} but on BAT mode.")++ (disk-spindown-timeout-on-ac+ (maybe-space-separated-string-list 'disabled)+ "Hard disk spin down timeout. One value has to be specified for+each declared hard disk.")++ (disk-spindown-timeout-on-bat+ (maybe-space-separated-string-list 'disabled)+ "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.")++ (disk-iosched+ (maybe-space-separated-string-list 'disabled)+ "Select IO scheduler for disk devices. One value has to be specified+for each declared hard disk. Example alternatives are cfq, deadline and noop.")++ (sata-linkpwr-on-ac+ (string "max_performance")+ "SATA aggressive link power management (ALPM) level. Alternatives are+min_power, medium_power, max_performance.")++ (sata-linkpwr-on-bat+ (string "min_power")+ "Same as @code{sata-linkpwr-ac} but on BAT mode.")++ (sata-linkpwr-blacklist+ (maybe-string 'disabled)+ "Exclude specified SATA host devices for link power management.")++ (ahci-runtime-pm-on-ac?+ (maybe-on-off-boolean 'disabled)+ "Enable Runtime Power Management for AHCI controller and disks+on AC mode.")++ (ahci-runtime-pm-on-bat?+ (maybe-on-off-boolean 'disabled)+ "Same as @code{ahci-runtime-pm-on-ac} on BAT mode.")++ (ahci-runtime-pm-timeout+ (non-negative-integer 15)+ "Seconds of inactivity before disk is suspended.")++ (pcie-aspm-on-ac+ (string "performance")+ "PCI Express Active State Power Management level. Alternatives are+default, performance, powersave.")++ (pcie-aspm-on-bat+ (string "powersave")+ "Same as @code{pcie-aspm-ac} but on BAT mode.")++ (radeon-power-profile-on-ac+ (string "high")+ "Radeon graphics clock speed level. Alternatives are+low, mid, high, auto, default.")++ (radeon-power-profile-on-bat+ (string "low")+ "Same as @code{radeon-power-ac} but on BAT mode.")++ (radeon-dpm-state-on-ac+ (string "performance")+ "Radeon dynamic power management method (DPM). Alternatives are+battery, performance.")++ (radeon-dpm-state-on-bat+ (string "battery")+ "Same as @code{radeon-dpm-state-ac} but on BAT mode.")++ (radeon-dpm-perf-level-on-ac+ (string "auto")+ "Radeon DPM performance level. Alternatives are+auto, low, high.")++ (radeon-dpm-perf-level-on-bat+ (string "auto")+ "Same as @code{radeon-dpm-perf-ac} but on BAT mode.")++ (wifi-pwr-on-ac?+ (on-off-boolean #f)+ "Wifi power saving mode.")++ (wifi-pwr-on-bat?+ (on-off-boolean #t)+ "Same as @code{wifi-power-ac?} but on BAT mode.")++ (wol-disable?+ (y-n-boolean #t)+ "Disable wake on LAN.")++ (sound-power-save-on-ac+ (non-negative-integer 0)+ "Timeout duration in seconds before activating audio power saving+ on Intel HDA and AC97 devices. A value of 0 disables power saving.")++ (sound-power-save-on-bat+ (non-negative-integer 1)+ "Same as @code{sound-powersave-ac} but on BAT mode.")++ (sound-power-save-controller?+ (y-n-boolean #t)+ "Disable controller in powersaving mode on Intel HDA devices.")++ (bay-poweroff-on-bat?+ (boolean #f)+ "Enable optical drive in UltraBay/MediaBay on BAT mode.+Drive can be powered on again by releasing (and reinserting) the eject lever+or by pressing the disc eject button on newer models.")++ (bay-device+ (string "sr0")+ "Name of the optical drive device to power off.")++ (runtime-pm-on-ac+ (string "on")+ "Runtime Power Management for PCI(e) bus devices. Alternatives are+on and auto.")++ (runtime-pm-on-bat+ (string "auto")+ "Same as @code{runtime-pm-ac} but on BAT mode.")++ (runtime-pm-all?+ (boolean #t)+ "Runtime Power Management for all PCI(e) bus devices, except+blacklisted ones.")++ (runtime-pm-blacklist+ (maybe-space-separated-string-list 'disabled)+ "Exclude specified PCI(e) devices adresses from Runtime Power Management.")++ (runtime-pm-driver-blacklist+ (space-separated-string-list '("radeon" "nouveau"))+ "Exclude PCI(e) devices assigned to the specified drivers from+Runtime Power Management.")++ (usb-autosuspend?+ (boolean #t)+ "Enable USB autosuspend feature.")++ (usb-blacklist+ (maybe-string 'disabled)+ "Exclude specified devices from USB autosuspend.")++ (usb-blacklist-wwan?+ (boolean #t)+ "Exclude WWAN devices from USB autosuspend.")++ (usb-whitelist+ (maybe-string 'disabled)+ "Include specified devices into USB autosuspend, even if they are+already excluded by the driver or via @code{usb-blacklist-wwan?}.")++ (usb-autosuspend-disable-on-shutdown?+ (maybe-boolean 'disabled)+ "Enable USB autosuspend before shutdown.")++ (restore-device-state-on-startup?+ (boolean #f)+ "Restore radio device state (bluetooth, wifi, wwan) from previous+shutdown on system startup."))+++(define (tlp-shepherd-service config)+ (let* ((tlp-bin (file-append+ (tlp-configuration-tlp config) "/bin/tlp"))+ (tlp-action (lambda args+ #~(lambda _+ (zero? (system* #$tlp-bin #$@args))))))+ (list (shepherd-service+ (documentation "Run TLP script.")+ (provision '(tlp))+ (requirement '(user-processes))+ (start (tlp-action "init" "start"))+ (stop (tlp-action "init" "stop"))))))++(define (tlp-activation config)+ (let* ((config-str (with-output-to-string+ (lambda ()+ (serialize-configuration+ config+ tlp-configuration-fields))))+ (config-file (plain-file "tlp" config-str)))+ (with-imported-modules '((guix build utils))+ #~(begin+ (use-modules (guix build utils))+ (copy-file #$config-file "/etc/tlp")))))++(define tlp-service-type+ (service-type+ (name 'tlp)+ (extensions+ (list+ (service-extension shepherd-root-service-type+ tlp-shepherd-service)+ (service-extension udev-service-type+ (compose list tlp-configuration-tlp))+ (service-extension activation-service-type+ tlp-activation)))))++(define (generate-tlp-documentation)+ (generate-documentation+ `((tlp-configuration ,tlp-configuration-fields))+ 'tlp-configuration))-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 1/6] gnu: tlp: Read configuration from /etc/tlp.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-2-m.othacehe@gmail.com
* gnu/packages/linux.scm (tlp): Set TLP_CONF to "/etc/tlp".--- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Toggle diff (15 lines)diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scmindex 86c222f03..bf16ff0eb 100644--- a/gnu/packages/linux.scm+++ b/gnu/packages/linux.scm@@ -3491,7 +3491,7 @@ Light is the successor of lightscript.") (setenv "TLP_BIN" (string-append out "/bin")) (setenv "TLP_TLIB" (string-append out "/share/tlp-pm")) (setenv "TLP_ULIB" (string-append out "/lib/udev"))- (setenv "TLP_CONF" (string-append out "/etc/tlp"))+ (setenv "TLP_CONF" "/etc/tlp") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man")))))-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 2/6] services: Factorize define-maybe macro.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-3-m.othacehe@gmail.com
* gnu/services/configuration.scm (id): New procedure extracted from define-configuration.(define-maybe): New exported procedure, moved from messaging.scm.* gnu/services/messaging.scm (define-maybe): Remove it.(id): Move declaration inside define-all-configurations which is nowthe only caller procedure.--- gnu/services/configuration.scm | 24 +++++++++++++++++++++--- gnu/services/messaging.scm | 23 ++++------------------- 2 files changed, 25 insertions(+), 22 deletions(-)
Toggle diff (99 lines)diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scmindex 2ad3a637a..f59920d5a 100644--- a/gnu/services/configuration.scm+++ b/gnu/services/configuration.scm@@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -36,6 +37,7 @@ configuration-field-default-value-thunk configuration-field-documentation serialize-configuration+ define-maybe define-configuration validate-configuration generate-documentation@@ -85,9 +87,7 @@ (configuration-field-name field) val)))) fields)) -(define-syntax define-configuration- (lambda (stx)- (define (id ctx part . parts)+(define (id ctx part . parts) (let ((part (syntax->datum part))) (datum->syntax ctx@@ -95,6 +95,24 @@ (() part) (parts (symbol-append part (syntax->datum (apply id ctx parts))))))))++(define-syntax define-maybe+ (lambda (x)+ (syntax-case x ()+ ((_ stem)+ (with-syntax+ ((stem? (id #'stem #'stem #'?))+ (maybe-stem? (id #'stem #'maybe- #'stem #'?))+ (serialize-stem (id #'stem #'serialize- #'stem))+ (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem)))+ #'(begin+ (define (maybe-stem? val)+ (or (eq? val 'disabled) (stem? val)))+ (define (serialize-maybe-stem field-name val)+ (when (stem? val) (serialize-stem field-name val)))))))))++(define-syntax define-configuration+ (lambda (stx) (syntax-case stx () ((_ stem (field (field-type def) doc) ...) (with-syntax (((field-getter ...)diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scmindex 34723dc11..715d6181f 100644--- a/gnu/services/messaging.scm+++ b/gnu/services/messaging.scm@@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -49,27 +50,11 @@ ;;; ;;; Code: -(define-syntax-rule (id ctx parts ...)- "Assemble PARTS into a raw (unhygienic) identifier."- (datum->syntax ctx (symbol-append (syntax->datum parts) ...)))--(define-syntax define-maybe- (lambda (x)- (syntax-case x ()- ((_ stem)- (with-syntax- ((stem? (id #'stem #'stem #'?))- (maybe-stem? (id #'stem #'maybe- #'stem #'?))- (serialize-stem (id #'stem #'serialize- #'stem))- (serialize-maybe-stem (id #'stem #'serialize-maybe- #'stem)))- #'(begin- (define (maybe-stem? val)- (or (eq? val 'disabled) (stem? val)))- (define (serialize-maybe-stem field-name val)- (when (stem? val) (serialize-stem field-name val)))))))))- (define-syntax define-all-configurations (lambda (stx)+ (define-syntax-rule (id ctx parts ...)+ "Assemble PARTS into a raw (unhygienic) identifier."+ (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define (make-pred arg) (lambda (field target) (and (memq (syntax->datum target) `(common ,arg)) field)))-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 3/6] services: configuration: Rewrite id procedure.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-4-m.othacehe@gmail.com
* gnu/services/configuration.scm (id): Replace it using the more concise version found in messaging.scm.--- gnu/services/configuration.scm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
Toggle diff (24 lines)diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scmindex f59920d5a..4ee92e35f 100644--- a/gnu/services/configuration.scm+++ b/gnu/services/configuration.scm@@ -87,14 +87,9 @@ (configuration-field-name field) val)))) fields)) -(define (id ctx part . parts)- (let ((part (syntax->datum part)))- (datum->syntax- ctx- (match parts- (() part)- (parts (symbol-append part- (syntax->datum (apply id ctx parts))))))))+(define-syntax-rule (id ctx parts ...)+ "Assemble PARTS into a raw (unhygienic) identifier."+ (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define-syntax define-maybe (lambda (x)-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 0/6] Add TLP service.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-1-m.othacehe@gmail.com
Hi,
Here's the v3 of the patch. It improves tlp documentationas discussed on IRC.
Thanks,
Mathieu
Mathieu Othacehe (6): gnu: tlp: Read configuration from /etc/tlp. services: Factorize define-maybe macro. services: configuration: Rewrite id procedure. gnu: Add tlp service. services: openvpn: Fix a typo which was corrected in generated doc. doc: Re-generate openvpn service documentation.
doc/guix.texi | 593 ++++++++++++++++++++++++++++++++++++++--- gnu/local.mk | 2 + gnu/packages/linux.scm | 2 +- gnu/services/configuration.scm | 29 +- gnu/services/messaging.scm | 23 +- gnu/services/pm.scm | 404 ++++++++++++++++++++++++++++ gnu/services/vpn.scm | 3 +- 7 files changed, 983 insertions(+), 73 deletions(-) create mode 100644 gnu/services/pm.scm
-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 5/6] services: openvpn: Fix a typo which was corrected in generated doc.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-6-m.othacehe@gmail.com
* gnu/services/vpn.scm (define-split-configuration): Fix typo.--- gnu/services/vpn.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Toggle diff (23 lines)diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scmindex 844a11b3d..e1a04a985 100644--- a/gnu/services/vpn.scm+++ b/gnu/services/vpn.scm@@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;;@@ -279,7 +280,7 @@ by the authority given in @code{ca}.") (key (string "/etc/openvpn/client.key")- "The key of the machine the daemon is running on. It must be the whose+ "The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}.") (comp-lzo?-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 4/6] gnu: Add tlp service.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-5-m.othacehe@gmail.com
* gnu/services/pm.scm: New file.* gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/services/tlp.scm.* doc/guix.texi (Power management Services): New section.--- doc/guix.texi | 505 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 2 + gnu/services/pm.scm | 404 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 911 insertions(+) create mode 100644 gnu/services/pm.scm
Toggle diff (962 lines)diff --git a/doc/guix.texi b/doc/guix.texiindex fb0862096..79d9c9fcb 100644--- a/doc/guix.texi+++ b/doc/guix.texi@@ -216,6 +216,7 @@ Services * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service.+* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. Defining Services@@ -8451,6 +8452,7 @@ declaration. * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Continuous Integration:: The Cuirass service.+* Power management Services:: The TLP tool. * Miscellaneous Services:: Other services. @end menu @@ -13708,6 +13710,509 @@ The Cuirass package to use. @end table @end deftp +@node Power management Services+@subsubsection Power management Services++@cindex power management with TLP+The @code{(gnu services pm)} module provides a Guix service definition+for the Linux power management tool TLP.++TLP enables various powersaving modes in userspace and kernel.+Contrary to @code{upower-service}, it is not a passive,+monitoring tool, as it will apply custom settings each time a new power+source is detected. More information can be found at+@uref{http://linrunner.de/en/tlp/tlp.html, TLP home page.}.++@deffn {Scheme Variable} tlp-service-type+The service type for the TLP tool. Its value should be a valid+TLP configuration (see below). For example:+@example+(service tlp-service-type (tlp-configuration))+@end example+@end deffn++By default TLP does not need much configuration but most TLP parameters+can be tweaked using @code{tlp-configuration}.++Each parameter definition is preceded by its type; for example,+@samp{boolean foo} indicates that the @code{foo} parameter+should be specified as a boolean. Types starting with+@code{maybe-} denote parameters that won't show up in TLP config file+when their value is @code{'disabled}.++@c The following documentation was initially generated by+@c (generate-tlp-documentation) in (gnu services pm). Manually maintained+@c documentation is better, so we shouldn't hesitate to edit below as+@c needed. However if the change you want to make to this documentation+@c can be done in an automated way, it's probably easier to change+@c (generate-documentation) than to make it below and have to deal with+@c the churn as TLP updates.++Available @code{tlp-configuration} fields are:++@deftypevr {@code{tlp-configuration} parameter} package tlp+The TLP package.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean tlp-enable?+Set to true if you wish to enable TLP.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string tlp-default-mode+Default mode when no power supply can be detected. Alternatives are AC+and BAT.++Defaults to @samp{"AC"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac+Number of seconds Linux kernel has to wait after the disk goes idle,+before syncing on AC.++Defaults to @samp{0}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat+Same as @code{disk-idle-ac} but on BAT mode.++Defaults to @samp{2}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac+Dirty pages flushing periodicity, expressed in seconds.++Defaults to @samp{15}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat+Same as @code{max-lost-work-secs-on-ac} but on BAT mode.++Defaults to @samp{60}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac+CPU frequency scaling governor on AC mode. With intel_pstate driver,+alternatives are powersave and performance. With acpi-cpufreq driver,+alternatives are ondemand, powersave, performance and conservative.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat+Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac+Set the min available frequency for the scaling governor on AC.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac+Set the max available frequency for the scaling governor on AC.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat+Set the min available frequency for the scaling governor on BAT.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat+Set the max available frequency for the scaling governor on BAT.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac+Limit the min P-state to control the power dissipation of the CPU, in AC+mode. Values are stated as a percentage of the available performance.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac+Limit the max P-state to control the power dissipation of the CPU, in AC+mode. Values are stated as a percentage of the available performance.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat+Same as @code{cpu-min-perf-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat+Same as @code{cpu-max-perf-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?+Enable CPU turbo boost feature on AC mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?+Same as @code{cpu-boost-on-ac?} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?+Allow Linux kernel to minimize the number of CPU cores/hyper-threads+used under light load conditions.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?+Same as @code{sched-powersave-on-ac?} but on BAT mode.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean nmi-watchdog?+Enable Linux kernel NMI watchdog.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string phc-controls+For Linux kernels with PHC patch applied, change CPU voltages. An+example value would be @samp{"F:V F:V F:V F:V"}.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-ac+Set CPU performance versus energy saving policy on AC. Alternatives are+performance, normal, powersave.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-bat+Same as @code{energy-perf-policy-ac} but on BAT mode.++Defaults to @samp{"powersave"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disks-devices+Hard disk devices.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac+Hard disk advanced power management level.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat+Same as @code{disk-apm-bat} but on BAT mode.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac+Hard disk spin down timeout. One value has to be specified for each+declared hard disk.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat+Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched+Select IO scheduler for disk devices. One value has to be specified for+each declared hard disk. Example alternatives are cfq, deadline and+noop.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-ac+SATA aggressive link power management (ALPM) level. Alternatives are+min_power, medium_power, max_performance.++Defaults to @samp{"max_performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-bat+Same as @code{sata-linkpwr-ac} but on BAT mode.++Defaults to @samp{"min_power"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist+Exclude specified SATA host devices for link power management.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?+Enable Runtime Power Management for AHCI controller and disks on AC+mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?+Same as @code{ahci-runtime-pm-on-ac} on BAT mode.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout+Seconds of inactivity before disk is suspended.++Defaults to @samp{15}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-ac+PCI Express Active State Power Management level. Alternatives are+default, performance, powersave.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-bat+Same as @code{pcie-aspm-ac} but on BAT mode.++Defaults to @samp{"powersave"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac+Radeon graphics clock speed level. Alternatives are low, mid, high,+auto, default.++Defaults to @samp{"high"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-bat+Same as @code{radeon-power-ac} but on BAT mode.++Defaults to @samp{"low"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac+Radeon dynamic power management method (DPM). Alternatives are battery,+performance.++Defaults to @samp{"performance"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat+Same as @code{radeon-dpm-state-ac} but on BAT mode.++Defaults to @samp{"battery"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac+Radeon DPM performance level. Alternatives are auto, low, high.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat+Same as @code{radeon-dpm-perf-ac} but on BAT mode.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?+Wifi power saving mode.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?+Same as @code{wifi-power-ac?} but on BAT mode.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} y-n-boolean wol-disable?+Disable wake on LAN.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac+Timeout duration in seconds before activating audio power saving on+Intel HDA and AC97 devices. A value of 0 disables power saving.++Defaults to @samp{0}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat+Same as @code{sound-powersave-ac} but on BAT mode.++Defaults to @samp{1}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?+Disable controller in powersaving mode on Intel HDA devices.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?+Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be+powered on again by releasing (and reinserting) the eject lever or by+pressing the disc eject button on newer models.++Defaults to @samp{#f}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string bay-device+Name of the optical drive device to power off.++Defaults to @samp{"sr0"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-ac+Runtime Power Management for PCI(e) bus devices. Alternatives are on+and auto.++Defaults to @samp{"on"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-bat+Same as @code{runtime-pm-ac} but on BAT mode.++Defaults to @samp{"auto"}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean runtime-pm-all?+Runtime Power Management for all PCI(e) bus devices, except blacklisted+ones.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist+Exclude specified PCI(e) devices adresses from Runtime Power Management.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist+Exclude PCI(e) devices assigned to the specified drivers from Runtime+Power Management.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean usb-autosuspend?+Enable USB autosuspend feature.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist+Exclude specified devices from USB autosuspend.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?+Exclude WWAN devices from USB autosuspend.++Defaults to @samp{#t}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-whitelist+Include specified devices into USB autosuspend, even if they are already+excluded by the driver or via @code{usb-blacklist-wwan?}.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?+Enable USB autosuspend before shutdown.++Defaults to @samp{disabled}.++@end deftypevr++@deftypevr {@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?+Restore radio device state (bluetooth, wifi, wwan) from previous+shutdown on system startup.++Defaults to @samp{#f}.++@end deftypevr+ @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mkindex 0eb18f26c..f589cd946 100644--- a/gnu/local.mk+++ b/gnu/local.mk@@ -10,6 +10,7 @@ # Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> # Copyright © 2017 Clément Lassieur <clement@lassieur.org>+# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # # This file is part of GNU Guix. #@@ -422,6 +423,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/nfs.scm \ %D%/services/shepherd.scm \ %D%/services/herd.scm \+ %D%/services/pm.scm \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \diff --git a/gnu/services/pm.scm b/gnu/services/pm.scmnew file mode 100644index 000000000..ec35e5701--- /dev/null+++ b/gnu/services/pm.scm@@ -0,0 +1,404 @@+;;; GNU Guix --- Functional package management for GNU+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>+;;;+;;; This file is part of GNU Guix.+;;;+;;; GNU Guix is free software: you can redistribute it and/or modify+;;; it under the terms of the GNU General Public License as published by+;;; the Free Software Foundation, either version 3 of the License, or+;;; (at your option) any later version.+;;;+;;; GNU Guix is distributed in the hope that it will be useful,+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+;;; GNU General Public License for more details.+;;;+;;; You should have received a copy of the GNU General Public License+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.++(define-module (gnu services pm)+ #:use-module (guix gexp)+ #:use-module (guix packages)+ #:use-module (guix records)+ #:use-module (gnu packages linux)+ #:use-module (gnu services)+ #:use-module (gnu services base)+ #:use-module (gnu services configuration)+ #:use-module (gnu services shepherd)+ #:use-module (gnu system shadow)+ #:export (tlp-service-type+ tlp-configuration))++(define (uglify-field-name field-name)+ (let ((str (symbol->string field-name)))+ (string-join (string-split+ (string-upcase+ (if (string-suffix? "?" str)+ (substring str 0 (1- (string-length str)))+ str))+ #\-)+ "_")))++(define (serialize-field field-name val)+ (format #t "~a=~a\n" (uglify-field-name field-name) val))++(define (serialize-boolean field-name val)+ (serialize-field field-name (if val "1" "0")))+(define-maybe boolean)++(define (serialize-string field-name val)+ (serialize-field field-name val))+(define-maybe string)++(define (space-separated-string-list? val)+ (and (list? val)+ (and-map (lambda (x)+ (and (string? x) (not (string-index x #\space))))+ val)))+(define (serialize-space-separated-string-list field-name val)+ (serialize-field field-name+ (format #f "~s"+ (string-join val " "))))+(define-maybe space-separated-string-list)++(define (non-negative-integer? val)+ (and (exact-integer? val) (not (negative? val))))+(define (serialize-non-negative-integer field-name val)+ (serialize-field field-name val))+(define-maybe non-negative-integer)++(define (on-off-boolean? val)+ (boolean? val))+(define (serialize-on-off-boolean field-name val)+ (serialize-field field-name (if val "on" "off")))+(define-maybe on-off-boolean)++(define (y-n-boolean? val)+ (boolean? val))+(define (serialize-y-n-boolean field-name val)+ (serialize-field field-name (if val "Y" "N")))++(define-configuration tlp-configuration+ (tlp+ (package tlp)+ "The TLP package.")++ (tlp-enable?+ (boolean #t)+ "Set to true if you wish to enable TLP.")++ (tlp-default-mode+ (string "AC")+ "Default mode when no power supply can be detected. Alternatives are+AC and BAT.")++ (disk-idle-secs-on-ac+ (non-negative-integer 0)+ "Number of seconds Linux kernel has to wait after the disk goes idle,+before syncing on AC.")++ (disk-idle-secs-on-bat+ (non-negative-integer 2)+ "Same as @code{disk-idle-ac} but on BAT mode.")++ (max-lost-work-secs-on-ac+ (non-negative-integer 15)+ "Dirty pages flushing periodicity, expressed in seconds.")++ (max-lost-work-secs-on-bat+ (non-negative-integer 60)+ "Same as @code{max-lost-work-secs-on-ac} but on BAT mode.")++ (cpu-scaling-governor-on-ac+ (maybe-space-separated-string-list 'disabled)+ "CPU frequency scaling governor on AC mode. With intel_pstate+driver, alternatives are powersave and performance. With acpi-cpufreq driver,+alternatives are ondemand, powersave, performance and conservative.")++ (cpu-scaling-governor-on-bat+ (maybe-space-separated-string-list 'disabled)+ "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.")++ (cpu-scaling-min-freq-on-ac+ (maybe-non-negative-integer 'disabled)+ "Set the min available frequency for the scaling governor on AC.")++ (cpu-scaling-max-freq-on-ac+ (maybe-non-negative-integer 'disabled)+ "Set the max available frequency for the scaling governor on AC.")++ (cpu-scaling-min-freq-on-bat+ (maybe-non-negative-integer 'disabled)+ "Set the min available frequency for the scaling governor on BAT.")++ (cpu-scaling-max-freq-on-bat+ (maybe-non-negative-integer 'disabled)+ "Set the max available frequency for the scaling governor on BAT.")++ (cpu-min-perf-on-ac+ (maybe-non-negative-integer 'disabled)+ "Limit the min P-state to control the power dissipation of the CPU,+in AC mode. Values are stated as a percentage of the available performance.")++ (cpu-max-perf-on-ac+ (maybe-non-negative-integer 'disabled)+ "Limit the max P-state to control the power dissipation of the CPU,+in AC mode. Values are stated as a percentage of the available performance.")++ (cpu-min-perf-on-bat+ (maybe-non-negative-integer 'disabled)+ "Same as @code{cpu-min-perf-on-ac} on BAT mode.")++ (cpu-max-perf-on-bat+ (maybe-non-negative-integer 'disabled)+ "Same as @code{cpu-max-perf-on-ac} on BAT mode.")++ (cpu-boost-on-ac?+ (maybe-boolean 'disabled)+ "Enable CPU turbo boost feature on AC mode.")++ (cpu-boost-on-bat?+ (maybe-boolean 'disabled)+ "Same as @code{cpu-boost-on-ac?} on BAT mode.")++ (sched-powersave-on-ac?+ (boolean #f)+ "Allow Linux kernel to minimize the number of CPU cores/hyper-threads+used under light load conditions.")++ (sched-powersave-on-bat?+ (boolean #t)+ "Same as @code{sched-powersave-on-ac?} but on BAT mode.")++ (nmi-watchdog?+ (boolean #f)+ "Enable Linux kernel NMI watchdog.")++ (phc-controls+ (maybe-string 'disabled)+ "For Linux kernels with PHC patch applied, change CPU voltages.+An example value would be @samp{\"F:V F:V F:V F:V\"}.")++ (energy-perf-policy-on-ac+ (string "performance")+ "Set CPU performance versus energy saving policy on AC. Alternatives are+performance, normal, powersave.")++ (energy-perf-policy-on-bat+ (string "powersave")+ "Same as @code{energy-perf-policy-ac} but on BAT mode.")++ (disks-devices+ (space-separated-string-list '("sda"))+ "Hard disk devices.")++ (disk-apm-level-on-ac+ (space-separated-string-list '("254" "254"))+ "Hard disk advanced power management level.")++ (disk-apm-level-on-bat+ (space-separated-string-list '("128" "128"))+ "Same as @code{disk-apm-bat} but on BAT mode.")++ (disk-spindown-timeout-on-ac+ (maybe-space-separated-string-list 'disabled)+ "Hard disk spin down timeout. One value has to be specified for+each declared hard disk.")++ (disk-spindown-timeout-on-bat+ (maybe-space-separated-string-list 'disabled)+ "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.")++ (disk-iosched+ (maybe-space-separated-string-list 'disabled)+ "Select IO scheduler for disk devices. One value has to be specified+for each declared hard disk. Example alternatives are cfq, deadline and noop.")++ (sata-linkpwr-on-ac+ (string "max_performance")+ "SATA aggressive link power management (ALPM) level. Alternatives are+min_power, medium_power, max_performance.")++ (sata-linkpwr-on-bat+ (string "min_power")+ "Same as @code{sata-linkpwr-ac} but on BAT mode.")++ (sata-linkpwr-blacklist+ (maybe-string 'disabled)+ "Exclude specified SATA host devices for link power management.")++ (ahci-runtime-pm-on-ac?+ (maybe-on-off-boolean 'disabled)+ "Enable Runtime Power Management for AHCI controller and disks+on AC mode.")++ (ahci-runtime-pm-on-bat?+ (maybe-on-off-boolean 'disabled)+ "Same as @code{ahci-runtime-pm-on-ac} on BAT mode.")++ (ahci-runtime-pm-timeout+ (non-negative-integer 15)+ "Seconds of inactivity before disk is suspended.")++ (pcie-aspm-on-ac+ (string "performance")+ "PCI Express Active State Power Management level. Alternatives are+default, performance, powersave.")++ (pcie-aspm-on-bat+ (string "powersave")+ "Same as @code{pcie-aspm-ac} but on BAT mode.")++ (radeon-power-profile-on-ac+ (string "high")+ "Radeon graphics clock speed level. Alternatives are+low, mid, high, auto, default.")++ (radeon-power-profile-on-bat+ (string "low")+ "Same as @code{radeon-power-ac} but on BAT mode.")++ (radeon-dpm-state-on-ac+ (string "performance")+ "Radeon dynamic power management method (DPM). Alternatives are+battery, performance.")++ (radeon-dpm-state-on-bat+ (string "battery")+ "Same as @code{radeon-dpm-state-ac} but on BAT mode.")++ (radeon-dpm-perf-level-on-ac+ (string "auto")+ "Radeon DPM performance level. Alternatives are+auto, low, high.")++ (radeon-dpm-perf-level-on-bat+ (string "auto")+ "Same as @code{radeon-dpm-perf-ac} but on BAT mode.")++ (wifi-pwr-on-ac?+ (on-off-boolean #f)+ "Wifi power saving mode.")++ (wifi-pwr-on-bat?+ (on-off-boolean #t)+ "Same as @code{wifi-power-ac?} but on BAT mode.")++ (wol-disable?+ (y-n-boolean #t)+ "Disable wake on LAN.")++ (sound-power-save-on-ac+ (non-negative-integer 0)+ "Timeout duration in seconds before activating audio power saving+ on Intel HDA and AC97 devices. A value of 0 disables power saving.")++ (sound-power-save-on-bat+ (non-negative-integer 1)+ "Same as @code{sound-powersave-ac} but on BAT mode.")++ (sound-power-save-controller?+ (y-n-boolean #t)+ "Disable controller in powersaving mode on Intel HDA devices.")++ (bay-poweroff-on-bat?+ (boolean #f)+ "Enable optical drive in UltraBay/MediaBay on BAT mode.+Drive can be powered on again by releasing (and reinserting) the eject lever+or by pressing the disc eject button on newer models.")++ (bay-device+ (string "sr0")+ "Name of the optical drive device to power off.")++ (runtime-pm-on-ac+ (string "on")+ "Runtime Power Management for PCI(e) bus devices. Alternatives are+on and auto.")++ (runtime-pm-on-bat+ (string "auto")+ "Same as @code{runtime-pm-ac} but on BAT mode.")++ (runtime-pm-all?+ (boolean #t)+ "Runtime Power Management for all PCI(e) bus devices, except+blacklisted ones.")++ (runtime-pm-blacklist+ (maybe-space-separated-string-list 'disabled)+ "Exclude specified PCI(e) devices adresses from Runtime Power Management.")++ (runtime-pm-driver-blacklist+ (space-separated-string-list '("radeon" "nouveau"))+ "Exclude PCI(e) devices assigned to the specified drivers from+Runtime Power Management.")++ (usb-autosuspend?+ (boolean #t)+ "Enable USB autosuspend feature.")++ (usb-blacklist+ (maybe-string 'disabled)+ "Exclude specified devices from USB autosuspend.")++ (usb-blacklist-wwan?+ (boolean #t)+ "Exclude WWAN devices from USB autosuspend.")++ (usb-whitelist+ (maybe-string 'disabled)+ "Include specified devices into USB autosuspend, even if they are+already excluded by the driver or via @code{usb-blacklist-wwan?}.")++ (usb-autosuspend-disable-on-shutdown?+ (maybe-boolean 'disabled)+ "Enable USB autosuspend before shutdown.")++ (restore-device-state-on-startup?+ (boolean #f)+ "Restore radio device state (bluetooth, wifi, wwan) from previous+shutdown on system startup."))+++(define (tlp-shepherd-service config)+ (let* ((tlp-bin (file-append+ (tlp-configuration-tlp config) "/bin/tlp"))+ (tlp-action (lambda args+ #~(lambda _+ (zero? (system* #$tlp-bin #$@args))))))+ (list (shepherd-service+ (documentation "Run TLP script.")+ (provision '(tlp))+ (requirement '(user-processes))+ (start (tlp-action "init" "start"))+ (stop (tlp-action "init" "stop"))))))++(define (tlp-activation config)+ (let* ((config-str (with-output-to-string+ (lambda ()+ (serialize-configuration+ config+ tlp-configuration-fields))))+ (config-file (plain-file "tlp" config-str)))+ (with-imported-modules '((guix build utils))+ #~(begin+ (use-modules (guix build utils))+ (copy-file #$config-file "/etc/tlp")))))++(define tlp-service-type+ (service-type+ (name 'tlp)+ (extensions+ (list+ (service-extension shepherd-root-service-type+ tlp-shepherd-service)+ (service-extension udev-service-type+ (compose list tlp-configuration-tlp))+ (service-extension activation-service-type+ tlp-activation)))))++(define (generate-tlp-documentation)+ (generate-documentation+ `((tlp-configuration ,tlp-configuration-fields))+ 'tlp-configuration))-- 2.12.0
M
M
Mathieu Othacehe wrote on 24 Mar 2017 11:00
[PATCH v3 6/6] doc: Re-generate openvpn service documentation.
(address . 26137@debbugs.gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20170324100017.7702-7-m.othacehe@gmail.com
* doc/guix.texi (VPN Services): Generate documentation withgenerate-openvpn-server-documentation andgenerate-openvpn-client-documentation helpers and guile 2.1.7.--- doc/guix.texi | 88 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 44 insertions(+), 44 deletions(-)
Toggle diff (368 lines)diff --git a/doc/guix.texi b/doc/guix.texiindex 79d9c9fcb..80eb2284e 100644--- a/doc/guix.texi+++ b/doc/guix.texi@@ -13113,19 +13113,19 @@ Both can be run simultaneously. Available @code{openvpn-client-configuration} fields are: -@deftypevr @code{openvpn-client-configuration} parameter package openvpn+@deftypevr {@code{openvpn-client-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string pid-file+@deftypevr {@code{openvpn-client-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter proto proto+@deftypevr {@code{openvpn-client-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13133,21 +13133,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter dev dev+@deftypevr {@code{openvpn-client-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string ca+@deftypevr {@code{openvpn-client-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string cert+@deftypevr {@code{openvpn-client-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13155,7 +13155,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter string key+@deftypevr {@code{openvpn-client-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13163,21 +13163,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean comp-lzo?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-key?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter boolean persist-tun?+@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13185,14 +13185,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter number verbosity+@deftypevr {@code{openvpn-client-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter tls-auth-client tls-auth+@deftypevr {@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13200,42 +13200,42 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter key-usage verify-key-usage?+@deftypevr {@code{openvpn-client-configuration} parameter} key-usage verify-key-usage? Whether to check the server certificate has server usage extension. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter bind bind?+@deftypevr {@code{openvpn-client-configuration} parameter} bind bind? Bind to a specific local port number. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter resolv-retry resolv-retry?+@deftypevr {@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry? Retry resolving server address. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-client-configuration} parameter openvpn-remote-list remote+@deftypevr {@code{openvpn-client-configuration} parameter} openvpn-remote-list remote A list of remote servers to connect to. Defaults to @samp{()}. Available @code{openvpn-remote-configuration} fields are: -@deftypevr @code{openvpn-remote-configuration} parameter string name+@deftypevr {@code{openvpn-remote-configuration} parameter} string name Server name. Defaults to @samp{"my-server"}. @end deftypevr -@deftypevr @code{openvpn-remote-configuration} parameter number port+@deftypevr {@code{openvpn-remote-configuration} parameter} number port Port number the server listens to. Defaults to @samp{1194}.@@ -13249,19 +13249,19 @@ Defaults to @samp{1194}. Available @code{openvpn-server-configuration} fields are: -@deftypevr @code{openvpn-server-configuration} parameter package openvpn+@deftypevr {@code{openvpn-server-configuration} parameter} package openvpn The OpenVPN package. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string pid-file+@deftypevr {@code{openvpn-server-configuration} parameter} string pid-file The OpenVPN pid file. Defaults to @samp{"/var/run/openvpn/openvpn.pid"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter proto proto+@deftypevr {@code{openvpn-server-configuration} parameter} proto proto The protocol (UDP or TCP) used to open a channel between clients and servers. @@ -13269,21 +13269,21 @@ Defaults to @samp{udp}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter dev dev+@deftypevr {@code{openvpn-server-configuration} parameter} dev dev The device type used to represent the VPN connection. Defaults to @samp{tun}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ca+@deftypevr {@code{openvpn-server-configuration} parameter} string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string cert+@deftypevr {@code{openvpn-server-configuration} parameter} string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -13291,7 +13291,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string key+@deftypevr {@code{openvpn-server-configuration} parameter} string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -13299,21 +13299,21 @@ Defaults to @samp{"/etc/openvpn/client.key"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean comp-lzo?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean comp-lzo? Whether to use the lzo compression algorithm. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-key?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-key? Don't re-read key files across SIGUSR1 or --ping-restart. Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean persist-tun?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-tun? Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts. @@ -13321,14 +13321,14 @@ Defaults to @samp{#t}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number verbosity+@deftypevr {@code{openvpn-server-configuration} parameter} number verbosity Verbosity level. Defaults to @samp{3}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter tls-auth-server tls-auth+@deftypevr {@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. @@ -13336,56 +13336,56 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number port+@deftypevr {@code{openvpn-server-configuration} parameter} number port Specifies the port number on which the server listens. Defaults to @samp{1194}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter ip-mask server+@deftypevr {@code{openvpn-server-configuration} parameter} ip-mask server An ip and mask specifying the subnet inside the virtual network. Defaults to @samp{"10.8.0.0 255.255.255.0"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter cidr6 server-ipv6+@deftypevr {@code{openvpn-server-configuration} parameter} cidr6 server-ipv6 A CIDR notation specifying the IPv6 subnet inside the virtual network. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string dh+@deftypevr {@code{openvpn-server-configuration} parameter} string dh The Diffie-Hellman parameters file. Defaults to @samp{"/etc/openvpn/dh2048.pem"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string ifconfig-pool-persist+@deftypevr {@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist The file that records client IPs. Defaults to @samp{"/etc/openvpn/ipp.txt"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter gateway redirect-gateway?+@deftypevr {@code{openvpn-server-configuration} parameter} gateway redirect-gateway? When true, the server will act as a gateway for its clients. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter boolean client-to-client?+@deftypevr {@code{openvpn-server-configuration} parameter} boolean client-to-client? When true, clients are alowed to talk to each other inside the VPN. Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter keepalive keepalive+@deftypevr {@code{openvpn-server-configuration} parameter} keepalive keepalive Causes ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone down. @code{keepalive} requires a pair. The first element is the period of the ping sending,@@ -13394,14 +13394,14 @@ down. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter number max-clients+@deftypevr {@code{openvpn-server-configuration} parameter} number max-clients The maximum number of clients. Defaults to @samp{100}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter string status+@deftypevr {@code{openvpn-server-configuration} parameter} string status The status file. This file shows a small report on current connection. It is trunkated and rewritten every minute. @@ -13409,28 +13409,28 @@ Defaults to @samp{"/var/run/openvpn/status"}. @end deftypevr -@deftypevr @code{openvpn-server-configuration} parameter openvpn-ccd-list client-config-dir+@deftypevr {@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir The list of configuration for some clients. Defaults to @samp{()}. Available @code{openvpn-ccd-configuration} fields are: -@deftypevr @code{openvpn-ccd-configuration} parameter string name+@deftypevr {@code{openvpn-ccd-configuration} parameter} string name Client name. Defaults to @samp{"client"}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask iroute+@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask iroute Client own network Defaults to @samp{#f}. @end deftypevr -@deftypevr @code{openvpn-ccd-configuration} parameter ip-mask ifconfig-push+@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push Client VPN IP. Defaults to @samp{#f}.-- 2.12.0
C
C
Clément Lassieur wrote on 24 Mar 2017 16:20
Re: bug#26137: [PATCH v3 0/6] Add TLP service.
(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)(address . 26137@debbugs.gnu.org)
87efxmitvh.fsf@lassieur.org
Mathieu Othacehe <m.othacehe@gmail.com> writes:
Toggle quote (7 lines)> Hi,>> Here's the v3 of the patch. It improves tlp documentation> as discussed on IRC.>> Thanks,
Pushed! With small indentation changes and an extra dot removed in thedocumentation.
I also realized one of my comments (about splitting a commit into twodifferent ones) was useless, sorry for this.
Thanks!Clément
C
C
Clément Lassieur wrote on 24 Mar 2017 16:20
control message for bug #26137
(address . control@debbugs.gnu.org)
87d1d6itv1.fsf@lassieur.org
tags 26137 fixedclose 26137
?
Your comment

This issue is archived.

To comment on this conversation send email to 26137@debbugs.gnu.org