EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=618)
-   -   0.2.3 compile and run on Linux (https://www.eqemulator.org/forums/showthread.php?t=380)

misanthropicfnd 02-13-2002 02:20 PM

Here's a potential fix:

Modify world/net.cpp line 326 to read:

if (fscanf (f, "%[^=]=%[^\r\n]\n", type, buf) == 2)


It turns out vim was concealing carriage returns in the file I was using for testing. Darn end of line characters...

yngling 02-13-2002 02:37 PM

success!!!
 
[root@design eqemu]# world/world
LoginServer.ini read.
Using database 'eq' at localhost
Loading items...done.
Loading guild ranks...done.
World server listening on port:9000
Connected to LoginServer: eqlogin.gotfrags.com:5999

Misanth,
you are the MAN
enough said... :)

Stud 02-13-2002 03:20 PM

Same here! Currently running a Linux World and an NT World both off the same DB, time to do some testing! hehe

Thanks for the help!

yngling 02-13-2002 03:26 PM

not so success...
 
well...things apear to be runnin fine, until ya try to go into the game
can create a character, etc, but when i actually try to enter... back to the select server screen...
here is a copy of output...
names changed to protect the innocent

98490 New client from ip: yyy.yyy.yyy.yyy port:2379
Logged in: LS#1440: yngling
Sending list of guilds
Unknown opcode: 0x3521 size:2056
Unknown opcode: 0x3921 size:2056
Unknown opcode: 0x9221 size:4
0000: B0 4B C6 D6 | .K..
Unknown opcode: 0x9220 size:16
0000: 00 00 00 12 00 00 FF 7F - 00 00 00 00 00 00 00 00 | ................
Attempting autobootup of 'kaladima' for Yngling
Map: Maps\kaladima.map not found.
Reading zhdr file './cfg/kaladima.cfg'
Reading zhdr file './cfg/kaladima.cfg'
-----------
Zone server 'kaladima' listening on port:9003
-----------
Zoneserver SetZone: xxx.xxx.xxx.xxx:9003 kaladima
Enter world: Yngling: kaladima
Zoneserver SetZone: xxx.xxx.xxx.xxx:9003 kaladima
Client disconnected
Removing client from ip:yyy.yyy.yyy.yyy port:2379
New client from ip: yyy.yyy.yyy.yyy port:2381
Login packet 1
Login packet 2
Client disconnected (!pm.CA): Yngling
Client disconnected (cs=d): Yngling
Automatic shutdown
Message:----SERVER SHUTDOWN----
Zone shutdown: going to sleep
Zoneserver SetZone: xxx.xxx.xxx.xxx:9003
Zoneserver SetZone: xxx.xxx.xxx.xxx:9003

steve 02-13-2002 09:08 PM

I can get login, chat, and zone to compile successfully.

However, world dies near the end.

$ make
gcc -g -m486 -03 -pthread -pipe -DFX -D GNU_SOURCE -DLUCLIN -I/usr/include/mysql ../common/EQFragment.o .. /common/EQPacket.o ../common/EQPacketManager.o ../common/timer.o ../common/database.o ../common/packet_dump.o ../common/races.o ../common/unix.o ../common/Mutex.o ../common/MiscFunctions.o client.o net.o console.o zoneserver.o LoginServer.o -L. -lstdc++ -lm -L/usr/lib/mysql -lmysqlclient -o world

/usr/bin/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':my_compress.o(.text+0x9a): undefined reference to `uncompress'
/usr/bin/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':my_compress.o(.text+0x12a): undefined reference to `compress'
collect2: ld returned 1 exit status
make: *** [world] Error 1

Compiling on RedHat 7.2. Please ignore any obvious spelling errors, as this was all typed in by hand from my laptop's screen. :)

Stud 02-13-2002 10:08 PM

Steve, you need to add -lz to your relevant makefile
line. I'm at work at the moment or I could tell you precisely where.

This is required as the compress/uncompress utilities are in libz.
In some Linux distributions (Red Hat 7.0 would be an example), mysql clients will not successfully build without this.

Trumpcard 02-14-2002 03:13 AM

Got it too compile under gcc 3.0 !

Had to make the following changes

- Update the hex and dec fields per Mis above to point to std::<cast> . I found the section in gnu.org where they discussed the changes they made in namespaces from 2.95 to 3.0. Good catch on that one Mis!

- Had to add <include stdarg.h> to all files that referenced any of the va_start, va_stop, or va_list functions.

- Modified the makefile so the -lz was included, and changed -m486 to march=i486 (-m486 was deprecated)


Everything built successfully, I will reload the database and see if I can't get it up and running when I get home this afternoon.

Note to Mis: If ya hate those ^M linefeeds, run
dos2unix *

It will strip them out of all the files in the directory!

flipper 02-14-2002 07:49 AM

During compilation of any of the modules (world/zone/login), I'm getting flooded with a billion messages along the lines of:

Code:

../common/database.cpp: In method `bool Database::GetPlayerProfile
(unsigned int, char *, PlayerProfile_Struct *)':
../common/database.cpp:850: parse error before `;'
../common/database.cpp: In method `bool Database::SetPlayerProfile
(unsigned int, char *, PlayerProfile_Struct *)':
../common/database.cpp:901: parse error before `;'
../common/database.cpp: In method `int32 Database::GetAccountIDByChar
(char *)':

I have MySQL and libmysql installed. My libmysqlclient is installed in /usr/lib, which seems to jive with the makefiles. Anyone know why I'm getting all these parse errors?

Thanks,
==Flipper==

steve 02-14-2002 11:27 AM

Thanks Stud!

Successfully compiled now :)

Trumpcard 02-17-2002 05:38 PM

Flipper, you may have the libraries installed, but it doesnt look like you have the development headers installed.

If you are using a binary rpm distro version of mysql, do this

rpm -qa |grep mysql

You should see one that says mysql-devel-vxxxx.rpm

If you dont have that, then the mysql header files arent available to compile against. I would recommend downloading and installing it from mysql.com

Hope this helps...

flipper 02-17-2002 06:42 PM

Trumpcard,

That probably was it. I was running a beta version of the new Mandrake Linux (8.2b1). I found a few bugs, reported them, then blew it away so I could get 8.1 back on.

Now it compiles just fine :)

Thanks!

Stud 02-18-2002 10:27 AM

Has anyone managed to fix NPC names to show? Or are there any flavor of Linux install not seeing this problem?

Any spawned Linux server I've seen yet has the same problem mine does, no npc names. Any idea's Misa?

misanthropicfnd 02-18-2002 01:11 PM

I figured out the problem w/npc names not showing up, and a fix is in for the next release.
Glibc's snprintf clears its destination buffer before operating on it, & the code was trying to use the same buffer as source & destination erasing an npc's name. It took way too long to figure out the problem only to have to add a couple of lines to workaround the issue, but it's fixed.

yngling 02-18-2002 01:42 PM

next release
 
as a kinda weak programmer and experienced sys admin, what can I do to assist with getting the next linux release out?

Shawn319 02-19-2002 12:55 AM

As far as i know starting with 0.2.3 it should work with both OS's.


All times are GMT -4. The time now is 05:50 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.