User Tag List

Page 1 of 2 1 2 LastLast
Results 1 to 7 of 11

Thread: How to make and release a proper repack (or how to compile and setup a server on various OSs)

  1. #1
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts

    How to make and release a proper repack (or how to compile and setup a server on various OSs)

    I will be updating this regularly to include different OSs and Cores


    What is a repack?
    A repack is a precompiled core, it includes everything needed to successfully run the wow server program

    How do I make a repack?
    you start by pulling the source, the location of this source varies by core, along with the method used to store the source, the two most common being "git" or "svn".
    Once you have pulled the core, you will want to add all your custom scripts to it, once again method varies by core.
    then, you will want to add those scripts to the "Cmake" list. once done, make the build directory and files.
    you will now want to compile the core for either 32 or 64 bit architecture (most common is 32bit).
    once that is done place the output files in a folder in the repack (repackhome/core/).
    Now, either build your own portable MySQL or use on released here.
    add all necessary databases and import the SQL files.
    once done, compress your whole repack folder and upload to megaupload or similiar site.
    now, start extracting maps, vmaps, and dbc, or just use some pre released maps, etc.

    Alright, what do I include in the thread?
    In the thread itself, you will want to include a variety of information
    • link to download repack
    • link to download maps, vmaps, and dbc
    • any possible changes you have made
    • list of features (working and non working)
    • login info for the MySQL database
    • login info for the world
    • core name and revision number
    • instructions on how to use repack
    • credits to all those whose work you used
    • (optional) upcoming changes

    If I want to make a repack for an OS other than windows, what do I do
    If you are asking this question, you should probably not attempt this, but if you insist,
    you would compile the source on the OS you intend to use having applied all necessary patchs
    include a portable MySQL runnable on intended OS, or include raw .sql dumps and instructions on how to install MySQL
    include instructions on how to install necessary dependencies.




    Last edited by Epicblood; 05-11-2013 at 03:40 AM.
    Awards:
    Donator Angry Poster LOL Troll Smartass Cant or Doesnt Read Facepalm! Drunk

  2. The Following 5 Users Say Thank You to Epicblood For This Useful Post:


  3. #2
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    How to Compile: Linux

    First, please note I am doing this on a CentOS machine, so some things may be slightly off for other distributions.

    Let's get started.
    what dependencies do I need to compile/run?
    -For debian based distros, use these commands
    Code:
    sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core patch wget links zip unzip unrar
    sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline6-dev zlib1g-dev libbz2-dev
    -for Redhat based distros, use these
    Code:
    yum groupinstall "development tools"
    yum groupinstall "development libraries"
    yum install gcc-g++ git-core wget links zip unzip unrar
    yum install mysql-server mysql-client mysql-devel
    yum install openssl
    yum install Cmake
    TrinityCore.info
    - Cmake not found, or not working?
    you need to use RPMForge to get Cmake,
    this process can seem daunting to new linux users, but really isnt very hard.
    Code:
    wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
    rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm
    you can now try
    Code:
    yum install cmake
    -installing ACE
    ACE is required for trinitycore to properly run on your system.
    Code:
    wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.gz
    tar xvzf ACE-6.0.0.tar.gz
    cd ACE_wrappers/
    mkdir build
    cd build
    ok, you have now unpacked the source, and created a build directory.
    now we start the build
    Code:
    ../configure
    make
    make install
    if you get errors at the
    Code:
    make install
    try
    Code:
    sudo make install
    congrats, you have installed ACE
    alright, you now have everything you need and can start.
    Now let us get into the meat of things here and get the sourcode to trinity
    -pulling the source
    here, you are getting the source of trinity using "GIT"
    Code:
    cd ~/
    git clone git://github.com/TrinityCore/TrinityCore.git
    now you might have to wait awhile, or not depending on your hosts bandwidth.
    once that is done pulling, proceed to the next step
    -Building the source
    this is where the rubber meets the road, we will be building and compiling the sourcecode so that it can be used by others, or yourself.
    first, create a build directory
    Code:
    mkdir build
    cd build
    ok, now that you are in the build directory, let us configure the source code
    Code:
    cmake ../TrinityCore/ -DSERVERS -DSCRIPTS -DUSE_SCRIPTPCH -DUSE_COREPCH
    alright, now you might see some text fly by, and you are set to start the build
    -building/compiling
    Code:
    make
    this shouldn't take too long, but have some patience, note it is recommended to have atleast 2gb of RAM available, or this process MAY NOT work!
    alright, now lets install the server
    Code:
    make install
    alright, now you have your core compiled!
    you will find your binaries in
    Code:
    /home/local/server/bin
    you will want to put your maps, mmaps, vmaps, and dbc folders in here
    to get there simply type
    Code:
    cd /home/local/server/bin
    and your *.conf files will be located in
    Code:
    /home/local/server/etc
    to get there type
    Code:
    cd
    cd ../
    cd home/local/server/etc
    the type
    Code:
    vi <conf file name here>
    to edit
    Last edited by Epicblood; 05-11-2013 at 03:24 AM.
    Awards:
    Donator Angry Poster LOL Troll Smartass Cant or Doesnt Read Facepalm! Drunk

  4. The Following 2 Users Say Thank You to Epicblood For This Useful Post:


  5. #3
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    Setting up MySQL
    Alright, now you need to setup your MySQL.
    you already downloaded/installed all you need in the first step so nothing new to install
    -start the mysql server
    Code:
    service mysqld start
    Note: this is much easier with "WebMin" installed, you can find my tutorial on how to install that Here (then you can just hit a button to start/stop mysqld and create users for it etc.
    Firt you are going to need to create your databases (auth, world, and characters)
    -Creating the database
    Code:
    mysql create database databasename
    repeat this for each until you have all three databases
    -Executing the SQL files
    Code:
    mysql -u USERNAME -p DATABASENAME < FILE.SQL
    Please note that combining all your updates into 1 SQL file will fuck them up. They do not combine in order and you end up getting errors and not applying them correctly. I know it is a pain to apply them all individually, but it's gotta be done.

    Now we don't want trinity to use our root mysql user so we will create a new user for it (remember to set this one in the configs, not root)
    -Creating a new user and setting permissions
    Code:
    mysql create user 'username'@'localhost' identified by 'password'
    mysql grant all privileges on 'world' . * to 'username'@'localhost' with grant option
    mysql grant all privileges on 'auth' . * to 'username'@'localhost' with grant option
    mysql grant all privileges on 'characters' . * to 'username'@'localhost' with grant option
    If you are using this to host a server and not to create a repack, you will want to do this:
    Code:
    mysql
    use auth;
    update realmlist set address = yourserver'sexternalip and name = 'server name';
    Getting your repack together

    Now you will want to put everything in one file so everyone can easily download and run it.
    A linux repack is going to be a little bit different than a windows one, it will require a bit more work on the downloader's end.

    Get your two executables (authserver & worldserver)
    Get your two .conf files
    put them all into a single folder somewhere
    now drop your databases to SQL files:
    Code:
    mysqldump -u USERNAME -pPASSWORD --all-databases > mydatabases.sql #no space between -p and PASSWORD
    put that file into the folder as well
    compress it by going to its parent folder and using the following command:
    Code:
    tar -zcvf repack.tar.gz NameOfDir
    Now you will want to include instructions on how to install ACE, openssl, and mysql
    Also be sure to include what user/pass you used for the mysql so that the downloaders can easily create said user and not have to edit .conf files

    Since this is for a linux server, you will want to upload this to an ftp host as these are easier to download using the command-line.
    Also don't forget to upload your maps, mmaps, vmaps, and dbc folders (all compressed as well)
    Last edited by Epicblood; 05-11-2013 at 03:23 AM.
    Awards:
    Donator Angry Poster LOL Troll Smartass Cant or Doesnt Read Facepalm! Drunk

  6. The Following 2 Users Say Thank You to Epicblood For This Useful Post:


  7. #4
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    How to Compile: Windows
    Alright, time for the much more common, slightly easier windows version of this tutorial.
    There are a few things you will want to install so let's do those first.
    -Dependencies
    To pull the source, you will need Git.
    Then you will need to generate the project files using CMake.
    Then you will want to compile the source with Microsoft Visual Studio.
    You will need to Install a MySQL server.
    You need the .Net framework 3.5.
    And finally you need OpenSSL
    These can all be downloaded here:
    Most of these you can just install normally, however if you plan on creating a portable MySQL server to include with your repack, you have to do this (Skip this if this is for you/your server or you don't plan on including a portable MySQL server)
    Please note, this part of the tutorial is taken mostly from jeutie's thread here

    First, you want to uncheck "install as windows service" and "include bin directories in PATH" then just install as normal.
    in the "installdir/bin/my.cnf" change
    Code:
    basedir=""
    datadir=""
    to
    Code:
    basedir="../Server/mysql"
    datadir="../Server/mysql/data"
    Now inside the Server folder you will want to create a .bat file to start up the server, here is the one provided by Jeutie:
    Code:
    @echo off
    COLOR F
    echo _______________________Jeutie's Blizzlike Repack________________________
    echo _______________________________MySQL 5.5.9______________________________
    echo ################Made Using Epicblood's complete tutorial##############
    echo.
    echo MySQL is currently running. Please only close this window for shutdown.
    echo Please disregard any InnoDB or Plugin notices. They are unnecessary.
    echo After your server is shut off, press CTRL C to shut down this service.
    mysql\bin\mysqld --defaults-file=mysql\bin\my.cnf --standalone --console
    
    if errorlevel 1 goto error
    goto finish
    
    :error
    echo.
    echo ERROR: the MySQL service could not be started.
    echo Please check if no other MySQL server is running.
    pause
    
    :finish
    Alright, now that you have the "Server" Folder of the repack done, let's move on to compiling the core, shall we?
    -Compiling the core
    Compiling the core is really very simple and is just some button pushing
    First you want to pull the source.
    Create a folder anywhere (let's say Desktop).
    Now name that folder something like Trinity.
    Right click that folder and go to Git Extensions -> Clone
    In the "Repository to clone" field, enter
    Code:
    https://github.com/TrinityCore/TrinityCore.git
    The rest should remain the same.
    Simply hit clone, wait a few seconds/minutes and congrats you have the source.


    Now we want to generate the project files.
    This is quite possibly the easiest part (maybe second easiest)
    First create a new directory (we will call it Build and put it in the Trinity folder)
    Open the CMake GUI
    in the source path, browse the folder you just pulled (Desktop/Trinity/TrinityCore)
    in the build path go to your build folder (Desktop/Trinity/Build)
    then select configure
    a window will pop up asking which compiler you want to use, we will use Visual Studio 2010
    Make sure the following is checked:
    Code:
    Scripts
    Servers
    Tools (unless you don't plan on extracting your own maps, vmaps, mmaps, and dbcs
    Use_CorePCH
    Use_MYSQL_Souces
    Use_Script_PCH
    The rest should be fine.
    Click configure again.
    Then hit generate.
    Congrats, the project files have been generated.


    Now we want to actually compile our core
    In the build folder, find the file called "ALL_BUILD.vcprojx"
    Open it with Visual Studio 2010
    near the top of the GUI is a part that says "Debug" click that and change to "Release"
    now click on the little green arrow next to it
    Now go grab a snack, take a walk, do something cause this may take awhile.
    When it is done, browse to your build folder again and then to bin/Release
    Copy all the files in there to your Core folder (as in Repack/Core and Repack/Server)
    Rename the .conf.dist files to simply .conf files
    Either extract or download your maps, vmaps, mmaps, and dbcs and put them in the core folder as well.


    Now start up your MySQL server
    using your favorite DB management tools (Not NaviCat) connect to the server
    run the Create.sql file found in TrinityCore/sql/create
    then run the auth.sql and characters.sql in their respective databases
    download the world database from here
    Now run all the updates found in the TrinityCore/sql/updates folder
    DO NOT TRY AND COMBINE THESE they do not combine in order, and will not apply properly. I know this is a pain, but it has to be done.
    Congrats, you have made a server/repack on a windows host.
    Please feel free to ask any questions or give any comments/feedback in this thread.

    If I forgot anything or made some sort of typo/mistake let me know :)
    Last edited by Epicblood; 05-11-2013 at 03:23 AM.
    Awards:
    Donator Angry Poster LOL Troll Smartass Cant or Doesnt Read Facepalm! Drunk

  8. #5
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    ArcEmu
    How to Compile: Windows
    -Things you will need
    Before we get started, you will want to install a few programs
    You will need:
    -Pulling the source
    Now you will want to pull the source code, this is really very simple.
    Simply make a folder anywhere and name it anything (we will use ArcEmu on Desktop)
    Now in there, make a folder named Code
    Then right click it and go to Git -> Clone
    Repository address is:
    Code:
    git://github.com/arcemu/arcemu.git
    Hit Clone
    Now wait a few seconds/minutes and Voilą you have the source (see, that was easy)
    -Generating the project files
    Now that we have the source code, we want to make it easier to compile.
    To do this, we will use CMake to generate project files that Visual Studio will read/interpret and know what files to compile, in what order, and what to include where
    So first, make a Build folder under your ArcEmu folder (for me it would be Desktop/ArcEmu/Build)
    now open the CMake GUI
    Set the Source folder to the Cmake folder inside the Code Folder (Dekstop/ArcEmu/Code/CMake)
    Set the build folder to the Build folder we just made (Desktop/ArcEmu/Build)
    hit configure
    A window will pop up asking us which compiler we want to use
    We will be using Visual Studio 10
    hit ok, then configure
    the default options will be fine for us, so hit configure again
    now hit Generate
    Woot, another step done. Let's move on
    -Compiling the code
    This part may seem intimidating, but is really quite simple.
    Browse to your Build folder (Desktop/ArcEmu/Build)
    Open ArcEmu.sln with Visual Studio 2010
    Now it may take a while as it has to parse all the files and get everything ready for you, so don't worry, just relax
    If a box pops up asking what language you want to use, select Microsoft Visual C++
    Change the box that says "Debug" to "Release"
    Now simply click The ALL_Build in the sidebar and hit F7 or the green arrow next to "Release"
    This may take a while so grab a snack
    There may be some warnings, but as long as there are no errors we're fine.
    Congrats, you have compiled ArcEmu
    -Making Portable MySQL (only if you want to make this a repack)
    Make a folder called Repack inside your ArcEmu folder (Desktop/ArcEmu/Repack)
    Now in there, make a folder called Server (Desktop/ArcEmu/Repack/Server)
    Please note, this part of the tutorial is taken mostly from jeutie's thread here

    in the "installdir/bin/my.cnf" (usually C:\Program Files\MySQL\bin\my.cnf) change
    Code:
    basedir=""
    datadir=""
    to
    Code:
    basedir="../Server/mysql"
    datadir="../Server/mysql/data"
    Now inside the Server folder you will want to create a .bat file to start up the server, here is the one provided by Jeutie:
    Code:
    @echo off
    COLOR F
    echo _______________________Jeutie's Blizzlike Repack________________________
    echo _______________________________MySQL 5.5.9______________________________
    echo ################Made Using Epicblood's complete tutorial##############
    echo.
    echo MySQL is currently running. Please only close this window for shutdown.
    echo Please disregard any InnoDB or Plugin notices. They are unnecessary.
    echo After your server is shut off, press CTRL C to shut down this service.
    mysql\bin\mysqld --defaults-file=mysql\bin\my.cnf --standalone --console
    
    if errorlevel 1 goto error
    goto finish
    
    :error
    echo.
    echo ERROR: the MySQL service could not be started.
    echo Please check if no other MySQL server is running.
    pause
    
    :finish
    Now to start your MySQL server, simply run the .bat file
    -Setting up MySQL
    ArcEmu uses 3 databases:
    Code:
    arc_logon
    arc_character
    arc_world
    use something like heidiSQL to connect to your database and create these tables
    now browse to your code folder (Desktop/ArcEmu/Code)
    open the sql folder
    execute
    Code:
    character_structure.sql
    logon_structure.sql
    into their respective Databases (nothing in the world DB)
    We will be using WhyDB for the world database
    To use WhyDB, create a new .bat file and insert the following:
    Code:
    http://svn.xp-dev.com/svn/whydb-users/tool.bat
    Then Run the bat file (you only need to import the DB, don't worry about the other options)
    Now you will want to create an account, run the following query in the logon database:
    Code:
     INSERT INTO `accounts` (login, password, gm, flags, forceLanguage, banned) VALUES ('USERNAME', 'PASSWORD', 'az', '24', 'enEN', '0');
    -Configuration
    Alright, you have everything all ready and compiled, now you just have to configure your server. This really looks a lot harder than it actually is, so let's get to it.

    -World.conf
    World.conf needs to know your database info, so set that here:
    Code:
    <WorldDatabase Hostname = "localhost" Username = "root" Password = "passwd" Name = "arc_world" Port = "3306" Type = "1">
    <CharacterDatabase Hostname = "localhost" Username = "root" Password = "passwd" Name = "arc_character" Port = "3306" Type = "1">
    Most likely you don't have to change anything (default user/pass for Xampp is root/nopassword)
    Simple enough right?

    And one more thing:
    Code:
    <LogonServer DisablePings = "0"
                 RemotePassword = "HERE_MUST_BE_THE_SAME_PASSWORD">
    -logon.conf
    Same thing as world.conf, it needs to know your database infos. Fill those in here:
    Code:
    <LogonDatabase Hostname = "localhost"
                   Username = "root"
                   Password = "passwd"
                   Name     = "arc_logon"
                   Port     = "3306"
                   Type     = "1">
    And set the Remote password

    Code:
    <LogonServer RemotePassword = "HERE_MUST_BE_THE_SAME_PASSWORD"
                 AllowedIPs = "127.0.0.1/24"
                 AllowedModIPs = "127.0.0.1/24">
    -Realms.conf
    This varies on whether you want to host locally, on Lan, or make it public.
    If you want to do Local (just host computer) or Lan (computers in your network or hamachi) you don't have to change anything. However, if you want to make it public, set the realm IP to your external IP address (https://www.google.com/search?q=what+is+my+ip)
    -Put in one folder
    Now make a folder called ArcEmu or Repack. Inside make 2 folders, one called Server, and one Called core.
    Move all core files (arcemu executables, dll files, config file/folders etc) and maps/vmaps/mmaps/dbc into here. In the server folder put your portable MySQL in there.
    Now compress and upload to a site like mediafire.
    Last edited by Epicblood; 05-15-2013 at 11:12 PM.
    Awards:
    Donator Angry Poster LOL Troll Smartass Cant or Doesnt Read Facepalm! Drunk

  9. The Following User Says Thank You to Epicblood For This Useful Post:


  10. #6
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    -reserved

  11. #7
    Original Poster
    Epic Member <span style='color: #9400D3'><span class='glow_000000'>Epicblood</span></span>'s Avatar
    Join Date
    May 2013
    Location
    California
    Posts
    380
    XP
    5,459
    Level
    21
    Thanks
    145
    Thanked 52 Times in 32 Posts
    -reserved 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •