From ce355e34d8e36eef78ae7d32e272df610312e47c Mon Sep 17 00:00:00 2001 From: DRC Date: Fri, 24 Jun 2011 04:58:01 +0000 Subject: [PATCH] Instructions for building with NLS and other tweaks git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4533 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- BUILDING.txt | 56 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/BUILDING.txt b/BUILDING.txt index b2241b47..f696fdd7 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -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. -- 2.39.5