rsync download

Source-code releases (tar files)

You can grab the latest source code tar file, its gpg signature, and other related files in a variety of ways:

Also, an unpacked copy of the latest development version can be browsed on the web or obtained via anonymous rsync, as described in the Source Repository section.

The GPG Signing Key

The GPG signing key that is used to sign the release files and the postings to the rsync-announce mailing list is available from the public pgp key-server network. If you have automatic key-fetching enabled, just running a normal "gpg --verify" will grab my key automatically. Or, feel free to grab the gpp key for Wayne Davison manually.

Binaries

Precompiled binaries are available in most modern OS distributions, so you should first check if you can install an rsync package via your standard package-install tools for your OS.

There are also packages available from some 3rd-parties (note that we cannot vouch for 3rd parties, so use a source that you trust):

Nightly tar-file snapshots

Nightly snapshots of the rsync source tree are also available for people who want to try the latest development version. If you want to track development, then using an anonymous rsync copy will not require as much bandwidth (see below). Or, updating a git repository can automatically merge your local changes with our version. However, one thing the tar file has going for it is that it contains several generated files that are not present in the source repository (such as configure.sh, config.h.in, etc.). It can also be helpful if you cannot use rsync or git because of firewall, network, or software issues.

Source repository

The rsync development tree is publicly available by various methods so that you can try out the latest changes and give feedback to the developers.

Note: Since the source repository is a work in progress it may, at times, not compile or fail in various ways, though it is usually pretty good.

Anyone can browse the development history through gitweb.

You may also use the git version-control system to check out the latest development version, especially if you want to make local changes. The following command will check-out the latest version into a directory named "rsync":

git clone git://git.samba.org/rsync.git

After the initial clone, I also recommend running the git-set-file-times script to set each file's last-modified time based on its last commit (don't run it again after that unless you do a "make distclean"). You'll also need autoconf and autoheader installed for the "prepare-source" command to succeed unless you use either the "fetch" or "fetchall" option (these options can only fetch the most recent generated file that goes with the latest git version):

cd rsync
support/git-set-file-times         # optional
./prepare-source

Updating your git checkout with the latest source is very easy:

git pull

Those wanting to just obtain the latest source without the entire git repository can either use a nightly tar-file snapshot (see above) or use an anonymous rsync copy of the unpacked source files:

rsync -av --exclude=.git/ rsync://rsync.samba.org/ftp/unpacked/rsync /dest/dir/

Source repository patch branches

There are also various patch/* branches in the git repository that represent either work-in-progress features or features that are considered to be a little too fringe-interest for the main release. You can see these items as patch files for the dev release, or checkout a branch using git. For instance, the following command set will list all the patch/* branches available on the remote (origin) repository:

git branch -r | fgrep origin/patch/

To checkout one branch—let's say "foo"—as a local branch that can be locally modified while still tracking the remote branch, run this:

git checkout --track -b patch/foo origin/patch/foo

Finally, you can checkout a remote branch in a way that can be built, but local changes cannot be committed (unless you create a local branch later):

git checkout origin/patch/foo