Revision
148238
Author
mps@macports.org
Date
2016-04-30 13:54:17 -0700 (Sat, 30 Apr 2016)

Log Message

iksemel: fix linking issue with gnutls 3.4.x (Included in security patch from Debian)

Modified Paths

Added Paths

Diff

Modified: trunk/dports/textproc/iksemel/Portfile (148237 => 148238)


--- trunk/dports/textproc/iksemel/Portfile	2016-04-30 19:22:57 UTC (rev 148237)
+++ trunk/dports/textproc/iksemel/Portfile	2016-04-30 20:54:17 UTC (rev 148238)
@@ -27,6 +27,8 @@
 
 depends_lib             port:gnutls
 
+patchfiles              patch-src-stream.c.diff
+
 post-extract {
     # https://code.google.com/p/iksemel/issues/detail?id=29
     xinstall -d ${workpath}/bin

Added: trunk/dports/textproc/iksemel/files/patch-src-stream.c.diff (0 => 148238)


--- trunk/dports/textproc/iksemel/files/patch-src-stream.c.diff	                        (rev 0)
+++ trunk/dports/textproc/iksemel/files/patch-src-stream.c.diff	2016-04-30 20:54:17 UTC (rev 148238)
@@ -0,0 +1,30 @@
+Index: libiksemel-1.4/src/stream.c
+===================================================================
+--- src/stream.c
++++ src/stream.c
+@@ -63,11 +63,7 @@ tls_pull (iksparser *prs, char *buffer,
+ static int
+ handshake (struct stream_data *data)
+ {
+-	const int protocol_priority[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
+-	const int kx_priority[] = { GNUTLS_KX_RSA, 0 };
+-	const int cipher_priority[] = { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, 0};
+-	const int comp_priority[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0 };
+-	const int mac_priority[] = { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0 };
++	const char *priority_string = "SECURE256:+SECURE192:-VERS-TLS-ALL:+VERS-TLS1.2";
+ 	int ret;
+ 
+ 	if (gnutls_global_init () != 0)
+@@ -80,11 +76,7 @@ handshake (struct stream_data *data)
+ 		gnutls_certificate_free_credentials (data->cred);
+ 		return IKS_NOMEM;
+ 	}
+-	gnutls_protocol_set_priority (data->sess, protocol_priority);
+-	gnutls_cipher_set_priority(data->sess, cipher_priority);
+-	gnutls_compression_set_priority(data->sess, comp_priority);
+-	gnutls_kx_set_priority(data->sess, kx_priority);
+-	gnutls_mac_set_priority(data->sess, mac_priority);
++	gnutls_priority_set_direct(data->sess, priority_string, NULL);
+ 	gnutls_credentials_set (data->sess, GNUTLS_CRD_CERTIFICATE, data->cred);
+ 
+ 	gnutls_transport_set_push_function (data->sess, (gnutls_push_func) tls_push);