Wayne Davison [Sat, 15 Oct 2016 18:13:28 +0000 (11:13 -0700)]
Use S_BLKSIZE when multiplying st_blocks.
Wayne Davison [Mon, 10 Oct 2016 18:49:50 +0000 (11:49 -0700)]
Support --sparse combined with --preallocate or --inplace.
The new code tries to punch holes in the destination file using newer
Linux fallocate features. It also supports a --whole-file + --sparse +
--inplace copy on any filesystem by truncating the destination file.
Stefan Metzmacher [Fri, 22 Jul 2016 17:46:46 +0000 (19:46 +0200)]
xattrs: maintain a hashtable in order to speed up find_matching_xattr()
As a testcase I've used one directory on gpfs with
1000000 files,
each with an xattr called 'name$i' having a value of 'value$i'.
So we also have
1000000 unique xattrs. The source and dest directories
are already in sync before. So the rsync command is basically a noop,
just verifying that everything is already in sync.
The results before this patchset are:
[gpfs]# time rsync -a -P -X -q source-xattr/ dest-with-xattr/
real 8m46.191s
user 6m29.016s
sys 0m24.883s
[gpfs]# time rsync -a -P -q source-xattr/ dest-without-xattr/
real 1m58.462s
user 0m0.957s
sys 0m11.801s
With the patchset I got:
[gpfs]# time /gpfs/rsync.install/bin/rsync -a -P -X -q source-xattr/ dest-with-xattr/
real 2m4.150s
user 0m1.917s
sys 0m17.077s
[gpfs]# time /gpfs/rsync.install/bin/rsync -a -P -q source-xattr/ dest-without-xattr/
real 1m59.534s
user 0m0.924s
sys 0m11.599s
It means the time in userspace dropped from 6m29.016s down to 0m1.917s!
Without -X we get ~ 0m0.9s with or without the patch.
Part of a patchset for bug 5324.
Stefan Metzmacher [Fri, 22 Jul 2016 16:35:18 +0000 (18:35 +0200)]
hashtable: add hashlittle() from lookup3.c, by Bob Jenkins
Part of a patchset for bug 5324.
Stefan Metzmacher [Fri, 22 Jul 2016 16:32:04 +0000 (18:32 +0200)]
xattrs: introduce a rsync_xa_list struct as layer between two nested item_lists
We have the global 'item_list rsync_xal_l', this maintains an array
of rsync_xa_list structure, one per file.
Each rsync_xa_list structure maintains an array of rsync_xa structure,
while each represent a single xattr with name and value.
Part of a patchset for bug 5324.
Stefan Metzmacher [Fri, 22 Jul 2016 16:14:40 +0000 (18:14 +0200)]
xattrs: let rsync_xal_store() return ndx.
Part of a patchset for bug 5324.
Stefan Metzmacher [Fri, 22 Jul 2016 12:43:27 +0000 (14:43 +0200)]
xattrs: add const to empty_xattr
Part of a patchset for bug 5324.
Greg Whiteley [Wed, 20 Jul 2016 07:13:56 +0000 (17:13 +1000)]
Makefile: rounding.h generation requires proto.h via h
Bug 12029 - Makefile missing dep gives parallel race for rounding.h
Signed-off-by: Greg Whiteley <greg.whiteley@gmail.com>
Wayne Davison [Sun, 26 Jun 2016 18:46:18 +0000 (11:46 -0700)]
Fix "could not find xattr #1" errors.
The abbreviated-xattr code can get requests that are not in the same
order as the xattr list, so we need to support wrap-around scanning
of the available xattrs. Fixes bug 6590.
Wayne Davison [Sat, 4 Jun 2016 18:53:33 +0000 (11:53 -0700)]
Fix path check when prior_dir_file is NULL.
Wayne Davison [Sat, 7 May 2016 22:42:20 +0000 (15:42 -0700)]
Improve the top-level section on include/exclude traversal.
This is my edit of some suggestions by Karl O. Pinc.
Wayne Davison [Sun, 1 May 2016 23:32:45 +0000 (16:32 -0700)]
Add --checksum-choice option to choose the checksum algorithms.
Wayne Davison [Sun, 1 May 2016 23:29:34 +0000 (16:29 -0700)]
Tweak indentation only.
Wayne Davison [Sun, 17 Apr 2016 23:31:57 +0000 (16:31 -0700)]
If a backup fails (e.g. full disk) rsync should fail.
Fixes bug 11668.
Wayne Davison [Sun, 17 Apr 2016 23:07:25 +0000 (16:07 -0700)]
Output "UNKNOWN" if starttime or endtime is -1.
Fixes bug 11382.
Wayne Davison [Sun, 17 Apr 2016 22:53:11 +0000 (15:53 -0700)]
Support only splitting users/groups on commas.
Fixes bug 11817.
Wayne Davison [Sun, 17 Apr 2016 18:43:46 +0000 (11:43 -0700)]
Tweak non-fatal output when man pages cannot be created.
Wayne Davison [Sun, 17 Apr 2016 18:20:38 +0000 (11:20 -0700)]
Fix use of obsolete compile macro.
Fixes bug 11813.
Wayne Davison [Sun, 17 Apr 2016 18:06:58 +0000 (11:06 -0700)]
Only output about new backup dirs when requested.
Fixes bug 11812.
Wayne Davison [Sun, 31 Jan 2016 22:40:47 +0000 (14:40 -0800)]
Fix/improve the sort functions.
Fixes bug 11704.
Wayne Davison [Sun, 24 Jan 2016 19:12:38 +0000 (11:12 -0800)]
Add support for comparing nanoseconds on the receiver.
This patch adds the ability to specify --modify-window=-1 (aka -@-1) to
ask rsync to compare files with the full nanosecond timestamps. The
default is still -@0 for the moment, which ignores nanoseconds in time
comparisons. Changing the default to -1 would cause a copy from ext4 to
ext3 to constantly compare as different, or a copy there and back again
to do a full copy as it zeroed all the nanosecond times. Such a change
might be too much of a functional difference for things like backup
solutions to handle without a warning period. The current plan is to
support nanosecond comparisons for those that want them, and possibly
change the default window value from 0 to -1 at some point in the
future.
Wayne Davison [Sun, 24 Jan 2016 19:12:24 +0000 (11:12 -0800)]
Prepare the repository for more development.
Wayne Davison [Thu, 24 Dec 2015 21:09:47 +0000 (13:09 -0800)]
Fix a tweak that should have been untweaked.
Wayne Davison [Mon, 21 Dec 2015 20:00:49 +0000 (12:00 -0800)]
Preparing for release of 3.1.2
Wayne Davison [Mon, 21 Dec 2015 19:56:24 +0000 (11:56 -0800)]
Improve the "use chroot" & "numeric ids" info a bit more.
Wayne Davison [Mon, 21 Dec 2015 18:54:02 +0000 (10:54 -0800)]
Improve the comment a bit more.
Wayne Davison [Sat, 19 Dec 2015 00:09:58 +0000 (16:09 -0800)]
Fix rule for out-of-tree builds.
Fixes bug 11635.
Wayne Davison [Fri, 18 Dec 2015 22:46:28 +0000 (14:46 -0800)]
Don't allow an empty flag name to --info & --debug.
Wayne Davison [Fri, 18 Dec 2015 22:38:10 +0000 (14:38 -0800)]
Document expand_item_list's args & make sure incr==0 works OK.
Wayne Davison [Sat, 5 Dec 2015 19:10:24 +0000 (11:10 -0800)]
Fix return of stat info from try_dests_reg().
The try_dests_reg() function could sometimes tweak the stat struct's
info when it should have been left unchanged. This fixes bug 11545
(where an ACL check of a file that was mistakenly thought to be a
directory failed).
Wayne Davison [Sun, 13 Sep 2015 23:15:17 +0000 (16:15 -0700)]
Add -wo option for write-only rrsync mode.
Wayne Davison [Mon, 7 Sep 2015 16:46:31 +0000 (09:46 -0700)]
Fixed logging of %b & %c when using --log-file.
The %b and %c escapes were outputting cumulative values when logged via
--log-file only (the bug didn't affect daemon transfer logging or the
output of the client's --out-format info). Also unified the %b & %c
switch case to make it easier to maintain. Fixes bug 11496.
Wayne Davison [Wed, 2 Sep 2015 19:20:50 +0000 (12:20 -0700)]
Add support for netbsd in xattrs case.
Closes bug-suggestion 11484.
Wayne Davison [Mon, 24 Aug 2015 18:23:31 +0000 (11:23 -0700)]
Change daemon's gid list to use an "item_list".
Wayne Davison [Mon, 24 Aug 2015 17:07:43 +0000 (10:07 -0700)]
Add configure option to set max daemon gid list.
Fixes bug 11456.
Wayne Davison [Mon, 24 Aug 2015 03:58:04 +0000 (20:58 -0700)]
Avoid creating even the top-level backup dir until needed.
Fixes bug 11423.
Wayne Davison [Mon, 24 Aug 2015 03:52:59 +0000 (20:52 -0700)]
Improve make_path() error return for non-dir element.
Wayne Davison [Sat, 8 Aug 2015 19:47:35 +0000 (12:47 -0700)]
Preparing for release of 3.1.2pre1
Wayne Davison [Sat, 8 Aug 2015 19:47:03 +0000 (12:47 -0700)]
Update the copyright year.
Wayne Davison [Sat, 8 Aug 2015 19:28:55 +0000 (12:28 -0700)]
Mention latest fixes.
Wayne Davison [Sat, 8 Aug 2015 19:19:42 +0000 (12:19 -0700)]
Don't create so many empty backup dirs.
Fixes bug 10724.
Wayne Davison [Sat, 18 Jul 2015 21:31:08 +0000 (14:31 -0700)]
Allow samba.org hostname to be overridden.
Wayne Davison [Mon, 13 Jul 2015 17:56:13 +0000 (10:56 -0700)]
Improve mergedir filter handling internals.
Fixes bug 10995.
Wayne Davison [Sun, 12 Jul 2015 21:00:45 +0000 (14:00 -0700)]
Make sure chk subdir can't diverge in time from its src subdir.
Wayne Davison [Sun, 12 Jul 2015 20:25:37 +0000 (13:25 -0700)]
Avoid --remove-sent-file issue for non-regular files.
Wayne Davison [Sun, 12 Jul 2015 20:10:05 +0000 (13:10 -0700)]
Mention local-only effect of --msgs2stderr.
Wayne Davison [Sun, 12 Jul 2015 17:38:32 +0000 (10:38 -0700)]
Mention how we handle a module named "global".
Wayne Davison [Tue, 7 Jul 2015 17:33:58 +0000 (10:33 -0700)]
Brant Gurganus's autoconf updates.
This improves some obsolete autoconf macros and increases the minimum
autoconf version from 2.60 to 2.69. Fixes bug 11369.
Wayne Davison [Sat, 4 Jul 2015 23:08:08 +0000 (16:08 -0700)]
Add parent-dir validation for --no-inc-recurse too.
Wayne Davison [Wed, 10 Jun 2015 22:20:01 +0000 (15:20 -0700)]
Change "fail" to "test_fail".
Fixes bug 11322.
Wayne Davison [Mon, 11 May 2015 21:31:07 +0000 (14:31 -0700)]
Make the checksum_seed a bit harder to predict.
Wayne Davison [Mon, 11 May 2015 19:36:20 +0000 (12:36 -0700)]
Add compat flag to allow proper seed checksum order.
Fixes the equivalent of librsync's CVE-2014-8242 issue.
Wayne Davison [Fri, 1 May 2015 22:17:41 +0000 (15:17 -0700)]
Pass -I option to aclocal.
Tiziano Müller [Wed, 8 Apr 2015 11:29:42 +0000 (13:29 +0200)]
Use AS_IF instead of plain if/then/fi
Tiziano Müller [Wed, 8 Apr 2015 11:29:41 +0000 (13:29 +0200)]
Ignore .deps directories.
Tiziano Müller [Wed, 8 Apr 2015 11:29:40 +0000 (13:29 +0200)]
Check for perl and assign it to a var since it is needed for generating the protocol header.
Tiziano Müller [Wed, 8 Apr 2015 11:29:39 +0000 (13:29 +0200)]
Remove dead targets from build system
Wayne Davison [Mon, 27 Apr 2015 00:30:15 +0000 (17:30 -0700)]
Handle configure's new version style.
Tiziano Müller [Wed, 8 Apr 2015 11:29:38 +0000 (13:29 +0200)]
Specify package name and version in call to AC_INIT
Tiziano Müller [Wed, 8 Apr 2015 11:29:37 +0000 (13:29 +0200)]
Properly quote arguments for AC_LIBOBJ.
Wayne Davison [Fri, 1 May 2015 21:25:50 +0000 (14:25 -0700)]
Must define LIBOBJDIR in the Makefile.
Tiziano Müller [Wed, 8 Apr 2015 11:29:36 +0000 (13:29 +0200)]
Use AC_CONFIG_LIBOBJ_DIR and AC_REPLACE_FUNCS to adhere to autoconf standards
Tiziano Müller [Wed, 8 Apr 2015 11:29:35 +0000 (13:29 +0200)]
Modularize m4 macros
Split acinclude.m4 into one file per function in m4/
Tiziano Müller [Wed, 8 Apr 2015 11:29:34 +0000 (13:29 +0200)]
Properly quote m4 macro
Wayne Davison [Sun, 26 Apr 2015 23:25:56 +0000 (16:25 -0700)]
Update generated-files logic.
Tiziano Müller [Wed, 8 Apr 2015 11:29:33 +0000 (13:29 +0200)]
Rename aclocal.m4 to acinclude.m4 and add make target
It is common practice to split up m4 files for easier maintenance and
generate the required aclocal.m4 using `aclocal` instead.
Stefan Behrens [Tue, 21 Apr 2015 11:50:38 +0000 (13:50 +0200)]
rsync: fix of-by-one in check of snprintf() result.
Fixes bug 11229.
Wayne Davison [Wed, 31 Dec 2014 20:41:03 +0000 (12:41 -0800)]
Complain if an inc-recursive path is not right for its dir.
This ensures that a malicious sender can't use a just-sent
symlink as a trasnfer path.
Wayne Davison [Wed, 31 Dec 2014 19:12:55 +0000 (11:12 -0800)]
Mention that --append can be dangerous.
Wayne Davison [Wed, 31 Dec 2014 19:02:03 +0000 (11:02 -0800)]
Call set_modtime even if only NSEC is different.
Wayne Davison [Thu, 27 Nov 2014 19:57:35 +0000 (11:57 -0800)]
Use usleep() for msleep() if it is available.
Wayne Davison [Fri, 10 Oct 2014 21:15:11 +0000 (14:15 -0700)]
Add a missing closing paren.
Wayne Davison [Sat, 6 Sep 2014 17:52:49 +0000 (10:52 -0700)]
Prepare the repository for more development.
Wayne Davison [Sat, 6 Sep 2014 17:47:13 +0000 (10:47 -0700)]
Mention DRY RUN in --debug=exit output.
Wayne Davison [Thu, 4 Sep 2014 20:06:13 +0000 (13:06 -0700)]
Adding the long options that BackupPC likes to use.
Wayne Davison [Thu, 31 Jul 2014 22:59:32 +0000 (15:59 -0700)]
Set GIT_MERGE_AUTOEDIT=no in the environment.
Wayne Davison [Thu, 31 Jul 2014 21:52:30 +0000 (14:52 -0700)]
Match latest git's repo branch message.
Wayne Davison [Thu, 31 Jul 2014 21:43:32 +0000 (14:43 -0700)]
Match latest git's repo status messages.
Wayne Davison [Thu, 31 Jul 2014 21:39:09 +0000 (14:39 -0700)]
Remove superfluous ${INSTALL_STRIP} uses.
Wayne Davison [Thu, 31 Jul 2014 21:38:16 +0000 (14:38 -0700)]
Fix a typo.
Wayne Davison [Sun, 22 Jun 2014 16:50:03 +0000 (09:50 -0700)]
Preparing for release of 3.1.1
Wayne Davison [Sun, 22 Jun 2014 16:41:17 +0000 (09:41 -0700)]
Add a clarification about shell wildcard expansion.
Wayne Davison [Sun, 22 Jun 2014 16:04:24 +0000 (09:04 -0700)]
Make sure the link() destination file doesn't exist.
Wayne Davison [Mon, 16 Jun 2014 00:30:09 +0000 (17:30 -0700)]
Make sure cmp_time() doesn't mess up due to a time_t overflow.
Fixes bug 10643.
Wayne Davison [Sat, 14 Jun 2014 16:55:37 +0000 (09:55 -0700)]
Updated NEWS & tweaked a comment.
Wayne Davison [Sat, 14 Jun 2014 16:48:56 +0000 (09:48 -0700)]
Put zlib and popt -I options early in the CFLAGS.
Wayne Davison [Fri, 13 Jun 2014 22:58:26 +0000 (15:58 -0700)]
Fix hard-link bugs when receiver isn't capable.
If the receiving side cannot hard-link symlinks and/or special files
(including devices) then we now properly handle incoming hard-linked
items (creating separate identical items).
Wayne Davison [Sun, 8 Jun 2014 17:22:09 +0000 (10:22 -0700)]
Added a flag to disable xattr hlink optimization.
I added a compatibility flag for protocol 31 that will let both sides
know if they should be using the xattr optimization that attempted to
avoid sending xattr info for hardlinked files. Since this optimization
was causing some issues, this compatibility flag will ensure that both
sides know if they should be trying to use the optimization or not.
Wayne Davison [Sun, 8 Jun 2014 17:21:27 +0000 (10:21 -0700)]
I missed this tweak in the undo of a prior xattr optimization.
Wayne Davison [Mon, 26 May 2014 22:42:03 +0000 (15:42 -0700)]
Preparing for release of 3.1.1pre2
Wayne Davison [Mon, 26 May 2014 21:08:20 +0000 (14:08 -0700)]
Mention all the latest changes in the NEWS.
Wayne Davison [Mon, 26 May 2014 21:04:49 +0000 (14:04 -0700)]
Avoid an xattr-finding glitch on the receiver.
Fixes bug 9594.
Wayne Davison [Mon, 26 May 2014 19:13:01 +0000 (12:13 -0700)]
Add new-compress option to rrsync.
Wayne Davison [Sun, 25 May 2014 23:36:02 +0000 (16:36 -0700)]
Make --omit-dir-times avoid early-create directories.
Wayne Davison [Sun, 25 May 2014 22:58:14 +0000 (15:58 -0700)]
Exit with a partial-transfer error for a sender-remove failure.
Wayne Davison [Mon, 5 May 2014 16:25:13 +0000 (09:25 -0700)]
Check for attr lib.
Wayne Davison [Wed, 30 Apr 2014 19:34:15 +0000 (12:34 -0700)]
Fix usermap/groupmap parsing of MIN-MAX IDs.
Wayne Davison [Sun, 20 Apr 2014 21:35:55 +0000 (14:35 -0700)]
Check F_IS_ACTIVE() in a few more spots.
The code needs to ignore flist entries that were marked inactive (by
either duplicate removal or empty-dir pruning) in a few more spots.
Wayne Davison [Sat, 19 Apr 2014 23:26:35 +0000 (16:26 -0700)]
Change args to file_checksum() to prepare for future changes.
Wayne Davison [Sat, 19 Apr 2014 19:11:11 +0000 (12:11 -0700)]
Add new-style compression that skips matching data.
Adding new-style compression that only compresses the literal data that
is sent over the wire and not also matching file data that was not sent.
This new-style compression is compatible with external zlib instances,
and will eventually become the default (once enough time has passed that
all servers support the --new-compress and --old-compress options).
NOTE: if you build rsync with an external zlib (i.e. if you specified
configure --with-included-zlib=no) you will ONLY get support for the
--new-compress option! A client will treat -z as uncompressed (with a
warning) and a server will exit with an error (unless -zz was used).