Den Firefox aus seinen Sourcen selber kompilieren

  • Hallo an alle,

    testweise beabsichtige ich, mir den 3.03er mal selber aus seinen Sourcen zu erschaffen. Was müsste ich wo beachten, damit der dann eventuell sogar noch besser läuft, als der jetzt offizielle 3.03? An welchen Dateien kann ich vor dem Kompilieren sinnvoll etwas ändern bzw. anpassen? Wer hat mit sowas schon Erfahrung?

    ciao
    katzi (m)

  • Du beginnst mit Mozilla Source Code (Mercurial), holst Dir zuerst die benötigten Klamotten wie Mercurial und Compiler.

    Nach den Vorbereitungen holst Du Dir den Quelltext und erstellst eine Datei Namens .mozconfig gemäß der Anleitung Configuring Build Options. Anschließend erfolgen die ersten Versuche einen lauffähigen FF zu erstellen.

    Wenn das Verfahren eingeschwungen ist, langt eine Sequenz

    Code
    hg pull
    hg update
    make -f client.mk build

    Jedoch ohne Dich abschrecken zu wollen, Du wirst erstmals keine Ahnung haben, was da wirklich abläuft. Die einzigen möglichen Spielplätze sind erstmals nur die .mozconfig und die Optionen des Compilers.

    Abschließend gesagt, das Ganze hängt von Dir und vom eingesetzten Lernaufwand ab.

  • Für welches System überhaupt? Meine mozconfig sieht übrigens meine mozconfig sieht so aus.

    EDIT:

    Zitat

    Gibt doch schon bereits genug optimierte Builds von Leuten die das schon seit Jahren machen und sich damit auskennen. Warum nicht die nehmen?


    Erstens ist dass kein großer Aufwand. Bei einem (Betriebsystem mit) vernünftigem Paketmanagement muss man sowieso nur einmal die Anweisungen erstellen und beim Update muss man dann nur noch die Versionsnummer ändern.

    Desweiteren sind Compiler Einstellungen teilweise auch einfach Glaubenssache und woher weisst du dass diese Leute den richtigen Glauben haben? ;) Schadet ja auch nicht mal ein paar Sachen auszuprobieren wie mit allen Optimierungen um sich zu hauen die man so finden kann.

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Unter Linux ist das wirklich kein großes problem, wie ich letztens noch festgestellt habe. Einfach mercury und evtl. ein paar dev-libs über den Paketmanager installieren, den source holen und es kann praktisch schon losgehen.

    Unter Windows würde ich das aber eher nicht versuchen. Dieses Cygwin-Zeug erscheint mir verhältnismäßig sehr kompliziert.

    Vom Optimieren habe ich aber nicht viel Ahnung. Ich benutze das Zeug eher für die Entwicklung und zum Testen von patches u.ä., ich denke auch nicht, dass man da viel ohne Aufwand optimieren könnte. Mal abgesehen von ein paar kleineren systemspezifischen Optimierungen u.ä. kannst du davon ausgehen, dass die Mozilla-Entwickler einfache und sinnvolle Optimierungen sowieso in den Firefox integriert hätten.

  • Zitat von JonHa

    Unter Linux ist das wirklich kein großes problem,

    Ja, es mutiert zur Fingerübung, die Basis des CERN ist immer noch tragend. Nach dem letzten Kenntnisstand fährt katzi Kubuntu.

  • Zitat von bugcatcher

    Gibt doch schon bereits genug optimierte Builds von Leuten die das schon seit Jahren machen und sich damit auskennen. Warum nicht die nehmen?

    Mich reizt meistens, etwas selber zu tun, als tun zu lassen; letzteres ist doch ausgesprochen langweilig. Allerdings; alles zu können geht nicht, will ich auch nicht, doch warum sollte ich darauf verzichten, etwas bei einem Programm zu versuchen, das ich im täglichen Einsatz habe?

    ciao
    katzi (m)

  • Zitat von .Ulli

    Ja, es mutiert zur Fingerübung, die Basis des CERN ist immer noch tragend. Nach dem letzten Kenntnisstand fährt katzi Kubuntu.

    ??? Woher bitte hast Du den Kenntnisstand? Ich hatte nie Kubuntu bei mir laufen. Bisher hatte ich im Einsatz: Mandriva, PCLinuxOS und Debian.

    ciao
    katzi (m)

  • http://www.firefox-browser.de/forum/viewtopi…p=509084#509084

    Ich nehme einmal darauf Bezug. Wenn das im Zentrum deiner Überlegungen steht, dann schreib dir eine entsprechende Erweiterung dafür. Da ist die Lernkurve deutlich flacher. Sich einen eigenen Fx zu kompilieren für solche Zwecke ist der reinste Overkill. Zudem musst du den Build-Prozess jedesmal manuell anstoßen. Eine Erweiterung läuft dagegen frei im Profil und erfordert meist nur zu Major Releases eine Anpassung.

  • Wenns nur ums rumprobieren und spielen geht, joa. Okay. Wenn am Ende dann wirkliche Ergebnisse rauskommen sollen, empfehle ich dennoch weiterhin die bereits vorhandenen optimierten Builds. Auch wenn das tatsächlich eher Glaubenssache ist. ^^

  • Zitat von bugcatcher

    Wenns nur ums rumprobieren und spielen geht, joa. Okay. Wenn am Ende dann wirkliche Ergebnisse rauskommen sollen, empfehle ich dennoch weiterhin die bereits vorhandenen optimierten Builds. Auch wenn das tatsächlich eher Glaubenssache ist. ^^

    Wenn Du mir dann noch gnädigerweise mitteilst, wo es denn diese schon optimierten Builds gibt, könnte man ja auch zusätzlich darauf zurückgreifen?

    ciao
    katzi (m)

    PS.:
    @.Ulli
    No Problem.

  • Zitat von bugcatcher

    Wenns nur ums rumprobieren und spielen geht, joa. Okay.


    Der Aufwand ist wirklich nicht so groß als dass man soetwas nicht auch ohne Probleme produktiv nutzen könnte. Man kann sich ja schon vorhandene mozconfigs als Anhaltspunkte nehmen. Mein Firefox ist so mindestens so schnell wie Chrome unter Windows, per Default sieht dass "etwas" anders aus.

    Ist natürlich verständlich, man würde ja die Mindestanforderungen evtl. unnötig erhöhen.

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • In Fortsetzung von http://www.firefox-browser.de/forum/viewtopi…p=516038#516038 um ein OT zu vermeiden.

    Je nach Distribution sind FF3b2 und OO3 in den Quellen oder Einwicklerquellen vorhanden und aus denen wurde sich hier bedient.

    Aus reiner Neugierde wird hier auch ein FF aus http://hg.mozilla.org/mozilla-central/ erstellt, nicht aus http://hg.mozilla.org/releases/mozilla-1.9.1/, da dieser FF in den Quellen verfügbar ist.

    Am Quelltext wurden hier bislang nur Änderungen zur Systemintegration vorgenommen, das betraf aber nur tracemonkey.
    Für sonstige Änderungen, wie z.B 64Bit-JIT, gebricht es hier noch am Verständnis des gesamten Prozesses.

    Die Wetterseite wirkt hier ok.

  • Zitat von .Ulli

    Aus reiner Neugierde wird hier auch ein FF aus http://hg.mozilla.org/mozilla-central/ erstellt, nicht aus http://hg.mozilla.org/releases/mozilla-1.9.1/, da dieser FF in den Quellen verfügbar ist.

    Dumme Frage, sind beide Quellen eigentlich inhaltlich identisch? Meine Sourcen zog ich gestern aus mozilla-central.

    Zitat

    Die Wetterseite wirkt hier ok.

    Ok, hat sich inzwischen gelöst. Im vorhergehenden Build 1 des 3.1b2 als auch beim 3.04 waren Popup's für die Wetterseite gesperrt, sie wurde aber trotzdem normal angezeigt. Jetzt beim zweiten Build des 3.1b2 musste ich Popup's für diese Seite freigeben, damit sie richtig anzeigt wird.

    ciao
    katzi (m)

  • Die Quellen sind nicht identisch.

    mozilla-central --> FF 3.2, der trunk, z.Z. die Version Minefield 3.2a1pre
    mozilla-1.9.1 --> FF 3.1, der branch, z.Z die Version Shiretoko 3.1b2