ALiVEOS / ALiVE.OS

ALiVE Open Source GPL v2
http://alivemod.com/
Other
157 stars 80 forks source link

ALiVEPlugin.so and the current state of linux support (spoiler: it's borked) #741

Closed BangL closed 1 year ago

BangL commented 3 years ago

Hello!

I've spend the last two or three days, trying to get my linux dedicated to server to run ALiVE with persistence. i gave up for now, since as far i as i understand the situation, it is not possible for now. With this post i am trying to put all information i gathered from memory. Sorry for not posting actual log files (as i would have to recreate the whole scenario for that), i will try to be as technically precise as possible anyways.

  1. no x64 support. we seem to not have a ALiVEPlugin_x64.so binary for now, so we are forced to use the 32bit arma3server binary. this is actually a small issue, and no game-breaker. but, since pretty much every common linux distro has already dropped actual 32bit support, and we do have a 64bit arma3server binary, this is a thing, worth noting.

  2. plugin naming issue (case-sensivity) first a little backstory: there is this convention, that we only use lower-case for any files that are externally called by sqf scripting. the reason for that is: linux acts case sensitive. the most common issue you will face, when trying to run an arma server on linux, is that pretty much all mod/addon files are named any-case, but called lower-case. so all files have to be converted to lower-case names on said linux machines. or in other words: to fix case issues on linux, all we linux admins have some kind of ./toLower script, we run anytime we install any new mod, to work around those naming issues.

    • now the problem about this: ALiVEPlugin.so is the only exception i've seen yet, which is another "small" issue, and no game-breaker. But: solving this on your end could save a few linux admins from getting headaches. to help this, all you would have to do is changing all your callExtension calls to lowercase. this would not have ANY effect on typical windows amchines, while now beeing "conventional" for linux machines.
  3. the actual game-breaker for now: invalid UTF-8 JSON now, when you figure all this out, revert your server startscript to calling the 32bit server binary, solve the missing libcurl4-32bit dependency (another headache i didnt even mention yet), and you fixed your toLower script to ignore the very special ALiVEPlugin.so-case, then you come across the problem, that: the current .so sends invalidly encoded json string to your cloud. (not utf-8)

i would like to fix it myself, but i am not able to find any code for the aliveplugin.so

Now, to solve these issues, you guys could do the following, and all these problems should be solved:

again: sorry for not providing logs etc. let me know if you are willing to spend time on this, then i will be willing to spend time reproducing the issue, recreating logs and testing, too.