TightVNC Source Distribution for Unix platforms =============================================== Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. Copyright (C) 2000-2006 TightVNC Group Copyright (C) 2004-2005 Peter Astrand, Cendio AB This software is distributed under the GNU General Public Licence as published by the Free Software Foundation. See the file LICENCE.TXT for the conditions under which this software is made available. TightVNC also contains code from other sources. See the Acknowledgements section below, and the individual files for details of the conditions under which they are made available. There are six programs here: vncviewer - this is the VNC viewer, or client, program for X. Xvnc - this is the X VNC server - it is both a VNC server and an X server with a "virtual" framebuffer. You normally use the vncserver script to start Xvnc. vncserver - this is a wrapper script which makes starting an X VNC server (i.e. desktop) more convenient. It is written in Perl, so to use the script you need that. vncpasswd - this program allows you to change the password used to access your X VNC desktops. The vncserver script uses this program when you first start a VNC server. vncconfig - this program is used to configure and control a running instance of Xvnc. x0vncserver - this is an inefficient VNC server which continuously polls any X display, allowing it to be controlled via VNC. It is intended mainly as a demonstration of a simple VNC server. In addition to these standalone programs, this distribution can also be used to turn the native X server for a platform into a VNC server. For X.Org servers, this is done using a module loaded at run-time. For other X servers it requires replacing the native X server binary. To build this distribution you need a C++ compiler as well as a C compiler. You also need a reasonably recent version of the X window system installed. This comes as standard with most unix machines. If you don't have it installed, see http://www.x.org. To build everything but Xvnc, do: % ./configure % make This should build first some libraries - zlib, jpeg, rdr, network, Xregion, rfb and tx - then vncviewer, vncconfig and vncpasswd. System zlib and jpeg are preferred. If you want use zlib and jpeg distributed with TightVNC you have to run configure "./configure --with-tight-zlib --with-tight-jpeg". Building Xvnc ============= Building Xvnc and the VNC support for native X servers is much more complex. If you don't need to build it, skip to the section below on installing. Xvnc differs from the other programs in that it is built inside the X source tree. Unlike previous versions of Xvnc, we do not provide an X source tree with this distribution. We have designed the distribution to be as independent as possible of the X tree used. We have successfully used X.Org 7.4.99.901, (available from http://www.x.org/). Note that the X tree is enormous and notoriously difficult to deal with - building it is not for the faint-hearted! You have to install many additional things like GNU build system tools and many libraries needed by X server First you have to download X source: % git clone git://git.freedesktop.org/git/xorg/xserver xorg % cd xorg % git checkout origin/server-1.5-branch Once you have a copy of the X source tree, copy it to vnc source tree % cp -r xorg/* /unix/xserver Then you have to apply a patch to some files in the X source tree: % cd /unix/xserver % patch -p1 < ../xserver.patch After that you have to regenerate configure script and Makefile.in: % autoreconf -fiv Next step is run configure script. It is very difficult use correct parameters. You should use same parameters as used in your distribution X server and add --disable-xvfb --disable-xnest --disable-xorg: % ./configure --disable-xvfb --disable-xnest --disable-xorg If this works, you should be able to build the entire X tree, including Xvnc: % make This will take a long time, and will quite probably fail for one reason or another! If you are having trouble, we suggest you try to build the X tree in isolation first before attempting it with the VNC additions. If successful, in the hw/vnc directory you should find an Xvnc and libvnc module. Exactly which X extensions and features are built into Xvnc and the native X server binary is determined by configure parameters. Run ./configure --help for more information. Installing ========== Different unix platforms have different conventions for where software should be installed. To copy the programs to some directory which is in your PATH environment variable, such as /usr/local/bin you can use Makefile variables. In /unix subdirectory run: % make install bindir=/usr/local/bin mandir=/usr/local/man It will also try to install the Xvnc and vnc.so X.Org module if appropriate. Both can be installed when you run: % make install bindir=/usr/local/bin mandir=/usr/local/man in /unix/xserver subdirectory Module can be enabled like any other module by adding a Load "vnc" line to the Module section of xorg.conf. The parameters listed in the Xvnc manual page can be set as options in xorg.conf e.g. Option "passwordFile" "/root/.vnc/passwd". Note that for some reason options cannot be set in the Module section of xorg.conf - try the Screen section. If you want to use the Java VNC viewer, you should copy the files from the java directory to some suitable installation directory such as /usr/local/vnc/classes: % mkdir -p /usr/local/vnc/classes % cp ../common/javabin/* /usr/local/vnc/classes We recommend that you use the vncserver script to run Xvnc for you. You can edit the script as appropriate for your site. Things you may need to change include: * The location of Perl - if Perl is not installed in /usr/bin you'll need to edit the "#!/usr/bin/perl" first line of vncserver. * Xvnc's font path and color database. If you have an installation of X which is not in the standard place you may need to add arguments to the Xvnc command line to set these. These should be appended to the $cmd variable at the comment "# Add font path and color database...". * $vncJavaFiles - this specifies the location of the files for the VNC viewer Java applet. The default is /usr/local/vnc/classes. ACKNOWLEDGEMENTS ================ This distribution contains public domain DES software by Richard Outerbridge. This is: Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. (GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. This distribution contains software from the X Window System. This is: Copyright 1987, 1988, 1998 The Open Group Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. This distribution contains zlib compression software. This is: Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu This distribution contains Java DES software by Dave Zimmerman and Jef Poskanzer . This is: Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved. Permission to use, copy, modify, and distribute this software and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and without fee is hereby granted, provided that this copyright notice is kept intact. WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). WIDGET WORKSHOP SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. Copyright (C) 1996 by Jef Poskanzer . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Visit the ACME Labs Java page for up-to-date versions of this and other fine Java utilities: http://www.acme.com/java/