From patchwork Thu Mar 13 19:11:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 40138 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 41E5727BBE9; Thu, 13 Mar 2025 19:12:40 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable 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 AA90B27BBE2 for ; Thu, 13 Mar 2025 19:12:38 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tsnyr-0000Zy-9K; Thu, 13 Mar 2025 15:12:33 -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 1tsnyO-0000YA-Rt for guix-patches@gnu.org; Thu, 13 Mar 2025 15:12:06 -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 1tsnyL-0007lC-S6; Thu, 13 Mar 2025 15:12:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:In-Reply-To:References:Subject; bh=LVqY0L1x/cLnRkRJMgPDcrbRsknhhUT8o8cmjt0z8lw=; b=lUEv/4TekCZ1miBX1hkye11ii5guaboND5kDqk2LWJ5SuKWtOgEVagTso7uacrDv2iKa+Pq3ke8T0bVkUgv1uTyrVz6JXDmrlzH/K7xrLCIgSHroLOptBjA63lQf3bQ6colG+o3Z4JIfpkWxnPRjcLf8SJyl7OIz3QH1avN/uNvqzbn/OEbCtiqTG01aJlqKAqAnaO8DJIm7AmdP3I4a3DX6jCDFP799pID9twCc2kj+VFTZqGNyJl8ooSAcgqN6HuRIcTNPGKKt2NSVz70I45fDNfKlrYT5xpkAuMKML8r/pnZIvg6j+lXq+02OUDzmrb61E1Cm/bM3joQx+YfKOw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tsnyL-0007IV-L5; Thu, 13 Mar 2025 15:12:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#76963] [PATCH v2 1/2] services: Add snuik-service-type. References: <7f43764f98a45b92cce1be2e7d352e3c791cebf8.1741729617.git.janneke@gnu.org> In-Reply-To: <7f43764f98a45b92cce1be2e7d352e3c791cebf8.1741729617.git.janneke@gnu.org> Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: ludo@gnu.org, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Thu, 13 Mar 2025 19:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 76963 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76963@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer X-Debbugs-Original-Xcc: Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer Received: via spool by 76963-submit@debbugs.gnu.org id=B76963.174189309427996 (code B ref 76963); Thu, 13 Mar 2025 19:12:01 +0000 Received: (at 76963) by debbugs.gnu.org; 13 Mar 2025 19:11:34 +0000 Received: from localhost ([127.0.0.1]:58174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tsnxs-0007HN-Uk for submit@debbugs.gnu.org; Thu, 13 Mar 2025 15:11:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40664) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tsnxo-0007Gu-O4 for 76963@debbugs.gnu.org; Thu, 13 Mar 2025 15:11:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tsnxi-0007i8-BN; Thu, 13 Mar 2025 15:11:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=LVqY0L1x/cLnRkRJMgPDcrbRsknhhUT8o8cmjt0z8lw=; b=P60h2FSvRO81L5 MUfahh8galS/SsWbIbaIOxkM5WLBR9Zr0dRU1c/Kj5SzbqVgJg12nCCM6upMZSG539lyG83fkCgDb pgpzrrUL6EZMYaknTlqyLwSsxYQAYq7KntfH5HIS6NPjeZHrpqxrxdWHi2PMCU20yz7G2lyL7ZQ/0 CzUxTW69gXRQVqDl84WEjKIo81nyoykICwdmXd/z4BmWGsMaokT9BbiQTiB34YBsEvGWerEeRcYE6 oasTbHAQF3HN5jgCpwgnvvhe33OXdanHe5oM630F1w2RtOYOo9s1NsRjZDvXWgA50A0MWt6f8ra2e AcAgQZjV/AvNzv09izeg==; From: Janneke Nieuwenhuizen Date: Thu, 13 Mar 2025 20:11:03 +0100 Message-ID: X-Mailer: git-send-email 2.47.1 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/messaging.scm (snuik-configuration): New type. (snuik-services): New procedure. (snuik-activation, %snuik-accounts, snuik-service-type): New variables. * doc/guix.texi (Messaging Services): Document it. Change-Id: I0c52b4804948876dc1b4d3b5ac660af848a13f25 --- doc/guix.texi | 59 ++++++++++++++++++- gnu/services/messaging.scm | 114 ++++++++++++++++++++++++++++++++++++- 2 files changed, 171 insertions(+), 2 deletions(-) base-commit: 678b3dddfe442e643fe5cff7730d4f9690c3e2c2 diff --git a/doc/guix.texi b/doc/guix.texi index d109877a32c..083e561e48c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36,7 +36,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* -Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Janneke Nieuwenhuizen@* +Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Janneke Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* @@ -30208,6 +30208,63 @@ Messaging Services @end table @end deftp +@cindex irc-bot +@cindex snuik +The @uref{https://gitlab.com/janneke/snuik, Snuik IRC bot} can be run as +a daemon to aid talking to users that are currently offline. With the +@code{(gnu services messaging)} service, you can configure it by adding +a @code{snuik-service-type} service to the @code{services} field of your +operating system declaration. + +@defvar snuik-service-type +This is the type of the Snuik service, whose value is a +@code{snuik-configuration} object. +@end defvar + +Here is an example of a service and its configuration: + +@lisp +(service snuik-service-type + (snuik-configuration + (password-file "/var/run/snuik/.password.snuik") + (channels '("#bootstrappable" + "#dezyne" + "#guix-risc-v" + "#lilypond")))) +@end lisp + +@deftp {Data Type} snuik-configuration +Available @code{snuik-configuration} fields are: + +@table @asis +@item @code{snuik} (default: @code{snuik}) (type: package) +The Snuik package to use. + +@item @code{server} (default: @code{"irc.libera.chat"}) +The IRC server to connect to. + +@item @code{port} (default: @code{6665}) (type: integer) +Port number used by the IRC server. + +@item @code{nick} (default: @code{"snuik"}) (type: string) +The nickname for snuik to use. + +@item @code{password} (default: @code{#f}) (type: string) +The password to use when logging in. + +@item @code{password-file} (default: @code{".password.}) +The file to read the password from to use when logging in. + +@item @code{channels} (default: @code{'("##botchat")}) +The channels for snuik to join, a list of strings. + +@item @code{extra-options} (default: @code{'()}) +Extra options will be passed to @command{snuik}, please run +@command{snuik --help } for more information. + +@end table +@end deftp + @node Telephony Services @subsection Telephony Services diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index a914d0f89ec..9bfeabacf45 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -59,7 +59,10 @@ (define-module (gnu services messaging) bitlbee-service-type quassel-configuration - quassel-service-type)) + quassel-service-type + + snuik-configuration + snuik-service-type)) ;;; Commentary: ;;; @@ -1002,3 +1005,112 @@ (define quassel-service-type "Run @url{https://quassel-irc.org/,quasselcore}, the backend for the distributed IRC client quassel, which allows you to connect from multiple machines simultaneously."))) + + +;;; +;;; Snuik. +;;; +(define-maybe integer (no-serialization)) +(define-configuration/no-serialization snuik-configuration + (snuik (package snuik) "The snuik package to use.") + (server maybe-string "The IRC server to connect to.") + (port maybe-integer "The port used by the IRC server.") + (nick maybe-string "The nickname for snuik to use.") + (password maybe-string "The password to use when logging in.") + (password-file maybe-string "The file to read the password from.") + (channels (list-of-strings '()) "The channels for snuik to join.") + (extra-options (list-of-strings '()) "Extra options to be passed to snuik.") + (home-service? (boolean for-home?) "Running as home service?")) + +(define (snuik-services config) + "Return a for snuik with CONFIG." + (match-record config + + (snuik server port nick password password-file channels extra-options + home-service?) + (let* ((password-file (snuik-configuration-password-file config)) + (mappings `(,@(if home-service? + '() + `(,(file-system-mapping + (source "/var/run/snuik") + (target source) + (writable? #t)) + ,@(if password-file + (list (file-system-mapping + (source password-file) + (target source))) + '()))))) + (snuik (least-authority-wrapper + (file-append snuik "/bin/snuik") + #:name "snuik" + #:mappings mappings + #:namespaces (delq 'net %namespaces))) + (command + #~'(#$snuik + #$@(if (and server (not (eq? server %unset-value))) + (list (string-append "--server=" server)) + #~()) + #$@(if (and port (not (eq? port %unset-value))) + (list (string-append "--port=" (number->string port))) + #~()) + #$@(if (and nick (not (eq? nick %unset-value))) + (list (string-append "--nick=" nick)) + #~()) + #$@(if (and password (not (eq? password %unset-value))) + (list (string-append "--password=" password)) + #~()) + #$@(if (and password-file (not (eq? password-file %unset-value))) + (list (string-append "--password-file=" password-file)) + #~()) + #$@(if (pair? channels) + (list (string-append "--channels=" (string-join channels ","))) + #~()) + #$@extra-options)) + (log-file #~(string-append + #$(if home-service? #~%user-log-dir "/var/log") + "/snuik.log"))) + (list (shepherd-service + (documentation "Run the snuik IRC bot.") + (provision '(snuik)) + (requirement (if home-service? '() '(user-processes networking))) + (modules (if home-service? + '((shepherd support)) ;for '%user-log-dir' + '())) + (start #~(make-forkexec-constructor + #$command + #:log-file #$log-file + #:user #$(and (not home-service?) "snuik") + #:group #$(and (not home-service?) "snuik"))) + (stop #~(make-kill-destructor))))))) + +(define snuik-activation + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let* ((user (getpw "snuik")) + (directory "/var/run/snuik")) + (mkdir-p directory) + (chown directory (passwd:uid user) (passwd:gid user)))))) + +(define %snuik-accounts + (list (user-group (name "snuik") (system? #t)) + (user-account + (name "snuik") + (group "snuik") + (system? #t) + (comment "Snuik IRC bot user") + (home-directory "/var/run/snuik") + (shell (file-append shadow "/sbin/nologin"))))) + +(define snuik-service-type + (service-type + (name 'home-snuik) + (description "Run the Snuik IRC bot.") + (default-value (snuik-configuration)) + (extensions + (list (service-extension activation-service-type + (const snuik-activation)) + (service-extension account-service-type + (const %snuik-accounts)) + (service-extension shepherd-root-service-type + snuik-services))))) From patchwork Thu Mar 13 19:11:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Janneke Nieuwenhuizen X-Patchwork-Id: 40139 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 6637427BBEA; Thu, 13 Mar 2025 19:12:59 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, 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 D239D27BBE2 for ; Thu, 13 Mar 2025 19:12:58 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tsnyw-0000eU-9o; Thu, 13 Mar 2025 15:12:38 -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 1tsnyV-0000Ys-Bv for guix-patches@gnu.org; Thu, 13 Mar 2025 15:12:19 -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 1tsnyU-0007lR-VH; Thu, 13 Mar 2025 15:12:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=nniq1MfoUXW4NP4Qpx14/+l1gyMbf4lEiQh2FGCQLmM=; b=C5FYzrB3NsSVcxyTvGzHpwhw4IBnIq5tH8akry1/OWZCWpvPhRswbkruHSCbs3sO7pdXeJVcZFHECfFAJu/aDU9RIO7VWS114QPJJoqvWn3yMYirgvilLd+zoncxGCtpMJAGdBaOVoEb6jXHzA+v9LE2k7RJMwx5D/52Beq+jaFZThBt8mQeb+akSXJ4GofdrX1+lMk84HSc/7JB02q4Niny9Pp2GwITTqArle7ZdjdUXLNw8U4/WUAdpGzNvtVjzHBZGY7CKQ3P3UhCb4B6n1YwyYOSnoznGyEh+NQsSrZ7XZvKllGQo5qawECYln8kprZZ/2t4QEP+Z3SjOF+KNw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tsnyM-0007Ie-6n; Thu, 13 Mar 2025 15:12:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#76963] [PATCH v2 2/2] home: Add home-snuik-service. Resent-From: Janneke Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: andrew@trop.in, janneke@gnu.org, ludo@gnu.org, maxim.cournoyer@gmail.com, tanguy@bioneland.org, guix-patches@gnu.org Resent-Date: Thu, 13 Mar 2025 19:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 76963 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76963@debbugs.gnu.org Cc: Andrew Tropin , Janneke Nieuwenhuizen , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer , Tanguy Le Carrour X-Debbugs-Original-Xcc: Andrew Tropin , Janneke Nieuwenhuizen , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer , Tanguy Le Carrour Received: via spool by 76963-submit@debbugs.gnu.org id=B76963.174189309428003 (code B ref 76963); Thu, 13 Mar 2025 19:12:02 +0000 Received: (at 76963) by debbugs.gnu.org; 13 Mar 2025 19:11:34 +0000 Received: from localhost ([127.0.0.1]:58178 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tsnxt-0007HU-TH for submit@debbugs.gnu.org; Thu, 13 Mar 2025 15:11:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40672) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tsnxo-0007Gv-TB for 76963@debbugs.gnu.org; Thu, 13 Mar 2025 15:11:29 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tsnxj-0007iI-Ac; Thu, 13 Mar 2025 15:11:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=nniq1MfoUXW4NP4Qpx14/+l1gyMbf4lEiQh2FGCQLmM=; b=b33PlNvPGdQerLNnaCPn kmCPdAUdajROgbwCTdGHZGcWRa8yQvCJteg/cUeZwUljVrbFnyZPfjiYWmowhxjf4LJepH6CEKLGc u2Dwh9v+215v0P3wa++etXH+KX3+n7R15FibowqymQeaCD9Dby3GQgprl/bSCdcgP+AzBIxrKYwlg 0c9mLKr4eVvFCGe/Hrlxufnx4AiXGLOTxei/yJ4s0drsM/zdxZuV/AfN+S+VopTiogtc2WwM4YOTG V956XTcnZl4xsX+ISf7ApupnUkZ6+shqDLI+k2sac/tZz/lXaLaTSP0SEyE3PZUQDTOHpQBzs492P XqgO+RGpOmkPSQ==; From: Janneke Nieuwenhuizen Date: Thu, 13 Mar 2025 20:11:04 +0100 Message-ID: <590a719c16fa369898b4c8bb99a303e5f4324341.1741893001.git.janneke@gnu.org> X-Mailer: git-send-email 2.47.1 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/home/services/messaging.scm (home-snuik-service-type): New variable. * doc/guix.texi (Messaging Home Services): Document it. Change-Id: I1e278e7d8ed04efcb1a2ce9e12e69cb6a31a9fa4 --- doc/guix.texi | 28 ++++++++++++++++++++++++++++ gnu/home/services/messaging.scm | 21 +++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 083e561e48c..54e63902fa1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -49771,6 +49771,34 @@ Messaging Home Services @end table @end deftp +@cindex irc-bot +@cindex snuik +The @uref{https://gitlab.com/janneke/snuik, Snuik IRC bot} can be run as +a daemon to aid talking to users that are currently offline. With the +@code{(gnu home services messaging)} service, you can configure Snuik to +run upon login. + +@defvar home-snuik-service-type +This is the type of the Snuik home service, whose value is a +@code{home-snuik-configuration} object. +@end defvar + +You may specify a custom configuration by providing a +@code{snuik-configuration} record, exactly like for +@code{snuik-service-type} and wrapping it in @code{for-home}. Here is +an example of a service and its configuration that you could add to the +@code{services} field of your @code{home-environment}: + +@lisp +(service home-snuik-service-type + (for-home + (snuik-configuration + (server "irc.oftc.net") + (nick "sneek") + (password "snuik is sneeky") + (channels '("#reproducible-builds")))) +@end lisp + @node Media Home Services @subsection Media Home Services diff --git a/gnu/home/services/messaging.scm b/gnu/home/services/messaging.scm index bd2f1bb23f5..c871869d452 100644 --- a/gnu/home/services/messaging.scm +++ b/gnu/home/services/messaging.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2023 Janneke Nieuwenhuizen +;;; Copyright © 2023, 2025 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,12 +20,17 @@ (define-module (gnu home services messaging) #:use-module (srfi srfi-26) #:use-module (gnu home services) #:use-module (gnu home services shepherd) + #:use-module (gnu packages irc) #:use-module (gnu packages messaging) + #:use-module (gnu services) #:use-module (gnu services configuration) #:use-module (gnu services shepherd) + #:use-module (gnu services messaging) + #:use-module ((gnu system shadow) #:select (account-service-type)) #:use-module (guix records) #:use-module (guix gexp) - #:export (home-znc-configuration + #:export (home-snuik-service-type + home-znc-configuration home-znc-service-type)) ;;; @@ -64,3 +69,15 @@ (define home-znc-service-type (description "Install and configure @command{znc}, an @acronym{IRC, Internet Relay Chat} bouncer, as a Shepherd service."))) + + +;;; +;;; Snuik. +;;; +(define home-snuik-service-type + (service-type + (inherit (system->home-service-type + (remove-service-extensions snuik-service-type + (list account-service-type + activation-service-type)))) + (default-value (for-home (snuik-configuration)))))