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

Please provide a headless server binary #90

Open
ouryperd opened this issue Mar 17, 2019 · 8 comments
Open

Please provide a headless server binary #90

ouryperd opened this issue Mar 17, 2019 · 8 comments
Assignees

Comments

@ouryperd
Copy link

This is a feature request for a headless server edition.

@isilkor isilkor added this to To do in Infrastructure Mar 17, 2019
@isilkor
Copy link
Contributor

isilkor commented Mar 17, 2019

@lluchs Can we just upload_snapshot.sh another binary or do we need some changes on the backend?

@lluchs
Copy link
Member

lluchs commented Mar 17, 2019

I think we'll want a separate Travis build for this to get a minimal server binary. I believe it would still link with audio libraries and other unnecessary stuff otherwise.

We'll also need another target that installs the server binary and supporting files (but not the music) for creating an AppImage. I'll look into that, we also need that for a mape snapshot.

@jcaesar
Copy link
Member

jcaesar commented May 2, 2019

Out of curiosity, @ouryperd: why is building it yourself not an option for you?

@ouryperd
Copy link
Author

from looking at it briefly, the install has a lot of dependencies for X. I've briefly looked at building but I am out of my depth.

@jcaesar
Copy link
Member

jcaesar commented Jul 20, 2019

I do wonder whether HEADLESS_ONLY still works.

@jcaesar
Copy link
Member

jcaesar commented May 1, 2020

@lluchs For me, compiling with or without HEADLESS_ONLY links exactly the same set of libraries, and no audio libraries, so you might not need another target:

linux-vdso.so.1
libpng16.so.16
libz.so.1
libjpeg.so.62
libreadline.so.8
libtinfo.so.6
libtinyxml.so.2
libminiupnpc.so.17
libpthread.so.0
librt.so.1
libdw.so.1
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
libtinfow.so.6
/lib64/ld-linux-x86-64.so.2 
libelf.so.1
libdl.so.2
liblzma.so.5
libbz2.so.1

(Linking miniupnpc is maybe not so nice either…)

@lluchs
Copy link
Member

lluchs commented May 1, 2020

The way our CMake definitions are set up, it enables optional features based on whether the library is available, even though only a small subset is actually required. So you need to run the build in a virtual machine / container with only the stuff that's actually required. See here for an example - only zlib, libjpeg and libpng are required for a minimal build (looks like it's also linking to readline there, though).

builds.sr.ht also has Alpine, maybe we could get a statically-linked minimal openclonk-server build out of that.

@jcaesar
Copy link
Member

jcaesar commented May 4, 2020

Thinking about it… if it's already a static binary, having readline built in might be neat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Infrastructure
  
To do
Development

No branches or pull requests

4 participants