Forum



qpx am 20.07.2014 12:27 #12853


Moin,

ich habe nach tagelangen rumfummeln endlich mal wieder RTTR unter Linux zum laufen gebracht. Ich würde gerne ein paar Sachen hier zur Diskussion stellen. Ich weiß, eigentlich sollen "Bugs" bei Launchpad rein, aber 1. scheinen die Tickets dort eher zu versacken (siehe https://bugs.launchpad.net/s25rttr/+bug/1189145 ) und 2. ist das Problem hier grade sehr vielschichtig. Ich möchte kurz erläutern was ich alles machen musste, um es zum laufen zu kriegen:

Erstmal habe ich das AUR paket von mineo übernommen: https://aur.archlinux.org/packages/rttr-bzr/
Das ist das Arch User Repository wo jeder Scripte zum installieren von Paketen  anbieten kann.

Das ist das letztendlich funktionierende Install-Script: https://aur.archlinux.org/packages/rt/rttr-bzr/PKGBUILD

Die Probleme liegen unter "#Fix CMakeLists"
1. in s-c/src/CMakeLists.txt Zeile 10-12 soll ein Script ausgeführt werden, falls es sich um Windows handelt. Bei Linux wird das zwar nicht ausgeführt, aber für cmake sind eckige Klammern [] nicht erlaubt in den CMakeLists und daher bricht cmake immer ab (cmake version 3.0.0).
2. das gleiche wie (1) in s-c/resample-1.8.1/src/CMakeLists.txt Zeile 9-11
3. das gleiche wie (1) in s25update/src/CMakeLists.txt Zeile 57-59

Kurze Zwischenfrage? Muss das wirklich an drei Stellen auftauchen? Ich muss das jedenfalls erstmal vor dem kompilieren überall rauslöschen. Könnte man das in Zukunft in ein extra Skript auslagern?

4. Dann das FindLua() Skript in src/CMakeLists.txt irgendwo bei Zeile 470ff. Wenn es Lua nicht findet, setzt es den Pfad hart auf /usr/lib/liblua52.so - das funktioniert vlt unter Ubuntu, aber unter Archlinux heißt das Teil einfafch /usr/lib/liblua.so ohne Versionsnummer. Ich hatte dies auch schonmal hier kommentiert: https://bugs.launchpad.net/s25rttr/+bug/1189145/comments/7 - das ist zwar nicht elegant, aber wenn er dann LUA_LIB immernochnicht gefunden hat, dann setzt er den Pfad hart auf /usr/lib/liblua.so - works for me!
5. Das Skript in build/postinstall.sh.cmake macht irgenwas ganz merkwürdiges in Zeile 302ff. Könnt ihr mir erklären warum es in /usr/lib rumpfuscht, auch wenn ich noch gar nichts installiert habe? Das wird durch cmake getriggert, also noch beim kompilieren, noch VOR dem installieren, aber es setzt symlinks tief in meinem system, ohne, dass ich das erlaubt habe (sowas soll erst bei make install oder so passieren)... Jedenfalls  gab es da immer konflikte und ich musste das rauslöschen. Weiß aber nicht, wie sich das verhält wenn ich es jetzt nochmal sauber installieren will. Kann man das optimierien vlt?

Vielen Dank für dieses geile Spiel, ich hoffe ihr könnt mir helfen, dass diese punkte in zukunft optimiert werden.

LG
qpx / vertoe


FloSoft am 23.07.2014 09:08 #12854

Großmeister
Hi,

naja wir benutzen aktuell cmake 2.8.7 - dort ist [] wohl noch erlaubt.

Ansonsten bin ich mir nicht sicher ob die Zeilen überhaupt noch gebraucht werden. Anfangs gab es nämlich ein Problem mit dem Cross-CMake das es die Namen falsch gesetzt hat, ansonsten sollte er die Zeilen doch komplett ignorieren unter "nicht windows"?

Weiterhin führt er das postinstall script nach "make install" - bzw als letzten Task davon aus (zumindest macht er das bei cmake 2.8). D.h er hat an dieser stelle bereits das Spiel nach $DESTDIR/$PREFIX installiert, und kopiert dann noch die miniupnpc-files, wenn diese sich in dem passenden Pfad (/usr/i686-pc-linux-gnu/lib/... bzw der x86_64 variante) existieren. Evtl fehlt dort die Überprüfung auf "existiert bereits an dieser Stelle"

Das mit der lua-lib ist nicht ganz optimal, aber ich habe mal den quickfix da von dem bug eingecheckt. die FindLua.cmake variante funktioniert halt nicht, da das standardmodul nach der falschen lib sucht.

---
mfg
Flo



qpx am 28.07.2014 12:26 #12862


Hey, danke für den Fix erstmal.

Ich guck mir das mal an. Das mit den Klammern [] ist nervig, weil er ja nicht in diese Zeilen reinspringt im Script (weil nicht Windows), aber dennoch das Script erstmal parsen muss und schon dabei über die stolpert. Ich bin mir nicht sicher, warum das jetzt bei der 3.x so ist.

Aber wenn ihr das nicht mehr braucht, dann weg damit?

Das mit dem Postinstall-Script müssen wir aber nochmal diskutieren. Wenn ich Linux habe, dann möchte ich die Libs über meine Paketverwaltung installieren. Mir erschließt es sich nicht, warum das Postinstall-Script da im System rumwerkelt? Vielleicht habe ich das aber auch falsch verstanden. Kannst du das nochmal erklären, warum die Libs genau da liegen müssen?

Danke erstmal!
--toe




Feel free to post in English!

Antwort schreiben

Username:
Security code:
Text:

   
  Convert smilies like :), ;) etc. into small graphics?
  Convert WWW-addresses into clickable links?
  Soll Boardcode in ihrer Nachricht aktiviert werden?