[PATCH] gnu: Add mbpfan service

  • Open
  • quality assurance status badge
Details
4 participants
  • Jorge Acereda
  • Niklas Eklund
  • Mathieu Othacehe
  • phodina
Owner
unassigned
Submitted by
Niklas Eklund
Severity
normal
N
N
Niklas Eklund wrote on 7 Dec 2020 21:26
(address . guix-patches@gnu.org)
87a6ups6pd.fsf@posteo.net
Hi,

this is a patch that adds the service for mbpfan. The mbpfan package
that exists in guix requires sudo rights to run. So I have been using
this service for a while and thought it was a good time to try to merge
it upstream :)

Cheers
From 9773af047fc3ddb337a2d9ac346a1655d2bc11ee Mon Sep 17 00:00:00 2001
From: Niklas Eklund <niklas.eklund@posteo.net>
Date: Mon, 7 Dec 2020 20:53:07 +0100
Subject: [PATCH] gnu: Add mbpfan service.

* gnu/services/mbpfan.scm (mbpfan service): New variable.
---
gnu/services/mbpfan.scm | 73 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 gnu/services/mbpfan.scm

Toggle diff (81 lines)
diff --git a/gnu/services/mbpfan.scm b/gnu/services/mbpfan.scm
new file mode 100644
index 0000000000..425da6baab
--- /dev/null
+++ b/gnu/services/mbpfan.scm
@@ -0,0 +1,73 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;;
+;;; 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 mbpfan)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 format)
+ #:use-module (guix modules)
+ #:export (mbpfan-service-type
+
+ mbpfan-configuration
+ mbpfan-configuration?))
+
+;;; Commentary:
+;;;
+;;; This module provides a service definition for the mbpfan.
+;;;
+;;; Code:
+
+(define-record-type* <mbpfan-configuration>
+ mbpfan-configuration make-mbpfan-configuration
+ mbpfan-configuration?
+ (log-file mbpfan-configuration-log-file ;string
+ (default "/var/log/mbpfan.log"))
+ (verbose? mbpfan-configuration-verbose? (default #f)))
+
+(define mbpfan-shepherd-service
+ (match-lambda
+ (($ <mbpfan-configuration> log-file verbose?)
+ (list
+ (shepherd-service
+ (documentation "Run the mbpfan daemon.")
+ (provision '(mbpfan))
+ (requirement '(syslogd))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append mbpfan "/sbin/mbpfan")
+ "-f"
+ #$@(if verbose?
+ '("-v") ; verbose logging
+ '()))
+ #:log-file #$log-file))
+ (stop #~(make-kill-destructor)))))))
+
+(define mbpfan-service-type
+ (service-type
+ (name 'mbpfan)
+ (extensions
+ (list (service-extension shepherd-root-service-type mbpfan-shepherd-service)))
+ (description
+ "Run the MacBook/Macbook Pro fan daemon.")
+ (default-value (mbpfan-configuration))))
+
+;;; mbpfan.scm ends here
--
2.29.2
M
M
Mathieu Othacehe wrote on 6 Jan 2021 11:11
(name . Niklas Eklund)(address . niklas.eklund@posteo.net)(address . 45105@debbugs.gnu.org)
877doqpe83.fsf@gnu.org
Hello Niklas,

Toggle quote (2 lines)
> * gnu/services/mbpfan.scm (mbpfan service): New variable.

Thanks for your contribution and sorry for the late review.

Toggle quote (5 lines)
> + #$@(if verbose?
> + '("-v") ; verbose logging
> + '()))
> + #:log-file #$log-file))

The indentation is off here.

Toggle quote (2 lines)
> + (list (service-extension shepherd-root-service-type mbpfan-shepherd-service)))

You should wrap this line to stay under the 78 cols limit.

You also need to add this file to 'gnu/local.mk'. It would also be nice
to write some documentation, probably under "Power management services".

Could you please send an updated patch?

Thanks,

Mathieu
P
P
phodina wrote on 3 Nov 2021 13:34
[PATCH v2] gnu: Add mbpfan service.
(name . 45105@debbugs.gnu.org)(address . 45105@debbugs.gnu.org)
LvEzWYXWBqwIjDXje3LYXlOUOZsjFOttrH45miPXLMyAGgK1-osqDt_Nk888IhtltIEaR0OZU7JqZsB0OVi-_0QLaaD5EF-iKoLO11fjGv8=@protonmail.com
Hi Mathieu,

here are the changes. I don't have Apple laptop, so I can't tests the service.

Petr

* gnu/services/mbpfan.scm (mbpfan service): New variable.

Toggle snippet (82 lines)
diff --git a/gnu/services/mbpfan.scm b/gnu/services/mbpfan.scm
new file mode 100644
index 0000000000..493ca70bb7
--- /dev/null
+++ b/gnu/services/mbpfan.scm
@@ -0,0 +1,72 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;;
+;;; 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 mbpfan)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 format)
+ #:use-module (guix modules)
+ #:export (mbpfan-service-type
+
+ mbpfan-configuration
+ mbpfan-configuration?))
+
+;;; Commentary:
+;;;
+;;; This module provides a service definition for the mbpfan.
+;;;
+;;; Code:
+
+(define-record-type* <mbpfan-configuration>
+ mbpfan-configuration make-mbpfan-configuration
+ mbpfan-configuration?
+ (log-file mbpfan-configuration-log-file ;string
+ (default "/var/log/mbpfan.log"))
+ (verbose? mbpfan-configuration-verbose? (default #f)))
+
+(define mbpfan-shepherd-service
+ (match-lambda
+ (($ <mbpfan-configuration> log-file verbose?)
+ (list
+ (shepherd-service
+ (documentation "Run the mbpfan daemon.")
+ (provision '(mbpfan))
+ (requirement '(syslogd))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append mbpfan "/sbin/mbpfan")
+ "-f"
+ #$@(if verbose?
+ '("-v") ; verbose logging
+ '()))
+ #:log-file #$log-file))
+ (stop #~(make-kill-destructor)))))))
+
+(define mbpfan-service-type
+ (service-type
+ (name 'mbpfan)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ mbpfan-shepherd-service)))
+ (description
+ "Run the MacBook/Macbook Pro fan daemon.")
+ (default-value (mbpfan-configuration))))
--
2.33.1
J
J
Jorge Acereda wrote on 2 Jan 2022 19:03
[PATCH v3] gnu: Add mbpfan service.
(address . 45105@debbugs.gnu.org)
87bl0uypzj.fsf@gmail.com
Hi,

I've added the service to gnu/local.mk, verified it can correctly
start/stop and been using it for some days without problems.

Regards,
Jorge Acereda

From 186bd7c2c37b11e3e8a3314ef77bcaf9e993b642 Mon Sep 17 00:00:00 2001
Message-Id: <186bd7c2c37b11e3e8a3314ef77bcaf9e993b642.1641146492.git.jacereda@gmail.com>
From: Jorge Acereda <jacereda@gmail.com>
Date: Wed, 29 Dec 2021 23:44:59 +0100
Subject: [PATCH v3] gnu: Add mbpfan service

---
gnu/local.mk | 1 +
gnu/services/mbpfan.scm | 72 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+)
create mode 100644 gnu/services/mbpfan.scm

Toggle diff (92 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 68a83f5cf8..ac9ed76e68 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -652,6 +652,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/lirc.scm \
%D%/services/virtualization.scm \
%D%/services/mail.scm \
+ %D%/services/mbpfan.scm \
%D%/services/mcron.scm \
%D%/services/messaging.scm \
%D%/services/monitoring.scm \
diff --git a/gnu/services/mbpfan.scm b/gnu/services/mbpfan.scm
new file mode 100644
index 0000000000..493ca70bb7
--- /dev/null
+++ b/gnu/services/mbpfan.scm
@@ -0,0 +1,72 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;;
+;;; 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 mbpfan)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 format)
+ #:use-module (guix modules)
+ #:export (mbpfan-service-type
+
+ mbpfan-configuration
+ mbpfan-configuration?))
+
+;;; Commentary:
+;;;
+;;; This module provides a service definition for the mbpfan.
+;;;
+;;; Code:
+
+(define-record-type* <mbpfan-configuration>
+ mbpfan-configuration make-mbpfan-configuration
+ mbpfan-configuration?
+ (log-file mbpfan-configuration-log-file ;string
+ (default "/var/log/mbpfan.log"))
+ (verbose? mbpfan-configuration-verbose? (default #f)))
+
+(define mbpfan-shepherd-service
+ (match-lambda
+ (($ <mbpfan-configuration> log-file verbose?)
+ (list
+ (shepherd-service
+ (documentation "Run the mbpfan daemon.")
+ (provision '(mbpfan))
+ (requirement '(syslogd))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append mbpfan "/sbin/mbpfan")
+ "-f"
+ #$@(if verbose?
+ '("-v") ; verbose logging
+ '()))
+ #:log-file #$log-file))
+ (stop #~(make-kill-destructor)))))))
+
+(define mbpfan-service-type
+ (service-type
+ (name 'mbpfan)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ mbpfan-shepherd-service)))
+ (description
+ "Run the MacBook/Macbook Pro fan daemon.")
+ (default-value (mbpfan-configuration))))
--
2.34.0
?
Your comment

Commenting via the web interface is currently disabled.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 45105
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch