Installation (Fedora Rawhide)

From Project Skyfire
Jump to navigation Jump to search

Introduction

This is a basic guide on how to install SkyFire_548 and SFDB from scratch. **Please note this is a work in progress and only contains enough information to get most people a viable server in Linux.

Prerequisites

The compilation of SkyFire_548 and the setup of SFDB will require certain packages to be installed. In Fedora use the following command:

sudo yum install g++ make cmake git wget git-core openssl openssl-devel readline-devel zlib-devel bzip2 bzip2-devel

You may also want to install phpmyadmin and/or Apache. Do not forget the user and password for the Mysql root user.

Installing MySQL Start by downloading the rpm.

wget https://dev.mysql.com/get/mysql80-community-release-fc39-2.noarch.rpm
sudo yum localinstall mysql80-community-release-fc39-2.noarch.rpm
sudo yum install mysql-server mysql-devel

Installing ACE

sudo yum install https://download.opensuse.org/repositories/devel:/libraries:/ACE:/micro/Fedora_Rawhide/x86_64/ace-7.0.4-89.181.x86_64.rpm
sudo yum install https://download.opensuse.org/repositories/devel:/libraries:/ACE:/micro/Fedora_Rawhide/x86_64/ace-devel-7.0.4-89.181.x86_64.rpm

Compiling and Installing the SkyFire 5.4.8

Grab the latest version of SkyFire_548 using git:

git clone -b main https://codeberg.org/ProjectSkyfire/SkyFire_548.git

This should create a directory called SkyFire_548 that will contain all the files necessary to compile the server and it's tools. Change to the directory, configure, and build.

cd SkyFire_548
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/skyfire-server/ -DTOOLS=1
make -j(#cores+1)
sudo make install


Parameter explanations

-DACE_LIBRARY=<path to ACE library>                      (full path to your libACE.so file INCLUDING the filename - do not use if you have ACE installed systemwide)
-DACE_INCLUDE_DIR=<path to ACE includes/headers>         (path to the libACE include directory - do not use if you have ACE installed systemwide)
-DOPENSSL_LIBRARIES=<path to OpenSSL library>            (path to your OpenSSL library - do not use if you have OpenSSL installed systemwide)
-DOPENSSL_INCLUDE_DIR=<path to OpenSSL includes>         (path to your OpenSSL includes directory - do not use if you have OpenSSL installed systemwide)

-DSERVERS             Build worldserver and authserver
-DSCRIPTS             Build core with scripts included
-DTOOLS               Build map/vmap extraction/assembler tools
-DUSE_SCRIPTPCH       Use precompiled headers when compiling scripts
-DUSE_COREPCH         Use precompiled headers when compiling servers
-DUSE_SFMT            Use SFMT as random numbergenerator
-DWITH_WARNINGS       Show all warnings during compile
-DWITH_COREDEBUG      Include additional debug-code in core
-DWITH_SQL            Copy SQL files during installation
-DCONF_DIR            Set configuration directory
-DLIBSDIR             Set library directory
-DCMAKE_C_FLAGS       Set C_FLAGS for compile (advanced users only)
-DCMAKE_CXX_FLAGS     Set CXX_FLAGS for compile (advanced users only)

-DWITH_CXX_23_STD     Use c++23 standard (advanced users only)
-DWITH_CXX_DRAFT_STD  Use c++ draft standard (advanced users only)



Installing SkyFireDataBase (SFDB)

Now we will set up the database framework for which SkyFire will be installed into:

It is assumed that you cloned SkyFire_548 into your home directory ~/

Replace the parts in <> to the correct administrative username, and associated password. Usually the administrative user is root, but you may have altered it.

In the terminal window:

mysql -u <mysql_root> -p < ~/SkyFire_548/sql/create/create_mysql.sql
mysql -u <mysql_root> -p auth < ~/SkyFire_548/sql/base/auth_database.sql 
mysql -u <mysql_root> -p characters < ~/SkyFire_548/sql/base/characters_database.sql

Grab the latest version of SkyFireDB on. https://codeberg.org/ProjectSkyfire/database/tags
The DB download contains an installer for Linux and Windows. Also a single Sql file.

!!!You will also need to manually run any sql's found in the cores sql folder .../sql/updates/world and .../sql/updates/char!!!

(If you are doing this for more than local use you will also need to change a database entry using this mysql command.)

UPDATE auth.realmlist SET address = "YOUR IP HERE" WHERE id = 1;

Configuration

Now move and edit the configuration files to run the server.

sudo mv ~/skyfire-server/etc/worldserver.conf.dist ~/skyfire-server/etc/worldserver.conf
sudo mv ~/skyfire-server/etc/authserver.conf.dist ~/skyfire-server/etc/authserver.conf

Edit worldserver to the correct Mysql user name, password, and your DataDir.

sudo nano ~/skyfire-server/etc/worldserver.conf

Edit authserver to the correct Mysql user name, password, and your DataDir.

sudo nano ~/skyfire-server/etc/authserver.conf

Extractor and VMAPs

If you need a Windows compiled copy of the DBC Extractor and the tools for the VMAP
Extraction and assembly you can get a copy of them using your GIT client and download
them from: https://codeberg.org/ProjectSkyfire/Community-Tools


The last and final step of setting up SkyFire_548 is to obtain a proper set of maps for use in the server. Change to the WoW directory and run some commands:

cd "Wow Directory"
~/skyfire-server/bin/extractor
~/skyfire-server/bin/vmap4extractor
sudo mv dbc ~/skyfire-server/bin/dbc
sudo mv db2 ~/skyfire-server/bin/db2
sudo mv cameras ~/skyfire-server/bin/cameras
sudo mv maps ~/skyfire-server/bin/maps
~/skyfire-server/bin/vmap4assembler
sudo mv vmaps ~/skyfire-server/bin/

SkyFire Patcher

The client will need to be patched before it can properly connect to the server. Acquire the patcher in the Community Tools repository.

git clone https://codeberg.org/ProjectSkyfire/Community-Tools.git

Install Mono in Wine or Crossover Office and run the patcher to modify your WoW.exe file.

to install Mono simply, and correctly configured, please view:

http://wiki.winehq.org/winetricks

to obtain specific versions/running hackery in your Wine bottle.

References

http://www.trinitycore.org/w/How-to:Linux

http://wiki.cactusemu.com/index.php?title=Installation_%28Linux%29

http://wiki.winehq.org/winetricks

http://appdb.winehq.org/objectManager.php?sClass=version&iId=20549