• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Compiling LIBS to compile (LINUX)

Kuantikum

Member
Joined
Jul 3, 2015
Messages
219
Solutions
1
Reaction score
20
Is there a possibility/WAY to know which LIBS do I need to install to compile a certain sources, not knowing the version of TFS?

Im using this sources:
77.36 MB file on MEGA (https://mega.nz/file/jNsyxC7K#r-6GY7P4zbU3X2ajo3LkDGa-Z9fDVGnUdPq3AuhtXXI)


I have multiple options in OS:

os.JPG

I managed to compile using ubuntu 16.04, however when making /save or automatic server-save, the server crash. In windows it works.


I used this procedure to compile:


apt-get install autoconf build-essential pkg-config automake libboost-all-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmysqlclient-dev libssl-dev libsqlite3-dev
apt-get install libboost1.42-all-dev
apt-get install libcrypto++-dev

cd /3777-master
chmod -R 777 src
cd src
./autogen.sh && ./configure --enable-sqlite --enable-mysql --enable-root-permission --enable-server-diag && make
 
Last edited:
I found this: Linux - TFS 0.3.6 save = crash (https://otland.net/threads/tfs-0-3-6-save-crash.221209/)

Most likely your source code, a known thing with 0.3 and some 0.4 revs is that reloading and saving crashes the server.
Either move to a more stable rev or try to find the bugged code using the bug tracker.

How can i move the source to a other REV and what about the bug tracker?

In the sources, which codes refer to the SAVE system? What would be the .h or .ccp file?


Can some one give me light in the darkness ? haha
 
Last edited:
however when making /save or automatic server-save, the server crash. In windows it works.
Common problem with OTS distros with .exe is that in .exe is compiled other code than in 'sources' folder. You compile it on linux and you got totally different code without XX bugs fixed.
There is also other possible problem. If you moved it to linux, it's probably because you get more players online and you moved it to VPS. More players detect/generate more bugs. So on Windows there could be same bugs.
How can i move the source to a other REV and what about the bug tracker?
It's not easy, because changing engine (to TFS 1.x) will also require changing most of LUA scripts.
In the sources, which codes refer to the SAVE system? What would be the .h or .ccp file?
In case of linux:
Before you start server (./tfs etc.) , type:
Code:
ulimit -c unlimited
After crash, it will generate file with name core
Then type:
Code:
gdb tfs core
Then type:
Code:
bt full
and it will generate raport like this:
Code:
Thread 2 "tfs" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff493b700 (LWP 2308)]
0x00005555559192b8 in Tile::hasProperty(ITEMPROPERTY) const ()
(gdb) bt full
#0  0x00005555559192b8 in Tile::hasProperty(ITEMPROPERTY) const ()
No symbol table info available.
#1  0x00005555556d2680 in AreaCombat::getList(Position const&, Position const&, std::forward_list<T                                                               ile*, std::allocator<Tile*> >&) const ()
No symbol table info available.
#2  0x00005555556cf563 in Combat::getCombatArea(Position const&, Position const&, AreaCombat const*                                                               , std::forward_list<Tile*, std::allocator<Tile*> >&) ()
No symbol table info available.
#3  0x00005555556d0c51 in Combat::CombatFunc(Creature*, Position const&, AreaCombat const*, CombatP                                                               arams const&, void (*)(Creature*, Creature*, CombatParams const&, CombatDamage*), CombatDamage*)
    ()
No symbol table info available.
#4  0x00005555556d14c2 in Combat::doCombatHealth(Creature*, Position const&, AreaCombat const*, Com                                                               batDamage&, CombatParams const&) ()
No symbol table info available.
#5  0x00005555556d12a2 in Combat::doCombat(Creature*, Position const&) const ()
No symbol table info available.
#6  0x000055555590d790 in CombatSpell::castSpell(Creature*) ()
No symbol table info available.
#7  0x000055555590d967 in CombatSpell::castSpell(Creature*, Creature*) ()
No symbol table info available.
#8  0x0000555555862627 in Monster::doAttacking(unsigned int) ()
No symbol table info available.
#9  0x000055555570798b in Creature::onAttacking(unsigned int) ()
No symbol table info available.
#10 0x000055555573cbaf in Game::checkCreatures(unsigned long) ()
No symbol table info available.
#11 0x000055555576542d in void std::__invoke_impl<void, void (Game::*&)(unsigned long), Game*&, uns                                                               igned long&>(std::__invoke_memfun_deref, void (Game::*&)(unsigned long), Game*&, unsigned long&)
    ()
No symbol table info available.

ABOUT COMPILING TFS 0.4 ON UBUNTU 20.04:
I wrote tutorial how to fix all problems: [C++/Linux] Compiling old engine (sources) on Debian 10 / Ubuntu 20.04 (https://otland.net/threads/c-linux-compiling-old-engine-sources-on-debian-10-ubuntu-20-04.274654/)
 
Last edited:
Back
Top