CVS Instructions for librsync
-----------------------------

If you're building from CVS, things are slightly more complicated than
usual.  I hope these instructions will tell you all you need to know.
Please mail <librsync-devel@lists.sourceforge.net> if they are unclear
or incorrect. Also read HACKING for a description of development
conventions used by the project.

The librsync project is currently hosted on sourceforge. Everything,
including CVS, can be found at;

http://sourceforge.net/projects/librsync/


>> Requirements

To build from CVS you will probably need at least automake 1.7, autoconf
2.53, and libtool 1.4.3, plus a compiler, make and so on. You might get away
with earlier versions of the autotools stuff, but these versions are known
to work. On Debian, you can simply say

  # apt-get install automake1.7 autoconf libtool

To generate API documentation, you will need Doxygen, Latex and GhostView:

  # apt-get install doxygen gs tetex

To generate the ChangeLog needed when creating a distribution, you will need
cvs2cl;

  # apt-get install cvs2cl


>> Downloading

  $ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/librsync login
  [When prompted for a password, simply press the Enter key] 
  $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/librsync \
    -d YOUR_DIRECTORY co librsync

You can choose the name of the directory that will hold the source here.  If
you have no opinion, just omit the `-d YOUR_DIRECTORY' and it will go into
`librsync'. For more details, see the web site.


>> Building

  $ cd YOUR_DIRECTORY
  $ ./autogen.sh [OPTIONS]
  $ ./configure
  $ make all check

You can pass all the ./configure options to autogen, including --help.


>> Debugging

If you are using GNU libc, you might like to use

  MALLOC_CHECK_=2 ./rdiff

to detect some allocation bugs. Report any bugs you find to the bug tracker.


>> Sending patches

If you make a change to the source and would like to contribute it back, do
this:

  $ cvs diff -u -N >/tmp/my.librsync.patch

and submit to the patch tracker.


>> Releasing

Make sure you have cvs2cl installed to generate ChangeLog. Before a
formal release, make sure that the following files have been updated
to reflect the new version:

 * AUTHORS - make sure all significant authors are included. 
  
 * NEWS - make sure the top "Changes in X.Y.Z" is correct. 
  
 * THANKS - make sure the bottom "Contributors for X.Y.Z" is correct.
  
 * configure.ac - make sure AC_INIT and librsync_libversion are right.
  
 * libversions.txt - make sure libversion is added.
  
 * librsync.spec - make sure version and URL are right.
  
 * PCBuild/config.h,librsync-config.h - update using configure.msc
   using cygwin.

Do a complete configure and distcheck to ensure everything is properly
configured, built, and tested:

  $ ./autogen.sh [OPTIONS]
  $ ./configure
  $ make distcheck

$Id: README.CVS,v 1.16 2003/12/15 06:18:07 abo Exp $
