<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <head>
        <TITLE>Readme&nbsp;for the Respin of the Beta developer snapshot of the chart reimplementation&nbsp; (Milestone 9b)</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 the Respin 
                    of the Beta developer snapshot of the chart reimplementation&nbsp; (Milestone 
                    9b)</FONT></H1>
            <P>The chart reimplementation is still ongoing. Be aware that this version is a 
                Beta and still contains a lot of bugs, missing features and maybe 
                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\openoffice_chart2_milestone9\program\soffice.exe</P>
            <H4>Linux:</H4>
            <P>Just exrtact the tar.gz file to YOURDIRECTORY and start 
                YOURDIRECTORY/openoffice_chart2_milestone9/program/soffice</P>
            <H4>Solaris:</H4>
            <P>Just exrtact the tgz file to YOURDIRECTORY and start 
                YOURDIRECTORY/openoffice_chart2_milestone9/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-chart2mst9
			</pre>
			<P>This will install the user configuration in the user's home
                directory in a hidden subdirectory
                <code>.ooo-dev2-chart2mst9</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>
