| author | Felix Yan
<felixonmars@archlinux.org> 2015-04-21 03:01:08 UTC |
| committer | Felix Yan
<felixonmars@archlinux.org> 2015-04-21 03:01:08 UTC |
| parent | 8c5e29b771999ccf271bcd42aa3fa3b530845f19 |
| PKGBUILD | +13 | -4 |
| initialize-libgcrypt.patch | +39 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 2d9c544..4e875e7 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,18 +1,27 @@ -# Maintainer: +# Maintainer: Felix Yan <felixonmars@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=libvncserver pkgver=0.9.10 -pkgrel=2 +pkgrel=3 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} diff --git a/initialize-libgcrypt.patch b/initialize-libgcrypt.patch new file mode 100644 index 0000000..c7e7cfa --- /dev/null +++ b/initialize-libgcrypt.patch @@ -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))