The GGZ Gaming Zone - Client Setup ================================== Installation Requirements for the release 0.0.14 ------------------------------------------------ The GGZ Gaming Zone client is built from three separate packages (these may be available as an integrated package in the future), upon which any number of game clients may be installed. It is important that each package be built and installed in the proper sequence in order that all library dependencies are properly resolved. For example, you must build and install the libggz package before building ggz-client-libs. The reason things are packaged this way is that our libraries will change only rarely once they have stabilized, so we will be able to release a new version of a client or game module without requiring every subsystem to be replaced anew. If you are missing a package, they are freely downloadable in source format (as well as precompiled or preconfigured packages for a number of GNU/Linux distributions and BSD systems) from: http://ggzgamingzone.org/releases/latest/ The packages have been tested on a variety of systems, including Linux, FreeBSD and Solaris. It should work on pretty much any type of UNIX system that supports X Windows and sockets, though it may require some changes in order to work. We will be glad to assist anyone who wishes to port the software to other platforms. Windows users can use either the native Windows client ports (might be outdated) or the newer Cygwin packages. For both Windows users and others, the GGZ Java efforts provide an applet which can be used to play GGZ games in the browser, without any installation at all! The Java package can still be installed locally however. The remainder of this document assumes that you are installing from source code. If you are installing pre-compiled packages, please keep in mind two things: 1) The order of installation should be the same as when installing from source. Dependencies should enforce this automatically. 2) If you are performing an upgrade, make sure that you obtained the upgrade from the same location so that directory location requirements are not broken. If you obtain your packages from the GGZ homepage (noted above) you will always be safe in that regard. General Installation Guidelines ------------------------------- Client packages should be installed in this order: libggz ggz-client-libs ggz-xxx-client (where xxx is the user interface the client supports) You do not need to install all of the client frontends, only the one for your preferred environment. Following this, the game packages (ggz-xxx-games) and/or individual games may be installed. For most packages, the installation is as simple as: ./configure make make install (as root) You may also need to update the shared library cache, eg: ldconfig /usr/local/lib (as root, and assuming --prefix was not specified) Note that the installation defaults to the /usr/local hierarchy. If you prefer to install it under /usr, add --prefix=/usr --sysconfdir=/etc to all of the configure scripts below. The source packages are relocatable, so you can also install them inside your home directory, if you don't have system-wide permission. Step by step instructions follow. For more detailed installation instructions, please read the INSTALL file that accompanies each of the packages. Installing libggz ----------------- Unpack the libggz sources. They should extract into a directory named libggz-X.X.X. Enter that directory and run the following commands: ./configure make make install (as root) This will install the libggz library under /usr/local. You may also need to run ldconfig (as root) on some systems. The following important features exist: --disable-debug: omit debug code --with-gcrypt: enable hash functions --with-tls: enable encryptions functions --enable-anl: enable asynchronous resolver functions Installing ggz-client-libs -------------------------- Before installing ggz-client-libs, you must have the expat library installed (the previous dependency popt is no longer required). You may obtain it from http://prdownloads.sourceforge.net/expat/ Unpack the ggz-client-libs sources. They should extract into a directory named ggz-client-libs-X.X.X. Enter that directory and run the following commands: ./configure make make install (as root) This will install the GGZ client libraries and the ggz-config tool under /usr/local. You may also need to run ldconfig as root on some systems. Gtk Client Installation ----------------------- The Gtk+ client requires that the Gtk+ libraries 2.X be installed. These can be downloaded from http://www.gtk.org. We recommend the latest stable version (2.6) to be able to use the new stock icons. Unpack the ggz-gtk-client sources. They should extract into a directory named ggz-gtk-client-X.X.X. Enter that directory and run the following commands: ./configure make make install (as root) This will install the gtk client under /usr/local. KDE Client Installation ----------------------- The KDE client requires that the KDE libraries 3.X be installed. These can be downloaded from http://www.kde.org. We recommend the latest stable version, 3.5.1. As KDE depends on Qt, you will need Qt version >= 3.0 (3.3.5 is recommended as it is the version which KDE 3.5 development was based on). Unpack the ggz-kde-client sources. They should extract into a directory named ggz-kde-client-X.X.X. Enter that directory and run the following commands: Typical Installation: ./configure make make install (as root) This will install the KDE client under your KDE installation. You may also need to run ldconfig as root on some systems. Make sure to use the same configuration prefix as KDE does, otherwise no menu entries will show up, and programs might not work as expected. Advanced users can use the KDEDIRS environment variable. GNOME Client Installation ------------------------- The GNOME client requires that the GNOME libraries 2.X be installed. You can get them from http://www.gnome.org. The recommended version is GNOME 2.8.0. Unpack the ggz-gnome-client sources. They should extract into a directory named ggz-gnome-client-X.X.X. Enter tjat directory and run the following commands: ./configure make make install (as root) You will then find the GNOME client under /usr/local. Gtk/KDE/SDL Games Installation ------------------------------ Remember that all game modules can be used with any client. Just because you're using one frontend for your client doesn't mean you can't use the games for the other frontend. Whether you are installing a single game, or the full gtk-games or kde-games or sdl-games package, the instructions are the same. The ggz-config program must be on the path, and it will automatically set all the proper installation directory options for you. Typical Installation: ./configure make make install (as root) Troubleshooting/Tips -------------------- 1) Remember, if you are going to be altering the locations of files in ggz-client-libs, you should uninstall all client and game packages first. If you are changing ONLY the GGZCONFDIR, then it is possible to simply move the ggz.modules file to the new location after reinstalling ggz-client-libs - this will save you from recompiling all of the clients and games. 2) Both libggz and ggz-client-libs require you to run ldconfig after installing! The same applies to the kde-client package. 3) Always use the 'make (un)install' script to add or remove a game client. This insures that the ggz-config program will update ggz.modules to note the presence of the game module. 4) If you can't launch a game, execute this command to view the ggz.module file that is being used by the programs: less `ggz-config --configdir`/ggz.modules You can then see if the game you are attempting to run is even present in the *Engines* list in the [Games] section. 5) Do not manually edit the ggz.modules file unless you are quite certain that you know what you are doing. This file is meant to be completely maintained by the ggz-config program which should automatically be launched by the (un)installation scripts. 6) Severe compilation or install issues should be brought up with the GGZ maintainers. You can either contact us on the ggz-dev mailing list or via the bug tracker accessible from our developer page (http://dev.ggzgamingzone.org/) - A link to join the mailing list is also available here. 7) Once you have everything compiled you need a server to connect to! There is a permanent server installed at ggz://live.ggzgamingzone.org (Germany) on port 5688. Check the FAQ on our webpage (http://ggzgamingzone.org/) for any other permanent servers that may get setup. 8) If you are compiling from CVS and are getting weird errors during the compilations, make sure you have the correct version of each build tool. The following are known to cause problems: libtool < 1.4 automake 1.5d or 1.6 or 1.7 The recommended compiler is gcc 4.x, although many other versions (including 2.95 or previous or later 3.x) should work as well (see point 9 below). On non-GNU systems, use gmake rather than make. 9) All C++ code must be compiled with the same compiler. This does currently affect the KDE packages of GGZ. It means that if your KDE and Qt has been compiled with gcc 2.9x, you cannot compile ggz-kde-client or ggz-kde-games with gcc 3. The reverse is also true.