Subject: Re: [bug#30950] [PATCH shepherd]: Update required guile version, and remove some hacks

From: [email-masked] (Ludovic Courtès)
Date: Thu, 29 Mar 2018 22:14:01 +0200

Hello!

Carlo Zancanaro <[email-masked]> skribis:

> I'm not very familiar with autotools, but I think I got the configure
> incantation right (I stole it from Guix).

Well done.  :-)

> From 8c812534137a5dc17dd8073706983c451d26f2db Mon Sep 17 00:00:00 2001
> From: Carlo Zancanaro <[email-masked]>
> Date: Mon, 26 Mar 2018 14:44:18 +1100
> Subject: [PATCH 1/3] Update Guile dependency to 2.0.13 or later
>
> * README (Requirements): Change 2.x to 2.0.13 or later.
> * configure.ac: Check for 2.0.13 or later if Guile 2.0 is detected.

LGTM.

> From e11708aba0fbafd4c83273ee1fa5147e54d1c80e Mon Sep 17 00:00:00 2001
> From: Carlo Zancanaro <[email-masked]>
> Date: Mon, 26 Mar 2018 14:49:18 +1100
> Subject: [PATCH 2/3] Remove EINTR-safe, and all references to it.
>
> * modules/shepherd/support.scm (EINTR-safe): Remove procedure and its export.
> * modules/shepherd/service.scm (system*, system*): Remove now-unnecessary
>   procedures.
>   (waitpid*): Remove references to EINTR-safe.
> * modules/shepherd.scm (main): Remove references to EINTR-safe.

LGTM.

> From 63bc9339d88d8f1bd8a9b366774ce8e33d76dd00 Mon Sep 17 00:00:00 2001
> From: Carlo Zancanaro <[email-masked]>
> Date: Mon, 26 Mar 2018 14:55:32 +1100
> Subject: [PATCH 3/3] Remove SIGALRM hack.
>
> * modules/shepherd.scm (main): Remove SIGALRM hack for guile <= 2.0.9.
> ---
>  modules/shepherd.scm | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/modules/shepherd.scm b/modules/shepherd.scm
> index 5d97598..69fd69d 100644
> --- a/modules/shepherd.scm
> +++ b/modules/shepherd.scm
> @@ -207,15 +207,6 @@
>                 (apply format #f (gettext (cadr args)) (caddr args))
>                 (quit 1))))
>  
> -      (when (provided? 'threads)
> -        ;; XXX: This terrible hack allows us to make sure that signal handlers
> -        ;; get a chance to run in a timely fashion.  Without it, after an EINTR,
> -        ;; we could restart the accept(2) call below before the corresponding
> -        ;; async has been queued.  See the thread at
> -        ;; <https://lists.gnu.org/archive/html/guile-devel/2013-07/msg00004.html>.
> -        (sigaction SIGALRM (lambda _ (alarm 1)))
> -        (alarm 1))

Unfortunately I think the problem remains.  That’s one of the reasons
for using signalfd(2).

Can you create an account on Savannah so I can add you to the group and
let you push the first two patches?  :-)

Thank you!

Ludo’.