<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>


<article lang="nl">
<articleinfo>
	<title>Mozilla Optimalisatie Mini-HOWTO</title>
	<author>
	<firstname>Salvador</firstname>
	<surname>Peralta</surname>
	<othername role="mi">J.</othername>
	<affiliation>
	<address>
<email>speralta at willamette dot edu</email>
	</address>
	</affiliation>
	</author>
<author>
<firstname>Vertaald door: Ellen</firstname>
<surname>Bokhorst</surname>
<affiliation>
<address>
<email>bokkie at nl dot linux dot org</email>
</address>
</affiliation>
</author>

        <pubdate>januari 2003</pubdate>
	<revhistory>
            <revision>
		<revnumber>1.0</revnumber>
		<date>03-01-2003</date>
	        <authorinitials>SJP</authorinitials>
	        <revremark>Initi&euml;le release, voorbeschouwd door de LDP
</revremark>
	    </revision>
	</revhistory>

	<abstract>
		<para>In dit document wordt besproken hoe de configuratie en
aanpassingen op broncodeniveau kunnen worden geoptimaliseerd om Mozilla
geschikter te maken als een primaire browser voor Linux en X Window. Het is
niet bedoeld als een leidraad voor het programmeren van Mozilla, noch is het
een handleiding in XUL.
</para>
		<para>De technieken beschreven in dit document zijn ge&iuml;mplementeerd
en getest in een kiosk-achtige publieke computeromgeving met client werkstations
waarop Redhat Linux met XFree86 draait.
</para>
	</abstract>
</articleinfo>
<sect1 id="copyleft">
<title>Copyright</title>
<para>
Copyright &copy; 2002  Salvador Peralta
</para>
<para>
      Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license can be found at the <ulink url="http://www.gnu.org/copyleft/fdl.html">GNU web site</ulink>.
</para>
</sect1>
<sect1 id="Introduction">
<title>Introductie</title>
<para>
Mozilla is een Open Source, cross-platform, browser en grafische 
toepassingsomgeving. Op veel op Linux gebaseerde desktops groeit het uit tot
een veelbetekenende component vanwege zijn stabiliteit, robuuste set 
met features, grote ontwikkelaarsbasis, en configuratiegemak. 
Deze mini HOWTO gaat over het patchen en configureren van de broncode
van Mozilla om het beter te optimaliseren voor de Linux desktopomgevingen,
en het is bedoeld te dienen als een algemene instructieset voor de 
Linux gemeenschap over hoe Mozilla te configureren en compileren.
</para>
<para>
De meest recente versie van deze Mini HOWTO kan in HTML formaat worden
verkregen vanaf <ulink url="http://www.willamette.edu/~speralta/tldp/mozilla">www.willamette.edu/~speralta/tldp/mozilla</ulink>.
</para>
</sect1>
<sect1 id="UsetheSource">
<title>Haal de broncode op</title>
<para>Er zijn voors en tegens bij het zelf compileren van Mozilla.
De grootste keerzijde is dat de broncodeversie gecomprimeerd, in de meeste
uitgaven een bestand is van meer dan 30 MB wat ongeveer driemaal groter is
dan de binaire distributie. Een tweede nadeel is dat het compileren van
Mozilla op een redelijk nieuwe machine zoals mijn 1.6 ghz Pentium 4 met
256MB geheugen, afhankelijk van eventuele andere jobs die op het systeem
draaien, ergens tussen de anderhalf uur tot vier uur kan duren. Op een
oudere machine, kan de compilatie van Mozilla vierentwintig of langer duren.
Het grootste voordeel is dat er een groot aantal compile-time opties zijn
en dat er patches kunnen worden toegepast die de performance en featureset
van de browser dramatisch zal verbeteren. Deze patches zijn gewoonlijk
nodig als je van plan bent Mozilla in een productie-omgeving uit te voeren.
</para>
<para>
Sla alsjeblieft de volgende paar secties over en kijk naar de
<xref linkend="postinstall"/>,Configuratie na de installatie als je niet bent
ge&iuml;nteresseerd in aanpassingen van de Mozilla browser op broncodeniveau.
</para>
<para>
Op het moment dat dit document werd geschreven, was de laatste versie
van de Mozilla broncode versie 1.2.1, welk via ftp kan worden opgehaald vanuit
<ulink url="ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.2.1">ftp.mozilla.org/pub/mozilla/releases/mozilla1.2.1</ulink>.  
De andere stabiele release, 1.0.1, kan via ftp worden opgehaald vanuit
<ulink url="ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.0.1">ftp.mozilla.org/pub/mozilla/releases/mozilla1.0.1</ulink>.  
</para>
<para>
Bekijk voor een CVS-checkout alsjeblieft de documentatie op de website van
<ulink url="http://mozilla.org">Mozilla</ulink>.
</para>
</sect1>
<sect1 id="patch">
<title>Patch de broncode</title>
<para>
Een niet gepatchte Mozilla is geen al te goede burger. Je kunt bijvoorbeeld als
opdrachtregeloptie geen X en Y geometrieposities specificeren. Dit is op een
typische eindgebruikersdesktop niet zo'n probleem, maar in een bedrijfs- of
publieke computeromgeving is het een killer.
Ter correctie moeten we een patch toepassen op de C++ broncode in
<filename>embedding/components/windowwatcher/src/nsWindowWatcher.cpp
</filename>. De eerste stap bestaat uit het ophalen en toepassen van de
<ulink url="http://www.willamette.edu/~speralta/mozilla.kludge.txt">patch</ulink> geschreven door Robert Riches.  
Deze patch is getest op de Mozilla versies 1.0 tot en met 1.2.1.
</para>
<para>
Plak het voor het toepassen van de patch simpelweg in 
<filename>embedding/components/windowwatcher/src/nsWindowWatcher.cpp</filename>, in je Mozilla broncodestructuur. De notatie maakt gebruik van
<quote>+</quote> symbolen om aan te duiden dat de code moet worden
ingevoegd. Deze symbolen moeten worden verwijderd voordat het
tekstbestand <filename>nsWindowWatcher.cpp</filename> wordt opgeslagen.
</para>
<para>
Stel voor het gebruiken van de patch een omgevingsvariabele, genaamd
<envar>MOZILLA_SCREEN_POS</envar> in op de juiste co&ouml;rdinaten. 
Typ onder Bash bijvoorbeeld <command>export MOZILLA_SCREEN_POS='screenx=1,screeny=1'</command> wat de linkerbovenhoek van je browser zal instellen op de
linkerbovenhoek van je scherm.
</para>
</sect1>

<sect1 id="configure">
<title>Configureer de broncode</title>
<para>
Een ander probleem bij het gebruik van Mozilla in een persoonlijke
of productie-omgeving is dat het code bevat die een homepage zal
overschrijven die je op geregelde basis instelde,
of wanneer een nieuwe release van het product wordt gedistribueerd.
</para>
<para>Aangezien deze informatie in een configuratiebestand is opgeslagen,
is het 't eenvoudigst zonder de browser in de weg te zitten het 
configuratiebestand te wijzigen te wijzen op standaard 
homepage-instellingen naar &eacute;&eacute;n die consistenter is met
de omgeving die je gebruikt.
</para>
<para>
Mozilla bewaart de meeste compile-time configuratie op in bestanden met
een <emphasis>.properties</emphasis> extensie.  Je kunt deze bestanden
gebruiken om tekst te specificeren in message dialogues, fonts, en andere
opties. 
In dit geval, in de veronderstelling dat je locale en taalinstellingen
<envar>en-US</envar> zijn, is het <emphasis>.property</emphasis> bestand
dat je nodig hebt <filename>region.properties</filename> welke is te
vinden in de directory 
<filename class="directory">xpfe/browser/resources/locale/en-US/</filename>.
</para>
<para>
De wijzigingen die je aan dit bestand moet aanbrengen, zijn tamelijk
recht-toe-recht-aan. Als algemene regel vervang ik het waarde deel van
het naam/waarde paar naar &eacute;&eacute;n van mijzelf bij elke instance
een keuze maken waar het woord <quote>homepage</quote> in de configuratie
wordt vermeld.
</para>
<screen>
# navigator.properties
homePageDefault=http://jeurl.com
shopKeyword=keyword:shop [Product]
quoteKeyword=keyword:quote [Symbool hier invoeren]
localKeyword=keyword:zip [Je zip code]
keywordList=http://home.netscape.com/escapes/keywords
webmailKeyword=http://webmail.netscape.com
careerKeyword=keyword:[Je stad] careers
fallbackDefaultSearchURL=http://search.netscape.com/cgi-bin/search?charset=UTF-8&amp;search=
otherSearchURL=http://home.netscape.com/bookmark/6_0/tsearch.html
#
# all.js
#
browser.startup.homepage=http://jeurl.com
browser.throbber.url=http://jeurl.com
browser.search.defaulturl=http://search.netscape.com/cgi-bin/search?search=

wallet.Server=http://www.mozilla.org/wallet/tables/
wallet.Samples=http://www.mozilla.org/wallet/samples/

#config.js
#
startup.homepage_override_url=http://jeurl.com
</screen>
</sect1>

<sect1 id="compile">
<title>Compileer de broncode</title>
<para>Typ <command>.configure</command> vanuit de rootdirectory van de
Mozilla broncodestructuur om Mozilla's compile-time opties te configureren.
Typ <command>./configure --help</command> voor een volledige lijst met
compile-time opties. 
Wat je nog kunt verifi&euml;ren voordat je een compilatie voor een
productie-omgeving uitvoert is dat de omgevingvoorkeuren (mail vs. no mail,
calendar, ldap, enz.) zijn opgenomen en controleer of het crypto package
is geactiveerd.
</para>
<para>
Ter vereenvoudiging, gebruik ik gewoonlijk een simpel build script zoals
het volgende om Mozilla te configureren.
</para>
<screen>
#!/bin/sh

MOZILLA_OFFICIAL=1
export MOZILLA_OFFICIAL
BUILD_OFFICIAL=1
export BUILD_OFFICIAL

./configure --with-x --disable-calendar --enable-crypto --with-system-nspr 
--disable-debug --enable-extensions --enable-optimize
--without-system-zlib --without-system-jpeg --without-system-png 
--without-system-mng
</screen>
<para>Zodra je de patches hebt toegepast, configuratiebestanden hebt 
aangepast, en opties hebt ingesteld, bouw je Mozilla simpelweg met
<emphasis>gmake</emphasis> door het typen van <command>./gmake</command> in de
rootdirectory van je broncodestructuur, en maakt dan een tarball door het
typen van <command>gmake</command> in de directory 
<filename class="directory">xpinstall/packager</filename>.  
De tarball komt terecht in de subdirectory dist direct onder de rootdirectory
van je Mozilla broncodestructuur.  
Verplaats dat package gewoon naar 
<filename class="directory">/usr/local</filename>, pak het uit, voer het
eenmaal uit vanaf de opdrachtregel als de gebruiker die het package
bouwde (de opdracht is <command>/usr/local/mozilla/mozilla</command>), 
en je bent bijna klaar om te gaan browsen.
</para>
</sect1>
<sect1 id="postinstall">
<title>Configuratie na de installatie</title>
<para>
Er zijn na de installatie van de browser verscheidene configuratiekeuzes 
te maken. Je kunt plugins toevoegen voor gebruikelijke webtechnologi&euml;n,
zoals Java (<ulink url="http://java.sun.com">java.sun.com</ulink>), PDF printing (<ulink url="www.adobe.com">www.adobe.com</ulink>), en Flash animaties 
(<ulink url="http://www.macromedia.com/software/flash">www.macromedia.com/software/flash</ulink>) en iets minder bekende, maar wel gave plug-ins, zoals
(<ulink url="http://enigmail.mozdev.org">enigmail.mozdev.org</ulink>).
</para>

<para>
Kopieer voor het installeren van een plug-in de plug-in uit de broncodetoepassing (b.v. Acrobat5) naar de directory 
<filename class="directory">/plugins</filename> in Mozilla, of maak een
symbolische link aan van de plug-in naar de plug-ins directory in de
binaire structuur van Mozilla. Om bijvoorbeeld een Mozilla plug-in voor
Adobe Acrobat 5 aan te maken met behulp van een symbolische link, typ je
simpelweg <command>ln -s  /pad/naar/Acrobat5/Browsers/intellinux/nppdf.so /usr/local/mozilla/plugins/</command>.  
Typ op vergelijkbare wijze 
<command>ln -s /pad/naar/j2re1.4.0_02/plugin/i386/ns610/libjavaplugin_oji.so /usr/local/mozilla/plugins/</command> om een plug-in aan te maken van je
Java runtime omgeving.  
Het is aan te bevelen dat je Sun's JDK 1.4.1 met Mozilla 1.0.1 en daarboven
gebruikt. Er zijn incompatibiliteiten bekend met Mozilla en eerdere versies
van Java.
</para>
<para>
Kijk op <ulink url="http://mozdev.org">mozdev.org</ulink>
om aan Mozilla project plug-ins, zoals Enigmail, te komen,  die in een 
interface voorziet voor het versleutelen en ontsleutelen van mail, of voor
Protozilla, die voorziet in volledige parametrisatie (waaronder ondersteuning
voor meerdere protocol en programmeertalen). 
</para>
</sect1>
</article>

