[PATCH] home: home-shepherd-configuration: Add silent? field.

  • Done
  • quality assurance status badge
Details
2 participants
  • Dariqq
  • Ludovic Courtès
Owner
unassigned
Submitted by
Dariqq
Severity
normal

Debbugs page

Dariqq wrote 6 months ago
(address . guix-patches@gnu.org)(name . Dariqq)(address . dariqq@posteo.net)
baf4d200c0d625b69b01f63e3013be670461da65.1726835963.git.dariqq@posteo.net
* gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field.
(launch-shepherd-gexp): Conditionally invoke shepherd with --silent.
* doc/guix.texi (home-shepherd-configuration): Document it.

Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc
---

Hi,

This adds a configuration field to the home-shepherd to optionally invoke it
with --silent. See [1] for details. The option currently only actually works
as advertised when using the development branch of shepherd, for the current
version (v0.10.5) the --silent parameter is ignored.

I have set the default value to #f to not change the current behaviour.

For the documentation I am not perfectly happy with my description because the
behaviour is opposite of the description (Setting to #t causes no output to
stdout), maybe there is a better way to phrase this? Also is there a better way
to communicate that it only works when the auto-start? field is also #t?


Related: The daemonize? field is not documented and the accessor is not being
exported.



doc/guix.texi | 3 +++
gnu/home/services/shepherd.scm | 7 ++++++-
2 files changed, 9 insertions(+), 1 deletion(-)

Toggle diff (57 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 52e36e4354..ab8cf54ae8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46057,6 +46057,9 @@ Shepherd Home Service
@item auto-start? (default: @code{#t})
Whether or not to start Shepherd on first login.
+@item silent? (default: @code{#f})
+Whether or not the auto-started Shepherd should output to stdout.
+
@item services (default: @code{'()})
A list of @code{<shepherd-service>} to start.
You should probably use the service extension
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index dfe4030a4e..17b005ed71 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -32,6 +32,7 @@ (define-module (gnu home services shepherd)
home-shepherd-configuration?
home-shepherd-configuration-shepherd
home-shepherd-configuration-auto-start?
+ home-shepherd-configuration-silent?
home-shepherd-configuration-services)
#:re-export (shepherd-service
shepherd-service?
@@ -58,6 +59,8 @@ (define-record-type* <home-shepherd-configuration>
(default #t))
(daemonize? home-shepherd-configuration-daemonize?
(default #t))
+ (silent? home-shepherd-configuration-silent?
+ (default #f))
(services home-shepherd-configuration-services
(default '())))
@@ -107,7 +110,8 @@ (define (home-shepherd-configuration-file config)
(scheme-file "shepherd.conf" config)))
(define (launch-shepherd-gexp config)
- (let* ((shepherd (home-shepherd-configuration-shepherd config)))
+ (let* ((shepherd (home-shepherd-configuration-shepherd config))
+ (silent? (home-shepherd-configuration-silent? config)))
(if (home-shepherd-configuration-auto-start? config)
(with-imported-modules '((guix build utils))
#~(unless (file-exists?
@@ -125,6 +129,7 @@ (define (launch-shepherd-gexp config)
#$(file-append shepherd "/bin/shepherd")
"--logfile"
(string-append log-dir "/shepherd.log")
+ #$@(if silent? '("--silent") '())
"--config"
#$(home-shepherd-configuration-file config)))))
#~"")))

base-commit: e9d903f146865db5948abd271a5c7e763681b4e9
--
2.46.0
Ludovic Courtès wrote 6 months ago
(name . Dariqq)(address . dariqq@posteo.net)
87y13fsp49.fsf@gnu.org
Hi,

Dariqq <dariqq@posteo.net> skribis:

Toggle quote (6 lines)
> * gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field.
> (launch-shepherd-gexp): Conditionally invoke shepherd with --silent.
> * doc/guix.texi (home-shepherd-configuration): Document it.
>
> Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc

[...]

Toggle quote (3 lines)
> Related: The daemonize? field is not documented and the accessor is not being
> exported.

We should fix it.

Toggle quote (3 lines)
> +@item silent? (default: @code{#f})
> +Whether or not the auto-started Shepherd should output to stdout.

Alternatively: “When true, the @command{shepherd} process does not write
anything to standard output.”

I would go as far as making it #t by default, WDYT?

Thanks,
Ludo’.
Dariqq wrote 5 months ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
d8c3c2f9-875a-43a3-b58b-85313acb487d@posteo.net
On 25.09.24 17:57, Ludovic Courtès wrote:
Toggle quote (23 lines)
> Hi,
>
> Dariqq <dariqq@posteo.net> skribis:
>
>> * gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field.
>> (launch-shepherd-gexp): Conditionally invoke shepherd with --silent.
>> * doc/guix.texi (home-shepherd-configuration): Document it.
>>
>> Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc
>
> [...]
>
>> Related: The daemonize? field is not documented and the accessor is not being
>> exported.
>
> We should fix it.
>
>> +@item silent? (default: @code{#f})
>> +Whether or not the auto-started Shepherd should output to stdout.
>
> Alternatively: “When true, the @command{shepherd} process does not write
> anything to standard output.”

That sounds way better. I would also mention that this only does
something when autostart? is also #t.
Toggle quote (3 lines)
>
> I would go as far as making it #t by default, WDYT?
>
Personally I think these messages provide little value when they just
inform me that all my home-services have started successfully
(especially because this is also available in the log file anyway), so I
would have no objection.

Not sure how others feel about them. Probably most dont see them at all
when they launch directly into their de/wm.

Toggle quote (2 lines)
> Thanks,
> Ludo’.
Dariqq wrote 5 months ago
[PATCH v2 0/2] home-shepherd-configuration: add silent? and document daemonize?
(address . 73383@debbugs.gnu.org)(name . Dariqq)(address . dariqq@posteo.net)
cover.1728634996.git.dariqq@posteo.net
Here is v2:

Changes:
* Change default-value of the silent? field to #t.
* Update the documentation. I added something that (hopefully) makes it obvious that the field is intended to be used together with the auto-start? field.
* Added a second patch to document the daemonize? field and export the field-accessor. Should it warn about the issue when dameonize? is #f but auto-start? is #t blocking logins?

Dariqq (2):
home: home-shepherd-configuration: Add silent? field.
doc: Document home-shepherd-configuration-daemonize?

doc/guix.texi | 7 +++++++
gnu/home/services/shepherd.scm | 8 +++++++-
2 files changed, 14 insertions(+), 1 deletion(-)


base-commit: 99999ac8ebc4bd5c988ebc88461421aaf55e337a
--
2.46.0
Dariqq wrote 5 months ago
[PATCH v2 1/2] home: home-shepherd-configuration: Add silent? field.
(address . 73383@debbugs.gnu.org)(name . Dariqq)(address . dariqq@posteo.net)
604543b7f28f26505e5449b0dc6e46a52c6e325b.1728634996.git.dariqq@posteo.net
* gnu/home/services/shepherd.scm (home-shepherd-configuration): Add silent? field.
(launch-shepherd-gexp): Conditionally invoke shepherd with --silent.
* doc/guix.texi (home-shepherd-configuration): Document it.

Change-Id: I1ce7a92c2777ebded39fe293b0bdcbd03562b4fc
---
doc/guix.texi | 4 ++++
gnu/home/services/shepherd.scm | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)

Toggle diff (56 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 8f3b8ef6cd..10d4214563 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46071,6 +46071,10 @@ Shepherd Home Service
@item auto-start? (default: @code{#t})
Whether or not to start Shepherd on first login.
+@item silent? (default: @code{#t})
+When true, the @command{shepherd} process does not write
+anything to standard output when started automatically.
+
@item services (default: @code{'()})
A list of @code{<shepherd-service>} to start.
You should probably use the service extension
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index dfe4030a4e..75b80bfa26 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -32,6 +32,7 @@ (define-module (gnu home services shepherd)
home-shepherd-configuration?
home-shepherd-configuration-shepherd
home-shepherd-configuration-auto-start?
+ home-shepherd-configuration-silent?
home-shepherd-configuration-services)
#:re-export (shepherd-service
shepherd-service?
@@ -58,6 +59,8 @@ (define-record-type* <home-shepherd-configuration>
(default #t))
(daemonize? home-shepherd-configuration-daemonize?
(default #t))
+ (silent? home-shepherd-configuration-silent?
+ (default #t))
(services home-shepherd-configuration-services
(default '())))
@@ -107,7 +110,8 @@ (define (home-shepherd-configuration-file config)
(scheme-file "shepherd.conf" config)))
(define (launch-shepherd-gexp config)
- (let* ((shepherd (home-shepherd-configuration-shepherd config)))
+ (let* ((shepherd (home-shepherd-configuration-shepherd config))
+ (silent? (home-shepherd-configuration-silent? config)))
(if (home-shepherd-configuration-auto-start? config)
(with-imported-modules '((guix build utils))
#~(unless (file-exists?
@@ -125,6 +129,7 @@ (define (launch-shepherd-gexp config)
#$(file-append shepherd "/bin/shepherd")
"--logfile"
(string-append log-dir "/shepherd.log")
+ #$@(if silent? '("--silent") '())
"--config"
#$(home-shepherd-configuration-file config)))))
#~"")))
--
2.46.0
Dariqq wrote 5 months ago
[PATCH v2 2/2] doc: Document home-shepherd-configuration-daemonize?
(address . 73383@debbugs.gnu.org)(name . Dariqq)(address . dariqq@posteo.net)
708aabc3a290dc32536c9a4afc660ecdef646e05.1728634996.git.dariqq@posteo.net
* gnu/home/services/shepherd.scm: Export home-shepherd-configuration-daemonize?.
* doc/guix.texi (home-shepherd-configuration): Add entry for daemonize? field.

Change-Id: Ifd1518c89fe8d5869d5e6469823dafd8457f24f1
---
doc/guix.texi | 3 +++
gnu/home/services/shepherd.scm | 1 +
2 files changed, 4 insertions(+)

Toggle diff (28 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 10d4214563..b786e1b022 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46071,6 +46071,9 @@ Shepherd Home Service
@item auto-start? (default: @code{#t})
Whether or not to start Shepherd on first login.
+@item daemonize? (default: @code{#t})
+Whether or not to run Shepherd in the background.
+
@item silent? (default: @code{#t})
When true, the @command{shepherd} process does not write
anything to standard output when started automatically.
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index 75b80bfa26..5ea8462020 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -32,6 +32,7 @@ (define-module (gnu home services shepherd)
home-shepherd-configuration?
home-shepherd-configuration-shepherd
home-shepherd-configuration-auto-start?
+ home-shepherd-configuration-daemonize?
home-shepherd-configuration-silent?
home-shepherd-configuration-services)
#:re-export (shepherd-service
--
2.46.0
Ludovic Courtès wrote 5 months ago
Re: [bug#73383] [PATCH v2 0/2] home-shepherd-configuration: add silent? and document daemonize?
(name . Dariqq)(address . dariqq@posteo.net)
87iktv3puz.fsf@gnu.org
Hello,

Dariqq <dariqq@posteo.net> skribis:

Toggle quote (11 lines)
> Here is v2:
>
> Changes:
> * Change default-value of the silent? field to #t.
> * Update the documentation. I added something that (hopefully) makes it obvious that the field is intended to be used together with the auto-start? field.
> * Added a second patch to document the daemonize? field and export the field-accessor. Should it warn about the issue when dameonize? is #f but auto-start? is #t blocking logins?
>
> Dariqq (2):
> home: home-shepherd-configuration: Add silent? field.
> doc: Document home-shepherd-configuration-daemonize?

Applied, thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 73383
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
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help