View | Details | Raw Unified | Return to bug 148062
Collapse All | Expand All

(-)gpa/Makefile (-4 / +7 lines)
Lines 7-22 Link Here
7
7
8
PORTNAME=	gpa
8
PORTNAME=	gpa
9
PORTVERSION=	0.9.0
9
PORTVERSION=	0.9.0
10
PORTREVISION=	5
10
PORTREVISION=	6
11
CATEGORIES=	security
11
CATEGORIES=	security
12
MASTER_SITES=	http://wald.intevation.org/frs/download.php/603/
12
MASTER_SITES=	http://wald.intevation.org/frs/download.php/603/
13
13
14
MAINTAINER=	bsdkaffee@gmail.com
14
MAINTAINER=	bsdkaffee@gmail.com
15
COMMENT=	A graphical frontend for the GNU Privacy Guard
15
COMMENT=	A graphical frontend for the GNU Privacy Guard
16
16
17
LIB_DEPENDS=	gpgme.18:${PORTSDIR}/security/gpgme
17
LIB_DEPENDS=	assuan.0:${PORTSDIR}/security/libassuan \
18
BUILD_DEPENDS=	gpgv2:${PORTSDIR}/security/gnupg \
18
		gpgme.18:${PORTSDIR}/security/gpgme
19
		libassuan-1>=1.0.5:${PORTSDIR}/security/libassuan-1
19
BUILD_DEPENDS=	gpgv2:${PORTSDIR}/security/gnupg
20
RUN_DEPENDS=	gpgv2:${PORTSDIR}/security/gnupg
20
RUN_DEPENDS=	gpgv2:${PORTSDIR}/security/gnupg
21
21
22
USE_BZIP2=	yes
22
USE_BZIP2=	yes
Lines 27-32 Link Here
27
		GPGKEYS_LDAP="${LOCALBASE}/libexec/gpg2keys_ldap"
27
		GPGKEYS_LDAP="${LOCALBASE}/libexec/gpg2keys_ldap"
28
MAKE_JOBS_SAFE=	yes
28
MAKE_JOBS_SAFE=	yes
29
29
30
LICENSE=	GPLv3
31
LICENSE_FILE=	${WRKSRC}/COPYING
32
30
OPTIONS=	NLS "Native language support" on
33
OPTIONS=	NLS "Native language support" on
31
34
32
.include <bsd.port.pre.mk>
35
.include <bsd.port.pre.mk>
(-)gpa/files/patch-configure (+13 lines)
Line 0 Link Here
1
--- ./configure.orig	2010-06-22 05:32:25.000000000 -0400
2
+++ ./configure	2010-06-22 05:33:16.000000000 -0400
3
@@ -1808,8 +1808,8 @@
4
 
5
 
6
 NEED_GPG_ERROR_VERSION=1.4
7
-NEED_LIBASSUAN_API=1
8
-NEED_LIBASSUAN_VERSION=1.0.4
9
+NEED_LIBASSUAN_API=2
10
+NEED_LIBASSUAN_VERSION=1.1.0
11
 NEED_GPGME_API=1
12
 NEED_GPGME_VERSION=1.2.0
13
 
(-)gpa/files/patch-src__server.c (+374 lines)
Line 0 Link Here
1
--- ./src/server.c.orig	2009-05-13 03:11:11.000000000 -0400
2
+++ ./src/server.c	2010-06-22 05:31:57.000000000 -0400
3
@@ -568,7 +568,7 @@
4
    the last command.  A RESET command undoes the effect of this
5
    command.
6
 */
7
-static int
8
+static gpg_error_t
9
 cmd_session (assuan_context_t ctx, char *line)
10
 {
11
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
12
@@ -594,7 +594,7 @@
13
   validity right away; if it does not (as here) all recipients are
14
   checked at the time of the ENCRYPT command.  All RECIPIENT commands
15
   are cumulative until a RESET or an successful ENCRYPT command.  */
16
-static int
17
+static gpg_error_t
18
 cmd_recipient (assuan_context_t ctx, char *line)
19
 {
20
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
21
@@ -615,7 +615,7 @@
22
    Set the file descriptor to read a message which is used with
23
    detached signatures.
24
  */
25
-static int 
26
+static gpg_error_t
27
 cmd_message (assuan_context_t ctx, char *line)
28
 {
29
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
30
@@ -659,7 +659,7 @@
31
 
32
    Encrypt the data received on INPUT to OUTPUT.
33
 */
34
-static int 
35
+static gpg_error_t
36
 cmd_encrypt (assuan_context_t ctx, char *line)
37
 {
38
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
39
@@ -755,7 +755,7 @@
40
 
41
    Dummy encryption command used to check whether the given recipients
42
    are all valid and to tell the client the preferred protocol.  */
43
-static int 
44
+static gpg_error_t
45
 cmd_prep_encrypt (assuan_context_t ctx, char *line)
46
 {
47
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
48
@@ -814,7 +814,7 @@
49
     @code{RESET} command.  A second command overrides the effect of
50
     the first one; if EMAIL is not given the server shall use the
51
     default signing key.  */
52
-static int
53
+static gpg_error_t
54
 cmd_sender (assuan_context_t ctx, char *line)
55
 {
56
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
57
@@ -867,7 +867,7 @@
58
 
59
    Sign the data received on INPUT to OUTPUT.
60
 */
61
-static int 
62
+static gpg_error_t
63
 cmd_sign (assuan_context_t ctx, char *line)
64
 {
65
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
66
@@ -943,7 +943,7 @@
67
    If the option --no-verify is given, the server should not try to
68
    verify a signature, in case the input data is an OpenPGP combined
69
    message.  */
70
-static int 
71
+static gpg_error_t
72
 cmd_decrypt (assuan_context_t ctx, char *line)
73
 {
74
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
75
@@ -1058,7 +1058,7 @@
76
 
77
    The DISPLAYSTRING is a percent-and-plus-encoded string with a short
78
    human readable description of the status.  */
79
-static int 
80
+static gpg_error_t
81
 cmd_verify (assuan_context_t ctx, char *line)
82
 {
83
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
84
@@ -1143,7 +1143,7 @@
85
    manager is brought into the foregound and that this command
86
    immediatley returns.
87
 */
88
-static int
89
+static gpg_error_t
90
 cmd_start_keymanager (assuan_context_t ctx, char *line)
91
 {
92
   gpa_open_key_manager (NULL, NULL);
93
@@ -1157,7 +1157,7 @@
94
    manager is brought into the foregound and that this command
95
    immediatley returns.
96
 */
97
-static int
98
+static gpg_error_t
99
 cmd_start_cardmanager (assuan_context_t ctx, char *line)
100
 {
101
   gpa_open_cardmanager (NULL, NULL);
102
@@ -1172,7 +1172,7 @@
103
    manager is brought into the foregound and that this command
104
    immediatley returns.
105
 */
106
-static int
107
+static gpg_error_t
108
 cmd_start_confdialog (assuan_context_t ctx, char *line)
109
 {
110
   gpa_open_settings_dialog (NULL, NULL);
111
@@ -1191,7 +1191,7 @@
112
      version     - Return the version of the program.
113
      pid         - Return the process id of the server.
114
  */
115
-static int
116
+static gpg_error_t
117
 cmd_getinfo (assuan_context_t ctx, char *line)
118
 {
119
   gpg_error_t err;
120
@@ -1295,7 +1295,7 @@
121
 
122
    Set the files on which to operate.
123
  */
124
-static int
125
+static gpg_error_t
126
 cmd_file (assuan_context_t ctx, char *line)
127
 {
128
   gpg_error_t err = 0;
129
@@ -1366,7 +1366,7 @@
130
 
131
 
132
 /* ENCRYPT_FILES --nohup  */
133
-static int
134
+static gpg_error_t
135
 cmd_encrypt_files (assuan_context_t ctx, char *line)
136
 {
137
   gpg_error_t err;
138
@@ -1389,7 +1389,7 @@
139
 
140
 
141
 /* SIGN_FILES --nohup  */
142
-static int
143
+static gpg_error_t
144
 cmd_sign_files (assuan_context_t ctx, char *line)
145
 {
146
   gpg_error_t err;
147
@@ -1412,7 +1412,7 @@
148
 
149
 
150
 /* ENCRYPT_SIGN_FILES --nohup  */
151
-static int
152
+static gpg_error_t
153
 cmd_encrypt_sign_files (assuan_context_t ctx, char *line)
154
 {
155
   gpg_error_t err;
156
@@ -1474,7 +1474,7 @@
157
 
158
 
159
 /* DECRYPT_FILES --nohup  */
160
-static int
161
+static gpg_error_t
162
 cmd_decrypt_files (assuan_context_t ctx, char *line)
163
 {
164
   gpg_error_t err;
165
@@ -1497,7 +1497,7 @@
166
 
167
 
168
 /* VERIFY_FILES --nohup  */
169
-static int
170
+static gpg_error_t
171
 cmd_verify_files (assuan_context_t ctx, char *line)
172
 {
173
   gpg_error_t err;
174
@@ -1520,7 +1520,7 @@
175
 
176
 
177
 /* DECRYPT_VERIFY_FILES --nohup  */
178
-static int
179
+static gpg_error_t
180
 cmd_decrypt_verify_files (assuan_context_t ctx, char *line)
181
 {
182
   gpg_error_t err;
183
@@ -1543,7 +1543,7 @@
184
 
185
 
186
 /* IMPORT_FILES --nohup  */
187
-static int
188
+static gpg_error_t
189
 cmd_import_files (assuan_context_t ctx, char *line)
190
 {
191
   gpg_error_t err;
192
@@ -1567,7 +1567,7 @@
193
 
194
 
195
 /* CHECKSUM_CREATE_FILES --nohup  */
196
-static int
197
+static gpg_error_t
198
 cmd_checksum_create_files (assuan_context_t ctx, char *line)
199
 {
200
   gpg_error_t err;
201
@@ -1591,7 +1591,7 @@
202
 
203
 
204
 /* CHECKSUM_VERIFY_FILES --nohup  */
205
-static int
206
+static gpg_error_t
207
 cmd_checksum_verify_files (assuan_context_t ctx, char *line)
208
 {
209
   gpg_error_t err;
210
@@ -1614,8 +1614,8 @@
211
 }
212
 
213
 
214
-static void
215
-reset_notify (assuan_context_t ctx)
216
+static gpg_error_t
217
+reset_notify (assuan_context_t ctx, char *line)
218
 {
219
   conn_ctrl_t ctrl = assuan_get_pointer (ctx);
220
 
221
@@ -1639,6 +1639,7 @@
222
   ctrl->session_number = 0;
223
   xfree (ctrl->session_title);
224
   ctrl->session_title = NULL;
225
+  return 0;
226
 }
227
 
228
 
229
@@ -1648,7 +1649,7 @@
230
 {
231
   static struct {
232
     const char *name;
233
-    int (*handler)(assuan_context_t, char *line);
234
+    assuan_handler_t handler;
235
   } table[] = {
236
     { "SESSION", cmd_session },
237
     { "RECIPIENT", cmd_recipient },
238
@@ -1681,7 +1682,8 @@
239
 
240
   for (i=0; table[i].name; i++)
241
     {
242
-      rc = assuan_register_command (ctx, table[i].name, table[i].handler);
243
+      rc = assuan_register_command (ctx, table[i].name, table[i].handler,
244
+				    NULL);
245
       if (rc)
246
         return rc;
247
     } 
248
@@ -1692,7 +1694,7 @@
249
 
250
 /* Prepare for a new connection on descriptor FD.  */
251
 static assuan_context_t
252
-connection_startup (int fd)
253
+connection_startup (assuan_fd_t fd)
254
 {
255
   gpg_error_t err;
256
   assuan_context_t ctx;
257
@@ -1700,7 +1702,16 @@
258
 
259
   /* Get an Assuan context for the already accepted file descriptor
260
      FD.  Allow descriptor passing.  */
261
-  err = assuan_init_socket_server_ext (&ctx, ASSUAN_INT2FD(fd), 1|2);
262
+  err = assuan_new (&ctx);
263
+  if (err)
264
+    {
265
+      g_debug ("failed to initialize the new connection: %s",
266
+               gpg_strerror (err));
267
+      return NULL;
268
+    }
269
+
270
+  err = assuan_init_socket_server (ctx, fd, ASSUAN_SOCKET_SERVER_FDPASSING
271
+				   | ASSUAN_SOCKET_SERVER_ACCEPTED);
272
   if (err)
273
     {
274
       g_debug ("failed to initialize the new connection: %s",
275
@@ -1712,7 +1723,7 @@
276
     {
277
       g_debug ("failed to register commands with Assuan: %s",
278
                gpg_strerror (err));
279
-      assuan_deinit_server (ctx);
280
+      assuan_release (ctx);
281
       return NULL;
282
     }
283
 
284
@@ -1736,8 +1747,8 @@
285
     {
286
       conn_ctrl_t ctrl = assuan_get_pointer (ctx);
287
 
288
-      reset_notify (ctx);
289
-      assuan_deinit_server (ctx);
290
+      reset_notify (ctx, NULL);
291
+      assuan_release (ctx);
292
       g_free (ctrl);
293
       connection_counter--;
294
       if (!connection_counter && shutdown_pending)
295
@@ -1805,14 +1816,23 @@
296
         }
297
       else
298
         {
299
+	  int done = 0;
300
           ctrl->in_command++;
301
-          err = assuan_process_next (ctx);
302
+          err = assuan_process_next (ctx, &done);
303
           ctrl->in_command--;
304
-          g_debug ("assuan_process_next returned: %s",
305
-                   err == -1? "EOF": gpg_strerror (err));
306
+	  if (err)
307
+	    {
308
+	      g_debug ("assuan_process_next returned: %s <%s>",
309
+		       gpg_strerror (err), gpg_strsource (err));
310
+	    }
311
+	  else
312
+	    {
313
+	      g_debug ("assuan_process_next returned: %s",
314
+		       done ? "done" : "success");
315
+	    }
316
           if (gpg_err_code (err) == GPG_ERR_EAGAIN)
317
             ; /* Ignore.  */
318
-          else if (gpg_err_code (err) == GPG_ERR_EOF || err == -1)
319
+          else if (!err && done)
320
             {
321
               if (ctrl->cont_cmd)
322
                 ctrl->client_died = 1; /* Need to delay the cleanup.  */
323
@@ -1868,14 +1888,14 @@
324
       g_debug ("error accepting connection: %s", strerror (errno));
325
       goto leave;
326
     }
327
-  if (assuan_sock_check_nonce (ASSUAN_INT2FD(fd), &socket_nonce))
328
+  if (assuan_sock_check_nonce ((assuan_fd_t) fd, &socket_nonce))
329
     {
330
       g_debug ("new connection at fd %d refused", fd); 
331
       goto leave;
332
     }
333
 
334
   g_debug ("new connection at fd %d", fd);
335
-  ctx = connection_startup (fd);
336
+  ctx = connection_startup ((assuan_fd_t) fd);
337
   if (!ctx)
338
     goto leave;
339
 
340
@@ -1911,7 +1931,7 @@
341
 
342
  leave:
343
   if (fd != -1)
344
-    assuan_sock_close (ASSUAN_INT2FD (fd));
345
+    assuan_sock_close ((assuan_fd_t) fd);
346
   return TRUE; /* Keep the listen_fd in the event loop.  */
347
 }
348
 
349
@@ -1929,7 +1949,7 @@
350
   GIOChannel *channel;
351
   unsigned int source_id;
352
 
353
-  assuan_set_assuan_err_source (GPG_ERR_SOURCE_DEFAULT);
354
+  assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
355
   
356
   socket_name = g_build_filename (gnupg_homedir, "S.uiserver", NULL);
357
   if (strlen (socket_name)+1 >= sizeof serv_addr.sun_path ) 
358
@@ -1974,14 +1994,14 @@
359
   g_free (socket_name);
360
   socket_name = NULL;
361
 
362
-  if (listen (ASSUAN_FD2INT (fd), 5) == -1)
363
+  if (listen ((int) fd, 5) == -1)
364
     {
365
       g_debug ("listen() failed: %s\n", strerror (errno));
366
       assuan_sock_close (fd);
367
       return;
368
     }
369
 #ifdef HAVE_W32_SYSTEM
370
-  channel = g_io_channel_win32_new_socket (ASSUAN_FD2INT(fd));
371
+  channel = g_io_channel_win32_new_socket ((int) fd);
372
 #else
373
   channel = g_io_channel_unix_new (fd);
374
 #endif

Return to bug 148062