Tb 2.0.0.9 unter Mac OS X selber kompilieren [gelöst]

  • Hallo, ich habe mich in diesem Forum angemeldet, da ich gerne Thunderbird 2.0.0.9 unter OS X 10.5.1 selber kompilieren möchte, das aber aufgrund mir unverständlicher Fehlermeldungen nicht klappt. Warum ich mir Thunderbird 2 selber kompilieren möchte, ganz einfach, weil mir die Anbindung an das OS X Adressbuch in TB 2 fehlt und (wie ich hier gelesen habe) TB 3 wohl noch etwas auf sich warten lässt. TB 3 funktioniert zwar gut mit dem OS X Adressbuch, aber das Programm selbst ist im täglichen gebrauch oft noch etwas "seltsam".
    Wie das mit dem kompilieren und dem Adressbuch gehen soll, habe ich diesen Seiten entnommen:
    http://www.i-mehl.de/2006/03/1…osx-adressbuch-anleitung/
    http://vafer.org/blog/tag/thunderbird
    http://www.annuit-coeptis.net/…hunderbird_und_adressbuch
    http://icecube.co.nz/2006/10/2…-osx-the-woes-of-mail-app


    Gut, dann versuche ich mal zu erleutern was ich bisher gemacht habe und was passiert ist (Sorry, wird jetzt etwas länger):



    Versuch 1:


    • XCode 3 ist schon installiert, als nächstes habe ich dann Fink installiert.
    • Als nächstes habe ich nacheinander folgendes ins Terminal eingegeben:
    $ fink selfupdate
    $ fink update-all
    $ fink install orbit
    $ fink install orbit-dev
    $ fink install glib
    $ fink install zip unzip
    $ fink install pkgconfig
    $ export GLIB_CONFIG=/sw/lib/glib/include/
    $ export LIBIDL_CONFIG=/sw/bin/libIDL-config-2
    $ export PKG_CONFIG_PATH=/sw/lib/glib/include/


    • Nun habe ich ein Verzeichnis angelegt:
    $ mkdir /temp
    $ mkdir /temp/mozilla
    $ cd /temp/mozilla
    In das Verzeichnis habe ich dann eine Datei “.mozconfig” mit folgendem Inhalt gelegt:


    # Options for client.mk.
    mk_add_options MOZ_CO_PROJECT=mail
    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
    mk_add_options MOZ_MAKE_FLAGS=-j2


    # Options for 'configure' (same as command-line options).
    ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.5.sdk
    ac_add_options --enable-application=mail
    ac_add_options --disable-accessibility
    ac_add_options --enable-plaintext-editor-only
    ac_add_options '--enable-optimize=-O2 -g'
    ac_add_options --disable-debug
    ac_add_options --disable-tests
    ac_add_options --enable-static
    ac_add_options --disable-shared
    ac_add_options --enable-prebinding
    ac_add_options --enable-update-packaging
    ac_add_options --enable-update-channel=release
    ac_add_options --enable-official-branding
    ac_add_options --enable-extensions=default,tasks
    ac_add_options --enable-svg


    • Nun habe ich nacheinander folgendes ins Terminal eingegeben:
    $ cd ..
    $ export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
    $ cvs co mozilla/client.mk
    $ cd mozilla
    $ make -f client.mk checkout MOZ_CO_PROJECT=mail,calendart


    Dabei hat es allerdings die Version 3.0a von TB geladen. Ich hab aber trotzdem mal weiter gemacht.


    • Dann habe ich mir eine Datei /temp/mozilla/addressbook.diff erstellt und dort den Inhalt von dieser Webseite abgelegt:
    https://bugzilla.mozilla.org/a…cgi?id=268949&action=view
    Danach habe ich dann den Patch angewendet mit:
    $ patch -p0 < addressbook.diff
    Und alle Fragen mit "y" bestätigt.


    • Jetzt habe ich alles kompiliert mit:
    $ make -f client.mk clean
    $ make -f client.mk
    $ make -C obj-powerpc-apple-darwin9.1.0/mail/installer
    Eigentlich sollte man dann eine Thunderbird.app im Ordner temp/mozilla/obj-powerpc-apple-darwin9.1.0/dist/ haben.
    Bei mir hat es aber nach dem "make -f client.mk" erst mal 2 Stunden rumgerödelt und dann hat es abgebrochen mit der Meldung:


    ...
    /Developer/SDKs/MacOSX10.5.sdk/usr/include/signal.h:84: error: syntax error before numeric constant
    /temp/mozilla/nsprpub/pr/src/linking/prlink.c: In function ‘PR_GetLibraryFilePathname’:
    /temp/mozilla/nsprpub/pr/src/linking/prlink.c:1629: warning: assignment discards qualifiers from pointer target type
    make[6]: *** [prlink.o] Error 1
    make[5]: *** [export] Error 2
    make[4]: *** [export] Error 2
    make[3]: *** [export] Error 2
    make[2]: *** [nspr] Error 2
    make[1]: *** [alldep] Error 2
    make: *** [alldep] Error 2



    Versuch 2:


    In Versuch 2 habe ich mir von der Mozilla-Seite den Quellcode von 2.0.0.9 geladen und den in den Ordner /temp/mozilla gelegt (bzw. den entpackten Ordner "mozilla" in den Ordner "/temp").
    Ich habe die selbe .mozconfig wie oben angewendet, den Patch in /temp/mozilla/addressbook.diff mit
    $ patch -p0 < addressbook.diff
    geladen und dann mit
    $ make -f client.mk clean
    $ make -f client.mk
    $ make -C obj-powerpc-apple-darwin9.1.0/mail/installer
    versucht zu kompilieren. Aber auch hier hat es aber nach dem "make -f client.mk" mit der selben Fehlermeldung abgebrochen.



    Versuch 3:


    Versuch 3 war wie Versuch 2, nur dass ich in der .mozconfig das "...Developer/SDKs/MacOSX10.5.sdk " durch "...MacOSX10.4..." ersetzt habe und den Patch addressbook.diff nicht angewendet habe. Hier bekam ich dann die Fehlermeldung:


    ...
    /temp/mozilla/mailnews/build/nsMailModule.cpp: In function ‘nsresult nsAbOSXDirFactoryConstructor(nsISupports*, const nsIID&, void**)’:
    /temp/mozilla/mailnews/build/nsMailModule.cpp:431: error: redefinition of ‘nsresult nsAbOSXDirFactoryConstructor(nsISupports*, const nsIID&, void**)’
    /temp/mozilla/mailnews/build/nsMailModule.cpp:425: error: ‘nsresult nsAbOSXDirFactoryConstructor(nsISupports*, const nsIID&, void**)’ previously defined here
    /temp/mozilla/mailnews/build/nsMailModule.cpp: In function ‘void nsMailModuleDtor(nsIModule*)’:
    /temp/mozilla/mailnews/build/nsMailModule.cpp:1289: error: ‘ReleasePool’ is not a member of ‘nsAbOSXDirectory’
    make[5]: *** [nsMailModule.o] Error 1
    make[4]: *** [libs] Error 2
    make[3]: *** [libs_tier_app] Error 2
    make[2]: *** [tier_app] Error 2
    make[1]: *** [alldep] Error 2
    make: *** [alldep] Error 2



    Versuch 4:


    In Versuch 4 habe ich es wie in Versuch 3 gemacht, nur das ich versucht habe eine andere gcc-Version zu verwenden. Dazu habe ich mir die Leopard-Version von gcc 4.3 von hier geladen und installiert: http://hpc.sourceforge.net/
    Dann habe ich die gcc-Version vor dem kompilieren angewendet mit
    export PATH=/usr/local/bin:$PATH
    und bin weiter verfahren wie in Versuch 3. Aber auch das hat nicht geklappt (selbe Fehlermeldung).



    Wie bekomme ich denn jetzt eine Thunderbird 2.0.0.9 kompiliert mit OSX-Adressbuch-Unterstützung, am besten Leopard-optimiert? Wo liegt denn da bei mir der Wurm? Oder muss ich doch warten bis TB 3 fertig ist?

    Einmal editiert, zuletzt von Short Katz ()

  • OK, jetzt hab ich den "Fehler" gefunden. Es lag an Leopard. 10.5 und Xcode 3 ist wohl noch zu neu.
    Ich habs jetzt unter OS X 10.4.11 mit Xcode 2.5 gemacht, da hats dann geklappt wie gewünscht.

  • kannst du das von dir erzeugte Thunderbird.app vielleicht irgendwie verfügbar machen.


    ich würde gern damit experimentieren, habe aber keine lust dafür mein leopard runterzuwerfen...

  • "Benja" schrieb:

    kannst du das von dir erzeugte Thunderbird.app vielleicht irgendwie verfügbar machen.


    ich würde gern damit experimentieren, habe aber keine lust dafür mein leopard runterzuwerfen...


    Ich hab leider keinen Webspace oder sowas zum hochladen (außerdem müsste ich beim Hochladen alles nochmal neu ohne den official-branding-Flag kompilieren, so ist es jetzt nur für Privatgebrauch). Aber ich hab inzwischen rausgefunden wie man TB 2.0.0.9 auch unter 10.5.1 bauen kann. Man muss dazu lediglich in der mozconfig das "strip" abstellen (ac_add_options --disable-strip). Warums mit strip nicht geht, weiß ich nicht, aber scheint anderen auch so zu gehen.
    Will man TB als UB herstellen muss man außerdem noch eine Kleinigkeit in der Datei mozilla/build/macosx/universal/mozconfig ändern. Und zwar die Zeile mit dem MacOSX10.2.8.sdk rauswerfen und weiter unten "GCC_VERSION=3.3 " in "GCC_VERSION=4.0" umändern. Ansonsten bekommt man ein Error beim make.
    Das mit dem Adressbuch in TB2 funktioniert aber mit dem Patch auf der Bugzilla-Seite nur noch bis 2.0.0.6, bei 2.0.0.9 klappt das nicht mehr. Da klappt es erst wieder wenn man die Ordner mailnews/addrbook/build und mailnews/addrbook/src bei 2.0.0.9 durch die alten von 2.0.0.6 ersetzt. Da ich aber nicht genau weiß ob man sich dabei Bugfixe wieder rückgängig macht kompiliere ich mir zur Zeit nur noch TB 3.0.a1pre selber (da entfällt dann das Verändern der Datei mozilla/build/macosx/universal/mozconfig).


    Meine mozconfig für OS X 10.5.1 (egal ob TB 2 oder 3) sieht so aus (das "march=nocona" funktioniert mit XCode3):


    export CC=gcc-4.0
    export CXX=g++-4.0


    # Options for client.mk.
    . $topsrcdir/mail/config/mozconfig
    . $topsrcdir/build/macosx/universal/mozconfig
    mk_add_options MOZ_CO_PROJECT=mail
    mk_add_options MOZ_MAKE_FLAGS=-j4
    mk_add_options BUILD_OFFICIAL=1
    mk_add_options MOZILLA_OFFICIAL=1
    mk_add_options NO_MFC=1
    mk_add_options MOZ_CO_LOCALES=de
    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@


    # Options for 'configure' (same as command-line options).
    ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk
    ac_add_options --enable-macos-target=10.4
    ac_add_options --enable-application=mail
    ac_add_options --enable-static
    ac_add_options --enable-static-libs
    ac_add_options --enable-static-mail
    ac_add_options --enable-canvas
    ac_add_options --enable-crypto
    ac_add_options --enable-update-packaging
    ac_add_options --enable-update-channel=nightly
    ac_add_options --enable-official-branding
    ac_add_options --enable-ldap
    ac_add_options --enable-ui-locale=de
    ac_add_app_options ppc --enable-optimize="-O2 -g -pipe -mabi=altivec -faltivec"
    ac_add_app_options i386 --enable-optimize="-O2 -g -pipe -mssse3 -march=nocona -mtune=generic"
    ac_add_options --disable-strip
    ac_add_options --disable-strip-libs
    ac_add_options --disable-shared
    ac_add_options --disable-debug
    ac_add_options --disable-dtd-debug
    ac_add_options --disable-tests

    Das mit dem optimize kann man noch ändern, wenn man will. Hier versuche ich den PPC-Teil auf meinen G4 zu optimieren und den Intel-Teil auf einen Core2Duo-Mac.
    Eine etwas genauere Vorgehensweise für OSX 10.5 gibts auch da: http://forum.macsofa.net/viewtopic.php?t=29078