Anleitung: Legacy Clonk Kompilieren auf Fedora Linux

Legacy Clonk ist eine mega coole Sache, großes danke an die Entwickler!!
Hier mal noch eine Anleitung zum kompilieren auf Fedora (ohne Update Funktion), falls es jemand brauchen kann. Anwendung auf eigene Gefahr!

Install Libraries

sudo dnf install   freetype-devel libjpeg-devel libpng-devel openssl-devel zlib-devel mesa-libGL-devel glew-devel freeglut-devel libXpm-devel SDL2_mixer-devel  libXxf86vm-devel gtk2-devel libnotify-devel

Clone Repository

git clone https://github.com/legacyclonk/LegacyClonk.git
cd LegacyClonk

Make!

cmake  -DCMAKE_BUILD_TYPE=RelWithDebInfo .  -DWITH_DEVELOPER_MODE=ON
make

Dann cr_game_linux.tar.bz2 von http://www.clonk.de downloaden und extrahieren.
Die Dateien „c4group“ und „clonk“ von dem Ordner LegacyClonk/ in den downgeloadeten Ordner kopieren.

Dann clonk starten via cd in den gedownloadeten Ordner und
./clonk

Achtung: Bei wiederholten kompilieren nach Fehler eventuell CMakeCache.txt löschen falls vorhanden.

(getested auf Fedora 37)

2 „Gefällt mir“

Danke für die Anleitung.

Für den Editormodus der Engine (/console) müsste noch -DWITH_DEVELOPER_MODE=ON bei den cmake-Argumenten ergänzt werden.

Hier noch eine kleine Verbesserungsmöglichkeit:
Es ist praktischer wenn man das Kompilieren in einen eigenen Ordner macht. Dadurch kann man unter anderem mehrerere Konfigurationen nebeneinander kompilieren oder bei Problemen einfach den ganzen Ordner löschen.

Dazu muss man vor dem Aufruf von cmake den Ordner erstellen und hinein navigieren:

mkdir build
cd build

Dann noch beim cmake-Aufruf den Pfad zu den Quelldateien anpassen, der Rest funktioniert gleich:
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_DEVELOPER_MODE=ON

Beim Kopieren dann nur nicht vergessen, in den Unterordner zu schauen.

Unter Fedora 30 scheint es unter Wayland noch Probleme zu geben, X-Org läuft ohne Probleme, unter Wayland passiert folgendes:

[20:40:04] Command line: 
[20:40:04] ""
[20:40:04] LegacyClonk 
[20:40:04] Version: 4.9.10.8 [338]  linux64
[20:40:04]   Size of GammaRamp is 0, not 256
[20:40:04]   Using OpenGL...
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (XFree86-VidModeExtension)
  Minor opcode of failed request:  18 (XF86VidModeSetGammaRamp)
  Value in failed request:  0x1600007
  Serial number of failed request:  267
  Current serial number in output stream:  268
double free or corruption (fasttop)
4.9.10.8 [338] : Caught signal SIGABRT
./clonk[0x65d024]
/lib64/libc.so.6(+0x37ec0)[0x7fb2350f2ec0]
/lib64/libc.so.6(gsignal+0x145)[0x7fb2350f2e35]
/lib64/libc.so.6(abort+0x127)[0x7fb2350dd895]
/lib64/libc.so.6(+0x7b08f)[0x7fb23513608f]
/lib64/libc.so.6(+0x8240c)[0x7fb23513d40c]
/lib64/libc.so.6(+0x83e74)[0x7fb23513ee74]
./clonk[0x67e079]
./clonk[0x67e117]
./clonk[0x67e01f]
./clonk[0x67e417]
/lib64/libc.so.6(+0x3a680)[0x7fb2350f5680]
/lib64/libc.so.6(on_exit+0x0)[0x7fb2350f57c0]
/lib64/libX11.so.6(+0x492cb)[0x7fb2356622cb]
/lib64/libX11.so.6(_XError+0x122)[0x7fb235662402]
/lib64/libX11.so.6(+0x46297)[0x7fb23565f297]
/lib64/libX11.so.6(+0x4633d)[0x7fb23565f33d]
/lib64/libX11.so.6(_XReply+0x240)[0x7fb2356602b0]
/lib64/libX11.so.6(XGetGeometry+0x92)[0x7fb235644672]
./clonk[0x6768aa]
./clonk[0x676a5b]
./clonk[0x673bb6]
./clonk[0x66ad97]
./clonk[0x66af7c]
./clonk[0x440798]
./clonk[0x67ceb3]
./clonk[0x43ee3d]
/lib64/libc.so.6(__libc_start_main+0xf3)[0x7fb2350def43]
./clonk[0x43efae]

Als Workaround kann man beim Loginscreen „Gnome with Xorg“ etc. auswählen.

Genau genommen gibt es 2 Probleme.
Das schlimmere der beiden ist, dass LC Wayland nicht unterstützt.
Das andere ist, dass Fehlerbehandlung vernachlässigt wurde und es deswegen abstürzt, anstatt eine hilfreiche Fehlermeldung auszugeben.
Es sollte allerdings unter XWayland laufen, auch wenn ich nicht weiß wie man das erzwingt.

Edit: Ich habs gerade probiert. Es startet eh automatisch in XWayland, allerdings funktioniert dann irgendwas nicht richtig.

Mit diesem Commit geht es bei mir unter XWayland. Kommt dann mit [338].

1 „Gefällt mir“

Habs heute mal auf Fedora 35+Wayland kompiliert und erfolgreich gestartet und noch paar Pakete dazugenommen. Hier nochmal die komplette Anleitung. Eventuall kann jemand was damit anfangen.
Anwendung auf eigene Gefahr!

Dependencies installieren

# Install required packages for compilation
sudo dnf install freetype-devel libjpeg-devel libpng-devel openssl-devel zlib-devel mesa-libGL-devel glew-devel freeglut-devel libXpm-devel SDL2_mixer-devel SDL2_mixer libXxf86vm-devel gtk2-devel libnotify-devel

Build

# Clone git repository and build clonk
git clone https://github.com/legacyclonk/LegacyClonk.git
cd LegacyClonk
mkdir build
cd build

Dann Clonk Dateien Objects.c4d etc. und Systemdatein aus dem planet Ordner (z.b. System.c4g etc.) in ./build Ordner kopieren und starten

XMODIFIERS=""; ./clonk

Für console alternativ

XMODIFIERS=""; ./clonk /console

Wird in LC nicht mehr gebraucht.

1 „Gefällt mir“