Call Of Duty(tm): United Offensive(tm)
Linux Multiplayer Server Code
Version 1.51b
Readme
Last update: 2005-03-23
=============================

!! IMPORTANT !!
 Call of Duty(tm): United Offensive(tm) Linux Server is NOT SUPPORTED
 by Activision(r) Customer Support. Please do not call with any questions
 related to this free beta product. There are other channels to aid you
 listed at the bottom of this document.


===============================================

TABLE OF CONTENTS

1. Introduction
2. Installation From Scratch
3. Upgrading a COD:UO 1.41 Linux Server
4. Upgrading a COD:UO 1.51 Linux Server
5. Support Channels
6. FreeBSD Note
7. Changelog

===============================================


1. Introduction

 This document explains how to install the Call of Duty(tm): United
 Offensive(tm) Linux server version 1.51b. Please note that version 1.5
 of the Call of Duty(tm) Linux Server must already be installed.

 Usage is very similar to Call of Duty(tm) and Return to Castle
 Wolfenstein(tm)... many of the console commands, command lines, and cvars
 are identical.

 MOD USERS: PLEASE READ...
  It is recommended that any user modifications that have been
  installed to the Call of Duty(tm) directory be removed before
  installing this package. These modifications are not supported
  by Activision(r) and may not be compatible with some of the new
  features that are included.

 IF YOU HAVE A PROBLEM WITH "LIBSTDC++.SO.5" ...
  (This is a frequent-enough problem to merit discussion in the introduction.)

  If you are reading this, it's probably because you tried to start your Linux
   server and saw this message:

    ./coduo_lnxded: error while loading shared libraries: libstdc++.so.5:
     cannot open shared object file: No such file or directory

  COD:UO is a C++ program built with gcc 3.2.3, which means it needs a
  system library specific to gcc 3.2. Older Linux systems won't have
  this installed, and we're starting to see newer Linux distributions that
  don't have this either, since they are supplying an incompatible
  gcc 3.4 version. The good news is that you can drop the needed library
  into your system without breaking anything else.

  Here is the library you need, if your Linux distribution doesn't supply it:
    http://icculus.org/updates/cod/gcc3-libs.tar.bz2

  You want to unpack that somewhere that the dynamic linker will see it
  (if you are sure it won't overwrite any files, you can even use /lib).

  The brave can put it in the same directory as the game and run the server
  like this:
     LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./coduo_lnxded

  Now the server will start.


2. Installation From Scratch

 IMPORTANT NOTE: Version 1.5 of the Call of Duty(tm) Linux Server must
 already be installed. The Call of Duty(tm) server package is separate
 from United Offensive(tm), which is this package.

 There are two server packages...a "small" and "large" version. The size
 difference is because small version requires a program named xdelta.
 The xdelta program is shipped with many Linux distros, and can be found
 separately here:  http://freshmeat.net/projects/xdelta/

 The large version doesn't need xdelta.

 - Get the retail Call of Duty(tm): United Offensive(tm) discs.
 - Copy the contents of Disc One's "Setup/Data" directory to wherever you
   installed the Call of Duty(tm) 1.5 Linux server. There should be a
   "localization.txt" file in the root of this directory, and a "main"
   subdirectory).
 - Copy the contents of Disc Two's "Setup/Data/uo" directory to wherever you
   your server's new "uo" directory, which was created when copying Disc One.
 - Alternately, you may install on Windows(r) and copy the installed game to
   your Linux system, but many will opt to skip this step since the data
   files are uncompressed and easily accessible on the discs. Final
   installation size (COD1.5 plus UO) is around 2.2 gigabytes.
 - Unpack this archive in the root of the newly-copied tree, so
   "coduo_lnxded" is in the same directory as "localization.txt" and
   "game.mp.uo.i386.so" is in the "uo" directory, etc.
 - (If you have the "large" package, skip this step.) If you have the "small"
   package, you now need to patch some files. The command line looks something
   like:
     cd /where/i/copied/callofduty
     xdelta patch pakuo00.pk3.xdelta uo/pakuo00.pk3 tmp.bin
     mv tmp.bin uo/pakuo00.pk3
     xdelta patch pakuo01.pk3.xdelta uo/pakuo01.pk3 tmp.bin
     mv tmp.bin uo/pakuo01.pk3
   ...these commands won't output anything unless there is a problem. If the
   patching doesn't work, you should get the "large" package and unpack it
   like you did the small package, and it'll give you the same results.
   Either way, it's now safe to delete the .xdelta files and reclaim about
   100 megabytes of disk space.
 - Now, run the server:
     cd /where/i/copied/callofduty
     ./coduo_lnxded

 - When you see "Started tty console (use +set ttycon 0 to disable)", the
   server has started, but you need to start a map before the server will
   accept connections. At this point, type:

     map mp_cassino

   ("mp_cassino" being a given map's name).

 - Now you should see your server in the in-game browser. You will now want to
   customize your server, but that is beyond the scope of this document.


3. Upgrading a COD:UO 1.41 Linux server

 This assumes you have a functioning 1.41 server (the letter afterwards,
 i.e. - "1.41e" is irrelevant for this discussion).

 If you aren't sure of your server's state, or want to be safe, you should
 start with section 2 of this document ("INSTALLATION"), above, and ignore
 this section.

 IMPORTANT NOTE: Version 1.5 of the Call of Duty(tm) Linux Server must
 already be installed. The Call of Duty(tm) server package is separate
 from United Offensive(tm), which is this package.

 There are two server packages...a "small" and "large" version. The size
 difference is because small version requires a program named xdelta.
 The xdelta program is shipped with many Linux distros, and can be found
 separately here:  http://freshmeat.net/projects/xdelta/

 The large version doesn't need xdelta.

 - Shutdown your existing COD:UO server if it is currently running.
 - Make a backup of your existing COD:UO server's directory, just in case.
 - Remove any mods you've installed. Incompatible mods left in an upgraded
   server are among the most frequent bug reports!
 - Upgrade to COD 1.5 if you haven't already. This is a different package,
   and beyond the scope of this documentation.
 - Unpack this archive in the root of the newly-copied tree, so
   "coduo_lnxded" is in the same directory as "localization.txt" and
   "game.mp.uo.i386.so" is in the "uo" directory. It will overwrite
   several files.
 - (If you have the "large" package, skip this step.) If you have the "small"
   package, you now need to patch some files. The command line looks something
   like:
     cd /where/i/copied/callofduty
     xdelta patch pakuo00.pk3.xdelta uo/pakuo00.pk3 tmp.bin
     mv tmp.bin uo/pakuo00.pk3
     xdelta patch pakuo01.pk3.xdelta uo/pakuo01.pk3 tmp.bin
     mv tmp.bin uo/pakuo01.pk3
   ...these commands won't output anything unless there is a problem. If the
   patching doesn't work, you should get the "large" package and unpack it
   like you did the small package, and it'll give you the same results.
   Either way, it's now safe to delete the .xdelta files and reclaim about
   100 megabytes of disk space.
 - Now the server can be restarted, and should function as before, except
   with the new patch fixes and features. You should experiment with re-adding
   your mods one by one to see if any are incompatible with the new patch.


4. Upgrading a COD:UO 1.51 Linux server

 If you aren't sure of your server's state, or want to be safe, you should
 start with section 2 of this document ("INSTALLATION"), above, and ignore
 this section.

 There are two server packages...a "small" and "large" version. If you've
 already correctly patched to 1.51, then there's no difference between these
 packages beyond download size.

 - Shutdown your existing COD:UO server if it is currently running.
 - Make a backup of your existing COD:UO server's directory, just in case.
 - Remove any mods you've installed. Incompatible mods left in an upgraded
   server are among the most frequent bug reports!
 - Unpack this archive in the root of the newly-copied tree, so
   "coduo_lnxded" is in the same directory as "localization.txt" and
   "game.mp.uo.i386.so" is in the "uo" directory. It will overwrite
   several files.
 - If you used the "small" package, delete the .xdelta files and reclaim
   about 100 megabytes of disk space.
 - Now the server can be restarted, and should function as before, except
   with the new patch fixes and features. You should experiment with re-adding
   your mods one by one to see if any are incompatible with the new patch.


5. Support Channels

 There are a LOT of knobs to tweak to customize and automate your server,
 but it is beyond the scope of this documentation. Please refer to the
 admin manuals for any Quake 3(tm) based Multiplayer game (including Quake 3
 Arena(tm), Return to Castle Wolfenstein(tm), etc) for specifics.

 There is a mailing list for discussion and support of Call of Duty(tm) and
 Call of Duty(tm): United Offensive(tm) Linux servers. Hundreds of experienced
 server admins and even some of the game's developers monitor this list, and
 are eager to help with politely asked questions. Send a blank email to
 cod-subscribe@icculus.org to get on the list, and list archives can be seen
 at:

   http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?38

 Bug reports should NOT be sent to the list. We have a web-based
 bugtracking system for this. If you don't report bugs there, we don't
 promise to even be aware of them, let alone fix them! You can find the bug
 tracker here:

   https://bugzilla.icculus.org/


6.  FreeBSD users

 This server is known to work on FreeBSD with the Linux binary compatibility
 layer. If it doesn't, we consider it a bug and appreciate the report since we
 won't necessarily be testing on FreeBSD ourselves. Please note, that as of
 version 1.4, the server requires that you use the linux_base-8 package for
 binary compatibility (it has a C++ runtime library we now need that previous
 linux_base packages don't supply...alternately, see notes about libstdc++ in
 this document's introduction if you can't or won't update linux_base).


7.  CHANGELOG

 1.41  : Initial release
 1.41a : Removed glibc 2.3 dependency, fixed a memcpy() overlap,
         changed README to unix endlines.
 1.41b : Fixed crash on startup some admins were seeing (we blew the stack
         with a couple large, stack-allocated arrays).
 1.41c : Fixed a different crash on startup some admins were seeing (we blew
         the stack here, too), and fixed the "51230 files in pk3 files"
         console message to not grow incorrectly on map load.
 1.41d : Fixed heavy CPU loads on empty servers when vehicles were present.
 1.41e : Uninitialized memory fixes (jeep crash fix).
 1.51  : Linux server to match Windows 1.51 patch, updated README to comment on
         installation vs patching and other topics.
 1.51b : Closed some exploits, fixed MG42 bug, other crashes.

// end of README ...

