Problem when running a servewr compiled with nvgt on linux

hi all
I have a question. how to run a server.exe on linux? are there any spesific compiles I sohuld use? or should I just compile for linux?`

Hi,

Indeed, you should just be able to compile your script for Linux using the context menu option or NVGT's launcher UI. Be sure that when the server runs on Linux, you also copy the supporting libraries that NVGT puts in the compiled package for you.

Are you getting any error in particular?

1 Like

does nvgt support ubuntu22.04? if so, are there any packages I need to install to get it to work with 0.90 dev code

Hi,

Yes, Ubuntu 22 should be supported, and many of the libraries NVGT uses are statically linked.

For the record this is the apt command line we use to build NVGT, though you should not need hardly any of these packages installed to actually run games. sudo apt install -y build-essential libtool mesa-common-dev libxext-dev libxcursor-dev ladspa-sdk libxcomposite-dev libsystemd-dev autoconf libxxf86vm-dev libgl1-mesa-dev libxinerama-dev libx11-dev libltdl-dev libgtk-4-dev libglib2.0-dev libspeechd-dev libudev-dev linux-libc-dev libxrandr-dev libxrender-dev libwayland-dev pkg-config xorg-dev libglu1-mesa-dev libxft-dev libgsasl-dev clang python3-jinja2 zip gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

Are you getting any specific error or crash that you can report which would allow me to help further or just gathering information for the future?

if you can give me a few minutes I can grab you an error log

ok here you go. ./server: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.38' not found (required by ./server) ./server: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.38' not found (required by ./server)
./server: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.32' not found (required by ./server) ./server: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.31' not found (required by ./server)

Hi,

Thanks for that!

It makes sense on reflection, but I didn't initially realize that Github's ubuntu-latest runner which is Ubuntu-24.04 would be using a glibc that is completely incompatible with Ubuntu-22, or that we dynamically linked with it right now in the first place.

I've just pushed a commit which downgrades the Linux runner we build with to Ubuntu-22.04, can you please try the latest build and see if that solves your issue, and if not can you please post the latest error log?

In the future I'll see if we can statically link with glibc so that this sort of issue doesn't pop up again.

Thanks and sorry for the trouble!

1 Like

is it a commit for 0..90? cause that's what my code is ocmpatible with

hmm strange. now it silently crashes. I do ./server, anjd literally it runs for like a second, then siletntly crashes

I can confirm this isnt a code error because it works perfect on local host

Yes, all commits to NVGT at this point are for version 0.90-dev, 0.89.1-beta has been a finished release for a while. You'll want to make sure you are running the build based on commit 45b62d2c80e43bd3e03f57c532f1afe0fb5671de. On a platform that works, you can run the line of code alert("commit", NVGT_VERSION_COMMIT_HASH); to verify what commit the build is for if you aren't sure. Or even easier, here is the direct download link to the windows installer asset: https://github.com/samtupy/nvgt/releases/download/latest/nvgt_0.90.0_dev.exe or if you need the Linux build directly, https://github.com/samtupy/nvgt/releases/download/latest/nvgt_0.90.0_dev.tar.gz

Hopefully this fixes the issue!

Oops, sorry those posts came in while I was writing my last.

This is progress actually, at least NVGT itself now runs. No it's not a coding error on your part, but something you are requesting from NVGT is not working on Linux yet. I apologize for that and appreciate all this feedback so we can get it all working.

When you've got a few moments, can you please:

  1. sudo apt-get install gdb to install the debugger
  2. gdb ./server to open your program in the debugger
  3. when the gdb prompt appears, r to actually run the program
  4. When the program crashes, bt -full to print a full backtrace of the crash.
  5. And finally send that output here?

Again I apologize for the trouble here, in the midst of all my work with the sound system, I have not been able to thoroughly test the latest incarnations of Linux support as you are finding out, so this is invaluable actually thanks.

all it says is No stack.

Can you please send me the shell log anyway for the debug attempt? Either it should show me something pertinent to helping me fix the problem or else any incorrect steps in the debugger usage.

Alternatively, an entirely different approach would be to write me the smallest script that crashes on Linux and send that source, allowing me to debug it on my end.

Curious. If you write a script

 println("hello");
}```
Does that run on Linux? I'm thinking it should based on what you're telling me.

that was all it shown when I ran the command to see the output