USDx auf Mavericks mit Mac Ports bauen

Alpha/Betas und (Test-)Versionen von USDx die sich noch in der Entwicklung befinden.

Moderator: US-Team

USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 15.01.2014, 01:27

Hallo zusammen,

ich versuche, USDx auf Mavericks mit MacPorts zum laufen zu bringen. Das Kompilieren läuft auch durch und ich kann problemlos installieren. Wenn ich aber versuche, die erzeugte Datei aufzurufen, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen
:~/src/ultrastardx-svn$ /usr/local/bin/ultrastardx
dyld: Symbol not found: _luaopen_base
  Referenced from: /usr/local/bin/ultrastardx
  Expected in: dynamic lookup

Trace/BPT trap: 5


Mit otool -L kann ich 'rausfinden, dass liblua (gegen die das Projekt ja gebaut wurde) nicht verlinkt wird:

Code: Alles auswählen
:~/src/ultrastardx-svn$ otool -L /usr/local/bin/ultrastardx
/usr/local/bin/ultrastardx:
   /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
   /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
   /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 158.0.0)
   /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
   /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
   /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
   /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.11.0)


Habt Ihr einen Tip für mich, wie ich von hier aus weiter komme?

Gruß
Diedrich
Zuletzt geändert von diedrich am 24.01.2014, 12:59, insgesamt 1-mal geändert.
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 15.01.2014, 14:11

Was sagt denn ./configure über lua?

Bei mir sieht das mit lua 5.1 so aus:

checking for sqlite3... yes (-L/sw/lib)
checking for lua5.2... no
checking for lua5.1... no
checking for lua >= 5.1... yes (-L/sw/lib)
checking version of lua... [5.1.5]
checking for libavcodec... yes (-L/sw/lib/ffmpeg-2.0/lib)

Ein Problem könnte sein, dass lua 5.2 im Gegensatz zu 5.1 kein Default für pkgconfig mehr mit bringt, sondern vom Ersteller der "Distro" erzeugt werden muss, was ich für eine ziemliche Schnapps-Idee halte. Ich habe das also für die Fink package description von lua gemacht. Wenn das aber vom Maintainer von lua 5.2 nicht auch gemacht ist, kann es an der Stelle nur krachen. Es erwarte allerdings, dass das ./configure Skript dann abbricht.

Hast du lua 5.1 oder lua 5.2?

MiSchi.
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 24.01.2014, 12:50

Hi MiSchi,

sorry, dass ich nicht sofort reagiert habe, ich habe Deinen Post nicht mitbekommen!

Ich habe von Hand eine lua5.2.pc Datei erzeugt, indem ich die von MacPorts bereitgestellte lua.pc einfach kopiert habe. Deswegen läuft configure durch:

Code: Alles auswählen
checking for sqlite3... yes (-L/opt/local/lib)
checking for lua5.2... yes (-L/opt/local/lib)
checking version of lua... [5.2.2]
checking for libavcodec... yes (-L/opt/local/lib)


Ich habe im Makefile (ich weiß, man macht das so nicht!) /sw/ mit /opt/local/ ersetzt. Das „Bauen“ läuft auch durch, nur laufen will es nachher nicht!

Gruß
Diedrich
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 25.01.2014, 13:31

Hi.

Ich hab mal nachgeschaut. otool -L ergibt bei mir:

/sw/lib/liblua.5.1.dylib (compatibility version 5.1.0, current version 5.1.5)
bzw.
/sw/lib/liblua.5.2.dylib (compatibility version 5.2.0, current version 5.2.3)

in lua.pas steht ja " LUA_LIB_NAME = 'liblua.dylib';"

liblua.dylib ist dann ein Link auf die entsprechende Version der der Lib, zum Beispiel /sw/lib/liblua.dylib -> liblua.5.2.3.dylib

Bei Fink wird der Link extra im Paket liblua-dev eingerichtet. Vielleicht liegt es daran, dass das in MacPorts nicht gemacht wird. Ich fand das einfacher, als die Version in LUA_LIB_NAME rein zu packen. Das könnte aber auch gehen, also " LUA_LIB_NAME = 'liblua.5.2.dylib';" und {$linklib liblua.5.2}.

Wenn gar nichts geht, kann man immer noch beim Aufruf von fpc mit der Option -k Parameter an den Linker übergeben. Also -k-L/opt/local/lib für den LibPath und -k-llua.5.2 für die Lib.

Das sind zwar alles keine schöne Lösungen, aber es geht ja erst mal darum, das überhaupt hinzubekommen.

MiSchi
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 29.01.2014, 15:12

Hi MiSchi,

erst mal vielen Dank für Deine Antworten. Ich bin ein Stück weiter! Es ist so, dass UltraStar DX für i386 gebaut wird, mein MacPorts aber standartmäßig für die x86_64 Plattform. Ja, ich hätte einfach mal gucken können, dass der Linker das genau so sagt. Ich muss Tomaten auf den Augengehabt haben! Jetzt habe ich mein MacPorts mit der +universal-Variante neu gebaut und erhalte eine lauffähige executable, aber beim Start kommt es zu einer nicht-behandelten Lua-Ausnahme:

Code: Alles auswählen
~/src/ultrastardx-svn$ ./configure --enable-debug
~/src/ultrastardx-svn$ make macosx-app

~/src/ultrastardx-svn$ UltraStarDeluxe.app/Contents/MacOS/ultras
ERROR:  Device "Soundflower (2ch)" does not work [TAudioInput_Portaudio.EnumDevices]
ERROR:  Device "Soundflower (16ch)" does not work [TAudioInput_Portaudio.EnumDevices]
ERROR:  attempt to index a nil value [lua]
An unhandled exception occurred at $00063B2F :
ELuaException : attempt to index a nil value
  $00063B2F  TLUA_CUSTOMPANIC,  line 996 of /Users/diedrich/src/ultrastardx-svn/src/lua/ULuaCore.pas
  $017E0E74
  $017E0DAD
  $017E0C25
  $017E086C
  $017EA9B1
  $017DD9CC
  $000621B4
  $00062F18
  $00061A10
  $000618D4
  $000616C0
  $0007C22E


Ist zu erwarten, dass das an meiner Lua-Version liegt? Wie komme ich dem bei? Habe ich eine Chance, die Stelle im Lua-Quellcode zu finden?

Gruß
Diedrich
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 30.01.2014, 10:10

1) USDX geht auch mit 64bit. Ich bezweifle aber, ob ein Wechsel hilft.
2) Wenn ich TLUA_CUSTOMPANIC richtig verstehe, sollte das eine Meldung in die error.log schreiben. Kannst du nachschauen?

MiSchi
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 05.02.2014, 14:33

mischi hat geschrieben:1) USDX geht auch mit 64bit. Ich bezweifle aber, ob ein Wechsel hilft.


Kannst Du mir aus dem Kopf sagen, wie man das umstellt? Ich habe den Schalter für den fpc gefunden, aber ich weiß nicht, so ich ihn eintragen soll. Es ist tatsächlich eher unwahrscheinlich, dass es klappt, aber ich würde es mal probieren.

Ich bin inzwischen so weit, dass ich fink installieren will um es noch mal „nach Anleitung“ zu probieren. Ich muss dafür nur mein ganzes System ummodeln. Es ist einfach... Aufwand :-)

mischi hat geschrieben:2) Wenn ich TLUA_CUSTOMPANIC richtig verstehe, sollte das eine Meldung in die error.log schreiben. Kannst du nachschauen?
MiSchi


Ich habe die Error.log gefunden und sie enthält keine weiteren Informationen:

Code: Alles auswählen
UltraStar Deluxe V 1.1.0 Build Error Log
Date: 5-2-14 Time: 13:15:59
-------------------
ERROR:  attempt to index a nil value [lua]


Ich habe in der config.ini Debug=On gesetzt. Es erzeugt aber auch keine weiteren Ausgaben.
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 07.02.2014, 19:34

diedrich hat geschrieben:Kannst Du mir aus dem Kopf sagen, wie man das umstellt? Ich habe den Schalter für den fpc gefunden, aber ich weiß nicht, so ich ihn eintragen soll.
Nicht sicher. Vielleicht im Makefile "CPU_TARGET=x86_64" setzen oder gleich statt fpc ppcx64 nehmen.
diedrich hat geschrieben:Ich bin inzwischen so weit, dass ich fink installieren will um es noch mal „nach Anleitung“ zu probieren. Ich muss dafür nur mein ganzes System ummodeln. Es ist einfach... Aufwand :-)
Klar. Aus demselben Grund habe ich noch nie MacPorts probiert. Es wäre von daher nicht schlecht, wenn man das mal "durchzieht".

Grüße - MiSchi
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 10.02.2014, 01:04

Hi Mischi, ich hab's mit Fink zum laufen gekriegt — puh! Danke für Deine Hilfe auf jeden Fall! — Diedrich
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 10.02.2014, 09:26

Irgendeine Ahnung, warum es mit macports nicht ging?

MiSchi
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon diedrich » 10.02.2014, 12:40

Ich habe mich nicht tief genug in UltraStar eingearbeitet um das herausfinden zu können, sorry. Ich hätte es im Debugger in Betrieb nehmen müssen, schätze ich. Ich habe kein Traceback gefunden von dem Lua-Fehler, usw. Das ganze hat sich unterschiedlich verhalten, je nachdem, ob ich es in /usr/loca, im Build-Verzeichnis oder als App gestartet habe.

Ist es eigentlich theoretisch möglich, Xcode zu benutzen, insbesondere den eingebauten Debugger? Es gibt ein Xcode-Projekt, aber alles wird nur „rot“ angezeigt. Ich habe gar nicht angefangen, das auszuprobieren, sondern nur auf der Kommandozeile gearbeitet.

Was ist eigentlich der Grund dafür, dass es kein Mavericks-Paket zum Download gibt? Das .dmg, das erzeugt wird, funktioniert problemlos auf meinem (fink-losen) Notebook. Warum gibt es das nicht auf sourceforge? Rechtliche Gründe?

Meinst Du, es würde sich lohnen, eine Umstellung von fink auf MacPorts zu machen? Es wäre ja nicht das schlechteste, wenn es ein Portfile gäbe, so dass man

Code: Alles auswählen
port install UltraStarDX


machen könnte. Mein Eindruck ist, dass MacPorts das etwas aktivere Projekt ist. Wenn Du das sinnvoll findest, hätte ich schon Lust, da etwas Arbeit zu investieren. Was denkst Du?
Benutzeravatar
diedrich
Beginner
 
Beiträge: 6
Registriert: 14.01.2014, 13:52
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon mischi » 10.02.2014, 13:08

Das Xcode Projekt ist von vor meiner Zeit. Meine limitierten Kenntnisse von Xcode und die gute Unterstützung der Linux-Fraktion brachten es mit sich, dass ich nur in der Kommandozeile und mit make gearbeitet habe. Ein Xcode Projekt ist ziemlich sicher möglich. Man muss sich etwas um die Integration des FreePascal Compilers kümmern. Dafür gibt es aber Beschreibungen.

Es gibt keine Mavericks Disk Image, weil ich noch nicht dazu gekommen bin und eigentlich ein richtiges Release machen wollte. Rechtlich sehe ich nach wie vor keine Probleme.

Eine Paketbeschreibung für MacPorts wäre schon nicht schlecht, aber ich möchte mich nicht darum kümmern müssen. Bisher gibt es allerdings auf MacPorts keinen Maintainer für FreePascal. Man müsste sich also schon dazu aufschwingen, für fpc und USDX einen Portfile zu erstellen. Meine generelle Einschätzung ist, dass MacPorts zwar im allgemeinen aktueller ist, während bei Fink stärker auf funktionierende Abhängigkeiten geachtet wird.

MiSchi
Benutzeravatar
mischi
Star
 
Beiträge: 157
Registriert: 06.12.2008, 19:43
Geschlecht: Bin mir nicht sicher

Re: USDx auf Mavericks mit Mac Ports bauen

Beitragvon Elmar23 » 10.03.2014, 23:29

Ich hätte auch gerne gewusst, wieso es mit den MacPorts soviele Probleme gab. Letztlich sind wir ja auch nicht schlauer geworden. Dass es dann am Ende nur mit Fink ging war nach dem Threadtitel irgendwie enttäuschend ;). Naja, dran bleiben, weitersuchen. Grüße Elmar
Benutzeravatar
Elmar23
Beginner
 
Beiträge: 6
Registriert: 05.02.2014, 16:52
Wohnort: 8700
Geschlecht: Weiblein


Zurück zu UltraStar Deluxe - Entwicklung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron