Call of Duty: United Offensive Linux Server v1.51
Call Of Duty(tm): United Offensive(tm)
Linux Multiplayer Server Code
Version 1.51
Readme
Last update: 2004-12-14
=============================

!! 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. Support Channels
5. FreeBSD Note

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


1. Introduction

This document explains how to install the Call of Duty(tm): United
Offensive(tm) Linux server version 1.51.

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" ...

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

There are two server packages...a "small" and "large" version. The size
difference is because the small version requires a program named xdelta.
The xdelta program is shipped with many Linux distros, and can be found
seperately 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.41 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" directory to your server
(should be just a "uo" directory...add it to the contents of the
previous disc's "uo").
- 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.
- 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.

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
seperately 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!
- 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 readding
your mods one by one to see if any are incompatible with the new patch.


4. 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/


5. 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).


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.

// end of README
DEMOS
PATCHES - CHEATS
REVIEWS
GAME VIDEOS
NEWS ENTRIES
THIS WEEK'S MOST POPULAR DOWNLOADS