Installation (Fedora 39): Difference between revisions
No edit summary |
No edit summary |
||
Line 43: | Line 43: | ||
mkdir build | mkdir build | ||
cd build | cd build | ||
cmake .. | cmake ../ -DTOOLS=1 | ||
make -j(#cores+1) | make -j(#cores+1) | ||
sudo make install | sudo make install |
Revision as of 06:33, 17 April 2024
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 ../ -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 /usr/local/skyfire-server/etc/worldserver.conf.dist /usr/local/skyfire-server/etc/worldserver.conf sudo mv /usr/local/skyfire-server/etc/authserver.conf.dist /usr/local/skyfire-server/etc/authserver.conf
Edit worldserver to the correct Mysql user name, password, and your DataDir.
sudo nano /usr/local/skyfire-server/etc/worldserver.conf
Edit authserver to the correct Mysql user name, password, and your DataDir.
sudo nano /usr/local/skyfire-server/etc/authserver.conf
Move daemon service files to systemd.
sudo mv /usr/local/skyfire-server/etc/worldserverd.service.dist /etc/systemd/system/worldserverd.service sudo mv /usr/local/skyfire-server/etc/authserverd.service.dist /etc/systemd/system/authserverd.service
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" /usr/local/skyfire-server/bin/extractor /usr/local/skyfire-server/bin/vmap4extractor sudo mv dbc /usr/local/skyfire-server/bin/dbc sudo mv db2 /usr/local/skyfire-server/bin/db2 sudo mv cameras /usr/local/skyfire-server/bin/cameras sudo mv maps /usr/local/skyfire-server/bin/maps /usr/local/skyfire-server/bin/vmap4assembler sudo mv vmaps /usr/local/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