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.
- Download the latest Windows client Downloads for Windows or you can download just the data at tempestintheaether.org/public_downloads/ryzom_core_client_data.7z
(You need to download the client for its data/ and client.cfg, which are not part of Source)
- 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.