GNU bug report logs -
#76963
[PATCH] home: Add home-snuik-service.
Previous Next
Reported by: Janneke Nieuwenhuizen <janneke <at> gnu.org>
Date: Tue, 11 Mar 2025 21:56:01 UTC
Severity: normal
Tags: patch
Done: Janneke Nieuwenhuizen <janneke <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Maxim Cournoyer writes:
Hi Maxim,
> Janneke Nieuwenhuizen <janneke <at> gnu.org> writes:
>
>> * gnu/home/services/messaging.scm (<home-snuik-configuration>): New type.
>> (home-snuik-services, home-snuik-service-type): New procedures.
>> * doc/guix.texi (Messaging Home Services): Document it.
>>
>> Change-Id: I1e278e7d8ed04efcb1a2ce9e12e69cb6a31a9fa4
>> ---
>> doc/guix.texi | 58 ++++++++++++++++++++++++-
>> gnu/home/services/messaging.scm | 77 ++++++++++++++++++++++++++++++++-
>
> Wouldn't such a service be a more natural match for a system service?
> It seems like something I'd like running on a headless server.
I suppose you're right. I've been thinking about that but am not too
thrilled of running snuik v0.2 as root. I'll make it a system service
and use (for-home ...) to provide a home service. Using the
least-authority-wrapper should (thanks for mentioning that, I wasn't
aware of this feature!) address my concerns about taking this route.
>> 2 files changed, 132 insertions(+), 3 deletions(-)
>>
>> diff --git a/doc/guix.texi b/doc/guix.texi
>> index d109877a32..f35e156376 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@*
>
> Maybe use 2016-2025 :-).
Hmm. I thought you needed to have a special exception in the README to
be able for that to hold up in court. I've been postponing to look into
this mess (I used to be too heavily into copyright in my LilyPond years).
However, it seems today is the day :)
From <https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html>
--8<---------------cut here---------------start------------->8---
You can use a range (‘2008-2010’) instead of listing individual years
(‘2008, 2009, 2010’) if and only if: 1) every year in the range,
inclusive, really is a “copyrightable” year that would be listed
individually; and 2) you make an explicit statement in a README file
about this usage.
--8<---------------cut here---------------end--------------->8---
Sadly, the manual does not seem to give a template to use for this, and
I have learnt to stay away from authoring legal texts. I just asked
gnu-prog-discuss about this.
I cannot find such a statement in the Guix README? Ludo'?
>> +The @uref{https://gitlab.com/janneke/snuik, Snuik IRC bot} can be run as
>> +a daemon to aid talking to users that are currently off-line. With the
>> +@code{(gnu home services messaging)} service, you can configure Snuik to
>> +run upon login.
>
> nitpick: I've only ever seen 'offline' spelled as a single word.
The numbers
--8<---------------cut here---------------start------------->8---
15:53:37 janneke <at> glimdal:~/src/guix/core-packages-team
$ git grep off-line |wc -l
39
15:54:23 janneke <at> glimdal:~/src/guix/core-packages-team
$ git grep offline |wc -l
448
--8<---------------cut here---------------end--------------->8---
are overwhelmingly in your favor, so I'll take your suggestion, thanks :)
>> +
>> +;;;
>> +;;; Snuik.
>> +;;;
>> +(define-record-type* <home-snuik-configuration>
>> + home-snuik-configuration make-home-snuik-configuration
>> + home-snuik-configuration?
>> + (snuik home-snuik-snuik ;file-like
>> + (default snuik))
[..]
> I'd use define-configuration/no-serialization from (gnu services configuration), which
> will type-check the field values and produce useful errors in case of a
> mistake, which is more useful than a comment in the source file :-).
Ok.
>> +(define (home-snuik-services config)
[..]
>> + (start #~(make-forkexec-constructor #$command
>> + #:log-file #$log-file))
>> + (stop #~(make-kill-destructor)))))))
>
> Can home services use the least-authority-wrapper to containerize the
> processes? If yes, that'd be nice to use it.
Looking at dicod-shepherd-service, it has (if home-service?...) and uses
the least-authority-wrapper. I'm wondering how this works for read
access to the password-file and read/write access to snuik's database
store directory but I'll look into this.
Thanks for your very useful comments, I've got some homework! :)
I intend to send a v2 with system+home service and
least-authority-wrapper...but I need to learn a few things about bothe
these things and then also do some testing.
Greetings,
Janneke
--
Janneke Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com
This bug report was last modified 121 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.