|
|
@@ -10,15 +10,20 @@ Build Requirements (All Systems) |
|
|
|
-- CMake (http://www.cmake.org) v2.8 or later |
|
|
|
|
|
|
|
-- FLTK 1.3.0 |
|
|
|
* Must be patched using fltk/extensions.patch to get full functionality |
|
|
|
* Must be patched using fltk/extensions.patch (in the TigerVNC source |
|
|
|
directory) to get full functionality |
|
|
|
* See "Building FLTK" below. |
|
|
|
|
|
|
|
-- If building TLS support: |
|
|
|
* GnuTLS and its dependencies (libgcrypt, libtasn1, libgpg-error) |
|
|
|
|
|
|
|
-- If building native language support (NLS): |
|
|
|
* Gnu gettext 0.14.4 or later |
|
|
|
* See "Building Native Language Support" below. |
|
|
|
|
|
|
|
-- libjpeg-turbo SDK |
|
|
|
* If your system does not include libjpeg-turbo, you can download the SDK |
|
|
|
from http://sourceforge.net/projects/libjpeg-turbo/files/ |
|
|
|
* If your system does not include libjpeg-turbo, then you can download the |
|
|
|
SDK from http://sourceforge.net/projects/libjpeg-turbo/files/ |
|
|
|
|
|
|
|
|
|
|
|
========================= |
|
|
@@ -242,13 +247,42 @@ To eliminate this dependency, add |
|
|
|
to the CMake command line. |
|
|
|
|
|
|
|
|
|
|
|
==================== |
|
|
|
Building TLS support |
|
|
|
==================== |
|
|
|
====================================== |
|
|
|
Building Native Language Support (NLS) |
|
|
|
====================================== |
|
|
|
|
|
|
|
NLS requires gettext, which is supplied with most Linux distributions but not |
|
|
|
with most other operating systems. Building gettext from source is |
|
|
|
straightforward on Mac and other Unix variants, but on Windows it requires |
|
|
|
MinGW. Thus, it is not possible to enable NLS when building TigerVNC with |
|
|
|
Visual C++. |
|
|
|
|
|
|
|
You can override the ICONV_LIBRARIES and LIBINTL_LIBRARY CMake variables to |
|
|
|
specify the locations of libiconv and libintl, respectively. For instance, |
|
|
|
adding |
|
|
|
|
|
|
|
-DLIBINTL_LIBRARY=/opt/gettext/lib/libintl.a |
|
|
|
|
|
|
|
to the CMake command line would link TigerVNC against a static version of |
|
|
|
libintl located under /opt/gettext. Adding |
|
|
|
|
|
|
|
-DICONV_INCLUDE_DIR=/mingw/include \ |
|
|
|
-DICONV_LIBRARIES=/mingw/lib/libiconv.a \ |
|
|
|
-DGETTEXT_INCLUDE_DIR=/mingw/include \ |
|
|
|
-DLIBINTL_LIBRARY=/mingw/lib/libintl.a |
|
|
|
|
|
|
|
to the CMake command line would link TigerVNC against the static versions of |
|
|
|
libiconv and libintl included in the MinGW Developer Toolkit. |
|
|
|
|
|
|
|
|
|
|
|
=============================================== |
|
|
|
Building Transport Layer Security (TLS) support |
|
|
|
=============================================== |
|
|
|
|
|
|
|
VeNCrypt (the TigerVNC security and authentication extensions) can be built |
|
|
|
with TLS support, which provides built-in encryption for VNC sessions. This |
|
|
|
requires GnuTLS, which is not pre-installed on all platforms. This section |
|
|
|
requires GnuTLS, which is readily available in many Linux distributions but not |
|
|
|
as readily available in binary form on other types of systems. This section |
|
|
|
describes the issues associated with building a version of TigerVNC with TLS |
|
|
|
support and how to work around those issues. |
|
|
|
|
|
|
@@ -263,7 +297,7 @@ automatically and link against it. However, this produces a version of |
|
|
|
TigerVNC that depends on the GnuTLS dynamic libraries, and thus the TigerVNC |
|
|
|
binaries are not portable. |
|
|
|
|
|
|
|
To build a fully portable, cross-compatible version of TigerVNC with VeNCrypt |
|
|
|
To build a fully portable, cross-compatible version of TigerVNC with TLS |
|
|
|
support, it is necessary to link against the GnuTLS static library (as well |
|
|
|
as the static libraries of its dependencies.) If you are lucky enough, then |
|
|
|
your O/S distribution may include pre-packaged versions of these static |
|
|
@@ -271,8 +305,8 @@ libraries. Otherwise, it will be necessary to build GnuTLS, libgcrypt, |
|
|
|
libtasn1, and libgpg-error from source. |
|
|
|
|
|
|
|
You can manipulate the GNUTLS_INCLUDE_DIR and GNUTLS_LIBRARY CMake variables to |
|
|
|
accommodate a custom build of GnuTLS that is installed in a non-system |
|
|
|
directory. For instance, adding |
|
|
|
build TigerVNC against a custom build of GnuTLS that is installed in a |
|
|
|
non-system directory. For instance, adding |
|
|
|
|
|
|
|
-DGNUTLS_INCLUDE_DIR=/opt/gnutls/include \ |
|
|
|
-DGNUTLS_LIBRARY='/opt/gnutls/lib/libgnutls.a;/opt/gnutls/lib/libgcrypt.a;/opt/gnutls/lib/libgpg-error.a;/opt/gnutls/lib/libtasn1.a' \ |
|
|
@@ -280,7 +314,7 @@ directory. For instance, adding |
|
|
|
|
|
|
|
to the CMake or 'build-xorg build' command line will cause TigerVNC to be |
|
|
|
statically linked against a custom installation of GnuTLS that resides under |
|
|
|
/opt/gnutls. GnuTLS depends on zlib, so specifying --with-included-zlib will |
|
|
|
/opt/gnutls. GnuTLS depends on zlib, so specifying -DUSE_INCLUDED_ZLIB=1 will |
|
|
|
satisfy that dependency using TigerVNC's in-tree version of zlib, which |
|
|
|
prevents TigerVNC from depending on the libz dynamic library. |
|
|
|
|