PDA

View Full Version : Make Error with Servertalk_client_connection.cpp


Riklin
06-10-2018, 05:20 PM
Server is latest version of Debian Linux and worked perfectly the last time I compiled (8ish months ago).

I decided to start over. did a git pull, then ran cmake (no errors), then make.

I'm getting this error when running make. Any help appreciated:

[ 23%] Building CXX object common/CMakeFiles/common.dir/net/servertalk_client_connection.cpp.o
/home/eq/eqemu/common/net/servertalk_client_connection.cpp: In member function ‘void EQ::Net::ServertalkClient::Send(uint16_t, EQ::Net::Packet&)’:
/home/eq/eqemu/common/net/servertalk_client_connection.cpp:36:103: error: ‘crypto_box_easy_afternm’ was not declared in this scope
crypto_box_easy_afternm(&cipher[0], (unsigned char*)p.Data(), p.Length(), m_nonce_ours, m_shared_key);
^
/home/eq/eqemu/common/net/servertalk_client_connection.cpp: In member function ‘void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net: :Packet&)’:
/home/eq/eqemu/common/net/servertalk_client_connection.cpp:276:120: error: ‘crypto_box_open_easy_afternm’ was not declared in this scope
if (crypto_box_open_easy_afternm(&decrypted_text[0], (unsigned char*)&data[0], length, m_nonce_theirs, m_shared_key))
^
/home/eq/eqemu/common/net/servertalk_client_connection.cpp: In member function ‘void EQ::Net::ServertalkClient::SendHandshake(bool)’:
/home/eq/eqemu/common/net/servertalk_client_connection.cpp:357:102: error: ‘crypto_box_easy_afternm’ was not declared in this scope
crypto_box_easy_afternm(&signed_buffer[0], &data_buffer[0], data_length, m_nonce_ours, m_shared_key);
^
common/CMakeFiles/common.dir/build.make:1871: recipe for target 'common/CMakeFiles/common.dir/net/servertalk_client_connection.cpp.o' failed
make[2]: *** [common/CMakeFiles/common.dir/net/servertalk_client_connection.cpp.o] Error 1
CMakeFiles/Makefile2:75: recipe for target 'common/CMakeFiles/common.dir/all' failed
make[1]: *** [common/CMakeFiles/common.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Akkadius
06-10-2018, 05:52 PM
Hey Riklin!

You ran into a crypto dependency of the loginserver with the netcode overhaul

You can see here where we would install this in a new setup:

https://github.com/EQEmu/Server/blob/master/utils/scripts/linux_installer/install.sh#L120

Try

apt-get install libsodium-dev libsodium18

And then re-running cmake and `make clean`

That should get you sorted out

Riklin
06-10-2018, 06:27 PM
the apt-get command gives me a "unable to locate package" error.

I tried installing using this:
<code>
apt-get install libsodium-dev
</code>

it works but appears to be an older version of libsodium 1.0.0-1.

I'm going to guess I have to do this the hard way? Download the lobsodium tar file and compile it?

Akkadius
06-10-2018, 06:28 PM
the apt-get command gives me a "unable to locate package" error.

I tried installing using this:
<code>
apt-get install libsodium-dev
</code>

it works but appears to be an older version of libsodium 1.0.0-1.

I'm going to guess I have to do this the hard way? Download the lobsodium tar file and compile it?

You should be able to manually pull down the package as well

# Install libsodium
wget http://ftp.us.debian.org/debian/pool/main/libs/libsodium/libsodium-dev_1.0.11-1~bpo8+1_amd64.deb -O /home/eqemu/libsodium-dev.deb
wget http://ftp.us.debian.org/debian/pool/main/libs/libsodium/libsodium18_1.0.11-1~bpo8+1_amd64.deb -O /home/eqemu/libsodium18.deb
dpkg -i /home/eqemu/libsodium*.deb
# Cleanup after ourselves
rm -f /home/eqemu/libsodium-dev.deb
rm -f /home/eqemu/libsodium18.deb

Riklin
06-10-2018, 08:04 PM
Thanks so far. That fixed that issue. I looked at the script you linked and installed all that was under debian. Most were already installed but a few weren't. I am now getting an error on skill_caps.cpp.o. Here is the error for that:
[ 51%] Building CXX object shared_memory/CMakeFiles/shared_memory.dir/skill_caps.cpp.o
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so', needed by 'bin/shared_memory'. Stop.
CMakeFiles/Makefile2:367: recipe for target 'shared_memory/CMakeFiles/shared_memory.dir/all' failed
make[1]: *** [shared_memory/CMakeFiles/shared_memory.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2


Thanks again for all your assistance... It appears that the linux server install guide is getting pretty out of date...

Akkadius
06-10-2018, 08:08 PM
The manual install guide is very out of date, use the one on Github. I need to go through and purge everything in the very near future

It looks like you need to just remove your entire build folder, make another one from scratch and make from scratch to be sure if make clean didn’t do the trick