From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Jun 22 10:20:03 2010 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDF461065675 for ; Tue, 22 Jun 2010 10:20:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 97C488FC1D for ; Tue, 22 Jun 2010 10:20:03 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o5MAK3Ao029112 for ; Tue, 22 Jun 2010 10:20:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o5MAK3gR029100; Tue, 22 Jun 2010 10:20:03 GMT (envelope-from gnats) Resent-Date: Tue, 22 Jun 2010 10:20:03 GMT Resent-Message-Id: <201006221020.o5MAK3gR029100@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Jason E. Hale" Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80F36106564A; Tue, 22 Jun 2010 10:13:48 +0000 (UTC) (envelope-from bsdkaffee@gmail.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 1B3C98FC08; Tue, 22 Jun 2010 10:13:48 +0000 (UTC) Received: by mail-vw0-f54.google.com with SMTP id 1so2676266vws.13 for ; Tue, 22 Jun 2010 03:13:47 -0700 (PDT) Received: by 10.220.63.136 with SMTP id b8mr3081975vci.109.1277201626757; Tue, 22 Jun 2010 03:13:46 -0700 (PDT) Received: from mocha.verizon.net (c-24-3-43-53.hsd1.oh.comcast.net [24.3.43.53]) by mx.google.com with ESMTPS id b32sm12252581vcm.25.2010.06.22.03.13.45 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 22 Jun 2010 03:13:45 -0700 (PDT) Message-Id: <4c208cd9.e058dc0a.32d5.ffffbcb3@mx.google.com> Date: Tue, 22 Jun 2010 03:13:45 -0700 (PDT) From: "Jason E. Hale" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: dougb@FreeBSD.org Subject: ports/148062: [MAINTAINER] security/gpa: Fix build with newer libassuan X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "Jason E. Hale" List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2010 10:20:03 -0000 >Number: 148062 >Category: ports >Synopsis: [MAINTAINER] security/gpa: Fix build with newer libassuan >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Tue Jun 22 10:20:03 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Jason E. Hale >Release: FreeBSD 8.0-RELEASE i386 >Organization: none >Environment: System: FreeBSD mocha.verizon.net 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Fri Nov 27 18:56:06 EST 2009 root@mocha.verizon.net:/usr/obj/usr/src/sys/MOCHA8 i386 >Description: - Fix the build of security/gpa with libassuan 2.x - Patch for server.c taken from gpa svn. - Add LICENSE while here. >How-To-Repeat: Use attached diff. >Fix: --- 2010-06-22-gpa.diff begins here --- diff -ruN gpa.orig/Makefile gpa/Makefile --- gpa.orig/Makefile 2010-06-22 05:19:39.000000000 -0400 +++ gpa/Makefile 2010-06-22 05:45:08.000000000 -0400 @@ -7,16 +7,16 @@ PORTNAME= gpa PORTVERSION= 0.9.0 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= security MASTER_SITES= http://wald.intevation.org/frs/download.php/603/ MAINTAINER= bsdkaffee@gmail.com COMMENT= A graphical frontend for the GNU Privacy Guard -LIB_DEPENDS= gpgme.18:${PORTSDIR}/security/gpgme -BUILD_DEPENDS= gpgv2:${PORTSDIR}/security/gnupg \ - libassuan-1>=1.0.5:${PORTSDIR}/security/libassuan-1 +LIB_DEPENDS= assuan.0:${PORTSDIR}/security/libassuan \ + gpgme.18:${PORTSDIR}/security/gpgme +BUILD_DEPENDS= gpgv2:${PORTSDIR}/security/gnupg RUN_DEPENDS= gpgv2:${PORTSDIR}/security/gnupg USE_BZIP2= yes @@ -27,6 +27,9 @@ GPGKEYS_LDAP="${LOCALBASE}/libexec/gpg2keys_ldap" MAKE_JOBS_SAFE= yes +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + OPTIONS= NLS "Native language support" on .include diff -ruN gpa.orig/files/patch-configure gpa/files/patch-configure --- gpa.orig/files/patch-configure 1969-12-31 19:00:00.000000000 -0500 +++ gpa/files/patch-configure 2010-06-22 05:33:32.000000000 -0400 @@ -0,0 +1,13 @@ +--- ./configure.orig 2010-06-22 05:32:25.000000000 -0400 ++++ ./configure 2010-06-22 05:33:16.000000000 -0400 +@@ -1808,8 +1808,8 @@ + + + NEED_GPG_ERROR_VERSION=1.4 +-NEED_LIBASSUAN_API=1 +-NEED_LIBASSUAN_VERSION=1.0.4 ++NEED_LIBASSUAN_API=2 ++NEED_LIBASSUAN_VERSION=1.1.0 + NEED_GPGME_API=1 + NEED_GPGME_VERSION=1.2.0 + diff -ruN gpa.orig/files/patch-src__server.c gpa/files/patch-src__server.c --- gpa.orig/files/patch-src__server.c 1969-12-31 19:00:00.000000000 -0500 +++ gpa/files/patch-src__server.c 2010-06-22 05:33:32.000000000 -0400 @@ -0,0 +1,374 @@ +--- ./src/server.c.orig 2009-05-13 03:11:11.000000000 -0400 ++++ ./src/server.c 2010-06-22 05:31:57.000000000 -0400 +@@ -568,7 +568,7 @@ + the last command. A RESET command undoes the effect of this + command. + */ +-static int ++static gpg_error_t + cmd_session (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -594,7 +594,7 @@ + validity right away; if it does not (as here) all recipients are + checked at the time of the ENCRYPT command. All RECIPIENT commands + are cumulative until a RESET or an successful ENCRYPT command. */ +-static int ++static gpg_error_t + cmd_recipient (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -615,7 +615,7 @@ + Set the file descriptor to read a message which is used with + detached signatures. + */ +-static int ++static gpg_error_t + cmd_message (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -659,7 +659,7 @@ + + Encrypt the data received on INPUT to OUTPUT. + */ +-static int ++static gpg_error_t + cmd_encrypt (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -755,7 +755,7 @@ + + Dummy encryption command used to check whether the given recipients + are all valid and to tell the client the preferred protocol. */ +-static int ++static gpg_error_t + cmd_prep_encrypt (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -814,7 +814,7 @@ + @code{RESET} command. A second command overrides the effect of + the first one; if EMAIL is not given the server shall use the + default signing key. */ +-static int ++static gpg_error_t + cmd_sender (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -867,7 +867,7 @@ + + Sign the data received on INPUT to OUTPUT. + */ +-static int ++static gpg_error_t + cmd_sign (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -943,7 +943,7 @@ + If the option --no-verify is given, the server should not try to + verify a signature, in case the input data is an OpenPGP combined + message. */ +-static int ++static gpg_error_t + cmd_decrypt (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -1058,7 +1058,7 @@ + + The DISPLAYSTRING is a percent-and-plus-encoded string with a short + human readable description of the status. */ +-static int ++static gpg_error_t + cmd_verify (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); +@@ -1143,7 +1143,7 @@ + manager is brought into the foregound and that this command + immediatley returns. + */ +-static int ++static gpg_error_t + cmd_start_keymanager (assuan_context_t ctx, char *line) + { + gpa_open_key_manager (NULL, NULL); +@@ -1157,7 +1157,7 @@ + manager is brought into the foregound and that this command + immediatley returns. + */ +-static int ++static gpg_error_t + cmd_start_cardmanager (assuan_context_t ctx, char *line) + { + gpa_open_cardmanager (NULL, NULL); +@@ -1172,7 +1172,7 @@ + manager is brought into the foregound and that this command + immediatley returns. + */ +-static int ++static gpg_error_t + cmd_start_confdialog (assuan_context_t ctx, char *line) + { + gpa_open_settings_dialog (NULL, NULL); +@@ -1191,7 +1191,7 @@ + version - Return the version of the program. + pid - Return the process id of the server. + */ +-static int ++static gpg_error_t + cmd_getinfo (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1295,7 +1295,7 @@ + + Set the files on which to operate. + */ +-static int ++static gpg_error_t + cmd_file (assuan_context_t ctx, char *line) + { + gpg_error_t err = 0; +@@ -1366,7 +1366,7 @@ + + + /* ENCRYPT_FILES --nohup */ +-static int ++static gpg_error_t + cmd_encrypt_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1389,7 +1389,7 @@ + + + /* SIGN_FILES --nohup */ +-static int ++static gpg_error_t + cmd_sign_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1412,7 +1412,7 @@ + + + /* ENCRYPT_SIGN_FILES --nohup */ +-static int ++static gpg_error_t + cmd_encrypt_sign_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1474,7 +1474,7 @@ + + + /* DECRYPT_FILES --nohup */ +-static int ++static gpg_error_t + cmd_decrypt_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1497,7 +1497,7 @@ + + + /* VERIFY_FILES --nohup */ +-static int ++static gpg_error_t + cmd_verify_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1520,7 +1520,7 @@ + + + /* DECRYPT_VERIFY_FILES --nohup */ +-static int ++static gpg_error_t + cmd_decrypt_verify_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1543,7 +1543,7 @@ + + + /* IMPORT_FILES --nohup */ +-static int ++static gpg_error_t + cmd_import_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1567,7 +1567,7 @@ + + + /* CHECKSUM_CREATE_FILES --nohup */ +-static int ++static gpg_error_t + cmd_checksum_create_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1591,7 +1591,7 @@ + + + /* CHECKSUM_VERIFY_FILES --nohup */ +-static int ++static gpg_error_t + cmd_checksum_verify_files (assuan_context_t ctx, char *line) + { + gpg_error_t err; +@@ -1614,8 +1614,8 @@ + } + + +-static void +-reset_notify (assuan_context_t ctx) ++static gpg_error_t ++reset_notify (assuan_context_t ctx, char *line) + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); + +@@ -1639,6 +1639,7 @@ + ctrl->session_number = 0; + xfree (ctrl->session_title); + ctrl->session_title = NULL; ++ return 0; + } + + +@@ -1648,7 +1649,7 @@ + { + static struct { + const char *name; +- int (*handler)(assuan_context_t, char *line); ++ assuan_handler_t handler; + } table[] = { + { "SESSION", cmd_session }, + { "RECIPIENT", cmd_recipient }, +@@ -1681,7 +1682,8 @@ + + for (i=0; table[i].name; i++) + { +- rc = assuan_register_command (ctx, table[i].name, table[i].handler); ++ rc = assuan_register_command (ctx, table[i].name, table[i].handler, ++ NULL); + if (rc) + return rc; + } +@@ -1692,7 +1694,7 @@ + + /* Prepare for a new connection on descriptor FD. */ + static assuan_context_t +-connection_startup (int fd) ++connection_startup (assuan_fd_t fd) + { + gpg_error_t err; + assuan_context_t ctx; +@@ -1700,7 +1702,16 @@ + + /* Get an Assuan context for the already accepted file descriptor + FD. Allow descriptor passing. */ +- err = assuan_init_socket_server_ext (&ctx, ASSUAN_INT2FD(fd), 1|2); ++ err = assuan_new (&ctx); ++ if (err) ++ { ++ g_debug ("failed to initialize the new connection: %s", ++ gpg_strerror (err)); ++ return NULL; ++ } ++ ++ err = assuan_init_socket_server (ctx, fd, ASSUAN_SOCKET_SERVER_FDPASSING ++ | ASSUAN_SOCKET_SERVER_ACCEPTED); + if (err) + { + g_debug ("failed to initialize the new connection: %s", +@@ -1712,7 +1723,7 @@ + { + g_debug ("failed to register commands with Assuan: %s", + gpg_strerror (err)); +- assuan_deinit_server (ctx); ++ assuan_release (ctx); + return NULL; + } + +@@ -1736,8 +1747,8 @@ + { + conn_ctrl_t ctrl = assuan_get_pointer (ctx); + +- reset_notify (ctx); +- assuan_deinit_server (ctx); ++ reset_notify (ctx, NULL); ++ assuan_release (ctx); + g_free (ctrl); + connection_counter--; + if (!connection_counter && shutdown_pending) +@@ -1805,14 +1816,23 @@ + } + else + { ++ int done = 0; + ctrl->in_command++; +- err = assuan_process_next (ctx); ++ err = assuan_process_next (ctx, &done); + ctrl->in_command--; +- g_debug ("assuan_process_next returned: %s", +- err == -1? "EOF": gpg_strerror (err)); ++ if (err) ++ { ++ g_debug ("assuan_process_next returned: %s <%s>", ++ gpg_strerror (err), gpg_strsource (err)); ++ } ++ else ++ { ++ g_debug ("assuan_process_next returned: %s", ++ done ? "done" : "success"); ++ } + if (gpg_err_code (err) == GPG_ERR_EAGAIN) + ; /* Ignore. */ +- else if (gpg_err_code (err) == GPG_ERR_EOF || err == -1) ++ else if (!err && done) + { + if (ctrl->cont_cmd) + ctrl->client_died = 1; /* Need to delay the cleanup. */ +@@ -1868,14 +1888,14 @@ + g_debug ("error accepting connection: %s", strerror (errno)); + goto leave; + } +- if (assuan_sock_check_nonce (ASSUAN_INT2FD(fd), &socket_nonce)) ++ if (assuan_sock_check_nonce ((assuan_fd_t) fd, &socket_nonce)) + { + g_debug ("new connection at fd %d refused", fd); + goto leave; + } + + g_debug ("new connection at fd %d", fd); +- ctx = connection_startup (fd); ++ ctx = connection_startup ((assuan_fd_t) fd); + if (!ctx) + goto leave; + +@@ -1911,7 +1931,7 @@ + + leave: + if (fd != -1) +- assuan_sock_close (ASSUAN_INT2FD (fd)); ++ assuan_sock_close ((assuan_fd_t) fd); + return TRUE; /* Keep the listen_fd in the event loop. */ + } + +@@ -1929,7 +1949,7 @@ + GIOChannel *channel; + unsigned int source_id; + +- assuan_set_assuan_err_source (GPG_ERR_SOURCE_DEFAULT); ++ assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT); + + socket_name = g_build_filename (gnupg_homedir, "S.uiserver", NULL); + if (strlen (socket_name)+1 >= sizeof serv_addr.sun_path ) +@@ -1974,14 +1994,14 @@ + g_free (socket_name); + socket_name = NULL; + +- if (listen (ASSUAN_FD2INT (fd), 5) == -1) ++ if (listen ((int) fd, 5) == -1) + { + g_debug ("listen() failed: %s\n", strerror (errno)); + assuan_sock_close (fd); + return; + } + #ifdef HAVE_W32_SYSTEM +- channel = g_io_channel_win32_new_socket (ASSUAN_FD2INT(fd)); ++ channel = g_io_channel_win32_new_socket ((int) fd); + #else + channel = g_io_channel_unix_new (fd); + #endif --- 2010-06-22-gpa.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: