rebuild libvncserver

This commit is contained in:
Weng Xuetian 2015-11-18 19:02:16 +01:00
parent 0791ff3d93
commit ee54d1575f
2 changed files with 52 additions and 4 deletions

View File

@ -5,20 +5,29 @@
pkgname=libvncserver
pkgver=0.9.10
pkgrel=1
pkgrel=2
pkgdesc="A cross-platform C libraries that allow you to easily implement VNC server"
arch=('i686' 'x86_64')
url="https://libvnc.github.io/"
license=('GPL')
depends=('libpng' 'libjpeg' 'gnutls' 'libgcrypt' 'openssl')
makedepends=('sdl')
source=("https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${pkgver}.tar.gz")
md5sums=('e1b888fae717b06896f8aec100163d27')
source=("https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${pkgver}.tar.gz"
initialize-libgcrypt.patch)
md5sums=('e1b888fae717b06896f8aec100163d27'
'e22024d3a81c45129411e39e7d143835')
prepare() {
cd ${pkgname}-LibVNCServer-${pkgver}
# Fix crashing when connecting to Mac hosts
# Suggested by upstream: https://github.com/LibVNC/libvncserver/pull/51#issuecomment-68884516
patch -p1 -i ../initialize-libgcrypt.patch
}
build() {
cd ${pkgname}-LibVNCServer-${pkgver}
./autogen.sh
./configure --prefix=/usr --without-liva
./configure --prefix=/usr --without-libva
make
}

View File

@ -0,0 +1,39 @@
From 4674d4632b9ffc6779d9c9f79b8ebb53c12e29b2 Mon Sep 17 00:00:00 2001
From: Floris Bos <bos@je-eigen-domein.nl>
Date: Fri, 2 Jan 2015 16:36:05 +0100
Subject: [PATCH] Initialize libgcrypt before use
https://www.gnupg.org/documentation/manuals/gcrypt/Initializing-the-library.html
"Before the library can be used, it must initialize itself.
This is achieved by invoking the function gcry_check_version"
Closes issue #45
Tested with krdc + libgcrypt 1.6.1 (libgcrypt20-dev Ubunutu package)
connecting to a Mac Mini.
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
libvncclient/rfbproto.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/libvncclient/rfbproto.c b/libvncclient/rfbproto.c
index f653850..aa74c23 100644
--- a/libvncclient/rfbproto.c
+++ b/libvncclient/rfbproto.c
@@ -857,6 +857,16 @@ HandleARDAuth(rfbClient *client)
rfbCredential *cred = NULL;
rfbBool result = FALSE;
+ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P))
+ {
+ /* Application did not initialize gcrypt, so we should */
+ if (!gcry_check_version(GCRYPT_VERSION))
+ {
+ /* Older version of libgcrypt is installed on system than compiled against */
+ rfbClientLog("libgcrypt version mismatch.\n");
+ }
+ }
+
while (1)
{
if (!ReadFromRFBServer(client, (char *)gen, 2))