<meta http-equiv="REFRESH" content="10;url=http://wiki.services.openoffice.org/wiki/Documentation/FAQ">
<h3>This page is outdated. You will be redirected to <a href="http://wiki.services.openoffice.org/wiki/Documentation/FAQ">http://wiki.services.openoffice.org
/wiki/Documentation/FAQ</a> shortly.</h3>
<div style="margin-bottom: 10em;"></div>
<p><a href="../../index.html">Documentation</a> / <a href="../index.html">User FAQ</a> / <a href="index.html">Maintainers' FAQ</a> / <a href="002.html" accesskey="p">Previous</a>-<a href="004.html" accesskey="n">Next</a></p>
<h3>How does one access the OpenOffice.org source files for the web pages and the code?</h3>
<p>Anyone can connect to the OpenOffice.org file system as an anonymous viewer with read-only access. See <a href="http://www.openoffice.org/servlets/ProjectSource">CVS client setup</a> for more details. To <i>commit</i> new or edited files to the site, there are more steps.</p>
<p><b>Preliminary steps:</b></p>
<ol>
  <li>Obtain a copy of the <a href="http://www.openoffice.org/licenses/jca.pdf">JCA</a>. If you have questions, read the <a href="http://www.openoffice.org/FAQs/faq-licensing.html#jcaa">FAQs</a>. (If your question is not answered there, please <a href="mailto:dev@documentation.openoffice.org">let us know</a>.) FAX a signed copy and send the signed original JCA by snail mail.</li>
  <li>From your home directory, generate your SSH2 Keypair <i>(public key + private key)</i>, create your <i>passphrase</i>, and learn the <i>path</i> to the public key file set. (<a href="http://www.openoffice.org/scdocs/ddSSHGuide.html#commands">Linux</a> | <a href="http://www.openoffice.org/scdocs/ddSSHGuide.html#Mac">Mac</a> | <a href="http://www.openoffice.org/scdocs/ddSSHGuide.html#windows">Windows</a>)</li>
  <li><a href="009.html">Send your public key</a> (id_dsa.pub) file to OpenOffice.org, while your private key (id_dsa) file remains on your machine. Set permissions on the private key so only the owner has read and write access to this file.</li>
  <li>When the OpenOffice.org support team tells you your key has been uploaded, <a href="015.html">log in to create a tunnel</a>. Do this in a terminal, then minimize the terminal window to set it aside until you are done.</li>
  <li>To edit files <i>you must obtain permission from the project</i> where they live. You must be a member of that project. You seek the <b>content developer</b> or <b>developer</b> <a href="http://www.openoffice.org/scdocs/ProjectRoles">role</a> status; <i>project owners</i> grant these roles. When the role has been granted, you will be able to see it in the Membership list of that project, and you should have write access to the files on the site.</li>
</ol>
<p><b>Common work routines:</b></p>
<ol>
  <li>Open a terminal. Establish a tunnel. Minimize this terminal.</li>
  <li>Open a second terminal to do your work. If this is your first visit to the project through the tunnel, <a href="016.html">log in to the CVS.</a></li>
  <li><a href="017.html">Checkout files</a> from the site.</li>
  <li><a href="018.html">Commit or update</a> edits to existing files.</li>
  <li><a href="019.html">Add folders</a>.</li>
  <li><a href="020.html">Add and commit new files</a>.</li>
  <li><a href="024.html">Remove and rename</a> files.</li>
  <li>Exit out of working terminal to quit your work in CVS. Type: <b>exit</b> or <b>cvs logout</b></li>
  <li>^C in the first shell to close your SSH connection, then exit out of the shell.</li>
  <li>Inspect your work by visiting the new pages on the <a href="http://www.openoffice.org/">OpenOffice.org</a> web site, or by reviewing the <a href="022.html">cvs mail log</a>.</li>
</ol>
<p><a href="../../index.html">Documentation</a> / <a href="../index.html">User FAQ</a> / <a href="index.html">Maintainers' FAQ</a> / <a href="002.html" accesskey="p">Previous</a>-<a href="004.html" accesskey="n">Next</a></p>
