Wie man qt4 und glogg unter Mac 10.9 Mavericks zum Laufen bekommt

Um glogg, ein grafisches, auf qt4 basierendes Tool zur Logfile Analyse unter Mac OSX 10.9 zum Laufen zu bekommen sind eine Hürden zu nehmen und Klippen zu umschiffen. Diese Anleitung beschreibt den Weg und teilt sich in zwei Teile:

  1. Installation von qt4 unter Mac 10.9
  2. Kompilieren von glogg mittels qt und boost und xcode

Außerdem sind einige Voraussetzungen zu schaffen, die hier erläutert werden.
Befehle für das Terminal sind kursiv dargestellt, wichtiges fett.

Beginnen wir also mit Teil 1, der Installation von qt4 unter Mac OSX.

  1. Wir benötigen xcode und homebrew, um die entsprechenden Werkzeuge verwenden zu können. Wenn brew bereits läuft, geht es mit Schritt 2 weiter.
    Über Homebrew kan man hier informieren: http://brew.sh
    Zur Installation folgendes in ein Terminal-Fenster einfügen und dem Dialog folgen:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"
    xcode gibt es im AppStore.
  2. Nachdem nun homebrew läuft, geht es an die Installation von qt4. Hier gibt es unterschiedliche Möglichkeiten, qt zu installieren:

Bei mir hat  die erste nicht funktioniert, sie meldete:
# clang: error: linker command failed with exit code 1 (use -v to see invocation)
# make[3]: *** [../../../../../../lib/QtWebKit.framework/QtWebKit] Error 1
# make[2]: *** [release] Error 2
# make[1]: *** [sub-WebKit-qt-QtWebKit-pro-make_default-ordered] Error 2
# make: *** [sub-webkit-make_default-ordered] Error 2
Daraufhin habe ich den Patch aus Methode 2 verwendet, das klappte. Weitere Informationen zur Methode Nummer zwei:
https://github.com/mxcl/homebrew/pull/23793
Nach einer guten Stunde ist der Mac fertig, qt (4.8.5) läuft jetzt.

Nun zu Teil 2, dem Kompilieren von glogg

  1. Für glogg benötigen wir boost, dieses  installieren wir über homebrew:
    brew install boost
  2. Nun laden wir den glogg-Quellcode herunter und entpacken ihn:
    wget https://github.com/nickbnf/glogg/archive/v1.1.4.tar.gz
    tar xzf v1.1.4.tar.gz
    cd glogg-1.1.4
  3. Da der Quellcode nicht optimal für Mac 10.9 vorbereitet ist, müssen noch folgende Veränderungen eingefügt werden:
    https://github.com/exiaoy/glogg/commit/15842d4885b3dfdf1c7113c6d142df9cd93b33b6
    https://github.com/exiaoy/glogg/commit/6aa70ce486ef2ceb527bf55fe374abb0dc58a682
    http://successfulsoftware.net/2013/10/23/fixing-qt-4-for-mac-os-x-10-9-mavericks/
    Diese bewirken das Ersetzen und Anpassen der Schriftart und die Verwendung von boost, welches wir eben installiert haben.
    Weitere Infos: http://graphsignals.blogspot.de/2013/07/build-glogg-from-source-code-for-mac-os.html
  4. Nun können wir mittels qt ein Makefile erzeugen:
    qmake
  5. Dieses Makefile muss aber eventuell noch etwas angepasst werden, da sonst das Kompilieren fehlschlägt. In der Zeile CXXFLAGS bitte folgendes ergänzen, wenn boost mit -c++11 kompiliert wurde: -stdlib=libc++ -std=c++11
    Außerdem bei MACOSX_DEPLOYMENT_TARGET den Wert auf 10.9 ändern.
    Weitere Infos: http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp
  6. Nun endlich können wir kompilieren:
    make
  7. Die App wurde erstellt, aber das Icon stimmt nicht. Das beheben wir jetzt:
    • wir öffnen glogg48.ico mit Vorschau
    • drücken Command+a
    • drücken Command+c
    • wählen nunn glogg.app aus
    • drücken Command+i
    • wählen das Icon oben links aus
    • drücken Command+

    Anleitung von http://osxdaily.com/2013/06/04/change-icon-mac/

  8. Nun kopieren wir die App nach Programme:
    cp glogg.app /Applications/.

Fertig

Nun noch einmal die Kurzfassung auf Englisch:

# 1 install homebrew if not already installed
# documentation is here http://brew.sh/
# paste in terminal and follow the dialog
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

# 2 install qt4
# this may take a while

 # 2a install qt via brew
brew install qt

# 2b install patched qt4 via brew if errors like the following occure on step 2a
# clang: error: linker command failed with exit code 1 (use -v to see invocation)
# make[3]: *** [../../../../../../lib/QtWebKit.framework/QtWebKit] Error 1
# make[2]: *** [release] Error 2
# make[1]: *** [sub-WebKit-qt-QtWebKit-pro-make_default-ordered] Error 2
# make: *** [sub-webkit-make_default-ordered] Error 2
# see also https://github.com/mxcl/homebrew/pull/23793
brew install https://github.com/cliffrowley/homebrew/blob/master/Library/Formula/qt.rb

# 3 install boost with clang-cpp-option
brew install boost

# 4 download glogg
wget https://github.com/nickbnf/glogg/archive/v1.1.4.tar.gz
tar xzf v1.1.4.tar.gz
cd glogg-1.1.4

# 5 patch glogg to use homebrew boost and fix compile errors
https://github.com/exiaoy/glogg/commit/15842d4885b3dfdf1c7113c6d142df9cd93b33b6
https://github.com/exiaoy/glogg/commit/6aa70ce486ef2ceb527bf55fe374abb0dc58a682
http://successfulsoftware.net/2013/10/23/fixing-qt-4-for-mac-os-x-10-9-mavericks/
# see also: http://graphsignals.blogspot.de/2013/07/build-glogg-from-source-code-for-mac-os.html

# 6 build glogg
qmake

# 7 edit Makefile, add when boost has been compiled with -c++11:
CXXFLAGS -stdlib=libc++ -std=c++11
# and change the following to 10.9
MACOSX_DEPLOYMENT_TARGET = 10.9
# because 10.9 clang c++ differs from homebrews qt c++
# see also: http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp

# 8 compile
make

# 9 change app icon
# more info http://osxdaily.com/2013/06/04/change-icon-mac/
# open glogg48.ico in preview
# press Command+a to select everything
# press Command+c to copy the image
# press Command+i on glogg.app to get info
# select app icon on the top left corner
# press Command+v to insert the image

# 10 copy glogg to Applications
cp glogg.app /Applications/.