From patchwork Thu Apr 18 18:36:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dariqq X-Patchwork-Id: 26178 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 30DFB27BBEB; Thu, 18 Apr 2024 19:38:16 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 1A9FE27BBE9 for ; Thu, 18 Apr 2024 19:38:12 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rxWds-0003ox-Mk; Thu, 18 Apr 2024 14:37:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rxWdr-0003oQ-15 for guix-patches@gnu.org; Thu, 18 Apr 2024 14:37:51 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rxWdq-0007Bc-PN for guix-patches@gnu.org; Thu, 18 Apr 2024 14:37:50 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rxWe4-0007po-6x for guix-patches@gnu.org; Thu, 18 Apr 2024 14:38:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70460] [PATCH 4/4] gnu: services: Add power-profiles-daemon-service-type. Resent-From: Dariqq Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 18 Apr 2024 18:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70460 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70460@debbugs.gnu.org Cc: Dariqq Received: via spool by 70460-submit@debbugs.gnu.org id=B70460.171346544329778 (code B ref 70460); Thu, 18 Apr 2024 18:38:03 +0000 Received: (at 70460) by debbugs.gnu.org; 18 Apr 2024 18:37:23 +0000 Received: from localhost ([127.0.0.1]:53953 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxWdO-0007kE-Go for submit@debbugs.gnu.org; Thu, 18 Apr 2024 14:37:22 -0400 Received: from mout02.posteo.de ([185.67.36.66]:33019) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxWdA-0007hj-O8 for 70460@debbugs.gnu.org; Thu, 18 Apr 2024 14:37:10 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 7B35D240105 for <70460@debbugs.gnu.org>; Thu, 18 Apr 2024 20:36:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1713465409; bh=7brNO8jYYjDtFanpCf+khV0iaqD/jW372keb1tXvb4w=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:From; b=Vads8535fs7o2O0PXuiBqJwxxrfjXw9myIFUT+y3KrEjm7z+ACd5U+LfHlRmZc/mM rNmnEptBBOBEyynz3dNUVqgQdEwavGr1EEXeg0aCEWR/pvDseL4aIRR3lAx6BeYDPq HbmKkm245mwweE6yCWEZ5n664U1WcLWBZ2oguxYCeGWMsYtfy2lI/T/8Di+JUKlGU+ RE3Uhnu+fFc4eST2CKiH0iCVn+V4z76CN4WqkCTW3K3og8z7tKf7fbhANZwANlyO7k 4kIAoWIitg3dRAaTmLijHF8BjiseCD/novFcexVJu2pVD14LEn+3sRevKzWdAi6YZN FoIfv78CjvOXQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4VL61r4v6kz9rxW; Thu, 18 Apr 2024 20:36:48 +0200 (CEST) From: Dariqq Date: Thu, 18 Apr 2024 18:36:04 +0000 Message-ID: <09b1ed88b9e88d98b0b1df3ba3dd571da4a9b110.1713463209.git.dariqq@posteo.net> In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/services/pm.scm (power-profiles-configuration): New configuration. (power-profiles-daemon-shepherd-service): New function. (power-profiles-daemon-service-type): New function. (power-profiles-daemon-activation): New variable. Change-Id: Ib035d993ed82eec2a43f3ba2b4c92f77e08a0fd7 --- gnu/services/pm.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm index 3daf484cc1..bedeebb9d8 100644 --- a/gnu/services/pm.scm +++ b/gnu/services/pm.scm @@ -21,18 +21,72 @@ (define-module (gnu services pm) #:use-module (guix packages) #:use-module (guix records) #:use-module (gnu packages admin) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) - #:export (tlp-service-type + #:export (power-profiles-daemon-service-type + power-profiles-daemon-configuration + + tlp-service-type tlp-configuration thermald-configuration thermald-service-type)) +;;; +;;; power-profiles-daemon +;;; + +(define-configuration/no-serialization power-profiles-daemon-configuration + (power-profiles-daemon + (file-like power-profiles-daemon) + "The power-profiles-daemon package.")) + +(define (power-profiles-daemon-shepherd-service config) + (match-record + config + (power-profiles-daemon) + (list (shepherd-service (provision '(power-profiles-daemon)) + (requirement '(dbus-system)) + (documentation "Run the power-profiles-daemon.") + (start #~(make-forkexec-constructor + (list #$(file-append power-profiles-daemon + "/libexec/power-profiles-daemon")))) + (stop #~(make-kill-destructor)))))) + +(define %power-profiles-daemon-activation + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/lib/power-profiles-daemon"))) + +(define power-profiles-daemon-service-type + (let ((config->package + (compose list power-profiles-daemon-configuration-power-profiles-daemon))) + (service-type + (name 'power-profiles-daemon) + (extensions (list + (service-extension shepherd-root-service-type + power-profiles-daemon-shepherd-service) + (service-extension dbus-root-service-type + config->package) + (service-extension polkit-service-type + config->package) + (service-extension profile-service-type + config->package) + (service-extension activation-service-type + (const %power-profiles-daemon-activation)))) + (default-value (power-profiles-daemon-configuration)) + (description "Run the power-profiles-daemon")))) + +;;; +;;; tlp +;;; + (define (uglify-field-name field-name) (let ((str (symbol->string field-name))) (string-join (string-split