summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pool <mbp@sourcefrog.net>2014-04-23 15:52:16 +1000
committerMartin Pool <mbp@sourcefrog.net>2014-04-23 15:52:16 +1000
commit1c114906a2d7ae9c2040139fb8a75b98a9498aef (patch)
treefa9acb8625d1de2f0e31e8eafdf395fe731eab0d
parent75d459e726fe1b13063a7de554d16ebb9a9c1fe6 (diff)
downloadlibrsync-1c114906a2d7ae9c2040139fb8a75b98a9498aef.tar.gz
Update README
-rw-r--r--README.md117
-rw-r--r--RELEASING.md26
2 files changed, 80 insertions, 63 deletions
diff --git a/README.md b/README.md
index 2cd9b41..ae9e77d 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,43 @@
-# README for librsync
+# librsync
librsync implements the rolling-checksum algorithm of remote file
synchronization that was popularized by the rsync utility and is used in
rproxy. This algorithm transfers the differences between 2 files without
needing both files on the same system.
-librsync's canonical branches (since 2014-04) are at
+librsync does *not* implement the rsync wire protocol. If you want to talk to
+an rsync server to transfer files you'll need to shell out to `rsync`. librsync
+is for building other programs that transfer files as efficiently as rsync. You
+can use librsync to make backup tools, distribute binary patches to programs,
+or sync directories to a server or between peers.
- https://github.com/librsync/librsync/
+This tree also produces the `rdiff` command-line tool that exposes the key
+operations of librsync: generating file signatures, generating the delta from a
+signature to a new file, and applying the delta to regenerate the new file
+given the old file.
+
+## Copyright
+
+librsync is Copyright 1999-2014 Martin Pool and others.
+
+librsync is distributed under the GNU LGPL v2.1 (see COPYING), which basically
+means that you can dynamically link librsync into non-GPL programs, but you
+must redistribute the librsync source, with any modifications you have made.
+
+## Contact
+
+librsync's home is
+
+- https://github.com/librsync/librsync/
+- http://librsync.sourcefrog.net/
+
+There are two mailing lists:
+
+- https://groups.google.com/forum/#!forum/librsync-announce
+- https://groups.google.com/forum/#!forum/librsync
+
+There are some questions and answers about librsync on stackoverflow.com tagged
+`librsync`. That is a good place to start if you have questions.
## Requirements
@@ -17,27 +47,22 @@ To build librsync you will need:
* Make
-* popt -- command line parsing library
+* popt command line parsing library
Available from http://rpm5.org/files/popt/
-## Compiling
+* automake, libtool, and autoconf
-To build and test librsync from the extracted distribution do;
+## Compiling
- $ ./configure
- $ make all check
+If you're building from a git tree you must first create the autoconf files:
-## Note for RedHat 7.0
+ $ ./autogen.sh
-RedHat 7.0 (Guiness) ships with a buggy version of GCC 2.96 that
-produces many warnings while compiling librsync. These are harmless
--- the library seems to work anyhow. You can avoid the warnings by
-using the 'kgcc' version of the compiler:
+To build and test librsync then do
- $ export CC=kgcc
- $ ./autogen.sh
- $ make all check
+ $ ./configure
+ $ make all check
## Note for Windows
@@ -45,9 +70,9 @@ With cygwin you can build using gcc as under a normal unix system. It
is also possible to compile under cygwin using MSVC++. You must have
environment variables needed by MSCV set using the Vcvars32.bat
script. With these variables set, you just do;
-
- $ ./configure.msc
- $ make all check
+
+ $ ./configure.msc
+ $ make all check
The PCbuild directory contains a project and pre-generated config
files for use with the MSVC++ IDE. This should be enought to compile
@@ -62,18 +87,8 @@ information.
## Platforms
-librsync is known to run on:
-
-GNU Linux Debian 3.0 x86
-
-SUNWspro: (use -v for more warnings)
-
-mips-sgi-irix6.5: works, but you must use GNU Make rather than the default
-SGI Make. I used gcc.
-
-windows32: see above.
-
-## rdiff man page
+librsync should be widely portable. Patches to fix portability bugs are
+welcome.
## Documentation
@@ -89,41 +104,17 @@ and for the library:
Generated API documentation:
-- https://rproxy.samba.org/doxygen/librsync/refman.pdf
- https://rproxy.samba.org/doxygen/librsync/
+- https://rproxy.samba.org/doxygen/librsync/refman.pdf
+
+These are all produced from the source tree.
## 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.
-
-## 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
+ MALLOC_CHECK_=2 ./rdiff
+
+to detect some allocation bugs.
+
+librsync has annotations for the SPLINT static checking tool.
diff --git a/RELEASING.md b/RELEASING.md
new file mode 100644
index 0000000..e18f1e3
--- /dev/null
+++ b/RELEASING.md
@@ -0,0 +1,26 @@
+# Releasing
+
+If you are making a new tarball release of librsync, follow this checklist:
+
+* 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
+