1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Thu, 22 Oct 2020 11:32:00 +0900
Subject: buildd: sbuild randomly fails to sign changes file despite valid
signature keys
Forwarded: https://dev.gnupg.org/rGb1c56cf9e2bb51abfd47747128bd2a6285ed1623
---
common/asshelp.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/common/asshelp.c b/common/asshelp.c
index d87017e..9f269ab 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -477,8 +477,18 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
if (!(err = lock_spawning (&lock, gnupg_homedir (), "agent", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
+#ifdef HAVE_W32_SYSTEM
err = gnupg_spawn_process_detached (program? program : agent_program,
argv, NULL);
+#else
+ pid_t pid;
+
+ err = gnupg_spawn_process_fd (program? program : agent_program,
+ argv, -1, -1, -1, &pid);
+ if (!err)
+ err = gnupg_wait_process (program? program : agent_program,
+ pid, 1, NULL);
+#endif
if (err)
log_error ("failed to start agent '%s': %s\n",
agent_program, gpg_strerror (err));
@@ -612,7 +622,16 @@ start_new_dirmngr (assuan_context_t *r_ctx,
if (!(err = lock_spawning (&lock, gnupg_homedir (), "dirmngr", verbose))
&& assuan_socket_connect (ctx, sockname, 0, 0))
{
+#ifdef HAVE_W32_SYSTEM
err = gnupg_spawn_process_detached (dirmngr_program, argv, NULL);
+#else
+ pid_t pid;
+
+ err = gnupg_spawn_process_fd (dirmngr_program, argv,
+ -1, -1, -1, &pid);
+ if (!err)
+ err = gnupg_wait_process (dirmngr_program, pid, 1, NULL);
+#endif
if (err)
log_error ("failed to start the dirmngr '%s': %s\n",
dirmngr_program, gpg_strerror (err));
|