kalev pushed to tigervnc (master). "Fix the build with gnutls 3.4 (..more)"
notifications at fedoraproject.org
notifications at fedoraproject.org
Tue May 5 08:33:51 UTC 2015
>From 85b690b6cd0b35f01a7f168b723b5daa42ab6620 Mon Sep 17 00:00:00 2001
From: Kalev Lember <kalevlember at gmail.com>
Date: Tue, 5 May 2015 09:30:06 +0200
Subject: Fix the build with gnutls 3.4
https://bugzilla.redhat.com/show_bug.cgi?id=1218518
diff --git a/tigervnc-gnutls-3.4.patch b/tigervnc-gnutls-3.4.patch
new file mode 100644
index 0000000..491e488
--- /dev/null
+++ b/tigervnc-gnutls-3.4.patch
@@ -0,0 +1,68 @@
+Patch by Nikos Mavrogiannopoulos <nmavrogi at redhat.com>
+
+gnutls 3.4.0 drops gnutls_kx_set_priority which is used by tigervnc. The
+attached patch fixes this issue and allows tigervnc to compile with new gnutls
+versions.
+
+diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
+index 222748c..f7e9dfd 100644
+--- a/common/rfb/CSecurityTLS.cxx
++++ b/common/rfb/CSecurityTLS.cxx
+@@ -202,13 +202,12 @@ bool CSecurityTLS::processMsg(CConnection* cc)
+
+ void CSecurityTLS::setParam()
+ {
+- static const int kx_anon_priority[] = { GNUTLS_KX_ANON_DH, 0 };
+- static const int kx_priority[] = { GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA,
+- GNUTLS_KX_DHE_RSA, GNUTLS_KX_SRP, 0 };
++ int ret;
+
+ if (anon) {
+- if (gnutls_kx_set_priority(session, kx_anon_priority) != GNUTLS_E_SUCCESS)
+- throw AuthFailureException("gnutls_kx_set_priority failed");
++ ret = gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:+ANON-DH", NULL);
++ if (ret < 0)
++ throw AuthFailureException("gnutls_priority_set_direct failed");
+
+ if (gnutls_anon_allocate_client_credentials(&anon_cred) != GNUTLS_E_SUCCESS)
+ throw AuthFailureException("gnutls_anon_allocate_client_credentials failed");
+@@ -218,8 +217,9 @@ void CSecurityTLS::setParam()
+
+ vlog.debug("Anonymous session has been set");
+ } else {
+- if (gnutls_kx_set_priority(session, kx_priority) != GNUTLS_E_SUCCESS)
+- throw AuthFailureException("gnutls_kx_set_priority failed");
++ ret = gnutls_set_default_priority(session);
++ if (ret < 0)
++ throw AuthFailureException("gnutls_set_default_priority failed");
+
+ if (gnutls_certificate_allocate_credentials(&cert_cred) != GNUTLS_E_SUCCESS)
+ throw AuthFailureException("gnutls_certificate_allocate_credentials failed");
+diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
+index d4e88d7..7ac4652 100644
+--- a/common/rfb/SSecurityTLS.cxx
++++ b/common/rfb/SSecurityTLS.cxx
+@@ -166,13 +166,17 @@ bool SSecurityTLS::processMsg(SConnection *sc)
+
+ void SSecurityTLS::setParams(gnutls_session session)
+ {
+- static const int kx_anon_priority[] = { GNUTLS_KX_ANON_DH, 0 };
+- static const int kx_priority[] = { GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA,
+- GNUTLS_KX_DHE_RSA, GNUTLS_KX_SRP, 0 };
++ int ret;
+
+- if (gnutls_kx_set_priority(session, anon ? kx_anon_priority : kx_priority)
+- != GNUTLS_E_SUCCESS)
+- throw AuthFailureException("gnutls_kx_set_priority failed");
++ if (anon) {
++ ret = gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:+ANON-DH", NULL);
++ if (ret < 0)
++ throw AuthFailureException("gnutls_priority_set_direct failed");
++ } else {
++ ret = gnutls_set_default_priority(session);
++ if (ret < 0)
++ throw AuthFailureException("gnutls_set_default_priority failed");
++ }
+
+ if (gnutls_dh_params_init(&dh_params) != GNUTLS_E_SUCCESS)
+ throw AuthFailureException("gnutls_dh_params_init failed");
diff --git a/tigervnc.spec b/tigervnc.spec
index cdb8b5b..d975853 100644
--- a/tigervnc.spec
+++ b/tigervnc.spec
@@ -5,7 +5,7 @@
Name: tigervnc
Version: 1.4.3
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: A TigerVNC remote display system
%global _hardened_build 1
@@ -61,6 +61,7 @@ Patch9: tigervnc-shebang.patch
Patch11: tigervnc-format-security.patch
Patch14: tigervnc-xstartup.patch
Patch15: tigervnc-xserver117.patch
+Patch16: tigervnc-gnutls-3.4.patch
# This is tigervnc-%{version}/unix/xserver116.patch rebased on the latest xorg
Patch100: tigervnc-xserver116-rebased.patch
@@ -193,6 +194,9 @@ popd
# Allow build against xorg-x11-server-1.17.
%patch15 -p1 -b .xserver117
+# Fix the build with gnutls 3.4 (bug #1218518).
+%patch16 -p1 -b .gnutls-3.4
+
%build
%ifarch sparcv9 sparc64 s390 s390x
export CFLAGS="$RPM_OPT_FLAGS -fPIC"
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/tigervnc.git/commit/?h=master&id=85b690b6cd0b35f01a7f168b723b5daa42ab6620
More information about the scm-commits
mailing list