Here's a tentative document describing how to do anonymous CVS, how to
create a patch to lyx under cvs, etc.

If people thinks it's at all worth it, I can change devel.lyx.org/index to
point to it.

-Amir
<? 
// What's the title of the page?
$title = "Getting source code with CVS";
// What's the short name of the page in the navigation bar?
$item="CVS Howto";
// Who is the author?
$author="[EMAIL PROTECTED]";
// What's the URL to this page?
$this="cvs.php3";

include("start.php3"); 
?>

<p>
<img border=0 width=117 height=87 src="lyx_small3.gif" align=right>

<h3> Introduction </h3>

CVS, the Concurrent Version System, allows multiple people to work on code
development at one time. You can get a lot more information on CVS and/or
download the code from 
<a href=http://www.loria.fr/~molli/cvs-index.html>France</a>. We strongly
recommend that you read the documentation, available either in info format or
HTML (or at the CVS site).

<h3> Modules </h3>

There are three modules in the current CVS repository:
<dl>
<dt> lyx </dt> 
<dd> This is the <strong>unstable</strong> development branch.
Use this only if you know what you're doing, and if you don't mind
frequent crashes. </dd>

<dt> lyx-1_0_x </dt> 
<dd> This is the <strong>stable</strong> release branch.
However, the very latest changes to this code might introduce instabilities,
so as always, take precautions. </dd>

<dt> lyxdoc </dt> 
<dd> Documentation is kept here and folded in to the
<code>doc</code> directory before release. </dd>
</dl>

Using CVS, you can download a whole module with just one command.

<h3> Anonymous CVS login </h3>

In order to make anonymous CVS access easier, you should set your
<code>CVSROOT</code> environment variable to

<pre>
:pserver:[EMAIL PROTECTED]:/usr/local/lyxsrc/cvsroot
</pre>

(Alternatively, you can use the <code>-d</code> option to the cvs
commands.) </p>

<p>
Now just do:
<pre>
cvs login
</pre>

The password is <code>cvs</code>.</p>

<p> Finally,
<pre>
cvs checkout lyx
</pre>

This will make a directory <code>lyx</code> and download lots of files into
that directory. Of course you can say <code>cvs checkout lyx-1_0_x</code>
instead, depending on which module you'd like to download.</p>

<h3> After the first download </h3>

If the code is updated, just <code>cd</code> to the <code>lyx</code>
directory and say:
<pre>
cvs update 
</pre>
This will magically download or patch only those files which have been changed
or added, saving you (and the server) lots of time.

<hr>

<h3> Compiling the source </h3>
Just follow the directions in <code>INSTALL</code>, as if you had downloaded a
tar file. For the stable module, this is pretty much just
<code>configure</code>, <code>make</code>, and <code>make install</code>. </p>

<p> If you want to compile and run the development module, things are
somewhat more complicated than for the release module. You're
going to need <code>automake</code>, <code>autoconf</code>, and
<code>gettext</code>, which can be downloaded from your favorite GNU ftp site.
(Start at <a href=http://www.gnu.org>gnu.org</a> to find a mirror.) Once
you've installed all of that stuff, the build process is something like:
<pre>
aclocal
automake
autoconf
configure
make
make install (if LyX works!)
</pre>

<hr>

<h3> Changing the source </h3>

We strongly support any creative impulses you may have. Bug fixes,
documentation, and new features will always be looked at carefully, and will
usually be accepted, with a number of exceptions. New features will rarely be
accepted for the stable release version. Documentation which does not follow
the requirements of the <code>DocStyle</code> document will not be accepted.
Aside from that, though, we love getting new contributions! </p>

<p> If you'd like to make changes to LyX, it will make everyone's life easier
if you change the latest CVS sources rather than the latest release. Here's a
quick rundown of what you would do:

<ul>
<li> Get the latest version of the source with <code>cvs update</code>. A
patch to old sources will be much harder to apply, and is therefore
more likely to be ignored.

<li> Change the files. (Either edit in place or copy them to somewhere else,
edit them, and then copy them back to wherever you keep the CVS tree.)

<li> Run <code>cvs diff -c</code> to create a patch

<li> <code>gzip</code> the patch, and send to
the <a href=http://www.lyx.org/mailing.html>LyX developer's mailing list</a>.
</ul>

If you find yourself creating lots of patches that the LyX team
incorporates into the code, you may be granted CVS access. In that case, your
life becomes even easier. You'll change your <code>CVSROOT</code> to do
non-anonymous CVS. Then you just run a <code>cvs ci</code> to check
changes in to the CVS tree, instead of creating a patch and mailing it in.

<? 
include("end.php3"); 
?>

Reply via email to