Build Source on Linux

 

Installing Dependencies

Packages

Most of the dependencies are available in the distribution system.

Ubuntu

sudo add-apt-repository ppa:kervala/ppa && sudo apt-get update 

sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev \ libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev \ libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev \ rrdtool libmysqlclient15-dev bison libxmu-dev autoconf automake libwww-ssl-dev \
libsquish-dev libcpptest-dev

Debian

Debian is the same as with Ubuntu, if you add the Karmic archive:

Karmic is no longer available, you will need to build libwww-dev

Gentoo

Note: for Gentoo you will probably need to activate the openssl flag for curl before emerging :

echo "net-misc/curl ssl" >> /etc/portage/package.use

 

dev-cpp/luabind had trouble with boost, so it's not in the official Portage tree. You can use layman, though, and add the gamerlay overlay:

layman -a gamerlay

 

The package is also masked, so you'll have to unmask it.

emerge -av net-misc/curl dev-cpp/luabind media-libs/freetype x11-libs/libX11 \
media-libs/mesa x11-libs/libXxf86vm media-libs/openal media-libs/freealut \
media-libs/libogg media-libs/libvorbis dev-libs/libxml2 dev-util/cmake \
media-libs/libpng media-libs/jpeg net-analyzer/rrdtool sys-devel/bison net-libs/libwww dev-util/cpptest

Then you only have to manually install squish (see bellow)

Arch Linux

pacman -S curl freetype2 libx11 mesa libxxf86vm openal freealut libogg libvorbis \
libxml2 cmake libpng libjpeg rrdtool bison libwww boost

You can install Luabind by following instructions on next paragraph, or making use of AUR luabind package:
http://aur.archlinux.org/packages.php?K=luabind&do_Search=Go

Luabind

On Ubuntu Lucid and Debian Squeeze, luabind is in the distribution, skip this section.
If luabind is missing or too old in your distribution, you might want to compile yourself with.

hg clone http://hg.kervala.net/luabind
hg clone http://hg.kervala.net/cmake

export CMAKE_MODULE_PATH=$(pwd)/cmake/modules

cd luabind
mkdir build
cd build
cmake -DWITH_STATIC=ON ..
make
sudo make install

libsquish

You can compile yourself with.

hg clone http://hg.kervala.net/squish
hg clone http://hg.kervala.net/cmake

export CMAKE_MODULE_PATH=$(pwd)/cmake/modules

cd squish
mkdir build
cd build
cmake ..
make
sudo make install
 

NOTE:
Should you get

undefined reference to `__stack_chk_fail'

error, you should just add -lc to the end of packaging/squish/build/CMakeFiles/squish.dir/link.txt

cpptest

You can compile yourself with.

Download the package from http://hg.kervala.net/packaging/file/, uncompress it and:

cd cpptest
sh ./autogen.sh
./configure
make
sudo make install

 

  • Note: Also check aptitude to ensure that the libraries are not available.

Get the sources

Warning: Make sure you do not have the packages libnel or libnel-dev already installed from the main repositories as of writing this they are at version 0.5 which is too old to build the game with.

After getting the dependencies make sure you have downloaded the code and then define the directory where you have downloaded it:

export RYHOME="/path/to/ryzom/code" 

Building and installing the NeL and Ryzom

Building

Before continuing make sure you have installed the packages you just generated earlier (or that you installed them with make install)

mkdir $RYHOME/build && cd $RYHOME/build
cmake -DWITH_NEL_TESTS=OFF ..
make -j3

Parallel Job Execution

You can increase the number of parallel compilation jobs that are executed by increasing the -j# count. As a rule of thumb this number should be 1+Number Of Cores and 3 is usually a safe bet.

Running Out Of Memory

If your system runs out of memory while compiling the build will error out with no details. Reduce "-j#" job count to avoid this. You can safely assume that the compiler will require about 300Mb to 400Mb of RAM per per job.

 

If you want to use lua 5.0 instead of lua 5.1, add -DWITH_LUA51=OFF to the cmake command line.
You can avoid building client/server/tools by specifying:

  • -DWITH_NEL_SAMPLES=OFF
  • -DWITH_NEL_TOOLS=OFF
  • -DWITH_RYZOM_CLIENT=OFF
  • -DWITH_RYZOM_SERVER=OFF
  • -DWITH_RYZOM_TOOLS=OFF

If you want to build NeL without sound libs, for example when you only need the server:

  • -DWITH_NEL=ON -DWITH_SOUND=OFF

Currently there is no CPack support for the client. This means you will not be able to run "cpack -G DEB" and get a debian or rpm package to install and that you have to do make install instead.

If you are building the server on 64-bit Linux you must build with the following CMake options:

  • FINAL_VERSION : ON
  • WITH_STATIC : ON
  • WITH_QT : OFF

If you encounter build errors, try turning the drivers off:

  • WITH_DRIVER_OPENGL : OFF
  • WITH_DRIVER_OPENAL : OFF

Sample server-only cmake on 64-bit Linux

mkdir $RYHOME/build && cd $RYHOME/build
ryzom/code/build$ cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_NEL=ON \
-DWITH_SOUND=OFF -DWITH_STATIC=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF ..
make -j2

Installing

According to your system you have several options.

NOTE: You can just run Ryzom Core from the source directory after it's finished building.

See Configure Linux Web Services for more details on post compilation configuration.

Debian/Ubuntu (and others using deb packages)

Create a deb package using

cpack -G DEB -D CPACK_PACKAGE_CONTACT="your@mail.address"

(replace the email by your own) and install it on your system.

You'll need to copy the drivers for opengl and openal in your /usr/lib by hand.

$ sudo cp lib/libnel_drv_opengl.so lib/libnel_drv_openal.so /usr/lib

The new binaries are in the bin folder. If you're in the process of updading your client for the Ryzom game, you should copy /bin/ryzom_client over your previous intallation.

For the Ryzom game, you'll also probably need to update some datas using this file: ftp://ftp.ryzom.com/ryzom_datas.7z
Unpack them in the folder "data" of your previous intallation.

Fedora (and rpm based distributions)

Create a RPM package using

cpack -G RPM -D CPACK_PACKAGE_CONTACT="your@mail.address"

(replace the email by your own) and install it on your system.

Others (incl. Gentoo)

Install the NeL library with

make install

Run the Ryzom Client

This section explains how to run the client and connect the open shard.

  • Extract it and start the binary from the root of the windows client directory, which is easier if you create a link:
    -If you did make install, you can move the 'bin' directory, copy/move the 'data' directory and .cfg files into it, and run from there.
ln -s /path/to/code/ryzom/build/bin/ryzom_client /path/to/windows/client/dir/ryzom_core_linux

The client will connect to the Open shard by default. Use the instructions of the Open Shard page to create an account on that shard.

Server Chain Crashing

If you happen to find the server constantly crashing and restarting, and in the admin panel it states that several of the processes are "*Chain Crashing*", a found fix is to cmake with the additional flags of -DWITH_STATIC=ON and -DWITH_STATIC_DRIVERS=ON. These two flags were suggested by Kristaba as they corrected the issue.

See CMake Options for additional configuration options.