Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux static build #3

Merged
merged 3 commits into from Apr 3, 2021
Merged

Linux static build #3

merged 3 commits into from Apr 3, 2021

Conversation

slipher
Copy link
Contributor

@slipher slipher commented Mar 1, 2021

Linux static build for 0.52 working in Docker. Depends on DaemonEngine/Daemon#433. Questions:

  1. Am I right to suppose that to run on as many systems as possible, it is better to use the legacy GL dependency (libGL.so) rather than the GLVND ones (libGLX.so, libOpenGL.so)?
  2. For OpenAL audio backends I have ALSA, JACK, PulseAudio. Are there any other important ones to have?

@illwieckz
Copy link
Member

  1. I have no idea.
  2. I've read people saying PipeWire is the future but it's not the present yet also it is probably supposed to provide a compatibility API. I don't believe we have to care about something that is not ALSA, Jack and PulseAudio for the moment (OSS was for Linux 2.4 so it's now only a compatibility layer over ALSA since more than a decade).

This is very exciting!

@illwieckz
Copy link
Member

I did:

docker build -t unvanquished-static .

and it looks like everything ran properly!

Now I just need to know how to recover the built archive. 🙂

@slipher
Copy link
Contributor Author

slipher commented Mar 1, 2021

There are a couple of ways (both annoyingly verbose) to get out the file; both are exhibited in the updater README. I'm using something like docker create --name tmp unvanquished-static; docker cp tmp:/Unvanquished/build/release/linux-amd64.zip .; docker rm tmp

@illwieckz
Copy link
Member

Thanks, I was able to retrieve it and run it!

I got this:

]AL lib: (WW) GetSymbol: Failed to load jack_error_callback: /usr/lib/x86_64-linux-gnu/libjack.so.0: undefined symbol: jack_error_callback
AL lib: (WW) jack_msg_handler: Cannot connect to server socket err = No such file or directory
AL lib: (WW) jack_msg_handler: Cannot connect to server request channel
AL lib: (WW) jack_msg_handler: jack server is not running or cannot be started
AL lib: (WW) jack_msg_handler: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
AL lib: (WW) jack_msg_handler: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
AL lib: (WW) ALCjackBackendFactory_init: jack_client_open() failed, 0x11
AL lib: (WW) alc_initconfig: Failed to initialize backend "jack"

This does not prevent me to run the game with sound because I don't use jack, but I assume it would if I used it.

That's a huge progress anyway!

@illwieckz
Copy link
Member

For reference, I tested the build on Xenial (Ubuntu 16.04), and I got that:

./daemon: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by ./daemon)
./daemon: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./daemon)

I'm not saying we have to support Xenial, but at least we know what to expect.

I have a Xenial testing image of Ubuntu for the sole reason the Nvidia Curie GPU (Geforce 6000/7000) does not have working drivers on more recent Ubuntu LTS because of the proprietary driver not being ported on newer kernels, and the open free driver being garbage on such hardware. But that's very old hardware.

@slipher
Copy link
Contributor Author

slipher commented Mar 1, 2021

I tested on Ubuntu 18.04 and that links sucessfully, so I guess that seems good enough? It has versions up to GLIBC_2.27 and GLIBCXX_3.4.25.

In any case I'll add a check for that to validate-release like I did for the updater.

@illwieckz
Copy link
Member

I believe it's OK to take Ubuntu 18.04 as a minimum.

People with a real need to still use Ubuntu 16.04 can still build the engine themselves.

@slipher slipher marked this pull request as ready for review March 4, 2021 05:12
@slipher slipher mentioned this pull request Mar 12, 2021
@illwieckz
Copy link
Member

The jack issue was related to some build environement on my end. When running the build like anyone would do™ everything works fine.

@slipher slipher merged commit bf277e3 into Unvanquished:master Apr 3, 2021
@slipher slipher deleted the linuxstatic branch April 3, 2021 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants