* [bug#45040] [PATCH] service: Add shepherd discover action.
@ 2020-12-04 9:54 Mathieu Othacehe
2020-12-06 22:14 ` Ludovic Courtès
0 siblings, 1 reply; 3+ messages in thread
From: Mathieu Othacehe @ 2020-12-04 9:54 UTC (permalink / raw)
To: 45040; +Cc: Mathieu Othacehe
* gnu/services/base.scm (shepherd-discover-action): New procedure,
(guix-shepherd-service)[<actions>]: add it,
[<start>]: honor it.
* doc/guix.texi (Invoking guix-daemon): Document it.
---
doc/guix.texi | 8 ++++++++
gnu/services/base.scm | 32 ++++++++++++++++++++++++++++----
2 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 1493c68e27..4fc1dffe98 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1602,6 +1602,14 @@ Servers may serve substitute over HTTP, unencrypted, so anyone on the
LAN can see what software you’re installing.
@end enumerate
+It is also possible to enable or disable substitute servers discovery at
+run-time by running:
+
+@example
+herd discover guix-daemon on
+herd discover guix-daemon off
+@end example
+
@item --disable-deduplication
@cindex deduplication
Disable automatic file ``deduplication'' in the store.
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index d0d88e18a6..709d011f53 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1568,6 +1568,27 @@ proxy of 'guix-daemon'...~%")
(environ environment)
#t)))))
+(define shepherd-discover-action
+ ;; Shepherd action to enable or disable substitute servers discovery.
+ (shepherd-action
+ (name 'discover)
+ (documentation
+ "Enable or disable substitute servers discovery and restart the
+'guix-daemon'.")
+ (procedure #~(lambda* (_ status)
+ (let ((environment (environ)))
+ (if (and status
+ (string=? status "on"))
+ (begin
+ (format #t "enable substitute servers discovery~%")
+ (setenv "discover" "on"))
+ (begin
+ (format #t "disable substitute servers discovery~%")
+ (unsetenv "discover")))
+ (action 'guix-daemon 'restart)
+ (environ environment)
+ #t)))))
+
(define (guix-shepherd-service config)
"Return a <shepherd-service> for the Guix daemon service with CONFIG."
(match-record config <guix-configuration>
@@ -1579,7 +1600,8 @@ proxy of 'guix-daemon'...~%")
(documentation "Run the Guix daemon.")
(provision '(guix-daemon))
(requirement '(user-processes))
- (actions (list shepherd-set-http-proxy-action))
+ (actions (list shepherd-set-http-proxy-action
+ shepherd-discover-action))
(modules '((srfi srfi-1)
(ice-9 match)
(gnu build shepherd)))
@@ -1594,6 +1616,9 @@ proxy of 'guix-daemon'...~%")
;; the 'set-http-proxy' action.
(or (getenv "http_proxy") #$http-proxy))
+ (define discover?
+ (or (getenv "discover") #$discover?))
+
;; Start the guix-daemon from a container, when supported,
;; to solve an installation issue. See the comment below for
;; more details.
@@ -1608,9 +1633,8 @@ proxy of 'guix-daemon'...~%")
#$@(if use-substitutes?
'()
'("--no-substitutes"))
- #$@(if discover?
- '("--discover=yes")
- '())
+ (string-append "--discover="
+ (if discover? "yes" "no"))
"--substitute-urls" #$(string-join substitute-urls)
#$@extra-options
--
2.29.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#45040] [PATCH] service: Add shepherd discover action.
2020-12-04 9:54 [bug#45040] [PATCH] service: Add shepherd discover action Mathieu Othacehe
@ 2020-12-06 22:14 ` Ludovic Courtès
2020-12-07 9:42 ` bug#45040: " Mathieu Othacehe
0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2020-12-06 22:14 UTC (permalink / raw)
To: Mathieu Othacehe; +Cc: 45040
Hi!
Mathieu Othacehe <othacehe@gnu.org> skribis:
> * gnu/services/base.scm (shepherd-discover-action): New procedure,
> (guix-shepherd-service)[<actions>]: add it,
> [<start>]: honor it.
> * doc/guix.texi (Invoking guix-daemon): Document it.
[...]
> +It is also possible to enable or disable substitute servers discovery at
s/servers/server/
> +run-time by running:
> +
> +@example
> +herd discover guix-daemon on
> +herd discover guix-daemon off
Should it be “discovery” instead of “discover”? Hmm…
Anyway, LGTM!
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#45040: [PATCH] service: Add shepherd discover action.
2020-12-06 22:14 ` Ludovic Courtès
@ 2020-12-07 9:42 ` Mathieu Othacehe
0 siblings, 0 replies; 3+ messages in thread
From: Mathieu Othacehe @ 2020-12-07 9:42 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 45040-done
Hey,
> s/servers/server/
Fixed!
>> +run-time by running:
>> +
>> +@example
>> +herd discover guix-daemon on
>> +herd discover guix-daemon off
>
> Should it be “discovery” instead of “discover”? Hmm…
The guix-daemon option is called "discover" so I would keep it that way,
but I also hesitated.
Pushed as e461d3b750080b03f3deea0b44b99c2fda9767ab.
Thanks for reviewing,
Mathieu
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-12-07 9:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-04 9:54 [bug#45040] [PATCH] service: Add shepherd discover action Mathieu Othacehe
2020-12-06 22:14 ` Ludovic Courtès
2020-12-07 9:42 ` bug#45040: " Mathieu Othacehe
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).