<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <head>
        <TITLE>Readme&nbsp;for Milestone 10 (&nbsp;Integration Candidate 1 Developer Snapshot of the chart reimplementation&nbsp; )</TITLE>
        <META http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252">
        <META content="OpenOffice.org 2.0  (Win32)" name="GENERATOR">
        <META content="20060228;15584500" name="CREATED">
        <META content="20061031;16061800" name="CHANGED">
        <STYLE> <!-- @page { size: 8.27in 11.69in; margin: 0.79in }
	P { margin-bottom: 0.08in }
	H1 { margin-bottom: 0.08in }
	H1.western { font-family: "Albany", sans-serif; font-size: 16pt }
	H1.cjk { font-family: "MS Mincho"; font-size: 16pt }
	H1.ctl { font-family: "Tahoma"; font-size: 16pt }
	H2 { margin-bottom: 0.08in }
	H2.western { font-family: "Albany", sans-serif; font-size: 14pt; font-style: italic }
	H2.cjk { font-family: "MS Mincho"; font-size: 14pt; font-style: italic }
	H2.ctl { font-size: 14pt; font-style: italic }
	H3 { margin-bottom: 0.08in }
	H3.western { font-family: "Albany", sans-serif }
	H3.cjk { font-family: "MS Mincho" }
	--></STYLE>
    </head>
    <body lang="en-US" dir="ltr">
        <FONT size="3">
            <H1 class="western"><FONT style="FONT-SIZE: 16pt" size="4"> Readme&nbsp;for Milestone 
                    10 (&nbsp;Integration Candidate 1 Developer Snapshot of the chart 
                    reimplementation&nbsp; )</FONT></H1>
            <P>The chart reimplementation is still ongoing. Be aware that this version is not 
                an official build&nbsp;but only provided for testing purposes.&nbsp;It still 
                contains bugs and incompatibilites. So don't use it for&nbsp;regular work. If 
                you create documents with this version do not distribute or keep them as they 
                might not be correctly loaded in official builds. As this is a developer 
                snapshot&nbsp;build it should not conflict with your normal OpenOffice.org 
                version on your computer. Please don't use the 'online update' feature as this 
                will not work with the developer snapshot.</P>
            <br>
            <H2 class="western">How to install:</H2>
            <P>Just extract and start:</P>
            <H4>Windows:</H4>
            <P>Just exrtact the zip file to YOURDIRECTORY and start 
                YOURDIRECTORY\OOo_2.1.195_Win32Intel_install\program\soffice.exe</P>
            <H4>Linux:</H4>
            <P>Just exrtact the tar.gz file to YOURDIRECTORY and start 
                YOURDIRECTORY/openoffice_chart2_milestone10/program/soffice</P>
            <H4>Solaris:</H4>
            <P>Just exrtact the tgz file to YOURDIRECTORY and start 
                YOURDIRECTORY/openoffice_chart2_milestone10/opt/openoffice.org2.0/program/soffice</P>
            <H2 class="western">Multi-User Installation:</H2>
            <P>Note, that the installation is intended for single-user usage. The user 
                configuration is stored inside the installation path, so users can usually not 
                access the configuration, because they do not have the correct file 
                permissions. Besides, no more than one user should access the configuration at 
                a time.</P>
            <P>The advantage of having this is that de-installation works like described below, 
                by just removing the entire installation-directory.</P>
            <P>To allow multi-user installation you have to patch the <code>&lt;ooo-installation-path&gt;/program/bootstraprc</code>
                (on Windows the file is called <code>bootstrap.ini</code>). Do the following 
                change in this file:</P>
            <pre>
			 - UserInstallation=$ORIGIN/../.ooo-dev2
			 + UserInstallation=$SYSUSERCONFIG/.ooo-dev2-chart2mst10
			</pre>
            <P>This will install the user configuration in the user's home directory in a 
                hidden subdirectory <code>.ooo-dev2-chart2mst10</code>. If you have more than 
                one OOo developer snapshot you should also use different names, like suggested 
                here by adding something to the name <code>.ooo-dev2</code>, to avoid 
                conflicting configuration between those snapshots.</P>
            <br>
            <H2 class="western">How to deinstall:</H2>
            <P>Just remove the directory to which you extracted.</P>
        </FONT>
    </body>
</HTML>
