From unknown Thu Aug 14 22:20:34 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#58528] [PATCH] gnu: Services: Add espeakup service. Resent-From: hunter.t.joz@gmail.com Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 14 Oct 2022 20:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 58528 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58528@debbugs.gnu.org Cc: Hunter Jozwiak X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.166577816425179 (code B ref -1); Fri, 14 Oct 2022 20:10:02 +0000 Received: (at submit) by debbugs.gnu.org; 14 Oct 2022 20:09:24 +0000 Received: from localhost ([127.0.0.1]:38700 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojQzk-0006Y3-6H for submit@debbugs.gnu.org; Fri, 14 Oct 2022 16:09:24 -0400 Received: from lists.gnu.org ([209.51.188.17]:41794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojQzi-0006Xv-40 for submit@debbugs.gnu.org; Fri, 14 Oct 2022 16:09:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51310) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ojQzh-000545-Uu for guix-patches@gnu.org; Fri, 14 Oct 2022 16:09:21 -0400 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]:44013) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ojQzf-0004Dm-UL for guix-patches@gnu.org; Fri, 14 Oct 2022 16:09:21 -0400 Received: by mail-lf1-x12e.google.com with SMTP id d6so8823451lfs.10 for ; Fri, 14 Oct 2022 13:09:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:from:from:to:cc:subject:date:message-id:reply-to; bh=owYyicYRAZC8oqLwvT8aWJEHh+QWDKBDO7q+AAA0zZ8=; b=mqEw04o2Bax9HFC+gc33mX6yWymPc+7XOzR1qdzmg+Z6E7HoFZQ7unBUYA9eZMCwiM 71AvFQ0YGwqDQs4cCxOj5q4sxakCOeeu/7ZPCkGbzIh61n9JHrsJeoiopaBO3BfSQ+8l Vm+ZS4xVUMiUwCa1WsX2ysKen/b6LxUhqZAuryDJnZSfmlRsD+vK3fn97o4uN9f/UE5f fN0u7u3ZF8mBZLbaG/ytlLOk4NE6VjBnM0OKst0sVNQgw8z0YoJy3OGzSWgTd1eLXTq7 lDajjEK0/3+6x1DSnP02MOQiWsz8zDDFOfQyf4l9uP6WQi4NQBVqXUzG9Mws/pwJYw94 8qOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=owYyicYRAZC8oqLwvT8aWJEHh+QWDKBDO7q+AAA0zZ8=; b=D9R/NabrWAtuoG+H51aC7Mk9f9BWo+Umb+ZUPVSclWbwbi7dJL8aLRToDLk3qUytgT VIjw3/X0+NUF01gVTNcKUDoc8A2pqSdnMnOYQVsPreOklnaziAKrOWFlvEq1WMc4j6zI MJ8BeC7fpH6Qr3o3r73Bhpa4SPOBXAsWw04Gud2hK40ZV8JSXQ7lv6NajWhRMaVWz+d5 9xs7nUnFYlrnLI7x2Y8yr62qJp/ioq+q3IOF4Xav0PN3+E4CEh0Ho7KEWfCLFs7cBOag FrCU91SLpYqdaThuGwuCkKSVMomYfxa9xBe1yzk618Lbh+iUwat/47aYDK1Iupv228Qu s98g== X-Gm-Message-State: ACrzQf0DgjSxbgRCJIGwM5vHOrQbeOE9873VDw5RN1vgn6AK/EV1J4kj CRzY7D1jVixY0l0uNdMGw991XuXjwHbjYQeTMhrgLntEavA= X-Google-Smtp-Source: AMsMyM7aXazRXS9aO0PpADpLCHpUm1wx+x/a5vthVpT/+EOY/WQ+A4czXjL9n7suCn1h4GKP+wHiKArubXKyPrxmQhw= X-Received: by 2002:a05:6512:39d6:b0:4a2:a97d:c880 with SMTP id k22-20020a05651239d600b004a2a97dc880mr2292673lfu.220.1665778155992; Fri, 14 Oct 2022 13:09:15 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 14 Oct 2022 13:09:14 -0700 From: hunter.t.joz@gmail.com X-Mailer: git-send-email 2.38.0 MIME-Version: 1.0 Date: Fri, 14 Oct 2022 13:09:14 -0700 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::12e; envelope-from=hunter.t.joz@gmail.com; helo=mail-lf1-x12e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) From: Hunter Jozwiak * gnu/services/accessibility.scm: add espeakup-configuration, espeakup-shepherd-service, and espeakup-service-type. * doc/guix.texi (Accessibility Services): Document the espeakup configurati= on. --- doc/guix.texi | 19 ++++++++++++ gnu/services/accessibility.scm | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 gnu/services/accessibility.scm diff --git a/doc/guix.texi b/doc/guix.texi index dbf4ca9be9..73dc647ca5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17572,6 +17572,7 @@ Services @menu * Base Services:: Essential system services. +* Accessibility Services:: For those with various impairments. * Scheduled Job Execution:: The mcron service. * Log Rotation:: The rottlog service. * Networking Setup:: Setting up network interfaces. @@ -18793,6 +18794,24 @@ Base Services (local-file "sway-greetd.conf")))))))) @end lisp @end deftp +@node Accessibility Services +@subsection Accessibility Services +%espeakup-configuration +@c %start of fragment + +@deftp {Data Type} espeakup-configuration +Available @code{espeakup-configuration} fields are: + +@table @asis +@item @code{default-voice} (default: @code{"en-US"}) (type: string) +Set the voice that espeak-ng should use by default. + +@end table + +@end deftp + + +@c %end of fragment @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/accessibility.scm b/gnu/services/accessibility.sc= m new file mode 100644 index 0000000000..5dc8825bec --- /dev/null +++ b/gnu/services/accessibility.scm @@ -0,0 +1,56 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2022 Hunter Jozwiak + +;;; +;;; 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 . + +(define-module (gnu services accessibility) + #:use-module (gnu packages accessibility) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services linux) + #:use-module (gnu services shepherd) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (espeakup-configuration espeakup-service-type)) + +;; Espeakup service +(define-configuration/no-serialization espeakup-configuration + (default-voice (string "en-US") + "Set the voice that espeak-ng should use by default.")) + +(define (espeakup-shepherd-service config) + (list (shepherd-service (provision '(espeakup)) + (documentation "The espeak-ng bridge to speakup.= ") + (requirement '(user-processes)) + (start #~(make-forkexec-constructor (list (string-append #$espeakup + "/bin/espeakup" + "-v" + #$(espeakup-configuration-default-voice + config))))) + (stop #~(make-kill-destructor))))) + +(define espeakup-service-type + (service-type (name 'espeakup) + (description + "A lightweight connector between espeak and speakup.") + (extensions (list (service-extension + shepherd-root-service-type + espeakup-shepherd-service) + (service-extension + kernel-module-loader-service-type + (const (list "speakup_soft"))))) + (default-value (espeakup-configuration)))) --=20 2.38.0 From unknown Thu Aug 14 22:20:34 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#58528] [PATCH] gnu: Services: Add espeakup service. Resent-From: "(" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 14 Oct 2022 20:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58528 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: , <58528@debbugs.gnu.org> Received: via spool by 58528-submit@debbugs.gnu.org id=B58528.166577919027042 (code B ref 58528); Fri, 14 Oct 2022 20:27:02 +0000 Received: (at 58528) by debbugs.gnu.org; 14 Oct 2022 20:26:30 +0000 Received: from localhost ([127.0.0.1]:38734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojRGH-000726-Vp for submit@debbugs.gnu.org; Fri, 14 Oct 2022 16:26:30 -0400 Received: from knopi.disroot.org ([178.21.23.139]:41632) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojRGF-00071v-Uw for 58528@debbugs.gnu.org; Fri, 14 Oct 2022 16:26:28 -0400 Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 3E5B34DBF0; Fri, 14 Oct 2022 22:26:26 +0200 (CEST) X-Virus-Scanned: SPAM Filter at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TNLmgqfbOsCt; Fri, 14 Oct 2022 22:26:25 +0200 (CEST) Mime-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1665779184; bh=ZjSLgk+SieLoercMEtpWaWfr/PRhv39TUonYj1f8tis=; h=Date:To:Subject:From:References:In-Reply-To; b=kGMgMdZkyZdJP3GZDxV5MtXMD67aj2rkhXGHFa+qaNXv+/nEftnqScFEYJcgnXh1J 4BfCsO7Jwd0NxOIJQajkJ2hq3+vYjrb4HJwhaZr45z92MPQj1FKJBIWRNsROp1wHEN YmUMl/6Ur3mSrTmI887s99iCBUgGFeMnhFirEww0pVjj5YEMpE7RbbRFfJhOYEGaiL r+YNuxZ5Y844d1Amj7E+ZTIF7wsOikBYDUHh4f1moXGrBciP5imVV0jJ/9aoFNODk8 L1PWK0dHYLY83kfggyEVKPlDURYNk6NX7zHcVjcCDWr+83nm5fbFBwLZm/eDUFOQF1 ZMljmv4zFVRbw== Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Fri, 14 Oct 2022 21:26:24 +0100 Message-Id: From: "(" References: In-Reply-To: X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Heya, On Fri Oct 14, 2022 at 9:09 PM BST, wrote: > diff --git a/doc/guix.texi b/doc/guix.texi > index dbf4ca9be9..73dc647ca5 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -17572,6 +17572,7 @@ Serv [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.3 FROM_ONE_CHAR Bogus FROM name -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Heya, On Fri Oct 14, 2022 at 9:09 PM BST, wrote: > diff --git a/doc/guix.texi b/doc/guix.texi > index dbf4ca9be9..73dc647ca5 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -17572,6 +17572,7 @@ Services > > @menu > * Base Services:: Essential system services. > +* Accessibility Services:: For those with various impairments. > * Scheduled Job Execution:: The mcron service. > * Log Rotation:: The rottlog service. > * Networking Setup:: Setting up network interfaces. > @@ -18793,6 +18794,24 @@ Base Services > (local-file "sway-greetd.conf")))))))) > @end lisp > @end deftp > +@node Accessibility Services > +@subsection Accessibility Services > +%espeakup-configuration > +@c %start of fragment > + > +@deftp {Data Type} espeakup-configuration > +Available @code{espeakup-configuration} fields are: > + > +@table @asis > +@item @code{default-voice} (default: @code{"en-US"}) (type: string) > +Set the voice that espeak-ng should use by default. > + > +@end table > + > +@end deftp > + > + > +@c %end of fragment Remember to add your copyright notice to the manual's copyright section. > + (define-module (gnu services accessibility) Since this is a new file, you'll need to update ``gnu/local.mk'' accordingl= y. > + Remove this empty line after the ``;;; Copyright ...'' line. > + #:export (espeakup-configuration espeakup-service-type)) You should probably put each variable here on a new line. > + > +;; Espeakup service Instead of this, do this: ^L ;;; ;;; Espeakup. ;;; The ^L is a control character, not a literal ``^L''. Look at one of the oth= er files and copy their ^L in. Also, add another newline after this "section comment". > +(define-configuration/no-serialization espeakup-configuration > + (default-voice (string "en-US") > + "Set the voice that espeak-ng > should use by default.")) Funky indentation here, and there needs to be a field for customizing the ``espeakup'' package to use. Should be: (define-configuration/no-serialization espeakup-configuration (espeakup (file-like espeakup) "Set the package providing the @code{/bin/espeakup} command.") (default-voice (string "en-US") "Set the voice that espeak-ng should use by default.")) > +(define (espeakup-shepherd-service config) > + (list (shepherd-service (provision '(espeakup)) > + (documentation "The espeak-ng bridge to speaku= p.") > + (requirement '(user-processes)) > + (start #~(make-forkexec-constructor (list > (string-append #$espeakup > + > "/bin/espeakup" > + "-v= " > + > #$(espeakup-configuration-default-voice > + > config))))) > + (stop #~(make-kill-destructor))))) Again, indentation is off here, and there's a small issue with ``string-app= end'' being used where ``file-append'' should be. Try this instead: (define (espeakup-shepherd-service config) (list (shepherd-service (provision '(espeakup)) (requirement '(user-processes)) (documentation "Run espeakup, the espeak-ng bridge to speakup.") (start #~(make-forkexec-constructor (list #$(file-append (espeakup-configuration-espeakup config= ) "/bin/espeakup") "-v" #$(espeakup-configuration-default-voice config)))= ) (stop #~(make-kill-destructor))))) > +(define espeakup-service-type > + (service-type (name 'espeakup) > + (description > + "A lightweight connector between espeak and speakup.") > + (extensions (list (service-extension > + shepherd-root-service-type > + espeakup-shepherd-service) > + (service-extension > + kernel-module-loader-service-type > + (const (list "speakup_soft"))))) > + (default-value (espeakup-configuration)))) Here too; try this: (define espeakup-service-type (service-type (name 'espeakup) (extensions (list (service-extension shepherd-root-service-type espeakup-shepherd-services) (service-extension kernel-module-loader-service-type (const (list "speakup_soft"))))) (default-value (espeakup-configuration)) (description "Configure and run espeakup, a lightweight bridge between espeak-ng and speakup."))) -- ( From unknown Thu Aug 14 22:20:34 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#58528] [PATCH] gnu: Services: Add espeakup service. Resent-From: Hunter Jozwiak Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 15 Oct 2022 15:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58528 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58528@debbugs.gnu.org Received: via spool by 58528-submit@debbugs.gnu.org id=B58528.16658466026550 (code B ref 58528); Sat, 15 Oct 2022 15:11:01 +0000 Received: (at 58528) by debbugs.gnu.org; 15 Oct 2022 15:10:02 +0000 Received: from localhost ([127.0.0.1]:42450 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojinY-0001hC-V5 for submit@debbugs.gnu.org; Sat, 15 Oct 2022 11:10:02 -0400 Received: from mail-lj1-f173.google.com ([209.85.208.173]:40463) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ojinW-0001gw-Jk for 58528@debbugs.gnu.org; Sat, 15 Oct 2022 11:09:59 -0400 Received: by mail-lj1-f173.google.com with SMTP id c20so9199330ljj.7 for <58528@debbugs.gnu.org>; Sat, 15 Oct 2022 08:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :from:to:cc:subject:date:message-id:reply-to; bh=MD5q8EiTGTjgygMLUVkLvwp1HDR3IBv7GatTRSVcPes=; b=lH5dpzrROSiqiuc5UtIc7DVQiowRuMoaRPQkqs2u8ff6KbYBCied3r3dCsKRlQawNl p3qm8zRuPo6rPjjq02dQtVfuM7aZwaiHkYgg8XGqO/Skbp6Xt9ZmPyT5Z3llWFFJoK/c ZzTvKk5dof77XLsKDds2pmzhwUcaani8gcsAsl7nrrIUgyPWnPrO51v/6ekoC0Vr8Gb1 BcqyqGzd6C5503C48/wAIu+S0POQZoYlPj8O/6BTwO3cYY5E9m2F89OR+A4zjnxWSIGL JctyQGyBBluNQ4pPxLibzF0DTgLW8uLfSJ3omEAR/L8faNG/yjSQQY8SzJa6D8bUGuSa aA1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MD5q8EiTGTjgygMLUVkLvwp1HDR3IBv7GatTRSVcPes=; b=dzvE/G6CPpproVh+PYejO95XAczUVK/vPNOgAvayWzR3CTS2BuPbSeFd7+wQkt/MGc 8vBJ6UJUfWuoeVRXKb81UUZGpNxMCQt8btwbg/XTwM2cq1SP7T1p1xpxroqYbHIXnrc3 oMoY9xe7hJ9F3cb+aDeh22tUH9Vezxu2aUiWNi5hD6dNmA+JtjvZWYbb1QpkTHvr0oQ9 15abh4wns8UBpAwJXQ1vZh/IAtMpFo77j6TScreidSqnHHTXQsBdH//0qg07jvoOGaeH XhKCUvhGrbJ98FIXmmFQ0pKxHkRvLfTTCWUWtCge/ZDiVQz8PyPaKnkQYdMCQVMqUS/R pwpw== X-Gm-Message-State: ACrzQf1eURoPEMlEmnAZUntBASTqOwdZTVlBoyhnTdE1YlMwGKhSPfzU LO5+DcO9fBDUKfzLP65q6kafSvA07lOgx8H6CJ0KucaBQm8= X-Google-Smtp-Source: AMsMyM5Iaol10s34spN1UI6qM93WnbKIT/eAywxl9sBXhiekPSmgIKaK5lYEEwMQWDvWGKGX0vW1YDa2hbk70RB0xr8= X-Received: by 2002:a2e:9547:0:b0:26b:fb41:f60a with SMTP id t7-20020a2e9547000000b0026bfb41f60amr1188947ljh.295.1665846591388; Sat, 15 Oct 2022 08:09:51 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 15 Oct 2022 08:09:48 -0700 From: Hunter Jozwiak In-Reply-To: References: MIME-Version: 1.0 Date: Sat, 15 Oct 2022 08:09:48 -0700 Message-ID: Content-Type: multipart/mixed; boundary="00000000000054a45e05eb142209" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --00000000000054a45e05eb142209 Content-Type: multipart/related; boundary="00000000000054a45d05eb142208" --00000000000054a45d05eb142208 Content-Type: multipart/alternative; boundary="00000000000054a45b05eb142207" --00000000000054a45b05eb142207 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable "(" writes: Heya, > > On Fri Oct 14, 2022 at 9:09 PM BST, wrote: >> >> diff =E2=80=93git a/doc/guix.texi b/doc/guix.texi index dbf4ca9be9..73dc= 647ca5 >> 100644 =E2=80=94 a/doc/guix.texi + b/doc/guix.texi @@ -17572,6 +17572,7 = @@ >> Services >> >> @menu * Base Services:: Essential system services. +* Accessibility >> Services:: For those with various impairments. * Scheduled Job Execution= :: >> The mcron service. * Log Rotation:: The rottlog service. * Networking >> Setup:: Setting up network interfaces. @@ -18793,6 +18794,24 @@ Base >> Services (local-file "sway-greetd.conf")))))))) @end lisp @end deftp +@n= ode >> Accessibility Services +@subsection Accessibility Services >> +%espeakup-configuration +@c %start of fragment + +@deftp {Data Type} >> espeakup-configuration +Available @code{espeakup-configuration} fields a= re: >> + +@table @asis +@item @code{default-voice} (default: @code{"en-US"}) >> (type: string) +Set the voice that espeak-ng should use by default. + +@= end >> table + +@end deftp + + +@c %end of fragment >> > > Remember to add your copyright notice to the manual's copyright section. > > + (define-module (gnu services accessibility) >> > > Since this is a new file, you'll need to update ``gnu/local.mk'' > accordingly. > > + >> > > Remove this empty line after the ``;;; Copyright =E2=80=A6'' line. > > + #:export (espeakup-configuration espeakup-service-type)) >> > > You should probably put each variable here on a new line. > > + +;; Espeakup service >> > > Instead of this, do this: > > ^L ;;; ;;; Espeakup. ;;; > > The ^L is a control character, not a literal ``L''. Look at one of the > other files and copy their ^L in. Also, add another newline after this > "section comment". > > +(define-configuration/no-serialization espeakup-configuration + >> (default-voice (string "en-US") + "Set the voice that espeak-ng should u= se >> by default.")) >> > > Funky indentation here, and there needs to be a field for customizing the > ``espeakup'' package to use. Should be: > > (define-configuration/no-serialization espeakup-configuration (espeakup > (file-like espeakup) "Set the package providing the @code{/bin/espeakup} > command.") (default-voice (string "en-US") "Set the voice that espeak-ng > should use by default.")) > > +(define (espeakup-shepherd-service config) + (list (shepherd-service >> (provision '(espeakup)) + (documentation "The espeak-ng bridge to >> speakup.") + (requirement '(user-processes)) + (start >> #~(make-forkexec-constructor (list (string-append #[image: $espeakup >> >> + >> /bin/espeaku= p >> >> + -v >> + >> #$](espeakup-configuration-default-voi= ce >> >>> >>> + config))))) + (stop #~(make-kill-destructor))))) >>>> >>> >>> Again, indentation is off here, and there's a small issue with >>> ``string-append'' being used where ``file-append'' should be. Try this >>> instead: >>> >>> (define (espeakup-shepherd-service config) (list (shepherd-service >>> (provision '(espeakup)) (requirement '(user-processes)) (documentation = "Run >>> espeakup, the espeak-ng bridge to speakup.") (start >>> #~(make-forkexec-constructor (list #[image: $(file-append >>> (espeakup-configuration-espeakup config) > >>> /bin/espeakup) > -v #$](espeakup-configuration-default-voice >>> config)))) >>>> >>>> (stop #~(make-kill-destructor))))) >>>> >>>> +(define espeakup-service-type + (service-type (name 'espeakup) + >>>>> (description + "A lightweight connector between espeak and speakup.")= + >>>>> (extensions (list (service-extension + shepherd-root-service-type + >>>>> espeakup-shepherd-service) + (service-extension + >>>>> kernel-module-loader-service-type + (const (list "speakupsoft"))))) + >>>>> (default-value (espeakup-configuration)))) >>>>> >>>> >>>> Here too; try this: >>>> >>>> (define espeakup-service-type (service-type (name 'espeakup) >>>> (extensions (list (service-extension shepherd-root-service-type >>>> espeakup-shepherd-services) (service-extension >>>> kernel-module-loader-service-type (const (list "speakupsoft"))))) >>>> (default-value (espeakup-configuration)) (description "Configure and r= un >>>> espeakup, a lightweight bridge between espeak-ng and speakup."))) >>>> >>>> =E2=80=93 ( >>>> >>> --00000000000054a45b05eb142207 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

"(" <paren@disroot.org> writes:

Heya,

On Fri Oct 14, 2022 at 9:09 PM BST, wrote:
diff =E2=80=93git a/doc/guix.texi b/doc/guix.texi index dbf4ca9be9..73dc647ca5 100644 =E2=80=94 a/doc/guix.texi + b/doc/guix.texi @@ -17572,6 +17572,7 @@ Services

@menu * Base Services:: Essential system services. +* Accessibility Services:: For those with various impairments. * Scheduled Job Execution:: The mcron service. * Log Rotation:: The rottlog service. * Networking Setup:: Setting up network interfaces. @@ -18793,6 +18794,24 @@ Base Services (local-file "sway-greetd.conf")))))))) @end lisp @end deftp +@node Accessibility Services +@subsection Accessibility Services +%espeakup-configuration +@c %start of fragment + +@deftp {Data Type} espeakup-configuration +Available @code{espeakup-configuration} fields are: + +@table @asis +@item @code{default-voice} (default: @code{"en-US"}) (type: stri= ng) +Set the voice that espeak-ng should use by default. + +@end table + +@end deftp + + +@c %end of fragment

Remember to add your copyright notice to the manual's copyright se= ction.

+ (define-module (gnu services accessibility)


+

Remove this empty line after the ``;;; Copyright =E2=80=A6'' l= ine.

+ #:export (espeakup-configuration espeakup-service-type))

You should probably put each variable here on a new line.

+ +;; Espeakup service

Instead of this, do this:

^L ;;; ;;; Espeakup. ;;;

The ^L is a control character, not a literal ``L''.= Look at one of the other files and copy their ^L in. Also, add another newline after this "sect= ion comment".

+(define-configuration/no-serialization espeakup-configuration + (default-voice (string "en-US&= quot;) + "Set the voice that espeak-ng should use by default."))

Funky indentation here, and there needs to be a field for customizing = the ``espeakup'' package to use. Should be:

(define-configuration/no-serialization espeakup-configuration (espeakup (file-like espeakup) "Set the package providing the @code{/bin/espeakup} command.") (default-voice (string "en-US") "Set the voice that espeak-ng should use by default."))

+(define (espeakup-shepherd-service config) + (list (shepherd-service (provision '(espeakup)) + (documentation "The espeak-ng bridge to spe= akup.") + (requirement '(user-processes)) + (start #~(make-forkexec-constructor (list (string-append #3D"$espeakup(espeakup-configuration-default-voice
+ config))))) + (stop #~(make-kill-destructor)))))

Again, indentation is off here, and there's a small issue with ``s= tring-append'' being used where ``file-append'' should be. Try this instead:

(define (espeakup-shepherd-service config) (list (shepherd-service (provision '(espeakup)) (requirement '(user-processes)) (documentation "Run espeakup, the espeak-ng bridge to speakup.") (start #~(make-forkexec-constructor (list #3D"$(file-append(espeakup-configuration-default-voice = config))))
(stop #~(make-kill-destructor)))))

+(define espeakup-service-type + (service-type (name 'espeakup) + (description + "A lightweight connector between espeak and speakup.= ") + (extensions (list (service-extension + shepherd-root-service-type + espeakup-shepherd-service) + (service-extension + kernel-module-loader-service-type + (const (list "speakupsoft"))))) + (default-value (espeakup-configuration))))

Here too; try this:

(define espeakup-service-type (service-type (name 'espeakup) (extensions (list (service-extension shepherd-root-service-type espeakup-shepherd-services) (service-extension kernel-module-loader-service-type (const (list "speakupsoft"))))) (default-value (espeakup-configuration)) (description "Configure and run espeakup, a lightweight bridge between espeak-ng and speakup.")))

=E2=80=93 (

--00000000000054a45b05eb142207-- --00000000000054a45d05eb142208 Content-Type: image/png; name="latex7ezZw7_c33bbf7a7a43b28f162b022d63aa0d64f464bc5d.png" Content-Disposition: inline; filename="latex7ezZw7_c33bbf7a7a43b28f162b022d63aa0d64f464bc5d.png" Content-Transfer-Encoding: base64 Content-ID: <_tmp_ltximg_latex7ezZw7_c33bbf7a7a43b28f162b022d63aa0d64f464bc5d.png> X-Attachment-Id: 12fca0e0ae963e7a_0.0.0.1.1 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 --00000000000054a45d05eb142208 Content-Type: image/png; name="latexerQpGS_08c27eb846d1419fba7684e67bdeaef54e607f6f.png" Content-Disposition: inline; filename="latexerQpGS_08c27eb846d1419fba7684e67bdeaef54e607f6f.png" Content-Transfer-Encoding: base64 Content-ID: <_tmp_ltximg_latexerQpGS_08c27eb846d1419fba7684e67bdeaef54e607f6f.png> X-Attachment-Id: 12fca0e0ae963e7a_0.0.0.1.2 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 RK5CYII= --00000000000054a45d05eb142208-- --00000000000054a45e05eb142209 Content-Type: text/x-patch; charset="utf-8"; name="0001-gnu-Services-Add-espeakup-service.patch" Content-Disposition: attachment; filename="0001-gnu-Services-Add-espeakup-service.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 12fca0e0ae963e7a_0.0.1 RnJvbSA2ZTlhNDU0YWE0ZjY5YzE5YzJlMGJiNGIxMDliNGU4NmJiNjI3YTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8NmU5YTQ1NGFhNGY2OWMxOWMyZTBiYjRiMTA5YjRl ODZiYjYyN2E2MC4xNjY1ODQ2NDE4LmdpdC5odW50ZXIudC5qb3pAZ21haWwuY29tPgpGcm9tOiBI dW50ZXIgSm96d2lhayA8aHVudGVyLnQuam96QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxNCBPY3Qg MjAyMiAxNTo0NToyMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGdudTogU2VydmljZXM6IEFkZCBl c3BlYWt1cCBzZXJ2aWNlLgoKKiBnbnUvc2VydmljZXMvYWNjZXNzaWJpbGl0eS5zY206IGFkZCBl c3BlYWt1cC1jb25maWd1cmF0aW9uLAplc3BlYWt1cC1zaGVwaGVyZC1zZXJ2aWNlLCBhbmQgZXNw ZWFrdXAtc2VydmljZS10eXBlLgoqIGdudS9sb2NhbC5tazogd2lyZSBpdCBpbi4KKiBkb2MvZ3Vp eC50ZXhpIChBY2Nlc3NpYmlsaXR5IFNlcnZpY2VzKTogRG9jdW1lbnQgdGhlIGVzcGVha3VwIGNv bmZpZ3VyYXRpb24uCi0tLQogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgIHwgMjMgKysr KysrKysrKysrCiBnbnUvbG9jYWwubWsgICAgICAgICAgICAgICAgICAgfCAgMiArKwogZ251L3Nl cnZpY2VzL2FjY2Vzc2liaWxpdHkuc2NtIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ251L3NlcnZpY2VzL2FjY2Vzc2liaWxpdHkuc2NtCgpkaWZmIC0tZ2l0IGEvZG9jL2d1 aXgudGV4aSBiL2RvYy9ndWl4LnRleGkKaW5kZXggYmRmZjQwMDRkMC4uYjk2MzNmMGFlNSAxMDA2 NDQKLS0tIGEvZG9jL2d1aXgudGV4aQorKysgYi9kb2MvZ3VpeC50ZXhpCkBAIC0xMDksNiArMTA5 LDcgQEAKIENvcHlyaWdodCBAY29weXJpZ2h0e30gMjAyMiBTaW1vbiBTdHJlaXRAKgogQ29weXJp Z2h0IEBjb3B5cmlnaHR7fSAyMDIyIChAKgogQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIyIEpv aG4gS2VoYXlpYXNAKgorQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIyIEh1bnRlciBKb3p3aWFr QCoKIAogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1v ZGlmeSB0aGlzIGRvY3VtZW50CiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3Vt ZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjMgb3IKQEAgLTE3NTg1LDYgKzE3NTg2LDcgQEAg U2VydmljZXMKIAogQG1lbnUKICogQmFzZSBTZXJ2aWNlczo6ICAgICAgICAgICAgICAgRXNzZW50 aWFsIHN5c3RlbSBzZXJ2aWNlcy4KKyogQWNjZXNzaWJpbGl0eSBTZXJ2aWNlczo6IEZvciB0aG9z ZSB3aXRoIHZhcmlvdXMgaW1wYWlybWVudHMuCiAqIFNjaGVkdWxlZCBKb2IgRXhlY3V0aW9uOjog ICAgIFRoZSBtY3JvbiBzZXJ2aWNlLgogKiBMb2cgUm90YXRpb246OiAgICAgICAgICAgICAgICBU aGUgcm90dGxvZyBzZXJ2aWNlLgogKiBOZXR3b3JraW5nIFNldHVwOjogICAgICAgICAgICBTZXR0 aW5nIHVwIG5ldHdvcmsgaW50ZXJmYWNlcy4KQEAgLTE4ODA2LDYgKzE4ODA4LDI3IEBAIEJhc2Ug U2VydmljZXMKICAgICAgICAgICAgICAgKGxvY2FsLWZpbGUgInN3YXktZ3JlZXRkLmNvbmYiKSkp KSkpKSkKIEBlbmQgbGlzcAogQGVuZCBkZWZ0cAorQG5vZGUgQWNjZXNzaWJpbGl0eSBTZXJ2aWNl cworQHN1YnNlY3Rpb24gQWNjZXNzaWJpbGl0eSBTZXJ2aWNlcworJWVzcGVha3VwLWNvbmZpZ3Vy YXRpb24KK0BjICVzdGFydCBvZiBmcmFnbWVudAorCitAZGVmdHAge0RhdGEgVHlwZX0gZXNwZWFr dXAtY29uZmlndXJhdGlvbgorQXZhaWxhYmxlIEBjb2Rle2VzcGVha3VwLWNvbmZpZ3VyYXRpb259 IGZpZWxkcyBhcmU6CisKK0B0YWJsZSBAYXNpcworQGl0ZW0gQGNvZGV7ZXNwZWFrdXB9IChkZWZh dWx0OiBAY29kZXtlc3BlYWt1cH0pICh0eXBlOiBmaWxlLWxpa2UpCitTZXQgdGhlIHBhY2thZ2Ug cHJvdmlkaW5nIHRoZSBAY29kZXsvYmluL2VzcGVha3VwfSBjb21tYW5kLgorCitAaXRlbSBAY29k ZXtkZWZhdWx0LXZvaWNlfSAoZGVmYXVsdDogQGNvZGV7ImVuLVVTIn0pICh0eXBlOiBzdHJpbmcp CitTZXQgdGhlIHZvaWNlIHRoYXQgZXNwZWFrLW5nIHNob3VsZCB1c2UgYnkgZGVmYXVsdC4KKwor QGVuZCB0YWJsZQorCitAZW5kIGRlZnRwCisKKworQGMgJWVuZCBvZiBmcmFnbWVudAogCiBAbm9k ZSBTY2hlZHVsZWQgSm9iIEV4ZWN1dGlvbgogQHN1YnNlY3Rpb24gU2NoZWR1bGVkIEpvYiBFeGVj dXRpb24KZGlmZiAtLWdpdCBhL2dudS9sb2NhbC5tayBiL2dudS9sb2NhbC5tawppbmRleCAxYmQ0 NzIyZGI0Li5jZTBkY2JiMzAxIDEwMDY0NAotLS0gYS9nbnUvbG9jYWwubWsKKysrIGIvZ251L2xv Y2FsLm1rCkBAIC01NSw2ICs1NSw3IEBACiAjIENvcHlyaWdodCDCqSAyMDIyIEhpbHRvbiBDaGFp biA8aGFrb0B1bHRyYXJhcmUuc3BhY2U+CiAjIENvcHlyaWdodCDCqSAyMDIyIEFsZXggR3JpZmZp biA8YUBhamdyZi5jb20+CiAjIENvcHlyaWdodCDCqSAyMDIyICggPHBhcmVuQGRpc3Jvb3Qub3Jn PgorIyBDb3B5cmlnaHQgwqkgMjAyMiBIdW50ZXIgSm96d2lhayA8aHVudGVyLnQuam96QGdtYWls LmNvbT4KICMKICMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCiAjCkBAIC02NDMsNiAr NjQ0LDcgQEAgR05VX1NZU1RFTV9NT0RVTEVTID0JCQkJXAogICAlRCUvcGFja2FnZXMvendhdmUu c2NtCQkJXAogCQkJCQkJXAogICAlRCUvc2VydmljZXMuc2NtCQkJCVwKKyAgJUQlL3NlcnZpY2Vz L2FjY2Vzc2liaWxpdHkuc2NtCQkJCQlcCiAgICVEJS9zZXJ2aWNlcy9hZG1pbi5zY20JCQlcCiAg ICVEJS9zZXJ2aWNlcy9hdWRpby5zY20gICAgICAgICAgICAgICAgICAgICAgICBcCiAgICVEJS9z ZXJ2aWNlcy9hdWRpdGQuc2NtCQkJXApkaWZmIC0tZ2l0IGEvZ251L3NlcnZpY2VzL2FjY2Vzc2li aWxpdHkuc2NtIGIvZ251L3NlcnZpY2VzL2FjY2Vzc2liaWxpdHkuc2NtCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdjMjljN2ZlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9n bnUvc2VydmljZXMvYWNjZXNzaWJpbGl0eS5zY20KQEAgLTAsMCArMSw2NiBAQAorOzs7IEdOVSBH dWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJp Z2h0IMKpIDIwMjIgSHVudGVyIEpvendpYWsgPGh1bnRlci50LmpvekBnbWFpbC5jb20+Cis7OzsK Kzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK Kzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGdudSBzZXJ2aWNlcyBhY2Nlc3NpYmls aXR5KQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBhY2Nlc3NpYmlsaXR5KQorICAjOnVz ZS1tb2R1bGUgKGdudSBzZXJ2aWNlcykKKyAgIzp1c2UtbW9kdWxlIChnbnUgc2VydmljZXMgY29u ZmlndXJhdGlvbikKKyAgIzp1c2UtbW9kdWxlIChnbnUgc2VydmljZXMgbGludXgpCisgICM6dXNl LW1vZHVsZSAoZ251IHNlcnZpY2VzIHNoZXBoZXJkKQorICAjOnVzZS1tb2R1bGUgKGd1aXggZ2V4 cCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHJlY29yZHMpCisgICM6ZXhwb3J0IChlc3BlYWt1cC1j b25maWd1cmF0aW9uCisgICAgICAgICAgICBlc3BlYWt1cC1zZXJ2aWNlLXR5cGUpKQorCisMCis7 OzsKKzs7OyBFc3BlYWt1cAorCisoZGVmaW5lLWNvbmZpZ3VyYXRpb24vbm8tc2VyaWFsaXphdGlv biBlc3BlYWt1cC1jb25maWd1cmF0aW9uCisgIChlc3BlYWt1cAorICAgKGZpbGUtbGlrZSBlc3Bl YWt1cCkKKyAgICJTZXQgdGhlIHBhY2thZ2UgcHJvdmlkaW5nIHRoZSBAY29kZXsvYmluL2VzcGVh a3VwfSBjb21tYW5kLiIpCisgIChkZWZhdWx0LXZvaWNlCisgICAgKHN0cmluZyAiZW4tVVMiKQor ICAgICJTZXQgdGhlIHZvaWNlIHRoYXQgZXNwZWFrLW5nIHNob3VsZCB1c2UgYnkgZGVmYXVsdC4i KSkKKworKGRlZmluZSAoZXNwZWFrdXAtc2hlcGhlcmQtc2VydmljZSBjb25maWcpCisgIChsaXN0 IChzaGVwaGVyZC1zZXJ2aWNlCisgICAgICAgICAocHJvdmlzaW9uICcoZXNwZWFrdXApKQorICAg ICAgICAgKHJlcXVpcmVtZW50ICcodXNlci1wcm9jZXNzZXMpKQorICAgICAgICAgKGRvY3VtZW50 YXRpb24gIlJ1biBlc3BlYWt1cCwgdGhlIGVzcGVhay1uZyBicmlkZ2UgdG8gc3BlYWt1cC4iKQor ICAgICAgICAgKHN0YXJ0CisgICAgICAgICAgI34obWFrZS1mb3JrZXhlYy1jb25zdHJ1Y3Rvcgor ICAgICAgICAgICAgIChsaXN0ICMkKGZpbGUtYXBwZW5kIChlc3BlYWt1cC1jb25maWd1cmF0aW9u LWVzcGVha3VwIGNvbmZpZykKKyAgICAgICAgICAgICAgICIvYmluL2VzcGVha3VwIikKKyAgICAg ICAgICAgICAgICItdiIgIyQoZXNwZWFrdXAtY29uZmlndXJhdGlvbi1kZWZhdWx0LXZvaWNlIGNv bmZpZykpKSkKKyAgICAgICAgIChzdG9wICN+KG1ha2Uta2lsbC1kZXN0cnVjdG9yKSkpKSkKKwor KGRlZmluZSBlc3BlYWt1cC1zZXJ2aWNlLXR5cGUKKyAgKHNlcnZpY2UtdHlwZQorICAgKG5hbWUg J2VzcGVha3VwKQorICAgKGV4dGVuc2lvbnMKKyAgICAobGlzdCAoc2VydmljZS1leHRlbnNpb24K KyAgICAgICAgICAgc2hlcGhlcmQtcm9vdC1zZXJ2aWNlLXR5cGUKKyAgICAgICAgICAgZXNwZWFr dXAtc2hlcGhlcmQtc2VydmljZSkKKyAgICAgKHNlcnZpY2UtZXh0ZW5zaW9uCisgICAgICAgICAg IGtlcm5lbC1tb2R1bGUtbG9hZGVyLXNlcnZpY2UtdHlwZQorICAgICAgICAgICAoY29uc3QgKGxp c3QgInNwZWFrdXBfc29mdCIpKSkpKQorICAgKGRlZmF1bHQtdmFsdWUgKGVzcGVha3VwLWNvbmZp Z3VyYXRpb24pKQorICAgKGRlc2NyaXB0aW9uCisgICAgIkNvbmZpZ3VyZSBhbmQgcnVuIGVzcGVh a3VwLCBhIGxpZ2h0d2VpZ2h0IGJyaWRnZSBiZXR3ZWVuIGVzcGVhay1uZyBhbmQgc3BlYWt1cC4i KSkpCi0tIAoyLjM4LjAKCg== --00000000000054a45e05eb142209 Content-Type: application/pgp-signature; name="signature.asc" Content-Disposition: attachment; filename="signature.asc" Content-Transfer-Encoding: base64 X-Attachment-Id: 12fca0e0ae963e7a_0.1 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRRkxCQUVCQ0FBMUZpRUU4Sm1YNjNwM21j S0F4dFJiYytvc3k4UUpUdUVGQW1OS3pTa1hIR2gxYm5SbGNpNTAKTG1wdmVrQm5iV0ZwYkM1amIy MEFDZ2tRYytvc3k4UUpUdUh2NmdmOUdrOXkxVlc0dkRYUmVLbXRTeSsyS3BoaApZWHZWUDhCZ2l0 c3NUSjRQVUVBcXVUaWJpRXRtQkhvOXlHT1lXRVliQ25Ob2xpc3JCVC9WbVFCQlpLaUNnMy91Ckd3 blJyREgxZGFUS0xqNXg4dHd1Wk1sRmxLRnNsczVFeGZIMEhmWC8zaHNVQ0tTclIwV3pqVlJ0L1Ux dytDVEIKRVZGT3ZCdDA1K3VIVE5MbkRSWnZvZ2gwZzFncXJpUHlWN1NOYjQ0MGtDTmFSam1CdGcx REEzMkJqTEpBa2tKZApKL00vRmtXd2VTZXBzNlprbTRFeW1YN1h5blZjSi9Dc3pLb3RTd1BNWWNM eDlqdjNnZWh1Ynd0RkM1cVlncmgrCnBDcnQ1R3k1Sm9PcWhBaVk1eWRuaCs5cU01Q3FzdmRacHdz dlI0dUJRSW9qem9BQ3djS0dDL3JiZkpKWHdnPT0KPWxVdEcKLS0tLS1FTkQgUEdQIFNJR05BVFVS RS0tLS0t --00000000000054a45e05eb142209--